Skip to main content

BENCHMARK 02 · COST

Retrieval pays on every question. Structuring pays once.

Talonic paid $10.14 once to read all 53 documents, then answered 1,014 questions without moving a single metered counter. The cheapest RAG line measured here still costs $41.90 per 1,000 questions, and it costs that again next month. Both sides are priced from provider-reported token counts at the same rates, on the same corpus, with the same model.

$0.00

Per 1,000 · structured path

$41.90

Per 1,000 · cheapest RAG line

65

Question at which ingest is repaid

n = 39 questions per arm, 53 documents, measured 2026-08-24. Ingest was $0.19141 per document. Break even against cached hybrid RAG arrives at question 65.

What each path costs per 1,000 questions

Six paths, one corpus, one battery of 39 questions. Every price is provider-reported token counts against a frozen rate table, $3.00 per million input tokens and $15.00 per million output tokens on both sides. The two Talonic rows are the point of the table: they are not the same product surface, and only one of them is flat.

PathUSD per 1,000Mean latencyLLM calls per questionn
Talonic structured path (no LLM at query time)$0.000.013 ms039 and 100
RAG long context, cached (rag_d_cached)$41.9012.5 s139
RAG hybrid, uncached (rag_b)$157.9112.1 s139
RAG hybrid, cached (rag_b_cached)$158.1912.9 s139
Talonic agent path (run 13)$244.52137.7 s6.5939
RAG long context, uncached (rag_d)$321.2312.6 s139
  • One-time Talonic ingest of the 53 documents: $10.14, or $0.19141 per document, over 563 metered calls on 2026-08-20.
  • The structured path answered 1,014 questions in 0.0132 seconds and the metered counters were identical before and after, so the marginal cost is 0. That is a throughput figure, not a sample size: it is 26 repeats of 39 distinct questions.
  • The published headline uses the cached RAG numbers, which are the cheaper and fairer steelman.

The result, in one minute

Retrieval is a per-question cost forever. Structuring is a per-document cost once. Which of those is cheaper depends entirely on how many questions you intend to ask, and the benchmark exists to say where the line crosses rather than to assert that it does.

  • The flat line. The Talonic structured path runs no model at query time. It reads captured fields over the public API and aggregates them in code, at a mean latency of 0.013 ms and a measured marginal cost of $0.00. The whole cost is the ingest: $10.14 for 53 documents.
  • The RAG lines. Long-context RAG costs $321.23 per 1,000 questions uncached, and $41.90 cached when questions arrive in a burst. Hybrid RAG costs about $158 per 1,000 whether caching is switched on or not, because its cacheable prefix is 114 tokens and never qualifies.
  • Where it crosses. Against cached hybrid RAG, Talonic’s running total goes below at question 65. Against cached long-context RAG, the cheapest line measured, it goes below at question 245. On a 1,000-document corpus the second of those does not move: it is still question 244, because ingest and long-context both scale with the corpus.
  • The line that is not flat. The Talonic conversational agent is an LLM loop at $244.52 per 1,000 and 137.7 seconds per question. At this corpus size it never beats cached RAG on total spend, at any number of questions. It is on this page because leaving it off would be the dishonest version of the chart.

Everything here is measured from provider token counts, on both sides, at the same frozen rates. Nothing is a list price and nothing is modelled, except the corpus-scaling projections beyond 106 documents, which are labelled as projections where they appear.

Why one line is flat

A RAG query is a model call. Whatever the retriever does first, the answer is produced by putting text in a prompt and paying for the tokens. Ask the same question twice and you pay twice, because nothing was kept from the first time.

Talonic reads each document once at ingest into a canonical data plane: typed fields with provenance, resolved against a field registry. A question over that plane is a scan, a count or a sort over a field table. There is no prompt, no context window and no token bill, which is why the marginal cost is not a small number but zero. We checked that against the meter rather than asserting it: 1,014 questions answered in 0.0132 seconds with the tenant’s metered counters identical before and after, through the same public endpoints a customer would call.

The honest framing of that result is narrow. The structured arm pulls a field table once and then answers with arithmetic over 28 rows, and arithmetic over 28 rows is free for anyone. Talonic’s contribution is the ingest and the field table, not the sum. What the benchmark prices is the cost of answering from captured structure, which is exactly the thing a retrieval pipeline has to re-buy on every question.

Break even: the first question at which Talonic is cheaper

Ingest is charged as a fixed cost on the Talonic side, and the running totals are compared question by question. Each cell is the first integer question count at which Talonic’s total is strictly below that RAG arm’s. Ingest scales linearly at $0.19141 per document, so a 1,000-document corpus is charged $191.41 before the first question.

Comparison53 docs100 docs500 docs1,000 docs
Structured vs RAG hybrid, cachedquestion 65question 122question 606question 1,211
Structured vs RAG hybrid, uncachedquestion 60question 112question 560question 1,119
Structured vs RAG long context, cachedquestion 245question 244question 244question 244
Structured vs RAG long context, uncachedquestion 32question 32question 33question 33
Agent vs RAG hybrid, cachednevernevernevernever
Agent vs RAG long context, cachedneverneverquestion 647question 354
  • The crossover charges Talonic’s ingest as a fixed cost and charges RAG’s index build at zero. That asymmetry favours RAG.
  • “never” means the per-question cost is not below that RAG arm’s, so the totals never cross. Four of the six agent rows read never, and we print them.

Read the long-context row carefully, because it is the one that does not depend on corpus size. Both ingest and whole-corpus prompting scale with the number of documents, so the ratio between them is roughly constant and break even sits at question 244 or 245 at every size we measured. The hybrid row moves instead: hybrid RAG’s prompt does not grow with the corpus, so a bigger corpus means a bigger ingest against the same per-question price, and break even slides from question 65 at 53 documents to question 1,211 at a thousand.

The practical reading is that structuring pays for itself in the first afternoon of a small corpus, and in the first month of a large one, provided the corpus is queried more than a few hundred times. If it is queried once, retrieval is cheaper and this page is not an argument for us.

Prompt caching is a burst optimisation, not a discount

The headline $41.90 is the cached long-context line, and we publish it rather than the $321.23 uncached one because the cached number is the fairer opponent. It is also conditional in a way that matters operationally.

A cache write bills at 1.25 times the input rate, a read at a tenth, and the entry lives for five minutes, refreshed on each read. Long-context RAG benefits enormously because its whole prompt is the corpus and therefore identical on every question: 103,409 cached prefix tokens, and total spend on the 39-question battery falls from $12.53 to $1.62. A cold first question pays $0.3932 for the write, which is why a 39-question battery run from cold works out at $50.57 per 1,000 rather than $41.90.

Under a workload of one question every ten minutes, every question falls outside the TTL and pays a fresh write instead of a read. For long-context RAG that is $398.23 per 1,000, worse than the $321.23 it costs with caching switched off. A dashboard firing forty questions in a minute gets the cheap line. An analyst thinking between questions gets the expensive one.

Hybrid RAG gets nothing either way. Its retrieved excerpts differ on every question and sit after the cache breakpoint, so the only cacheable prefix is a 457-character system prompt, about 114 tokens, against a minimum cacheable prefix of roughly 1,024. The run recorded zero cache reads and zero cache writes across all 39 questions and came out 0.3% more expensive than uncached, which is run-to-run variance. The “cached” hybrid row in the table above is a measurement that caching does not apply, not a caching result.

What happens when the corpus grows

We measured this rather than assuming it, by cloning the corpus to 106 documents and running a fixed 12-question subset on both sizes, so the comparison is paired. Long-context RAG’s input tokens went up 2.0019 times for a corpus 2.0031 times the size: linear, as the mechanism predicts. Hybrid RAG’s went up 5.95%, which is which chunks got picked rather than how many, because top-k is pinned at 24 chunks. Its price is therefore flat with corpus size, and its accuracy ceiling is the subject of the main benchmark rather than this one.

Long-context RAG cost per 1,000 questions by corpus size
CorpusLong context, uncachedLong context, cachedInput tokens per questionCalls per question
53 documents (measured)$324.39$41.55103,4971
106 documents (measured)$636.59$83.18207,1881
500 documents (projected)$2,947.97$392.65978,0231
1,000 documents (projected)$5,910.43$785.371,956,2403

Prices per 1,000 questions. The 53 and 106-document rows are measured; the rest is a two-point linear fit, input_tokens(D) = −194.2 + 1,956.43 × D. Hybrid RAG is omitted from this table because its price does not vary with corpus size, and because the flat model and the measured 53-document price are two different bases that should not share a row.

There is a hard stop at the end of the long-context line. Claude Sonnet 4.6’s context window is 1,000,000 tokens, and at 1,956 tokens per document one call holds 511 documents. At 1,000 documents the corpus is 1.96 million tokens and the arm has to split into 2 map calls plus 1 merge per question, which is where the 1,000-document row gets its three calls. Two honest footnotes on that number: the projection charges only map-call input and ignores the merge call’s own input, so the 511-plus figures are slight under-estimates, and the arm’s configured cap counts estimated tokens as characters over four, which runs about 1.55 times low on this corpus, so it would overflow the real window before its own cap fires.

None of that applies to a scan over a field table. The structured path does not read the corpus at query time, so corpus size changes the ingest bill and nothing else.

The path that is not flat

Talonic has two query surfaces and only one of them is free. The structured path is the API: fields in, arithmetic out, no model. The agent path is the conversational product: it plans, calls tools, reads captured fields and writes prose. It is an LLM loop, and it is priced like one.

Measured on the same 39 questions: $0.2445 per question, $244.52 per 1,000, a mean of 6.59 model calls per question, and 137.7 seconds of mean latency, which is about eleven times slower than hybrid RAG’s 12.1 seconds. Once caching is enabled on the RAG side, that makes the agent the most expensive path in this benchmark. At 53 documents its running total is never below cached hybrid RAG at any number of questions, and never below cached long-context RAG either. It only starts winning against long context at 500 documents, at question 647.

We report that as a cost result, not as a defence. The agent buys something the structured path does not: a question asked in English, with provenance cited inline. If what you need is a number in a pipeline, the structured path is the one this page is about, and it is the one that is flat. The distinction is worth making because “Talonic’s line flattens after ingestion” is true of one path and false of the other, and a chart that draws them as a single line would be wrong.

What this benchmark does not show

These caveats ship with the numbers. They are the same list the benchmark report carries, transcribed rather than summarised, because a cost claim without its conditions is a price tag with no currency on it.

  • 01The Talonic agent path is not flat. It is an LLM loop costing $0.2445 a question, and with caching enabled on the RAG side it is the most expensive path in this benchmark. At 53 documents it is never cheaper in total than cached hybrid RAG, at any number of questions.
  • 02The agent path is also about 11 times slower: 137.7 seconds mean against 12.1 for hybrid RAG.
  • 03Prompt caching is a burst optimisation. The $41.90 line assumes questions arrive inside a 5 minute TTL. At one question every 10 minutes the same arm costs $398.23 per 1,000, worse than not caching at all.
  • 04rag_b_cached is not a caching result. It is a measurement that hybrid RAG’s cacheable prefix is too short to cache: zero cache hits on 39 questions.
  • 05The corpus is 53 one page markdown extracts, not 10-K filings, and the ingest figure carries no OCR leg. A real 10-K is a hundred or more pages of PDF. The full filing model in the report is modelled, not measured.
  • 06Neither side’s figures are billed amounts. Both are provider reported token counts times a frozen local rate table. AWS’s public pricing page does not list Sonnet 4.6, so the Bedrock rate could not be confirmed against an invoice.
  • 07The crossover charges Talonic’s ingest as a fixed cost and RAG’s index build at zero. CPU is unpriced on both sides.
  • 08Projections beyond 106 documents are a two point linear model. Long context RAG’s is mechanistic, since the whole corpus goes in the prompt. Hybrid RAG’s flat line is a structural argument: top-k is fixed at 24 chunks, so its input tokens do not grow with the corpus.
  • 09n = 39 on every arm, plus n = 100 for the structured path. The agent number is a single run.
  • 10The benchmark tenant is shared with the consistency benchmark. Agent attribution is windowed to run 13’s own span: all 257 counted rows are 2026-08-20, all 41 excluded rows are 2026-08-24.
  • 11The structured path’s accuracy on this corpus is 95.8% ordering (23 of 24 ranking questions) on the 39 question battery and 88.6% (39 of 44) on the 100 question battery. Roughly a third of that is benchmark side scale normalisation, not platform output: a customer calling the fields API today and trusting the scale caption lands on 52 of 84 cells within 2 percent, with 23 missing. The capture gap is real and is being fixed. Cost is the claim in this section, not the accuracy level.

Method

  • Corpus: 53 XBRL financial-statement extracts from SEC 10-K filings, 28 distinct companies, 267,629 characters, about one page each. These are extracts, not full 10-K filings.
  • Model: global.anthropic.claude-sonnet-4-6 on AWS Bedrock, eu-central-1, for every arm that calls a model. Temperature is left at the model default and never sent, which on the Bedrock Converse API for Anthropic models is 1.0.
  • Retrieval configs: hybrid arm is BM25 plus Titan v2 dense embeddings, reciprocal rank fusion at k=60, top-k 24 chunks, 8,000-character chunks with 800-character overlap. Long-context arm puts the whole corpus in one context, with a configured cap of 900,000 estimated tokens.
  • Battery: 39 questions (scaling/queries_n28_v4.jsonl) on every arm. The structured arm additionally ran a 100-question battery. A fixed 12-question subset ran at both 53 and 106 documents for the corpus-scaling comparison.
  • Prices: Sonnet 4.6 at $3.00 per million input tokens and $15.00 per million output tokens, on both sides, from a frozen local rate table fixed by the preregistration. Caching is priced at 1.25 times input for a write, 0.1 times for a read, with a 300-second TTL.
  • Talonic source: the public key-authed API only. GET /v1/credits/usage/log, GET /v1/usage, GET /v1/credits/balance and GET /v1/documents. No internal endpoints and no database access.
  • Estimation: neither side is a billed invoice. Both are provider-reported token counts priced against a frozen local table. Talonic’s figure is computed by the platform from token counts with no margin added; the RAG figures are computed the same way from the Bedrock usage block. Both tables price Sonnet 4.6 identically, so the two sides are comparable.
  • n: 39 questions per arm at 53 documents, 12 questions per arm at 106 documents, plus 100 questions on the structured path.
  • Date and spend: run 2026-08-24, $36.99 of Bedrock spend this session. No Talonic agent turns were run for this benchmark: every Talonic figure reads spend that run 13 already incurred on 2026-08-20.
  • Verification: every number was re-derived by an independent adversarial review (bench/verify-cost/VERDICT.md) that recomputed the arms from the raw run files without reference to the arms’ own recorded costs. Its corrections are applied here, including the break-even basis.

Reproduce it

The RAG arms are fully reproducible from the talonic-rag-benchmark suite: corpus manifest, query set, retrieval configurations and price table were all frozen before any query ran.

sh bench/cost/run_cost.sh
NO_SPEND=1 sh bench/cost/run_cost.sh

The second form re-derives results.json from the existing run outputs for $0. The Talonic figures are read from the public API, so they are auditable end to end. Contact us for the benchmark bundle.

Frequently asked questions

How can a query cost exactly $0.00?+

Because there is no model in the query path. The structured path reads captured fields over the public API and aggregates them in code, so a question is a scan over a field table rather than a prompt. We proved it against the meter rather than asserting it: the structured arm answered 1,014 questions in 0.0132 seconds and the tenant’s metered counters were byte-identical before and after, through the same public endpoints a customer would call. The cost that is real is the ingest: $10.14 once for 53 documents, $0.19141 per document.

Is the Talonic agent path also free?+

No, and this is the number we would omit if we were selling rather than measuring. The conversational agent is an LLM tool loop at $0.2445 per question, $244.52 per 1,000, with a mean of 6.59 model calls and 137.7 seconds of latency per question. Once prompt caching is enabled on the RAG side, it is the most expensive path in this benchmark, and at 53 documents its running total never falls below cached hybrid RAG at any number of questions. The flat line belongs to the structured path only. The chart in the report draws them as two separate lines for exactly this reason.

Are both sides priced the same way?+

Yes, and neither side is a billed invoice. Both are provider-reported token counts multiplied by a frozen local rate table at $3.00 per million input tokens and $15.00 per million output tokens for Claude Sonnet 4.6. The RAG figures come from the Bedrock usage block; the Talonic figures come from the platform’s own usage log over the public key-authed API. AWS’s public pricing page does not list Sonnet 4.6, so the Bedrock rate could not be confirmed against an invoice.

Why does caching make long-context RAG cheap and hybrid RAG not?+

Long-context RAG sends the whole corpus on every question, so its 103,409-token prefix is identical every time and reads back at a tenth of the input rate: $321.23 per 1,000 becomes $41.90. Hybrid RAG has almost nothing to cache. Its retrieved excerpts differ on every question and therefore sit after the cache breakpoint, leaving only a 457-character system prompt, about 114 tokens, well below the roughly 1,024-token minimum cacheable prefix. The run recorded zero cache reads and zero cache writes on all 39 questions. That is a measurement, not an assumption.

Does prompt caching always help?+

No. A cache write bills at 1.25 times the input rate, a read at a tenth, and the entry lives for 5 minutes. A dashboard firing 40 questions in a minute gets the $41.90 line. An analyst asking one question every ten minutes misses the TTL on every question, pays a fresh write each time, and gets $398.23 per 1,000, which is worse than the $321.23 uncached line. The cheap RAG number in the headline is the burst case, which is the steelman.

What happens as the corpus grows?+

Long-context RAG grows linearly and then stops fitting. We measured it by doubling the corpus to 106 documents: input tokens went up 2.0019 times for a corpus 2.0031 times the size. At 1,956 tokens per document, one 1,000,000-token context call holds 511 documents; past that the arm has to split into map calls plus a merge, and its own estimated-token cap runs about 1.55 times low on this corpus, so it overflows the real window before its cap fires. Hybrid RAG is structurally flat instead, because top-k is pinned at 24 chunks: when the corpus doubled, its input tokens rose 5.95%, which is which chunks got picked, not how many. It stays cheap per question and keeps the accuracy ceiling described on the main benchmark page.

Does the break-even calculation favour Talonic?+

It favours RAG. The crossover charges Talonic’s ingest as a fixed up-front cost and charges RAG’s index build at zero, even though chunking and embedding 53 documents is not free. CPU is unpriced on both sides. Read the break-even table as a lower bound on how quickly structuring pays for itself, not an upper one.

Is this corpus representative of real filings?+

No, and it should not be read as one. These are 53 XBRL financial-statement extracts from SEC 10-K filings across 28 companies, about one page each, 267,629 characters in total. A real 10-K is a hundred or more pages of PDF. The ingest figure carries no OCR leg, so the per-document price does not transfer to a corpus of scanned documents. Any full-filing figure in the report is modelled, not measured, and is labelled that way.

Can I reproduce this?+

The RAG arms are fully reproducible from the benchmark scripts with a frozen price table and a frozen query set. Run sh bench/cost/run_cost.sh in the talonic-rag-benchmark suite, or NO_SPEND=1 sh bench/cost/run_cost.sh to re-derive results.json from the existing run outputs for $0. The Talonic figures are read from the public key-authed API, so they are auditable end to end. Contact us for the benchmark bundle.

Price it against your own corpus

Send a representative sample: a folder of contracts, a stack of filings, a corpus your team queries in spreadsheets. We will return a schema read, an ingest estimate, and the question count at which structuring pays for itself on your documents, within five business days.