Skip to content

Update OpenAI and Gemini pricing to current published rates - #324

Merged
mando merged 1 commit into
mainfrom
mando/update-model-pricing
Aug 5, 2026
Merged

Update OpenAI and Gemini pricing to current published rates#324
mando merged 1 commit into
mainfrom
mando/update-model-pricing

Conversation

@mando

@mando mando commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

Checked every price family against the providers' current rate cards.

Claude rates were already correct (Fable and Mythos, Opus 5 through 4.5, the Opus 4.1/4 legacy tier, Sonnet 5's introductory rate, Sonnet 4.x, Haiku 4.5, Haiku 3.5 legacy), so nothing changed there.

Gemini had drifted furthest: a single gemini-3-flash entry was pricing every Gemini 3.x Flash model. Adds 3.6 Flash, 3.5 Flash, 3.5 Flash-Lite and 3.1 Flash-Lite at their own rates, plus long-context tier pairs for 3.1 Pro and 3 Pro. gemini-3-flash stays as the fallback for older transcripts. The Gemini branch now shares one 200k-token check, so the tier step applies to all three Pro generations instead of only 2.5.

OpenAI had several variants quietly billing at their base model's rate, because they matched it by substring:

Model Was billing Actual
gpt-5-pro $1.25 / $10 $15 / $120
gpt-5.4-pro $2.50 / $15 $30 / $180
gpt-5.5-pro $5 / $30 $30 / $180
gpt-5.2-pro $1.75 / $14 $21 / $168
gpt-5-mini $1.25 / $10 $0.25 / $2
gpt-5-nano $1.25 / $10 $0.05 / $0.40
gpt-5.1 unpriced (cost 0) $1.25 / $10

Each gets its own entry, matched ahead of the base model. gpt-5.1 was unpriced entirely because the model-id regex rejected the dot; it now resolves to the gpt-5 rate it shares. The pro tiers get no cached-input discount, so their cacheRead is the full input rate rather than a tenth of it.

Also fills in the price-family table in the settings reference, which was missing fable, mythos, opus-legacy, sonnet-5, haiku-legacy, the whole gpt-5.6 family and gpt-5.4-nano. Names gpt-5.6-sol on the gpt-5.6 row, since OpenAI publishes that tier suffixed and the override key isn't otherwise guessable. Stamps a verification date on the defaults so the next refresh knows the baseline.

Notes for review

  • Two entries carry rates that have dropped off the providers' current pages but are kept for historical transcripts: gemini-3-flash and codex-mini.
  • Deliberately no separate gpt-5.6-sol key. Two keys with the same rate is a footgun, since overriding one in pricing.json would silently leave the other at the default.

Test plan

  • bun test (694 pass)
  • bun run typecheck
  • New cases cover the mini/nano/pro tiers, gpt-5.1, and the Gemini 3.x rates and Pro tier boundaries

🤖 Generated with Claude Code

Checked every family against the providers' rate cards. The Claude rates
were already current (Fable and Mythos, Opus 5 through 4.5, the Opus 4.1
and 4 legacy tier, Sonnet 5's introductory rate, Sonnet 4.x, Haiku 4.5
and the Haiku 3.5 legacy tier), so nothing changed there.

Gemini had drifted furthest: one gemini-3-flash entry was pricing every
Gemini 3.x Flash model. Adds 3.6 Flash, 3.5 Flash, 3.5 Flash-Lite and
3.1 Flash-Lite at their own rates, plus long-context tier pairs for 3.1
Pro and 3 Pro, and keeps gemini-3-flash as the fallback for older
transcripts. The Gemini branch now shares one 200k-token check, so the
tier step applies to all three Pro generations instead of only 2.5.

On the OpenAI side several variants were quietly billing at their base
model's rate because they matched it by substring: gpt-5-pro was priced
at $1.25/$10 instead of $15/$120, and the same held for gpt-5-mini,
gpt-5-nano and the 5.2, 5.4 and 5.5 pro tiers. Each gets its own entry,
matched ahead of the base model. gpt-5.1 was unpriced entirely (costing
zero) because the model-id regex rejected the dot; it now resolves to the
gpt-5 rate it shares. The pro tiers get no cached-input discount, so
their cacheRead is the full input rate rather than a tenth of it.

Fills in the price-family table in the settings reference, which was
missing fable, mythos, opus-legacy, sonnet-5, haiku-legacy, the whole
gpt-5.6 family and gpt-5.4-nano, and names gpt-5.6-sol on the gpt-5.6 row
so the override key is findable. Stamps a verification date on the
defaults so the next refresh knows the baseline.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mando
mando merged commit 9a1e6fd into main Aug 5, 2026
1 check passed
@mando
mando deleted the mando/update-model-pricing branch August 5, 2026 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant