Skip to content

[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

Open

Description

@github-actions

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

  1. scripts/lib/model-pricing.tsv gains an appended row claude-haiku-5-5* effective 2026-10-07 with 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.
  2. 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.
  3. 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.
  4. tests/model_pricing.bats locks the new rows: price_for/cost_usd return the Haiku 5.5 rates for claude-haiku-5-5 dated on or after 2026-10-07, claude-haiku-4-5-20251001 still resolves to the Haiku 4.5 row, and ET_BASELINE_MODEL is unchanged.
  5. scripts/token_report.sh reports the number of claude-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.
  6. bats tests/model_pricing.bats and shellcheck on the changed scripts pass.

Tasks / Subtasks

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, and claude-haiku-5-5* does not collide with claude-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_tokens column) 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_for returns 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

Likely target surface

  • scripts/lib/model-pricing.tsv
  • tests/model_pricing.bats
  • scripts/token_report.sh

Story prepared by the BMAD Scrum Master (Bob) for epic #2113. Status: ready-for-dev.

Metadata

Metadata

Assignees

No one assigned

    Labels

    initiativeEpic / initiative tracking issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions