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.

ModelInput / MTokOutput / MTokContextWhere it fits
Claude Opus 5 (default)$5.00$25.001MDeepest specs.
Claude Sonnet 5$3.00$15.001MBalanced speed and cost.
Claude Haiku 4.5$1.00$5.00200KDrafts 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.