Repository navigation
[Phase 1] Price claude-haiku-5-5 (and the halved Sonnet 5.5 cache read) in model-pricing.tsv, plus an over-100K prompt counter in token_report.sh #2115
Copy link
Copy link
Open
Labels
initiativeEpic / initiative tracking issueEpic / initiative tracking issue
Description
Story
As a maintainer reading token and cost reports,
I want Haiku 5.5 priced from day one, with requests that cross its 100K-token price tier made visible,
so that no Haiku 5.5 record is reported unpriced (which would give ET 1.0, about 10× too high) and the size of any under-pricing is known.
Acceptance Criteria
scripts/lib/model-pricing.tsvgains an appended rowclaude-haiku-5-5*effective2026-10-07with the <=100K rates input 0.10 / cache_read 0.01 / cache_write 0.125 / output 0.50, re-verified against https://platform.claude.com/docs/en/about-claude/pricing on the day the PR is opened, with the retrieval date in a comment line. No existing row is edited.- An appended
claude-sonnet-5-5*row records cache_read 0.10, with its effective date confirmed against the pricing page history. If the date cannot be confirmed, the row is left out and the PR says so. - A comment above the Haiku 5.5 row says that prompts over 100K tokens (input + cache_read + cache_write) bill at 5× and that this row under-prices them.
tests/model_pricing.batslocks the new rows:price_for/cost_usdreturn the Haiku 5.5 rates forclaude-haiku-5-5dated on or after 2026-10-07,claude-haiku-4-5-20251001still resolves to the Haiku 4.5 row, andET_BASELINE_MODELis unchanged.scripts/token_report.shreports the number ofclaude-haiku-5-5*records whose input + cache_read + cache_write is above 100000, next to the existing unpriced counter. A test covers one record above and one below the threshold.bats tests/model_pricing.batsandshellcheckon the changed scripts pass.
Tasks / Subtasks
- Append the pricing rows with verification comments (AC: test issue from agent #1, Go-live improvements for PR review agent #2, Add @claude delegation, auto-merge, and rebase handling #3)
- Extend the pricing regression tests (AC: Optimize review: small-PR and incremental fast paths #4, feat: feature ideation framework — adversarial proposer/challenger/synthesizer #6)
- Add the over-100K counter to token_report.sh with a test (AC: feat: add Copilot engine support via REVIEW_ENGINE toggle #5, feat: feature ideation framework — adversarial proposer/challenger/synthesizer #6)
- Model it on the
unpricedtotal thattoken_report.shalready computes and prints
- Model it on the
Dev Notes
- Pricing is data, not code. Never edit a row; append a new row with a later
effective_from(file header rule). Row selection uses the most specific glob, andclaude-haiku-5-5*does not collide withclaude-haiku-4-5*. - Prices come from the research pass on discussion Enable Haiku 5.5 #2095, sourced from Anthropic's pricing page. Lesson from [Phase 3] Sonnet 5.5 rollout: price claude-sonnet-5-5 and make it the default Sonnet in every Claude chain #1978: the Sonnet 5 intro price was cancelled, so re-verify the rates on the day the PR is opened.
- Tiered pricing (a
max_prompt_tokenscolumn) is a separate Phase B story in this epic and is out of scope here. Maintainer policy: report calls over 100K prompt tokens, do not gate on them. - Must merge before any Haiku 5.5 run (A/B, shadow or canary), because
et_multiplier_forreturns 1.0 for unpriced models.
Project Structure Notes
Touches only the pricing data file, its bats test and token_report.sh. Same shape as the #1896 and #1978 pricing PRs.
References
- scripts/lib/model-pricing.tsv
- scripts/lib/model-pricing.sh
- tests/model_pricing.bats
- scripts/token_report.sh
- docs/token-report.md
- issue [Phase 1] Price claude-opus-5-5 in model-pricing.tsv and lock it with a regression test #1896
- issue [Phase 3] Sonnet 5.5 rollout: price claude-sonnet-5-5 and make it the default Sonnet in every Claude chain #1978
Likely target surface
scripts/lib/model-pricing.tsvtests/model_pricing.batsscripts/token_report.sh
Story prepared by the BMAD Scrum Master (Bob) for epic #2113. Status: ready-for-dev.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
initiativeEpic / initiative tracking issueEpic / initiative tracking issue
Activity