DOCS · FOR TEAMS
Costs and metering
What a run costs, how spend is capped, and why money is stored as integer cents.
On this page
specd does not resell inference — you bring the credential and pay your provider. What specd does is meter every run against a rate card and refuse to start one that would exceed a cap.
The rate card
Anthropic first-party USD per million tokens, converted with SPECD_USD_TO_EUR. Cached input is billed at its own multiplier so the meter matches the invoice rather than approximating it.
| Model | Input / MTok | Output / MTok | Context | Where it fits |
|---|---|---|---|---|
| Claude Opus 5 (default) | $5.00 | $25.00 | 1M | Deepest specs. |
| Claude Sonnet 5 | $3.00 | $15.00 | 1M | Balanced speed and cost. |
| Claude Haiku 4.5 | $1.00 | $5.00 | 200K | Drafts and indexing. |
The allowlist is exactly these three, set per project or via SPECD_DEFAULT_MODEL.
Caps are checked before a run starts
Money is integer EUR cents
Floats never touch money anywhere in specd. Accumulating thousands of small model calls in a float is how a meter drifts away from an invoice, and a meter that disagrees with the invoice is a meter nobody uses.
Subscription runs are counted, not priced
In subscription_runner mode the run consumes your Claude subscription quota. specd records the tokens — so you can see what a spec cost in effort — but does not meter it in euros, because it did not cost euros.
What is not built
- Stripe billing. Spend is metered and capped; nothing is charged.
- Per-seat pricing or plans. specd is pre-1.0 and self-run.
The keeping-it-cheap levers that actually matter: use Haiku for indexing-adjacent work, keep tasks sized to one pull request so a failed build is a small failed build, and let the knowledge base fill in — a well-grounded spec needs fewer retries than a cold-start one.