Catch inference cost regressions in a day.

One prompt edit tripled one route. You find out on the invoice.

Provider bills are monthly and in arrears, so a token regression that starts today shows up somewhere between 10 and 30 days from now, blended into growth. SpendGuard watches cost per request instead of total spend and names the route, the model, and the day.

No spam. One email when it is ready to try.

DetectedCost per request · route=document-summarizechangepoint 2026-08-12 · correlates with prompt v32
$0.01$0.03$0.05changepointJun 29Aug 27

Fourteen real series, one prompt change, detection computed live in your browser.

The problem

Total spend cannot tell a cost regression from growth.

Inference is now a top-three line item, and the two things that move it look identical on a bill. More customers raises spend. A verbose prompt raises spend. The only place they separate is per unit of work, and no provider dashboard reports that. You get one number per API key, monthly.

10–30 days
Gap between a regression starting and the invoice that reveals it. Provider billing is monthly and in arrears, so the lag is the billing cycle.
2.6x → 5%
A route that more than doubles its cost per request moves a bill it is 3% of by about five percent. Ordinary growth moves it more than that.
1 line item
What the provider invoice actually breaks out. Not per route, not per model, not per customer, not per prompt version.

The insight

Cost per request is stationary. Total spend is not.

Total spend confounds volume with efficiency, which is why a team growing 10% a month cannot read it. Divide by the work done and growth cancels: cost per request, tokens per request, retries per request all sit flat under any steady growth rate, so a shift in them is a shift in behaviour and nothing else. That is exactly the stationarity that CUSUM on percentage changes assumes, and it is why the same detector that goes blind on a spend chart is decisive on a unit-cost chart. The cost of a regression is the same whether you catch it on day one or day thirty. The bill is not.

Method

CUSUM on day-over-day percentage changes of every unit-cost series, Bayesian Online Changepoint Detection (Adams & MacKay 2007) for abrupt shifts, and Benjamini-Hochberg FDR control across every route × model × metric × customer combination, because a few hundred series at α=0.05 with no correction is a daily page for nothing.

How it works

Four steps, no data science team

01
Point it at usage you already log

Provider usage exports, an OpenTelemetry GenAI stream, or the request log from whatever gateway you already run. Token counts and a route label are enough.

02
It derives unit economics, not totals

Cost per request, input and output tokens per request, cache hit rate, retry rate, and cost per customer, sliced by route, model, prompt version, and plan.

03
Two detectors, then a correction

Every series runs through CUSUM and BOCD. What crosses is filtered by Benjamini-Hochberg across the whole run, so surviving alerts survive knowing how many series you tested.

04
A Slack message with the route and the day

The changepoint has a date. Your prompt versions and deploys have dates. The alert lines them up and prices the delta at current volume, so the argument is already made.

Who it is for

Whoever gets asked why the bill went up

Companies where inference is a real line item and several teams can change a prompt. Usually 10 to 200 engineers, spending $20k to $500k a month across two or three providers, with nobody whose job is to read the token report.

Pricing

Free
$0
Under $5k/mo inference spend
  • Full detection engine
  • 30-day history
  • Slack alerts
  • One provider
Most common
Team
$500/mo
Up to $100k/mo inference spend
  • All providers and gateways
  • Per-route, per-model, per-customer slices
  • Prompt-version correlation
  • 12-month history
  • PagerDuty and webhooks
Scale
$2,000/mo
Above $100k/mo inference spend
  • Self-hosted option
  • Cost allocation per customer
  • Budget forecasting from detected regimes
  • SSO and audit log

Competition

What exists, and what it does not do

WhoWhat they doThe gap
Vantage / CloudZeroCloud cost visibility and anomaly detection across AWS, GCP, and SaaS bills.Resolution stops at the account, service, or tag. A 3x on one route is a rounding error at that resolution, and the input is the bill, which arrives late.
Datadog Cloud Cost ManagementCost data joined to infrastructure telemetry with threshold monitors.Built for instances and containers. It has no concept of a token, a prompt version, or a cost per request, so the unit-cost series it would need does not exist.
Helicone / Portkey / LiteLLMLLM gateways with per-request logging and spend dashboards.They have the right data and stop at charting it. A dashboard tells you nothing until someone opens it and knows what a normal Tuesday looks like.
Provider consolesUsage pages from OpenAI, Anthropic, and the rest.Totals per key, updated daily at best, with no view across providers and no idea which of your routes generated them.
How this fails

The honest failure mode: the LLM gateways already sit in the request path and already count tokens per route. LiteLLM or Helicone shipping changepoint detection on their own data is a sprint of work, and they do not have to convince anyone to send it anywhere. The second failure mode is quieter. Plenty of teams look at a 5% bill increase, decide it is growth, and are right, so the alert has to be worth reading on the weeks it fires and nothing was wrong. That means the false-alarm rate is the product, not a feature of it.

Market

Under 2% of the spend it watches

A company spending $60k a month on inference pays $500 for this, which is 0.8% of the bill and less than one caught regression. There are already thousands of companies past $20k a month and the number is growing with every product that ships an agent. Two thousand of them at the Team tier is $12M ARR, and the Scale tier exists because the companies past $100k a month are the ones where a single route can hide six figures a year.

Get early access

No spam. One email when it is ready to try.

Or just go look at the demo first →