---
title: "bench.round.finished@1 · OpenVibe.Services"
canonical: "https://openvibe.services/docs/contracts/bench.round.finished"
updated: null
---

# bench.round.finished@1 · OpenVibe.Services

HTML: [bench.round.finished@1 · OpenVibe.Services](https://openvibe.services/docs/contracts/bench.round.finished)

# BenchRoundFinishedPayload `bench.round.finished@1`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

- Version: 1.0.0
- Owner: bench
- Visibility: first-party
- Status: active
- Compatibility: backward
- Schema: [`https://openvibe.network/contracts/events/payloads/bench.round.finished.v1.json`](/docs/contracts/bench.round.finished.json)

bench.round.finished v1 (OpenVibe.Bench): a pinned round reached finished with at least two usable entries and is ready for judgements. Envelope: source bench, subject { type: user, id: <created\_by> }, visibility first-party.

## Fields

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `round_id` | string | yes |  |  |
| `task_id` | string | yes |  |  |
| `kind_id` | string | yes |  |  |
| `status` | const | yes |  | - `= "finished"` |
| `entries` | integer | yes |  | - `minimum 0` |
| `finished_at` | string | yes |  | - `format date-time` |

## Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

 Valid: finished

~~~~
{
  "round_id": "rnd_01J8Z3Q4R5S6T7V8W9X0Y1Z2A6",
  "task_id": "tsk_01J8Z3Q4R5S6T7V8W9X0Y1Z2A4",
  "kind_id": "knd_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
  "status": "finished",
  "entries": 2,
  "finished_at": "2026-10-28T18:10:00.000Z"
}
~~~~

Rejected: wrong-status

~~~~
{
  "round_id": "rnd_01J8Z3Q4R5S6T7V8W9X0Y1Z2A6",
  "task_id": "tsk_01J8Z3Q4R5S6T7V8W9X0Y1Z2A4",
  "kind_id": "knd_01J8Z3Q4R5S6T7V8W9X0Y1Z2A3",
  "status": "queued",
  "entries": 1,
  "finished_at": "2026-10-28T18:10:00.000Z"
}
~~~~

## Validate

~~~~
const contracts = require('openvibe-contracts');
contracts.validate('bench.round.finished@1', value);   // { valid, errors: [{ path, message }] }
~~~~
