Estimation and cost

Estimation is a human planning aid. Before a batch enters the roadmap, the agent records how much work it expects; mdBoard turns the token estimate into an estimated EUR cost and a roadmap total.

The numbers are planning signals, not invoices.

::: tip Short version

  • A batch carries two PERT estimates: tokens and agent_hours.
  • [costs] turns weighted tokens into an estimated EUR cost.
  • The estimate is required before the batch enters the roadmap.
  • The roadmap total is the sum of batch estimates.
  • The subscription and blended rate are set once per board, prompted by mdboard init.

:::

What is estimated

Estimate Meaning Unit Drives EUR cost?
tokens Token volume the work is expected to consume tokens Yes
agent_hours Agent execution time the work is expected to take hours No

The model tracks token volume and agent execution hours. Human review is a gate, not a priced effort unit.

When estimation happens

accepted → estimate → roadmap → breakdown → doing → handover → completed

The estimate is required before roadmap. An accepted batch without an estimate cannot be committed. The agent can re-estimate later if the scope changes, but that is an explicit, recorded change.

Task estimates are optional and do not change the batch cost. The batch estimate is authoritative.

PERT weighting

Each estimate stores optimistic, realistic and pessimistic values. mdBoard stores the weighted value so every human sees the same number:

weighted = (optimistic + 4 × realistic + pessimistic) / 6

Example: 8,000 / 12,000 / 20,000 tokens:

(8,000 + 4 × 12,000 + 20,000) / 6 = 12,667 tokens

Token weighted values are stored as whole numbers. Agent-hour weighted values are stored with two decimals.

Estimated EUR cost

The cost is derived from the weighted token estimate and the blended rate:

estimated_cost_eur = tokens.weighted / 1,000,000 × eur_per_million_tokens

Cost is not stored in the card. If the rate changes, every card and the roadmap total change on the next build.

Example with 12,667 weighted tokens:

Blended rate Estimated cost
€0.21 / 1M (DeepSeek V4 Flash example) €0.0027
€4.96 / 1M (default fallback) €0.0628
€6.19 / 1M (Claude Opus 5.5 example) €0.0784

The cost model

mdboard.toml:

[costs]
subscription = "unspecified payment model"
eur_per_million_tokens = 4.96
Key Meaning Default
subscription Subscription or payment-plan name shown beside estimates unspecified payment model
eur_per_million_tokens Blended cost in EUR per one million tokens 4.96

subscription must not be empty. The rate must be finite and non-negative. The rate is blended across input and output tokens for the expected usage mix; it is not a plain average of the two prices.

Where to get the blended rate

  1. Use the subscription or payment plan you actually pay for.
  2. Read the input and output token prices from the provider’s pricing page or your billing statement.
  3. Convert them to one effective rate for your expected input/output mix.
  4. If you are unsure, ask the flagship agent to estimate the blended cost per million tokens for that model and usage.

Reference values:

Model / subscription Input €/1M Output €/1M Blended €/1M
DeepSeek-V4.1-Flash (off-peak) 0.13 0.52 0.21
Claude Opus 5.5 3.44 17.20 6.19
unspecified payment model — — 4.96 (default)

The DeepSeek row uses the official off-peak list prices of $0.15 input and $0.60 output per 1M tokens, converted at €0.87/$, with an 80/20 input/output blend. Peak prices are double; adjust the rate if your usage is mostly at peak.

The rate is a planning assumption. mdBoard does not fetch prices, convert currencies or reconcile invoices.

How to change the cost model

Ask the agent to look it up

The default cost model is a planning placeholder. After initialization, ask the agent to research the concrete model and subscription rather than supplying a number yourself:

Human: Look up the current DeepSeek-V4.1-Flash pricing for our off-peak usage
       and adapt the cost estimates.
Agent: I checked the provider pricing on 2026-10-25. For this subscription
          the blended rate is €0.21 per 1M tokens at our 80/20 input/output mix.
          I will update [costs] and refresh the roadmap if you approve.

The agent must cite the source and date, state the model, subscription, input/output mix and peak/off-peak assumption, and update [costs] only with owner approval. mdBoard does not fetch prices, convert currencies or reconcile invoices.

At initialization

mdboard init prompts for the subscription and rate. For automation:

mdboard init --upstream main \
  --subscription "DeepSeek-V4.1-Flash (off-peak)" \
  --eur-per-million-tokens 0.21

Later

Ask the agent, or edit the [costs] section yourself:

Human: Change the cost model to DeepSeek-V4.1-Flash (off-peak) at 0.21.

Agent: This changes the estimated cost of every roadmap batch and the
          roadmap total. Shall I update mdboard.toml and regenerate the
          views?

After a manual edit, ask the agent to run the relevant checks and rebuild the views.

What the estimates affect

Surface What you see
ROADMAP.md Batch estimates and total cost
mdboard status / context Cost model and estimated board total
HTML board Cost on roadmap and batch views
.mdboard/reports/R<batch>.md Estimated cost for the batch
Agent brief Roadmap total and any change

Estimates do not gate a state transition by themselves, reserve budget, spend money or replace a review.

How to ask for an estimate

Human: Estimate #0007 and show me the roadmap.

Agent: 12,667 weighted tokens, 1.0 weighted agent hour.
          At €0.21/1M, about €0.0027.
          Roadmap 2 of 5, total €0.11. Do you want me to commit it?

The agent should show the weighted values, the rate, the batch cost and the roadmap total.

Re-estimation

If the scope changes materially during breakdown or implementation:

Human: The endpoint also needs audit logging. Re-estimate it.

Agent: New estimate: 15,500 tokens. This changes the roadmap total
          from €0.11 to €0.14. Confirm the change?

Re-estimation is an explicit action with a reason; it is recorded and shown in the roadmap total.

FAQ

Why is the estimated cost €0.0000? The batch has no token estimate. Add one before roadmap.

Why not use agent hours for cost? Tokens are the directly priced consumption unit. Agent hours are a scheduling estimate.

Can I use several models in one board? There is one blended rate per board. Use an effective blended rate for the mix, or separate boards.

Do I need to edit every card when the rate changes? No. Update [costs] and rebuild; cost is derived.

Next