The fields on a receipt, what each one holds, and where to read it.
A receipt is the accounting for one answer: which model sat in each seat, how the judge scored it, what it cost and how long it took. The request_id comes back with the call that produced the answer. Read the receipt with the get_receipt tool or GET /v1/receipts/{request_id}. In Chat, select the Quorum mark under an answer.
Chat opens the receipt in a panel: the question, the pre-score (task type, difficulty, hallucination risk, seats selected), estimated against actual rounds, time and tokens, a timeline, each seat's answer, the judge's verdict and the synthesis. The API and MCP return the fields below as JSON, including each seat's fee line.
Each seat row carries the following.
| Field | What it holds |
|---|---|
role | seat1, seat2 or seat3. This is the only seat identity. A seat answers once per round, so key on role and round_number, not on array position. |
model_used | The model that answered. |
judge_score | The judge's score for that answer. is_best_seat marks the winner. |
fallback_used, original_model | Set when the seat ran on a backup. original_model is the engine the Mode asked for. |
tokens_in, tokens_out, latency_ms | What the seat consumed and how long it took. started_at and ended_at give the instants. |
source | The source that served the seat. |
real_cost_usd | What that source billed for the seat. |
fee_rate | The platform fee rate on the seat: 5% on Quorum's keys, 0.5% on your own key, unless the source sets its own. |
fee_usd | real_cost_usd times fee_rate, recorded in full. A call over its ceiling keeps its fees and is settled by the cap credit. |
The fee fields are filled on API-billed seats. null means no fee was recorded, and calls billed to a plan record none.
The staff object names the engines that scored and wrote the answer.
judge and synthesis give the model, latency and whether a backup ran. Each is null when that step did not run, as on an express-lane answer.grounding is always an object with fired and model_used. fired: false means no web search ran for the question.billed_usd is what the call was charged. It is the sum of three parts: tokens, the seat fees and the Quorum surcharge, minus any cap credit. token_charge_usd, q_surcharge_usd and cap_credit_usd are returned as stored.
A call that goes over its ceiling is charged in full: tokens, seat fees and the Quorum surcharge. The amount over the ceiling is then credited back as a cap credit, so you pay the ceiling. That credit is cap_credit_usd, the amount by which the call went over its per-call ceiling. status reads capped and the response carries quorum.capped: true and quorum.cap_credit_usd. cap_credit_usd is 0 on a call under the ceiling. null means no credit was recorded, which is not the same as $0.00. On the usage page, the receipt shows the credit as Cap credit and the total as Amount paid.
When a Mode picked an engine and nothing the Mode approved could run, the receipt says so: unavailable: reason. Refused seats appear in seats_unavailable and refused staff in staff_unavailable, each as a role and a reason. Chat prints the same line above the receipt.
When a Mode is resolved, its approved engines are the only ones that can fill a seat.