Export format
The export file in full — the JSON array a run's export produces, the fields on each item entry, the six status values, and the per-node metrics block.
A run’s export is a JSON array with one entry per item in the run. Each entry records how one item was labeled. Its shape depends on how far the item got when you started the export. To produce and download the file, see Export your labeled results.
A completed item carries its inputs and outputs, plus per-node metrics. Here is one from a support-ticket run:
{ "index": 4, "status": "completed", "input": { "ticket_text": "My invoice is double the usual amount this month." }, "output": { "intent": "billing" }, "metrics": [ { "nodeName": "classify_intent", "nodeType": "generation_sft", "ahtMs": 42318, "avgLlmQaMs": 8125, "attempts": 1, "annotatorId": "a3f9c1e08b" } ]}An item that had not started when you exported carries only its index and status:
{ "index": 12, "status": "idle"}Entry fields
Section titled “Entry fields”Every entry is a JSON object. index and status are always present. The rest appear as the item makes progress.
| Field | Type | Present when |
|---|---|---|
index | number | Always |
status | string | Always |
input | object | The item has started |
output | object | The item has completed |
metrics | array | A Generation or Quorum node has finished |
index is the item’s index in the source dataset (counting from 1). A run that launches a filtered subset carries just those items’ indexes, so the numbers can be sparse. status is one of the status values below.
input holds the item’s input fields. output holds the fields the End node returns. See Fields and data for what these fields hold and how a Quorum node’s output comes back as a per-expert list. metrics carries per-node timing and labeling details. See The metrics array. Each of these is omitted until the item reaches the state in the table.
Status values
Section titled “Status values”| Value | Meaning |
|---|---|
completed | The item ran through the pipeline and produced its output. |
failed | The item stopped at a node it could not complete, or on entry when a required input was missing. |
cancelled | The run was canceled while the item was still unfinished. |
paused | The run was paused while the item was still unfinished. |
in_progress | The item is still being labeled. |
idle | The item had not started when you exported. |
The metrics array
Section titled “The metrics array”The metrics array has one entry for each Generation or Quorum node the item ran. Each entry records how that node handled the item. Code and Match nodes never produce an entry. Each entry names the node (nodeName, the node’s name as shown in the pipeline graph) and its kind (nodeType). A Generation entry describes single-expert labeling. A Quorum entry describes several experts, so it drops attempts and annotatorId and carries annotatorIds instead:
{ "nodeName": "rate_helpfulness", "nodeType": "quorum_sft", "ahtMs": 51044, "avgLlmQaMs": 10233, "annotatorIds": ["a3f9c1e08b", "b7e2d4f19c", "c1a8f3e05d"]}| Field | Type | Appears on |
|---|---|---|
nodeName | string — the node’s name in the pipeline graph | Every entry |
nodeType | "generation_sft" or "quorum_sft" | Every entry |
ahtMs | number | Every entry |
avgLlmQaMs | number or null | Every entry |
attempts | number | Generation entries |
annotatorId | string or null | Generation entries |
annotatorIds | array of strings | Quorum entries |
How the metrics are computed
Section titled “How the metrics are computed”ahtMs— milliseconds from the item’s first task starting to the node first finishing.avgLlmQaMs— the rounded mean of the node’s review durations, in milliseconds;nullwhen review never ran.attempts— how many times the task was submitted or expired (Generation entries; under synthetic labeling the submissions are the model’s).annotatorId— the expert behind the last submission or expiry;nullwhen the node labeled synthetically (Generation entries).annotatorIds— the experts who labeled the item on this node (Quorum entries). The list can be longer than the node’s configured overlap when review rejections bring in extra experts.
When a node is missing from metrics
Section titled “When a node is missing from metrics”- A node appears only once a task on it started and the node then finished for the item — a node that failed before any task began is left out. A node the item never reached, one still running when you exported, or one that was canceled is left out.
- Code and Match nodes never appear, even when the item ran them. Only Generation and Quorum nodes produce metrics.
- Every entry reflects the item’s state at the moment you started the export, like the rest of the file (see Export your labeled results).
Related
Section titled “Related”- Export your labeled results — how to produce and download the file
- Fields and data — what the
inputandoutputfields hold - Quorum node — why
annotatorIdscan outnumber the configured overlap