Skip to content
Development
Skill

/pricing

Guide for updating model pricing in Splitrail. Use when adding new AI model costs or updating existing pricing data.

From plugin
splitrail
2296 skills

Claude Code

$ npx -y skills add Piebald-AI/splitrail --skill pricing --agent claude-code

SKILL.md

pricing.SKILL.md
name: pricing
description: Guide for updating model pricing in Splitrail. Use when adding new AI model costs or updating existing pricing data.

Pricing Model Updates

Token pricing is defined in `src/models.rs`. Built-in models are populated by `populate_defaults()` into the runtime model registry, and user/config models can be merged with `init_external_models()`.

Adding a New Model

1. Add a `ModelInfo` entry in `populate_defaults()` with:

  • `pricing`: Use `PricingStructure::Flat { input_per_1m, output_per_1m }` for flat-rate models, or `PricingStructure::Tiered` for threshold-based pricing.
  • `caching`: Use the appropriate `CachingSupport` variant (`None`, `OpenAI`, `Anthropic`, `OpenAIWithWrites`, or `Tiered`).
  • `service_tiers`: Leave empty unless the provider has distinct priority/flex/batch rates.
  • `dated_pricing`: Leave empty unless pricing changes by usage date.
  • `is_estimated`: Set to `true` only when pricing is not confirmed by a provider/tool source.
  • `input_token_semantics`: Auto-derived for built-in models (defaults to `ExcludesCache`); only GPT/o-series models typically need `IncludesCacheRead`. External model configs should set this explicitly if it affects cache-read counting.

2. If the model has aliases (date suffixes, provider-prefixed names, regional names, etc.), add entries to the alias section mapping each observed name to the canonical model name. 3. Add or update tests in `src/models.rs` for canonical pricing, aliases, caching, and estimated/non-estimated status.

Dated Pricing Overrides

Use `dated_pricing` when a model has temporary promotional pricing, launch pricing, or another time-bounded rate that should apply based on the original usage timestamp.

The default `pricing` and `caching` fields should represent the durable/current sticker price. Each `DatedPricing` override has a `valid_until: NaiveDate` exclusive end date and applies when `usage_date < valid_until`. For example, an introductory rate that applies through `2026-08-31` should use `valid_until = NaiveDate::from_ymd_opt(2026, 9, 1).expect("valid date")`.

When adding a dated override:

  • Keep the model's default `pricing`/`caching` at the post-promo or durable rate.
  • Add the temporary rate with `add_dated_pricing!()` after `add_model!()`.
  • Add boundary tests for the final day of the temporary rate and the first day after it ends.
  • Prefer dated calculator functions in analyzers that know the usage timestamp.

Price Calculation

Use `models::calculate_total_cost_for_service_tier_at()` when an analyzer has a message or event timestamp. This preserves historical costs across dated pricing windows.

Use the undated compatibility helpers, such as `models::calculate_total_cost()`, only for tests, config-like calculations, or call sites that truly do not know the usage date. Undated helpers use the model's default `pricing`/`caching`, not temporary dated overrides.

Common Pricing Sources

  • [Anthropic pricing](https://www.anthropic.com/pricing)
  • [OpenAI pricing](https://openai.com/pricing)
  • [Google AI pricing](https://ai.google.dev/pricing)
Read more
@piebald-ai
Ships withsplitrail

Splitrail is a fast, cross-platform, real-time token usage tracker and cost monitor for: Gemini CLI (and Qwen Code) Claude Code Codex CLI Cline / Roo Code / Zoo Code / Kilo Code (VS Code extension + CLI) GitHub Copilot (VS Code) GitHub Copilot CLI OpenCode Pi

Stars on GitHub

Momentum

stars in total
229
Star history of Piebald-AI/splitrail on GitHub, a chart by star-history.com

Other skills on splitrail.

mcp

mcp

Guide for working with Splitrail's MCP server. Use when adding tools, resources, or modifying the MCP interface.

new-analyzer

new-analyzer

Guide for adding a new AI coding agent analyzer to Splitrail. Use when implementing support for a new tool like Copilot, Cline,…

performance

performance

Performance optimization guidelines for Splitrail. Use when optimizing parsing, reducing memory usage, or improving throughput.

tui

tui

Guide for Splitrail's terminal UI and file watching. Use when modifying the TUI, stats display, or real-time update logic.

types

types

Reference for Splitrail's core data types. Use when working with ConversationMessage, Stats, DailyStats, or other type…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about pricing.

Which coding agents can use pricing?
pricing installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.