Asking a developer to walk through their own number, line by line, does one of two things: it produces more detail, or it produces resistance. A contractor who padded the estimate or guessed at scope will hedge, generalize, or get defensive. One who did the work will hand you the breakdown without hesitation, because the number was never a guess to begin with.
What happens when you ask for the breakdown
You send a short message asking how the total splits across features, and within a day or two you get one of two replies: a spreadsheet with hours next to each task, or a paragraph that restates the total in different words. The second answer is the tell. A real estimate was built from something, whether that’s a task list, a set of user stories, or prior work on something similar. If the developer can’t point to what it was built from, it probably wasn’t built from anything.
Good breakdowns also separate categories that behave differently: front-end work, back-end logic, third-party integrations, and testing. Integrations in particular are where estimates go wrong most often, because the developer is promising behavior from an API they don’t control. If integration work is lumped into a single line with everything else, that’s worth a follow-up question on its own.
What happens when you ask about assumptions
Every estimate rests on assumptions the developer made without telling you, and asking “what did you assume to get this number” usually surfaces three or four of them within a single conversation. Common ones: that you already have a design ready, that your existing data is clean enough to migrate without rework, or that you’ll approve mockups within a set number of days.
These assumptions matter because they’re where the estimate quietly becomes conditional. A $40,000 build assuming clean data and a 48-hour approval turnaround is a different project than the same number without those conditions. If a developer can list their assumptions readily, they thought about the project before pricing it. If they can’t name any, the number came from a gut feeling or a rate card, not from the actual work in front of them.
What happens when the number seems too clean
Round numbers on complex software projects deserve more scrutiny, not less. A quote of exactly $50,000 or $75,000 for a multi-month build is more likely to reflect a target price the developer wanted to hit than a sum of real task estimates, which almost never land on a clean figure. That’s a position some developers will push back on, and reasonably so: a round number isn’t automatically wrong. But when you ask for the underlying math and the response takes a while to arrive, or the line items add up suspiciously close to the round total, you’re looking at a number that was reverse-engineered rather than built up.
The more useful comparison is between two estimates for the same scope. If one developer’s number is 60% lower than another’s, the gap is rarely about efficiency. It’s about scope. Somewhere, one of them left something out, whether that’s testing, deployment, or post-launch bug fixes, and the low number will need a change order later to cover it.
What happens when you bring in a second opinion
Getting someone with technical background to review the estimate before you sign usually takes a single conversation, not a lengthy audit. They read the breakdown, ask two or three pointed questions about the assumptions and the integration risk, and tell you within a day whether the number matches the scope. This is a narrower service than most non-technical founders expect, and it’s cheaper than the alternative, which is discovering the gaps six weeks into the build when the developer asks for more money to finish what the original quote didn’t cover. Kody Doherty writes about this kind of review process, among other technical vetting work for founders without an in-house CTO; more on reading a development estimate you cannot verify covers some of the specific questions worth asking before you sign anything.
What you’re really paying for in that review isn’t a rubber stamp or a rejection. It’s someone translating a document written for developers into a document you can actually act on: sign as is, negotiate the scope, or walk away and get a second quote.
What happens after you sign
Once the contract is signed, the estimate stops being a negotiating document and becomes the baseline everyone measures against. Any change to scope, timeline, or cost from that point forward should reference specific line items from the original breakdown, not vague language about things taking longer than expected. If the estimate was thin to begin with, this is where it costs you: every gap the developer didn’t disclose up front becomes a change order later, at a price you no longer have room to negotiate.
