Software estimates that survive contact with reality
Why precise-looking estimates fail, and how to communicate ranges, assumptions and unknowns without theatre.
Precision is not accuracy
A three-decimal estimate on an unclear brief is a costume. Accuracy comes from named assumptions, known integrations and a plan for what is still unknown.
Buyers often ask for certainty; good partners offer calibrated ranges and the work needed to narrow them.
Ranges should name the work that narrows them: a spike, a vendor call, a prototype against real data. Without that list, a range is just delayed argument.
Track assumptions in the same tool as tickets. When an assumption breaks, reforecast openly instead of absorbing silently until morale breaks.
Make this explicit in writing before build accelerates. Verbal alignment dissolves the first time a deadline tightens or a vendor slips.
Separate build from learning
Estimate delivery of known work differently from spikes that reduce uncertainty. Mixing them produces false confidence and later blame.
Learning work should have a budget and a question to answer — not a pretend ship date.
Track assumptions in the same tool as tickets. When an assumption breaks, reforecast openly instead of absorbing silently until morale breaks.
Ranges should name the work that narrows them: a spike, a vendor call, a prototype against real data. Without that list, a range is just delayed argument.
Ask how your partner will prove progress on this topic in staging demos, not only in status reports. Evidence beats adjectives in software delivery.
Assumptions belong on the page
List what must be true for the estimate to hold: API availability, content readiness, decision latency, environment access. When an assumption breaks, the estimate is allowed to move.
Hidden assumptions turn every surprise into a relationship problem.
Ranges should name the work that narrows them: a spike, a vendor call, a prototype against real data. Without that list, a range is just delayed argument.
Track assumptions in the same tool as tickets. When an assumption breaks, reforecast openly instead of absorbing silently until morale breaks.
If internal bandwidth is thin, name a single owner on your side who can answer questions within a business day. External capacity without decisions still drifts.
Use ranges with meaning
Wide ranges early are honest. Narrow them after discovery, not before. Explain what would move the number up or down.
Stakeholders can plan with ranges; they cannot plan with fiction that later snaps.
Track assumptions in the same tool as tickets. When an assumption breaks, reforecast openly instead of absorbing silently until morale breaks.
Ranges should name the work that narrows them: a spike, a vendor call, a prototype against real data. Without that list, a range is just delayed argument.
Make this explicit in writing before build accelerates. Verbal alignment dissolves the first time a deadline tightens or a vendor slips.
Staffing is part of the estimate
Who does the work matters. A senior pair finishing a risky integration is not interchangeable with a junior bench and a slide about “capacity.”
Ask for named roles in the estimate, even if names change later with notice.
Ranges should name the work that narrows them: a spike, a vendor call, a prototype against real data. Without that list, a range is just delayed argument.
Track assumptions in the same tool as tickets. When an assumption breaks, reforecast openly instead of absorbing silently until morale breaks.
Ask how your partner will prove progress on this topic in staging demos, not only in status reports. Evidence beats adjectives in software delivery.
Track variance without drama
Compare burn to remaining scope weekly. Variance is information. Silence until the last week is how trust breaks.
Good reporting shows what changed in scope or assumptions — not only a red status colour.
Track assumptions in the same tool as tickets. When an assumption breaks, reforecast openly instead of absorbing silently until morale breaks.
Ranges should name the work that narrows them: a spike, a vendor call, a prototype against real data. Without that list, a range is just delayed argument.
If internal bandwidth is thin, name a single owner on your side who can answer questions within a business day. External capacity without decisions still drifts.
How we estimate at Three Index
We write inclusions, exclusions and assumptions first. Then we price. If the brief is thin, we propose a short discovery before a hard number.
Tell us what you are building and we will say whether you need a range, a fixed quote or a discovery first.
Ranges should name the work that narrows them: a spike, a vendor call, a prototype against real data. Without that list, a range is just delayed argument.
Track assumptions in the same tool as tickets. When an assumption breaks, reforecast openly instead of absorbing silently until morale breaks.
Make this explicit in writing before build accelerates. Verbal alignment dissolves the first time a deadline tightens or a vendor slips.
What to reject
Reject partners who refuse to show assumptions, who guarantee dates on undefined integrations, or who treat every miss as your change of mind.
Estimation is a shared practice, not a sales weapon.
Track assumptions in the same tool as tickets. When an assumption breaks, reforecast openly instead of absorbing silently until morale breaks.
Ranges should name the work that narrows them: a spike, a vendor call, a prototype against real data. Without that list, a range is just delayed argument.
Ask how your partner will prove progress on this topic in staging demos, not only in status reports. Evidence beats adjectives in software delivery.
Next step
FAQ
Short answers related to this article.
Why do precise software estimates usually fail?
Precision is not accuracy. Estimates collapse when learning work is treated like known build work and assumptions never appear on the page.
How should vendors communicate software estimates?
Use ranges with meaning, separate build from discovery, staff the estimate honestly, and track variance without drama. Single-number certainty is theatre.
How does Three Index estimate delivery work?
We put assumptions on the page, price ranges that reflect unknowns, and refuse estimates that pretend discovery is free. You get a basis you can challenge, not a fake deadline.
Why Three Index
Founded in 2020 in Ahmedabad, Gujarat. Fifty-plus IT professionals. More than five hundred projects shipped across product and enterprise work.
We are large enough to staff serious products and small enough that the people who wrote a module can still explain it. See how we operate, browse case studies, or join the team.
Tell us what you are trying to build.
Send a short description of the project. You will get a reply from someone technical — with questions worth answering, not a brochure.