Prices
prices.yml says what an agent's tokens cost, so each run's usage becomes its cost. The file is optional. Without one, Mandately uses the default below: Anthropic's own API prices, with where and when each was read.
The default
# What an agent's tokens cost, so each run's usage becomes its cost: per model, in USD per million tokens, each price
# with where it was read and when. A model not listed has no known cost, so its runs count as unpriced, never as free.
#
# These are Anthropic's own API prices. A run's cost here is a lower bound when it used any of these:
# - The 1-hour cache. cache_write is the 5-minute cache's price, and your board does not say which cache a run wrote.
# The 1-hour cache costs more: $8 against $5 per million tokens on Claude Opus 5.5.
# - A prompt over 100,000 tokens on Claude Haiku 5.5, which costs 5 times the prices below.
# - Fast mode ($8 input and $40 output on Claude Opus 5.5), or US-only inference, which adds 10% to every price.
# The Batch API costs half, so a run through it counts at twice its cost.
#
# A prices.yml of your own in .mandately/ replaces this file whole: list every model your agents use.
currency: USD
models:
claude-fable-5-1: {input: 10, output: 50, cache_read: 0.25, cache_write: 12.50, source: "https://platform.claude.com/docs/en/about-claude/pricing", as_of: 2026-11-03}
claude-opus-5-5: {input: 4, output: 20, cache_read: 0.20, cache_write: 5, source: "https://platform.claude.com/docs/en/about-claude/pricing", as_of: 2026-11-03}
claude-opus-5: {input: 5, output: 25, cache_read: 0.50, cache_write: 6.25, source: "https://platform.claude.com/docs/en/about-claude/pricing", as_of: 2026-11-03}
claude-sonnet-5-5: {input: 2, output: 10, cache_read: 0.10, cache_write: 2.50, source: "https://platform.claude.com/docs/en/about-claude/pricing", as_of: 2026-11-03}
claude-sonnet-5: {input: 2, output: 10, cache_read: 0.20, cache_write: 2.50, source: "https://platform.claude.com/docs/en/about-claude/pricing", as_of: 2026-11-03}
claude-haiku-5-5: {input: 0.10, output: 0.50, cache_read: 0.01, cache_write: 0.125, source: "https://platform.claude.com/docs/en/about-claude/pricing (prompts up to 100,000 tokens)", as_of: 2026-11-03}Settings
currency
The currency of every price in the file, such as USD.
models
Each model by the name your board reports, such as claude-opus-5-5, with its prices per million tokens:
input: the tokens sent to the model.output: the tokens the model writes.cache_read: the tokens read from the prompt cache.cache_write: the tokens written to the prompt cache.source: where the price was read.as_of: the date it was read.
A name may use * to match several models, such as claude-sonnet-*. The first name that matches a run's model sets its price. A model with no match has no known cost, so its runs count as unpriced, never as free.
Change it
Your own prices.yml replaces the default whole, so it lists every model your agents use. With a discount of 10% on Claude Opus 5.5 and Claude Sonnet 5.5:
currency: USD
models:
claude-opus-5-5: {input: 3.60, output: 18, cache_read: 0.18, cache_write: 4.50, source: "our contract", as_of: 2026-11-01}
claude-sonnet-5-5: {input: 1.80, output: 9, cache_read: 0.09, cache_write: 2.25, source: "our contract", as_of: 2026-11-01}