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:
tokensandagent_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
- Use the subscription or payment plan you actually pay for.
- Read the input and output token prices from the provider’s pricing page or your billing statement.
- Convert them to one effective rate for your expected input/output mix.
- 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.