VynarisEarly beta Kimi K3Get your API key

What a 10-K summarizer costs per company brief: the map-reduce fan-out sets the bill

A financial-analyst 10-K summarizer costs $0.037 to $0.66 per company brief in model fees, and the number that moves it most is the map-reduce fan-out architecture, not the model you pick.

A financial-analyst 10-K summarizer costs $0.037 to $0.66 per company brief in model fees, and the number that moves it most is not the model. It is the architecture. Summarizing an 80,000-token 10-K with a map-reduce fan-out costs 33% to 47% more than one long-context call, because you pay to re-send the instructions on every chunk and to re-read every chunk summary in the reduce step. Prices verified 2026-07-28. This is a reproducible cost model, per brief, you can re-run with your own filing sizes.

TL;DR

The finding, before the model

A financial-analyst summarizer turns a company filing into a research brief: the numbers that moved, the risk-factor changes, the management-discussion tone. A 10-K is long, roughly 80,000 tokens of body text, so most teams reach for map-reduce. Split the filing into chunks, summarize each chunk (the "map" step), then run one pass over the chunk summaries to write the brief (the "reduce" step).

That shape has a cost consequence the token count on the pricing page hides. Your bill is not one request's tokens. It is N chunk passes plus a reduce, and the total input you pay for comes out larger than the document itself, for three reasons. A static extraction rubric rides on every chunk. The reduce step re-reads every chunk summary. And the map step emits intermediate summaries you pay for on output before the brief exists.

We built this from public pricing only. No product data. Every token count below is an assumption you can edit, and every price is from a provider's live page, captured 2026-07-28.

The workload (edit these)

One company brief is the outcome unit: one 10-K in, one research brief out.

Assumption            Value                           Note
--------------------  ------------------------------  ----------------------------------------------------------
10-K body             80,000 input tokens             a typical annual report, tokenized
Chunk size            10,000 tokens                   8 chunks per filing
Extraction rubric     2,000 tokens per map call       instructions plus 2 few-shot examples, re-sent every chunk
Map output            500 tokens per chunk            one section summary each
Reduce input          2,000 rubric + 4,000 summaries  the synthesis instruction plus all 8 chunk summaries
Reduce output         2,000 output tokens             the final brief
Weekly refresh delta  ~15,000 tokens                  the sections that change quarter to quarter

Two things drive the map-reduce bill. The rubric is re-sent 8 times, so 16,000 of the input you pay for is duplicated instruction, not document. And the reduce pass adds a ninth call that re-reads the summaries. On a single long-context call, neither cost exists: the rubric is sent once and there is no reduce.

The model fee, six models, two architectures

Same 80,000-token filing, same cost-per-token math, six models, two architectures. Prices verified 2026-07-28.

Model                                                            Single call  Map-reduce  Fan-out tax
---------------------------------------------------------------  -----------  ----------  -----------
[deepseek-v4-pro](https://vynaris.com/models#deepseek-v4-pro)    $0.0374      $0.0496     1.33x
[Claude Haiku 4.5](https://vynaris.com/models#claude-haiku-4-5)  $0.0920      $0.1320     1.43x
[gemini-3.6-flash](https://vynaris.com/models#gemini-3-6-flash)  $0.1380      $0.1980     1.43x
[gemini-3.1-pro](https://vynaris.com/models#gemini-3-1-pro)      $0.1880      $0.2760     1.47x
[gpt-5.4](https://vynaris.com/models#gpt-5-4)                    $0.2350      $0.3450     1.47x
[Claude Opus 5](https://vynaris.com/models#claude-opus-5)        $0.4600      $0.6600     1.43x

The model spread is 12x on a single call and 13x map-reduce. But look down the last column instead of across the rows: at 80,000 tokens the fan-out adds 33% to 47% to the bill on every model. The reduce pass, the rubric sent eight times, and the intermediate summaries all bill on top of the document.

Bar chart, log x-axis, cost per company brief for six models: a map-reduce fan-out runs 33 to 47 percent higher than a single call on every model
Cost per company brief, single call vs map-reduce, six models. Prices verified 2026-07-28.

If the fan-out costs more, why split? Two reasons that have nothing to do with the token bill. Quality: a focused 10,000-token chunk gets a more thorough read than one section buried in an 80,000-token prompt, where models lose detail in the middle. And limits: a filing plus exhibits can exceed a model's context window, so you have to chunk. Splitting a 10-K is a quality-and-limits decision, not a cost optimization, and anyone who sells it as one is not counting the reduce pass.

The 200k cliff: where the fan-out actually wins

There is one place the fan-out flips to cheaper. gemini-3.1-pro re-rates the entire request once the prompt crosses 200,000 tokens: input jumps from $2 to $4 per 1M, output from $12 to $18. We quantified that step in the 200k-token cliff. A single call over a big filing pays the higher rate on every token. Map-reduce keeps each chunk under 200,000 and never triggers the re-rate.

Filing size     Single call (gemini-3.1-pro)  Map-reduce  Cheaper
--------------  ----------------------------  ----------  -----------
80,000 tokens   $0.1880 (base rate)           $0.2760     single call
150,000 tokens  $0.3280 (base rate)           $0.4930     single call
200,000 tokens  $0.8440 (re-rated)            $0.6480     map-reduce
250,000 tokens  $1.0440 (re-rated)            $0.8030     map-reduce

The crossover lands near a 198,000-token filing. Below it, one long call wins on cost. Above it, a 10-K with its full exhibits attached, the fan-out beats the whole-request re-rate. So the decision rule is size-driven, not model-driven: stay single-call under the cliff, split above it, and on a flat-rate Anthropic model the cliff never enters the math at all. Price your own filing sizes before you commit to a shape.

The weekly refresh: the lever that actually cuts the bill

Research desks do not summarize a 10-K once. They refresh the brief as new filings, earnings calls, and news land, often weekly. And most of a 10-K does not change week to week: the risk-factor boilerplate, the MD&A section headers, the accounting-policy language are the same text you already summarized. A refresh that re-maps only the ~15,000-token delta and reuses the stored summaries for the unchanged chunks changes the ongoing economics.

Model             Full fan-out / week  Delta refresh / week  Amortized / week  Cut
----------------  -------------------  --------------------  ----------------  ---
Claude Opus 5     $0.6600              $0.2250               $0.2585           61%
gpt-5.4           $0.3450              $0.1200               $0.1373           60%
gemini-3.1-pro    $0.2760              $0.0960               $0.1098           60%
Claude Haiku 4.5  $0.1320              $0.0450               $0.0517           61%
deepseek-v4-pro   $0.0496              $0.0157               $0.0183           63%

Amortized over a 13-week quarter, one full run plus twelve delta refreshes, the ongoing per-brief cost drops about 60% on every model. This is the fan-out's compensating advantage: because the work is already split into chunk-level units, you re-run the two chunks that changed and skip the six that did not. A single long-context call cannot do this. It reprocesses the whole filing every time, with no chunk boundaries to reuse.

Where prompt caching helps, and where it barely does

The obvious next move is prompt caching: the 2,000-token rubric is identical on every map call, so cache it. On Anthropic, a cache write costs 1.25x and a read 0.1x. Caching the rubric across the 8 chunks of one brief shaves 9.2%, about 6 cents on Claude Opus 5. Real, but minor: the rubric is only 2,000 tokens of a 12,000-token map call. We worked the general break-even in prompt caching in production. Here the caching to reach for is the coarse kind, reusing whole chunk summaries across weekly refreshes, not the token-level cache of a shared prefix.

Where routing changes the unit economics

Model routing has a real job on this workload, and it is the map-reduce split itself. The map and reduce steps are not the same difficulty. Chunk summarization is a bounded extraction task a cheap model handles well. Synthesizing eight summaries into a coherent, numerically accurate brief is the harder pass, where a frontier model earns its rate.

So run the map on a cheap model and the reduce on a strong one. The eight map calls on deepseek-v4-pro cost about $0.045, versus $0.58 for the same maps on Claude Opus 5. Then the reduce, which sets the quality of the brief a human reads, runs on Opus 5 for about $0.08. That split brief costs about $0.13, roughly 81% below the $0.66 all-Opus fan-out, while still paying frontier rates for the synthesis pass. It is a fixed, up-front routing decision, not the double-spend of a confidence cascade.

When this workload does not need a router, or a fan-out

The honest tradeoff: if your filings sit under the 200,000-token cliff and fit one context window, skip the fan-out. One long-context call on a flat-rate model is cheaper and simpler, and you lose nothing but the quality margin of focused chunks, which you can win back with a better single prompt. Reach for map-reduce when the filing is genuinely too large for one call, or when chunk-level quality measurably beats the single-shot read, or when you refresh often enough that chunk reuse pays for the added plumbing. And route the map-reduce split only if your synthesis pass measurably needs a stronger model than your extraction pass. This is the mirror image of the chat-with-a-PDF case, where a user asks many questions of one document and retrieval sets the bill. Here one document produces one brief, and the fan-out sets the bill.

FAQ

What does it cost to summarize a 10-K with an LLM? In model fees, $0.037 to $0.66 per 80,000-token filing across deepseek-v4-pro through Claude Opus 5, a single call being $0.037 to $0.46 and a map-reduce fan-out $0.05 to $0.66. Prices verified 2026-07-28.

Is map-reduce cheaper than one long call? Not under the 200,000-token cliff. At 80,000 tokens the fan-out costs 33% to 47% more, because you re-send the rubric on every chunk and re-read every summary in the reduce. It wins on cost only above the cliff, near a 198,000-token filing on gemini-3.1-pro, where a single call re-rates the whole request.

How do I cut the ongoing bill? Refresh incrementally. Re-map only the ~15,000 tokens that change each week and reuse the stored summaries for the unchanged chunks. Amortized over a quarter that cuts the per-brief cost about 60%.

Which model should run the reduce pass? The strong one. Chunk summarization is cheap-model work, but the synthesis pass sets the quality of what an analyst reads, so a frontier model on the reduce and cheap models on the map is the routing split that pays.

Sources

Prices change. We re-verify every figure in this post monthly and stamp updates. Numbers here are current as of 2026-07-28.

The lesson from the model: a 10-K summarizer's bill is set by the shape of the pipeline before the model. A map-reduce fan-out costs more than one call under the 200,000-token cliff, wins above it, and its one durable advantage is incremental reuse. Pick the architecture for your filing size and refresh cadence first, then pick the cheapest model that clears your quality bar for each pass. Vynaris is an OpenAI-compatible gateway that routes each request to the cheapest right-sized model and shows the per-brief cost so you watch the number that matters. One base URL swap. Get an API key at vynaris.com.