2.5x Over Plan

Menlo Ventures' 2026 State of Enterprise AI report says the average enterprise spent 4.7x last year's AI budget against a 1.9x plan. Much of the gap is mix, not price: frontier models went from 18% to 42% of tokens while smaller closed models fell from 29% to 13%. In our illustrative model the mix shift alone raises cost per token 40%. Agents are 80% of tokens, and output is 2% of an agent's tokens but 56% of its bill. Includes mixshift.py, which splits your spend growth into volume, mix, and rate.

Published 2026-11-06 by Dor Amir on the Nadir blog.

Filed under FinOps & Governance.

TL;DR.

Menlo Ventures published 2026: The State of Enterprise AI on November 3. It's the most-cited spend dataset of the year, and one finding should worry anyone building a 2027 AI budget: the average enterprise spent 4.7x what it spent last year, against a plan of 1.9x. That's about 2.5x over plan. The report also shows where the overrun came from, and it isn't mostly price.

Report figures are from Menlo Ventures, "2026: The State of Enterprise AI," published November 3, 2026, based on a survey of nearly 400 U.S. enterprise decision-makers fielded September 8 to 26, 2026, plus OpenRouter traffic data. Prices are Anthropic list prices retrieved November 6, 2026. The tier-mix model is ours and illustrative. No figure here comes from Nadir customer data.

The numbers that matter.

Menlo's report is long. These are the figures that bear on cost, all quoted from the report:

Finding20252026
Enterprise generative AI deployment spend$33B$176.8B (5.4x)
Average enterprise spend vs prior year, actual4.7x
Average enterprise spend vs prior year, planned1.9x
Median enterprise spend vs prior year, actual / planned2.2x / 1.8x
Frontier models, share of tokens18%42%
Frontier models, share of spend35%63%
Smaller closed models, share of tokens29%13%
Open-source models, share of tokens11%19%
Open-source models, share of spend6%4%
Average open-source price per million tokens$0.13 (down 3.3x)
Blended closed-model price per million tokens$0.70 (down 24%)
Agents' share of OpenRouter tokens80%

Two things stand out. The median company overshot its plan by about 20%, but the average company overshot by about 150%, so a minority of heavy spenders blew through their plans by a lot. Uber, which said it spent its 2026 AI budget in four months, is the public example. And the mix moved much more than the prices did.

Tokens moved up the price ladder.

Slope chart of share of enterprise LLM tokens and spend by model tier, Q3 2025 to Q3 2026, from Menlo Ventures. Share of tokens: frontier rose from 18% to 42%, open source from 11% to 19%, and smaller closed models fell from 29% to 13%. Share of spend: frontier rose from 35% to 63%, and open source fell from 6% to 4%.
Slope chart of share of enterprise LLM tokens and spend by model tier, Q3 2025 to Q3 2026, from Menlo Ventures. Share of tokens: frontier rose from 18% to 42%, open source from 11% to 19%, and smaller closed models fell from 29% to 13%. Share of spend: frontier rose from 35% to 63%, and open source fell from 6% to 4%.

Frontier models now carry 42% of enterprise tokens, up from 18%. The tier that lost the most is smaller closed models, the Haiku and Luna class, which fell from 29% to 13%. Open source grew from 11% to 19% of tokens, but because it's so cheap, its share of spend fell to 4%. One token in five, one dollar in 25.

Menlo's figures also give a rough price ratio. In 2025, frontier carried 35% of spend on 18% of tokens, so a frontier token cost about 1.9x the average token. In 2026 it was 63% on 42%, or 1.5x the average. That ratio fell because the average token got more expensive, not because frontier got cheaper.

Nothing in the report says why the mix moved, but the timing fits a known pattern. Agents took over traffic in early 2026, and most agent frameworks ship with one model setting. Teams pick the strongest model so the hard steps work, and every other step inherits it. It's the one-model-for-everything setting we looked at in The Blanket Swap, pointed the other way. Menlo's data suggests it's now happening across the whole market.

The price cuts landed where the traffic left.

This year was full of price-cut headlines. Frontier labs cut small-model prices by 80% or more, according to Menlo, and Claude Haiku 5.5 launched at $0.10 per million input tokens. But the blended closed-model price, the number your invoice actually feels, fell only 24%.

The cuts were real. They just landed on the tier companies were leaving. A company that moved most of its traffic from Haiku-class models to Opus-class models in 2026 didn't benefit from the Haiku cut, and it paid the Opus rate on far more tokens. We covered the same effect at the level of a single price cut in Which Cut Was Yours?. Menlo's report shows it for the market as a whole.

What the mix shift costs.

To put a number on it, we priced Menlo's tier shares with today's Anthropic rates and Menlo's open-source average. Frontier is Opus 5.5, smaller closed is Haiku 5.5, and the tokens Menlo doesn't assign to a tier (42% in 2025, 26% in 2026) go to Sonnet 5.5 as a mid tier. Every tier uses the same token mix: 10% fresh input, 85% cache reads, 5% output.

TierModel$ / M blended2025 share2026 share
FrontierClaude Opus 5.5$1.57018%42%
Mid (unassigned remainder)Claude Sonnet 5.5$0.78542%26%
Smaller closedClaude Haiku 5.5$0.04429%13%
Open sourceMenlo average$0.13011%19%
Blended$0.639$0.894

At the same volume and the same prices, the 2026 mix costs 40% more per token than the 2025 mix. Planning for 1.9x growth on the old mix and moving to the new one lands at about 2.66x, before a single extra token is counted. That's not Menlo's estimate, it's our arithmetic on their shares, but it shows why the plan missed. Budgets were set on volume growth, and most volume models assume the mix stays fixed.

In our model, 22 billion tokens a month at the 2026 mix is $19,665 a month, about $236,000 a year. Run the same tokens at the 2025 mix and it's about $169,000.

Agents: 80% of the tokens, and output is most of their bill.

Menlo puts agents at 80% of OpenRouter tokens, about 130.9 trillion a week, up 37x since they passed human traffic in early February. The report also gives the shape of a typical agent session: cache reads can be 95% or more of tokens, with about 3% fresh input and 2% output, which comes to about $0.70 per million tokens on Opus 5.5.

Two stacked bars for one agent session on Claude Opus 5.5 at 95% cache reads, 3% fresh input and 2% output. Share of tokens: cache reads 95%, fresh input 3%, output 2%. Share of dollars: cache reads 27%, fresh input 17%, output 56%. About $0.71 per million tokens.
Two stacked bars for one agent session on Claude Opus 5.5 at 95% cache reads, 3% fresh input and 2% output. Share of tokens: cache reads 95%, fresh input 3%, output 2%. Share of dollars: cache reads 27%, fresh input 17%, output 56%. About $0.71 per million tokens.

We checked the math: 95% at $0.20, 3% at $4, and 2% at $20 comes to $0.71 per million. The surprise is where the dollars go. Output is 2% of the tokens and 56% of the bill. Cache reads are 95% of the tokens and only 27% of the bill.

That changes which levers matter for agent spend:

Four levers on the same bill.

Diverging bar chart of the change in blended cost per million tokens from the Q3 2026 mix in our model, $0.894 per million. Cache hit rate slipping from 85% to 75% raises it 23.5%. Moving frontier share back to 30% with the difference on Sonnet 5.5 lowers it 10.5%. Trimming output share from 5% to 4% lowers it 12.3%. Moving frontier share back to 18%, split between Sonnet 5.5 and Haiku 5.5, lowers it 31.0%.
Diverging bar chart of the change in blended cost per million tokens from the Q3 2026 mix in our model, $0.894 per million. Cache hit rate slipping from 85% to 75% raises it 23.5%. Moving frontier share back to 30% with the difference on Sonnet 5.5 lowers it 10.5%. Trimming output share from 5% to 4% lowers it 12.3%. Moving frontier share back to 18%, split between Sonnet 5.5 and Haiku 5.5, lowers it 31.0%.

Starting from the 2026 mix in our model:

  1. Route per step, not per product. Moving frontier share from 42% back to 18%, with the freed tokens split between Sonnet 5.5 and Haiku 5.5, lowers the blended price 31%. Moving only to 30%, all on Sonnet, lowers it about 11%. The question isn't which model your product uses. It's which model each step needs. See Route the Step for how that works inside an agent loop.
  2. Protect the cache. A 10-point drop in hit rate adds 24%, which wipes out most of a routing saving. Route at session or task boundaries, or route only the calls that don't share a prefix.
  3. Cap output where it's padding. Cutting the output share from 5% to 4% lowers the bill 12%. That's reasoning effort and thinking budgets on steps that don't need them, and tighter max_tokens on structured steps.
  4. Budget the mix, not just the volume. A plan that only forecasts tokens will miss again next year if the mix moves again. Track frontier share as its own line, the same way you track headcount by level.

These levers stack, but not cleanly. Routing more tokens to cheaper models also shrinks the share of output billed at $20, so the combined saving is less than the sum. The order we'd apply them in is in the stacking order post.

Tutorial: mixshift.py.

Before you set a 2027 number, split this year's growth into three parts. Volume is more tokens. Mix is tokens moving between tiers. Rate is a change in what a tier costs per token, either because the rate card changed or because your cache hit rate or output share did. Each one has a different owner and a different fix.

Export two months of usage from your provider console or gateway as CSV with model,input,cache_read,output columns. Edit PRICES to your rate card and tiers. Any model missing from PRICES raises an error, so nothing gets silently priced at zero.

"""mixshift.py: split a change in LLM spend into volume, mix, and rate.

Feed it two months of usage (model, fresh input, cache read, output tokens).
It prints each month's tier mix and blended $/M, then says how much of the
change came from more tokens, from moving tokens to pricier tiers, and from
each tier's own cost per token. Unknown models raise, so nothing is priced at $0.
"""
import csv
import sys
from collections import defaultdict

# $ per million tokens: fresh input, cache read, output. Edit to your rate card.
PRICES = {
    "claude-opus-5-5":   ("frontier", 4.00, 0.20, 20.00),
    "claude-sonnet-5-5": ("mid",      2.00, 0.10, 10.00),
    "claude-haiku-5-5":  ("small",    0.10, 0.01, 0.50),
    "glm-5.3":           ("open",     0.13, 0.13, 0.13),  # Menlo avg, flat
}


def load(path):
    """Rows of model,input,cache_read,output -> {tier: [tokens, dollars]}."""
    tiers = defaultdict(lambda: [0.0, 0.0])
    with open(path) as f:
        for r in csv.DictReader(f):
            tier, p_in, p_read, p_out = PRICES[r["model"]]   # KeyError = unpriced
            i, c, o = (float(r[k]) for k in ("input", "cache_read", "output"))
            tiers[tier][0] += i + c + o
            tiers[tier][1] += (i * p_in + c * p_read + o * p_out) / 1e6
    return tiers


def decompose(a, b):
    """Return (volume, mix, rate) dollar effects from month a to month b."""
    va = sum(t for t, _ in a.values())
    vb = sum(t for t, _ in b.values())
    rate = lambda m, k: m[k][1] / m[k][0] * 1e6 if m.get(k, [0])[0] else 0.0
    share = lambda m, v, k: m[k][0] / v if k in m else 0.0
    keys = set(a) | set(b)
    # Price a tier that is new in b at b's rate, and a dropped one at a's.
    ra = {k: rate(a, k) or rate(b, k) for k in keys}
    rb = {k: rate(b, k) or rate(a, k) for k in keys}
    pa = sum(share(a, va, k) * ra[k] for k in keys)          # $/M, month a
    p_mix = sum(share(b, vb, k) * ra[k] for k in keys)       # b's mix, a's rates
    pb = sum(share(b, vb, k) * rb[k] for k in keys)
    volume = (vb - va) * pa / 1e6
    mix = vb * (p_mix - pa) / 1e6
    rate_fx = vb * (pb - p_mix) / 1e6
    return volume, mix, rate_fx


def report(a_path, b_path):
    a, b = load(a_path), load(b_path)
    for name, m in (("before", a), ("after", b)):
        v = sum(t for t, _ in m.values())
        d = sum(x for _, x in m.values())
        mix = "  ".join(f"{k} {m[k][0] / v:.0%}" for k in sorted(m))
        print(f"{name:>6}: {v / 1e9:.2f}B tokens  ${d:,.0f}  ${d / v * 1e6:.3f}/M  {mix}")
    volume, mix, rate_fx = decompose(a, b)
    total = volume + mix + rate_fx
    for label, x in (("volume", volume), ("mix", mix), ("rate", rate_fx)):
        print(f"{label:>6}: {x:+,.0f}  ({x / total:.0%} of the change)")


if __name__ == "__main__":
    report(sys.argv[1], sys.argv[2])

Run on two synthetic months built from Menlo's tier shares, 10 billion tokens at the 2025 mix and 22 billion at the 2026 mix, it prints:

$ python mixshift.py q3-2025.csv q3-2026.csv
before: 10.00B tokens  $6,392  $0.639/M  frontier 18%  mid 42%  open 11%  small 29%
 after: 22.00B tokens  $19,665  $0.894/M  frontier 42%  mid 26%  open 19%  small 13%
volume: +7,671  (58% of the change)
   mix: +5,602  (42% of the change)
  rate: +0  (0% of the change)

In that example, 42% of the growth in spend came from mix. Volume belongs to whoever owns adoption, and you probably want it to grow. Mix belongs to whoever picks the models, and it's the part you can lower without using AI any less. Rate is zero here because both months use the same rate card and token shape. On real data it moves when a price changes, when the cache hit rate shifts, or when outputs get longer.

To go one level deeper, add a feature or team column and run the same split per group. The chargeback tutorial shows how to tag requests so that column exists.

When not to bother.

Where Nadir fits.

mixshift.py tells you how much of the overrun is mix. Nadir is a way to move the mix back down without rewriting every agent's model setting.

Per-request routing through one endpoint. Point your OpenAI or Anthropic client at Nadir's gateway and set model="auto". A trained classifier sends each request to the cheapest model you've allowed that clears your quality floor, so frontier share becomes a decision per request instead of a default per product. POST /v1/bucket labels a prompt simple, medium, or complex without a provider call if you'd rather keep your own routing code.

The mix, per request. Every response reports the model that served it and what it cost, so the model column mixshift.py needs comes from your own logs, with no billing export.

Measure before you switch. Observe mode serves exactly the model you asked for and records what routing would have chosen. Run it on a week of traffic and you get your own version of the tier table above before anything changes. With your own provider keys, the provider bills you directly, and Nadir charges a flat $0.002 per request, with the first 50 requests a month free. Savings depend on your workload, and nothing in this post forecasts yours.

Start with a free key, or estimate your savings from your current model spend.

Conclusion.

Menlo's report reads as a growth story, and it is one. Enterprise AI spend grew 5.4x in a year. But the 2.5x gap between what the average company planned and what it spent isn't explained by volume alone. Frontier models went from under a fifth of tokens to over two fifths, and the cheap tiers got cheaper just as traffic left them. If your 2027 plan forecasts tokens and assumes the mix stays put, you're making the same assumption that missed in 2026. Measure the mix, give it an owner, and route the steps that don't need the top model.


Sources: [Menlo Ventures, "2026: The State of Enterprise AI," November 3, 2026](https://menlovc.com/perspective/2026-the-state-of-enterprise-ai/), by Tim Tully, Joff Redfern, Deedy Das, and Derek Xiao. [Anthropic, Pricing](https://platform.claude.com/docs/en/about-claude/pricing), retrieved November 6, 2026: Opus 5.5 $4 input, $0.20 cache read, $20 output. Sonnet 5.5 $2, $0.10, $10. Haiku 5.5 $0.10, $0.01, $0.50 for prompts up to 100K tokens, per million tokens. Report figures are survey and traffic estimates from Menlo, not audited results. The tier model is ours and illustrative: Menlo's tier shares priced at those rates, the tokens Menlo doesn't assign to a tier priced as Sonnet 5.5, open source priced at Menlo's $0.13 average, and every tier at 10% fresh input, 85% cache reads, and 5% output.

More on finops & governance

Pages on this site

Machine-readable summaries of this site: llms.txt and llms-full.txt.