Stop estimating migrations in story points. Estimate in dollars.
Story points hide the commercial risk. Here's the one-page estimate format I hand a deal team instead.
Story points are fine for a sprint and useless for a deal. A sponsor signing a fixed price can’t act on “this wave is a 13” — they need euros, and they need to see where the risk lives. So I don’t hand a deal team velocity. I hand them one page.
The one-page format
| Line | Effort (d) | Risk buf (d) | € |
|---|---|---|---|
| Landing zone | 12 | 0 | 14,400 |
| App refactor ×8 | 48 | 10 | 69,600 |
| Data migration | 15 | 8 | 27,600 |
| Cutover & run-book | 9 | 4 | 15,600 |
| Total | 84 | 22 | 127,200 |
Three things a story-point sheet can never do, this page does at a glance: it’s in money, the risk buffer is a separate column (so the client can see they’re paying 22 days of contingency and exactly which lines carry it), and the buffer sits only on the lines that earned it — 0 on the landing zone, 8 on the data migration nobody fully understands.
Put the contingency in its own column and it becomes a conversation. Bury it in the estimate and it becomes a fight.
A blended rate does the conversion; a confidence band (here, ±15%) sets expectations honestly. The deal team can flex the rate, challenge a buffer, or cut a line — and watch the bottom line move. That’s an estimate a business can actually negotiate, which is the entire point.