Cost

What a rendering decision costs, where the number comes from, and why batching is the whole argument.

Every component reports what its judgment cost. Jev bills per input token and output tokens are free, so the interesting figure is usually per thousand renders rather than per render.

import { JevCost } from 'jev-ui';

const [cost, setCost] = useState<DecisionCost>();

<Branch ask="…" onResolved={setCost}>…</Branch>
<JevCost cost={cost} />        // this decision's share
<JevCost cost={cost} batch />  // the whole request

What the numbers mean

fieldmeaning
batchUsdUSD for the whole request this judgment travelled in.
shareUsdbatchUsd divided by the number of questions in that request.
decisionsHow many questions shared the request.
requestsUpstream calls made. One for a whole render pass; zero on replay.
inputTokensTokens billed for the request.
estimatedTrue when the figure came from a recording rather than this call.

The share is an attribution, not a measurement. The API bills per request, so per-question cost cannot be observed — only divided. That division is the point: the marginal question is close to free.

Why batching dominates the bill

A request ingests the state once and evaluates every question against it in parallel. Four judgments on one page are one request and one state ingestion, not four. Splitting them into separate calls multiplies the state, not just the questions.

Overriding the rates

createResolver({
  pricing: { 'jev-1.13.0': { inputPerMtokUsd: 0.042 } },
});

Published prices change and the built-in table will go stale. Treat the reported cost as an estimate you control, not as a bill.