Pricing data¶
This page is about the MODEL RATE CARD — the provider prices we use to price your usage. (Our own subscription prices live on the pricing page and vary by region.)
Money math is only as good as the rate card behind it. Ours is versioned, effective-dated, and verified by a human — deliberately, as a trust feature: no scraped or "live" price can silently change your audit's dollars — and the report tells you exactly which version priced your audit.
Four rates per model¶
Every model carries four USD-per-million-token rates: input, output, cache write, cache read. Modern waste analysis is impossible with a two-rate card — cache economics (the largest waste class in agent traffic) live entirely in the write premium and the read discount.
Effective-dated, timestamp-matched¶
Rates carry effective_from dates, and each call is priced at the rate in
effect at its timestamp. When a provider changes prices mid-window — like
Sonnet 5's introductory pricing ending 2026-08-31 — a log spanning the
boundary prices each side correctly instead of smearing one rate across both.
Model keys match exactly, or as dated snapshots (model-key-2...), longest
key first — gpt-5.4-nano can never silently take gpt-5.4's card.
Human-verified, on the record¶
The table carries a last_verified date. Our CI warns loudly when it exceeds
14 days; the founder's daily ops digest carries the age; and the verification
itself is logged with the verifier's name and the corrections made.
A weekly read-only refresh script fetches the documented source pages and prints a drift diff — new model ids, candidate rate mismatches, unreachable pages. It cannot write the pricing table; by design there is no code path from a scraped page to a rate used in money math. A human reads the diff, verifies against the provider's page, and edits the table by hand.
Why we refuse live pricing
Scraped or API-fetched rates change without audit trail and break reproducibility: the same log re-audited next month must price identically unless a human recorded a rate change. A versioned file with dated rows is slower to update and much harder to be wrong with.
When a model is not in the table¶
Calls on models without a verified rate card are excluded from totals and listed in the report as unpriced — count and model ids — rather than priced by guesswork. Spend reconciliation (our ±0.5% property test) runs only over priced rows and says so.