Marketing

What the Evidence Packet Costs in Tokens per Case

Antonio Evans8 min read

A split-view illustration: on the left, a stack of paper documents labeled 'Evidence Packet' with a token counter showing a large number; on the right.
Key points

Key points

  1. 1Send the full packet on every review and the token bill is the packet size times the number of reviews.
  2. 2Store a structured packet once (a fixed extraction cost) and render only the slice the reviewer needs on each review.
  3. 3In the worked example, the two-hour review costs about 5,500 tokens with an on-demand render against about 50,000 tokens for two full sends.
  4. 4The decision rule is the number of reviews, not the packet size: past roughly one extra review, the render path is cheaper.

The two operations people keep merging

A review queue is a machine for doing the same expensive thing more than once. Someone, or something, assembles evidence for a case: the filing, the complaint, the correspondence, the screenshots, the policy passages that decide it. A reviewer then opens the case, decides, and usually writes down why. Do that with retrieval-augmented generation and the model sees a bundle of text on every pass. The amount billed is the bundle size times the number of passes.

The confusion starts because "the evidence packet" gets used for two different artifacts. One is the packet the reviewer sees: a rendered view, tuned to the decision at hand. The other is the structured store the packet is built from. A retrieval setup that grounds answers in verified documents can give source citations so people can check claims, which matters in a review queue where "why" has to survive an audit (Evidently AI). Those citations come from retrieval over a store, not from a pasted bundle. The moment a team treats the bundle as the store, every review pays to re-establish the same context.

The fix is to separate extraction (once per case) from rendering (once per view). The first is a fixed cost that does not grow with the archive. The second should scale with how much the reviewer needs to see, not with how much you have.

A worked example with numbers

Take a 50-page evidence packet. A rough rule of thumb quoted across model providers is about four characters or three-quarters of a word per token, and 1,000 words is about 1,333 tokens (iternal.ai); OpenAI's guidance on tokens uses the same four-characters-per-token approximation (Silicon Data). At roughly 500 words per page, the packet is about 25,000 words, or roughly 33,000 tokens by that ratio. To keep the example conservative we will use the 25,000-token figure.

Now split the two jobs.

OperationWhat runsTokensHow often
Extract and structure the packetRead full packet, pull entities, dates, claims and citations into a structured recordabout 5,000once per case
Render a summary viewStructured record in, one-screen summary plus citation list outabout 500each review
Render the relevant sliceOnly the clauses and files the reviewer asks forabout 3,000when the summary is not enough
Send the full packetWhole 25,000-token bundle in the prompt25,000each review

Run the numbers for a simple two-step review: one pass for triage, one for the decision. Sending the full packet twice costs 50,000 input tokens. Storing once and rendering costs 5,000 for extraction, plus 500 for the triage summary, plus 3,000 for the decision slice: 8,500 tokens, about 17% of the full-send path. Three reviews with a single slice each land around 9,500 tokens against 75,000, roughly one eighth.

Output tokens bill higher than input in most published price sheets, and per-million rates differ by a factor of dozens between budget and frontier models (iternal.ai). That is why we count tokens and hold money aside: the token ratio is the durable part, and you re-price it against whatever model you route to. Token pricing tools will split input, output and cached input for you (tokencalculator.ai), and a sensible cost model keeps cost per request, cost per feature and cost per month as separate lines (Silicon Data).

The decision rule: reviews per case, not packet size

The break-even is easier than it looks. Let E be extraction cost, R the render cost per review, F the full-packet cost, and n the number of reviews.

store-and-render:  E + n * R
send-full-packet:  n * F

store-and-render wins when E + n*R < n*F, i.e. E / (F - R) < n

With E = 5,000, F = 25,000 and R = 500, the break-even is 5,000 / 24,500, about 0.2 reviews. In other words, the structured store wins from the first additional view. The rule generalizes: compare the extraction cost with the saved tokens per review. Extraction is only not worth it when a case is genuinely reviewed once and never cited again. In a real queue, almost nothing is reviewed once, because appeal, spot-check and audit all render the same case again.

The same logic appears in content work. One interview or case study gets repurposed into a one-pager, a deck slide, a social post, an email and a website proof point, five formats with five distinct jobs from a single source (The Simons Group). Breaking a large piece into reusable components so it can be repurposed across channels without proportionally increasing resources is exactly the store-once, render-many pattern (Storyteq). The video walkthrough of content atomization makes the same point in funnel terms: identify the cornerstone piece, then create derivatives sized for each stage (Coursera). Case study teams that plan all the derivative uses before writing avoid redoing the interview for each format (Uplift Content).

For a review queue the translation is direct: the case is the cornerstone, the renders are the derivatives, and the extraction interview happens once.

What belongs in the structured store

The store is not a summary. It is a set of addressable parts, each with a citation, so a render can pull exactly what it needs. A workable schema has five layers:

  1. Case header: ID, parties, dates, jurisdiction, status, decision owner.
  2. Timeline: dated events, each linked to a source page and offset.
  3. Claims: one row per assertion the decision turns on, with the supporting passage and confidence.
  4. Rules: the policy or clause text that the claims are tested against, frozen at the time of decision.
  5. Open questions: what is missing, contested, or needs a human call.

Every row carries a source pointer, usually file plus page plus a short quoted span. That is the unit a render can fetch on its own. Hierarchical indexing at paragraph, section and document level lets retrieval pull exactly the right amount of context for each query, rather than the whole document every time (reptile.haus).

Review workflows describe this as the evidence pack: the draft content, the customer context, the cited sources and the policy flags, packaged so the decision is obvious in seconds (StackAI). Their approval matrix is a useful checklist for what a render must contain for each action type, with the required approver role and the evidence list spelled out. Build the store to answer that list for every action type in your own matrix.

One practical limit: long retrieval pipelines fail by producing confident citations that do not support the claim, and detecting that is an active research problem rather than a solved one (arXiv FACTUM paper). So the store should keep the quoted span, not just the file name. A reviewer can settle a file name in one click; a wrong quoted span takes ten minutes to untangle.

Rendering only what the reviewer needs

A render is a function of the store and a view request. The view request says who is looking, what decision they face, and which slices they asked for. Three defaults cover most of a queue:

  • Triage view: case header, top three claims, missing-information list, about 500 tokens.
  • Decision view: the claims in dispute plus the rules they are tested against, about 3,000 tokens.
  • Appeal view: the full timeline plus the original decision rationale, maybe 2,000 tokens because timeline rows are short.

With that layout, a case that gets triaged and decided costs 5,000 to extract, then 500 plus 3,000 to review: 8,500 tokens for the whole case, and every later appeal or spot-check costs a further 2,000 rather than a fresh 25,000. The queue's bill grows with the number of decisions, not with the size of the archive.

Two rules keep the render honest. First, the render never summarizes a claim it cannot cite; if the passage is missing, the claim appears on the open-questions list. Reviewers in RAG loops flag exactly this failure when asked whether an answer is factually correct based on the retrieved documents and whether retrieval found the necessary information (Label Studio). That review prompt is a good model for your own QA checklist. Second, the reviewer can always escalate to a larger slice on demand. Escalation is the escape hatch that lets the default view stay small.

Keeping the store from going stale

The most common way a store-once design rots is a changed rule. A policy is updated, a decision is re-opened, and the frozen rule text in an old case no longer matches the live version. Handle this by versioning the rule layer separately from the case layer. A case cites a rule by version, and a re-render names both the version at decision time and the current version where they differ. That keeps the review of a past decision faithful to what the reviewer had, while surfacing the mismatch for anyone working from today's policy.

The second failure mode is drift in extraction quality. If extraction mislabels one claim, every render built from it repeats the error, cheaply and confidently. Automated metrics can tell you which cases to look at first: score faithfulness and context relevance, flag everything below a threshold, and sort by severity so human review goes where it is worth the most (Label Studio). The published sample code thresholds faithfulness at 0.7 and context relevance at 0.6, which is as good a starting place as any for a first pass.

The third is trust, which is measurable. Track accuracy, relevance, coherence, helpfulness and user trust against a pre-deployment baseline, and treat the numbers as a check on whether the renders are actually helping people decide (Glean). For a queue, helpfulness usually means decisions per reviewer-hour; if that does not move, the render is the wrong size.

How to run the migration without a flag day

Start with one case type, not the whole archive. The full-send path is already running, so it gives you the baseline for free.

  1. Pick a case type with steady volume and at least two views per case.
  2. Store 20 cases in the structured schema by hand, side by side with reasonable care. Compare extraction cost against the measured packet size, not against the 25,000 estimate.
  3. Define the triage and decision renders, and measure the tokens they actually use, including the prompt scaffolding.
  4. Run the queue in shadow for two weeks, rendering in parallel with the existing full send, and log which escalation path reviewers take and how often.
  5. Cut over when the escalation rate is low enough that the renders are decided in one screen, and keep the full packet available as an explicit escalation for cases that need it.

Keeping a way to send everything matters for audit, and for cases where the render is plainly not enough. The goal is a cheap default and an expensive exception, not the removal of the exception.

Teams building this usually hit the same integration question: the extraction step, the render step and the evaluation step each want a different model. One API for text, image and embedding models with an OpenAI-compatible interface, prepaid and billed in dollars, removes that as a variable while you tune the cost model, and Quanta Inference is where that lives. If the harder part is the schema and the reviewer workflow rather than the plumbing, a specialist who builds it with you is the faster path, via Quanta.

FAQ

FAQ

Does storing the packet once really pay off if a case is reviewed only once?

No, and that is the honest exception. If the reviewer's single pass needs the whole packet, the extraction cost is pure overhead. But "reviewed once" is rare in a queue, because appeal, spot-check and audit each re-open the same case, and each of those renders costs a fraction of a full send. Count the views per case from your existing logs before deciding.

How do I estimate the token count of a packet before I build anything?

Use the four-characters-per-token rule and check it against a tokenizer. It gives roughly three-quarters of a word per token, and 1,000 words at about 1,333 tokens (iternal.ai). Word processors report word counts, so multiply by about 1.33 and you have a usable estimate within a few percent.

Should the summary render be generated once and cached, or per review?

Cache it per case version and per view type. A triage summary that changes only when the case changes does not need regenerating on every open. Cached input is billed separately and usually cheaper than fresh input, which makes the caching decision visible in your cost report (tokencalculator.ai). Invalidate the cache when the store changes, and version the key.

What stops a small render from hiding the fact that decided the case?

The citation requirement. Every claim in a render carries a source pointer, and a claim without one goes on the open-questions list instead of the summary. Reviewers who check whether an answer is grounded in the retrieved documents, and whether retrieval found the necessary information, catch most of the rest (Label Studio).

How many reviews per case make the full-send path cheaper?

Solve it rather than guess: divide the extraction cost by the difference between full-packet cost and render cost. In the worked example, 5,000 / (25,000 minus 500) is about 0.2, meaning the structured path wins from the first extra view. Recompute with your own measured extraction cost, and remember to include any escalation renders in the render side of the sum.

Sources

Sources

  1. 10 RAG examples and use cases from real companies
  2. AI Token Cost 2026: LLM API Pricing Calculator Per 1M ...
  3. OpenAI API Pricing per 1M Tokens (2026)
  4. AI Token Calculator | Estimate GPT, Opus, and Gemini Model ...
  5. How to Repurpose 1 Case Study Into 5 Marketing Assets
  6. What is content atomization in scalable production?
  7. What Is Content Atomization in Marketing?
  8. 13 Ways to Repurpose Your Case Studies to Extend Their Value
  9. RAG for Business: How Retrieval-Augmented Generation ...
  10. Human-in-the-Loop AI Agents: How to Design Approval ...
  11. FACTUM: Mechanistic Detection of Citation Hallucination ...
  12. Improving RAG Systems with Human-in-the-Loop Review
  13. 5 metrics to measure AI-generated answers' decision- ...
About the author

About the author

Antonio Evans
Antonio Evans

Antonio Evans is the founder of Quanta Intelligence and a fractional CTO who builds HIPAA-ready AI systems for health and life-science companies. Before that he was technical co-founder of FriendsEAT for twenty years, CEO of Socialdraft, and a data engineer at IBM. Antonio lives with his dog Santino in Lisbon, Portugal.

All articles