Track
AI pricing changelog
A dated record of observed changes to model pricing, cache rates, and context windows. Most comparison sites show you today's number; this shows you when it moved.
57 snapshots covering 45 models. History begins 2026-01-01; latest 2026-09-29. Observations from models.dev (MIT), diffed against the previous snapshot.
Quality vs price
pareto frontier highlightedLMArena agent-preference score against input price. Accent points sit on the price–quality frontier: nothing is both cheaper and better. Model-to-leaderboard identity follows documented pins — effort variants score very differently, so this join is never fuzzy-matched.
Preference data: LMArena (CC BY 4.0), snapshot 2026-09-30. Prices: latest observation.
Current price, every tracked model
sorted cheapest firstLatest observed price per million tokens, with catalog values where the source has no observation.
Input price by tier
$/1M input · linearCompare models within their tier, stock-chart style. A line begins when the source first lists the model. Steps, not slopes: a price holds until the source records a change.
2026-09-29
- Cache read $/1M
- n/a → $0.15
- Cache read $/1M
- n/a → $0.05
2026-09-28
- Input $/1M
- $0.5 → $0.4(-20.0%)
- Output $/1M
- $3 → $1.6(-46.7%)
- Cache read $/1M
- $0.05 → $0.04(-20.0%)
- Cache write $/1M
- $0.625 → $0.5(-20.0%)
2026-09-22
- Input $/1M
- $0.2 → $0.1875(-6.3%)
- Output $/1M
- $0.8 → $0.6525(-18.4%)
2026-09-21
- Input $/1M
- $0.1875 → $0.2(+6.7%)
- Output $/1M
- $0.6525 → $0.8(+22.6%)
2026-09-15
- Input $/1M
- $0.2 → $0.1875(-6.3%)
- Output $/1M
- $0.696 → $0.6525(-6.2%)
2026-09-11
- Input $/1M
- $0.14 → $0.15(+7.1%)
- Output $/1M
- $0.28 → $0.6(+114.3%)
- Cache read $/1M
- $0.0028 → $0.003(+7.1%)
2026-09-07
- Input $/1M
- $0.6 → n/a
- Output $/1M
- $3 → n/a
- Cache read $/1M
- $0.1 → n/a
- Context window
- 262,144 → n/a
2026-09-01
- Input $/1M
- $0.11 → $0.1(-9.1%)
- Output $/1M
- $0.34 → $0.3(-11.8%)
- Cache read $/1M
- $0.055 → n/a
2026-08-31
- Output $/1M
- $0.8 → $0.696(-13.0%)
2026-08-26
- Input $/1M
- $0.1 → $0.11(+10.0%)
- Output $/1M
- $0.3 → $0.34(+13.3%)
- Cache read $/1M
- n/a → $0.055
2026-08-14
- Output $/1M
- $0.696 → $0.8(+14.9%)
2026-08-11
- Context window
- n/a → 262,144
- Output $/1M
- $0.8 → $0.696(-13.0%)
- Context window
- n/a → 1,000,000
2026-08-02
2026-07-21
- Context window
- 10,000,000 → 1,310,720(-86.9%)
2026-07-14
2026-07-12
- Input $/1M
- $0.15 → $0.2(+33.3%)
- Output $/1M
- $0.6 → $0.8(+33.3%)
2026-07-09
- Context window
- 327,680 → 10,000,000(+2951.8%)
2026-07-05
- Context window
- 200,000 → 1,000,000(+400.0%)
2026-07-04
- Input $/1M
- $0.4 → $1.5(+275.0%)
- Output $/1M
- $2 → $7.5(+275.0%)
2026-07-02
- Input $/1M
- $0.88 → $1.04(+18.2%)
- Output $/1M
- $0.88 → $1.04(+18.2%)
2026-06-30
- Input $/1M
- n/a → $2
- Output $/1M
- n/a → $10
- Cache read $/1M
- n/a → $0.2
- Cache write $/1M
- n/a → $2.5
- Context window
- n/a → 1,000,000
2026-06-21
- Input $/1M
- $0 → $1.4
- Output $/1M
- $0 → $4.4
- Cache read $/1M
- $0 → $0.26
2026-06-15
2026-06-13
- Input $/1M
- n/a → $0
- Output $/1M
- n/a → $0
- Cache read $/1M
- n/a → $0
- Cache write $/1M
- n/a → $0
2026-06-12
- Input $/1M
- n/a → $0.95
- Output $/1M
- n/a → $4
- Cache read $/1M
- n/a → $0.19
2026-06-09
- Input $/1M
- n/a → $10
- Output $/1M
- n/a → $50
- Cache read $/1M
- n/a → $1
- Cache write $/1M
- n/a → $12.5
- Context window
- n/a → 1,000,000
2026-06-07
- Input $/1M
- $0.08 → $0.1(+25.0%)
2026-06-04
- Context window
- 131,072 → 1,000,000(+662.9%)
- Input $/1M
- $1.5 → $0.4(-73.3%)
- Output $/1M
- $7.5 → $2(-73.3%)
2026-06-03
- Input $/1M
- n/a → $0.5
- Output $/1M
- n/a → $3
- Cache read $/1M
- n/a → $0.05
- Cache write $/1M
- n/a → $0.625
- Context window
- n/a → 131,072
- Input $/1M
- n/a → $1.5
- Output $/1M
- n/a → $7.5
2026-05-28
- Input $/1M
- n/a → $5
- Output $/1M
- n/a → $25
- Cache read $/1M
- n/a → $0.5
- Cache write $/1M
- n/a → $6.25
- Context window
- n/a → 1,000,000
2026-05-24
- Input $/1M
- $1.74 → $0.435(-75.0%)
- Output $/1M
- $3.48 → $0.87(-75.0%)
- Cache read $/1M
- $0.145 → $0.003625(-97.5%)
- Cache read $/1M
- $0.028 → $0.0028(-90.0%)
2026-05-21
- Input $/1M
- n/a → $2.5
- Output $/1M
- n/a → $7.5
- Cache read $/1M
- n/a → $0.5
- Cache write $/1M
- n/a → $3.125
- Context window
- n/a → 1,000,000
2026-05-20
- Input $/1M
- n/a → $1
- Output $/1M
- n/a → $2
- Cache read $/1M
- n/a → $0.2
- Context window
- n/a → 256,000
2026-05-19
- Input $/1M
- n/a → $1.5
- Output $/1M
- n/a → $9
- Cache read $/1M
- n/a → $0.15
- Context window
- n/a → 1,048,576
2026-05-15
- Input $/1M
- n/a → $0.08
- Output $/1M
- n/a → $0.3
- Context window
- n/a → 327,680
- Input $/1M
- n/a → $0.15
- Output $/1M
- n/a → $0.6
- Context window
- n/a → 1,048,576
2026-05-11
- Cache read $/1M
- $0.025 → $0.01(-60.0%)
2026-05-07
- Input $/1M
- n/a → $0.25
- Output $/1M
- n/a → $1.5
- Cache read $/1M
- n/a → $0.025
- Cache write $/1M
- n/a → $1
- Context window
- n/a → 1,048,576
2026-05-01
- Input $/1M
- n/a → $1.25
- Output $/1M
- n/a → $2.5
- Cache read $/1M
- n/a → $0.2
- Context window
- n/a → 1,000,000
2026-04-29
- Input $/1M
- $0.4 → n/a
- Output $/1M
- $2 → n/a
- Context window
- 128,000 → n/a
2026-04-27
- Input $/1M
- n/a → $30
- Output $/1M
- n/a → $180
- Context window
- n/a → 1,050,000
2026-04-24
- Input $/1M
- n/a → $1.74
- Output $/1M
- n/a → $3.48
- Cache read $/1M
- n/a → $0.145
- Context window
- n/a → 1,000,000
- Input $/1M
- n/a → $0.14
- Output $/1M
- n/a → $0.28
- Cache read $/1M
- n/a → $0.028
- Context window
- n/a → 1,000,000
2026-04-23
- Input $/1M
- n/a → $5
- Output $/1M
- n/a → $30
- Cache read $/1M
- n/a → $0.5
- Context window
- n/a → 1,050,000
2026-04-20
- Cache read $/1M
- $0.075 → $0.03(-60.0%)
2026-04-19
- Cache read $/1M
- $0.31 → $0.125(-59.7%)
2026-04-16
- Input $/1M
- n/a → $5
- Output $/1M
- n/a → $25
- Cache read $/1M
- n/a → $0.5
- Cache write $/1M
- n/a → $6.25
- Context window
- n/a → 1,000,000
2026-03-29
- Input $/1M
- n/a → $0.15
- Output $/1M
- n/a → $0.6
- Context window
- n/a → 256,000
2026-03-17
- Input $/1M
- n/a → $0.2
- Output $/1M
- n/a → $1.25
- Cache read $/1M
- n/a → $0.02
- Context window
- n/a → 400,000
- Input $/1M
- n/a → $0.75
- Output $/1M
- n/a → $4.5
- Cache read $/1M
- n/a → $0.075
- Context window
- n/a → 400,000
2026-03-13
- Context window
- 200,000 → 1,000,000(+400.0%)
2026-03-05
- Input $/1M
- n/a → $2.5
- Output $/1M
- n/a → $15
- Cache read $/1M
- n/a → $0.25
- Context window
- n/a → 1,050,000
2026-02-19
- Input $/1M
- n/a → $2
- Output $/1M
- n/a → $12
- Cache read $/1M
- n/a → $0.2
- Context window
- n/a → 1,048,576
2026-02-17
- Input $/1M
- n/a → $3
- Output $/1M
- n/a → $15
- Cache read $/1M
- n/a → $0.3
- Cache write $/1M
- n/a → $3.75
- Context window
- n/a → 200,000
2026-02-05
- Input $/1M
- n/a → $1.75
- Output $/1M
- n/a → $14
- Cache read $/1M
- n/a → $0.175
- Context window
- n/a → 400,000
2026-01-29
- Input $/1M
- $0 → $0.6
- Output $/1M
- $0 → $3
- Cache read $/1M
- $0 → $0.1
- Cache write $/1M
- $0 → n/a
- Input $/1M
- $0 → $0.4
- Output $/1M
- $0 → $2
2026-01-27
- Input $/1M
- n/a → $0
- Output $/1M
- n/a → $0
- Cache read $/1M
- n/a → $0
- Cache write $/1M
- n/a → $0
- Context window
- n/a → 262,144
Method
Each snapshot is a committed JSON file recording what the source reported for every model in our catalog on that date, alongside our own maintained values. Git provides the dating and immutability; snapshots are never edited after the fact, and a run that observes no change writes nothing.
An aggregator is a change detector, not an authority. Every row links the provider page, because that is the only thing that settles whether a number is right.
FAQ
- Where does this data come from?
- A daily job records what models.dev — an MIT-licensed open database of AI models — reports for every model in our catalog, and commits the result as a dated JSON file. Each entry below is a diff between two of those files.
- Does a change here mean a provider changed their price?
- Not necessarily, and this is the important caveat. An entry means the observation moved. Aggregators misreport regions and pricing tiers: models.dev has quoted a non-Singapore tier for Qwen and a 1M context window for Claude Sonnet 4.5 that Anthropic scopes to 4.6 and later. Treat an entry as a prompt to read the provider page, which is linked on every row.
- What does 'catalog agrees' mean?
- That our own maintained catalog already matches the new observation, so we are not behind. When it says otherwise, either the vendor moved and we have not caught up, or the aggregator is wrong — resolving which is a manual step against the provider's page.
- Why do some rows say the pin is unstable?
- A few models have no dated identifier at the catalog's price, so they are pinned to a '-latest' alias. Those aliases move when the vendor rotates what 'latest' means, which can look like a price change without one having happened.
- How far back does this go?
- Live observation began 2026-08-17 and accumulates forward. Earlier history, back to 2026-05-18, is reconstructed from models.dev's own git history — each entry dated by their commit, which is the source's own published record, copied with attribution. We never invent a date ourselves.
Next step
Prices move. Your context budget is yours to set.
Tracking provider pricing is worth doing, and it is the variable you control least. The audit works on the one you control most.