Priya had two quotes on her desk and a decision to make by Friday.
Priya isn’t one person. Like Daniel from last week, she’s a composite of CTOs and product leads I’ve sat across from over the years, built from real conversations so the story holds together. But every beat of what happens to her has happened, in one form or another, to someone real.
She ran product at a fast-growing logistics company, the kind that had outgrown its original booking system two years ago and had been patching it ever since. The business had finally agreed to fund a proper rebuild. Not a huge project by industry standards, but not small either. Six to nine months of real work, the kind of number that gets a line item in the board deck.
She’d sent the same brief to two firms. Same requirements document, same conversations, same three weeks of back and forth answering their questions. And now she had two quotes, and they could not have looked more different.
Firm A wanted 340 hours. Firm B wanted 210 hours.
Same project. Same brief. A gap of 130 hours, which at their blended rates worked out to a difference of just over eleven thousand pounds. Firm B was not just cheaper. Firm B was dramatically, suspiciously cheaper, and Priya’s finance director had already circled that number twice and written “why not this one?” in the margin.
Here is what most people do at this exact moment, and I want to be honest that Priya nearly did it too.
They assume the numbers are telling them something simple. Either Firm A is padding their quote to make more money, or Firm B is hungrier and sharper and has found a cleverer way to build the same thing for less. Both of those stories are comforting, because both of them let you pick the cheaper number with a clear conscience.
Almost nobody stops to ask a third, much less comfortable question: what if the two numbers aren’t actually estimating the same thing at all?
Priya’s first instinct, if I’m honest about how these situations usually go, was to lean toward Firm B. It was tempting. Same brief, but for eleven thousand pounds less, and a board that would nod approvingly at the number. She was two days from picking it when a colleague, someone who’d been burned on a project exactly like this one, said something that changed her Friday.
“Ask them both the same question. Not about the price. About the number itself.”
Here is the question, and it is the entire method, so I want to give it to you plainly rather than making you wait for it.
Ask each firm to break their total into blocks. Not a paragraph justifying the number. Actual blocks. This screen, this many hours. This integration, this many hours. This piece of testing, this many hours. Ask them to show you the arithmetic that adds up to their total.
This sounds like a small, almost bureaucratic request. It is not. It is the single most revealing question you can ask a vendor, because of what it does to the two different kinds of number sitting on your desk.
A real estimate can always be taken apart, because it was built by putting pieces together in the first place. Someone sat down, thought about the actual features, sized each one based on real experience of how long that kind of work takes, and added them up. The total is downstream of the pieces. Ask for the pieces, and they exist, because that is literally how the number was made.
A guess cannot be taken apart the same way, because it was never built from pieces. Someone looked at the brief, felt a number in their gut based on similar projects they’d half-remembered, adjusted it for a bit of safety margin, and wrote it down. The total came first. There were no pieces. Ask for them, and the vendor has to invent a breakdown after the fact, which is a very different and much more uncomfortable exercise than reading one off that already existed.
Priya sent the question to both firms on a Wednesday afternoon.
Firm A’s answer arrived Thursday morning. A spreadsheet, eleven line items, each one named after an actual feature in her brief. The core booking flow, forty-two hours. The driver notification system, twenty-eight hours. Integration with their existing payments provider, thirty-one hours, with a note flagging that this was the riskiest item because the provider’s documentation was known to be incomplete, and the number included time for that discovery. Testing and QA, sixty hours, broken further into unit, integration, and a manual pass on the mobile app.
It wasn’t a beautiful document. It was a working one. And when Priya emailed back asking why the payments integration was quoted higher than she’d expected, she got a two-paragraph answer within the hour, from the actual engineer who’d sized it, explaining exactly which part of that provider’s API had burned them on a previous project.
Firm B’s answer arrived Friday morning, later than promised, and it was one paragraph. It said, in essence, that their 210 hours reflected their team’s efficiency and their experience with similar booking platforms, and that they were confident in the number based on comparable projects they’d delivered. There were no line items. When Priya wrote back asking for a rough split between the booking flow, the notifications, and the payments integration specifically, the reply took two days and offered three very round numbers that added up, suspiciously neatly, to exactly 210.
Priya told me later that the moment she read Firm B’s second reply, she felt something click into place that she hadn’t been able to name on the Wednesday. It wasn’t that Firm B was lying, exactly. It was that Firm B had never actually built the number the way Firm A had. Someone there had looked at the brief, felt that 210 hours sounded competitive, and let the salesperson run with it. The three round numbers in the second reply weren’t a breakdown. They were the breakdown being invented, live, under a bit of polite pressure.
Here is the part that made Priya genuinely angry for about a day, and I think she was right to be.
The 130-hour gap between the two quotes was never really there. It was going to reappear, guaranteed, the moment the project actually started and the payments integration turned out to be exactly as troublesome as Firm A had flagged and priced for. Firm B hadn’t found a cheaper way to do the same work. Firm B simply hadn’t done the thinking yet, and that thinking was going to happen anyway, on the clock, disguised as a change order three months into the build, at a point where Priya’s negotiating position would be far weaker than it was on that Friday with two quotes on her desk.
The cheap quote wasn’t a better deal. It was the same project with the hard part hidden until it was too late to say no to it cheaply.
This is the thing nobody tells buyers, and it’s worth saying plainly. A vendor who guesses low isn’t giving you a discount. They’re deferring the discovery of the real number to a point in the relationship where you have the least power to question it. The padding Priya’s finance director was worried about wasn’t in Firm A’s quote. It was going to arrive later, in Firm B’s invoice, wearing the disguise of an unexpected complexity.
Priya went with Firm A.
Not because it was cheaper. It wasn’t. She went with them because when she asked them to show their working, they had working to show, and when she pushed on the one number that looked high, she got a specific, technical, credible answer from a person who clearly understood the problem, inside an hour.
The project ran eight months. It came in fourteen hours over the original 340, on a single item, the payments integration, exactly the one Firm A had flagged as risky on day one and priced with room to be wrong. Fourteen hours over on a 340-hour quote is not a failure of estimation. It’s what a real estimate looks like when it survives contact with reality, close, explainable, and exactly where the risk was always flagged to be.
She never found out what would have happened with Firm B, because she didn’t run that experiment. But she’d seen enough of that pattern before, on a different project, years earlier, to know roughly how it goes. The number holds for a few weeks. Then something nobody priced turns out to be hard. Then a change order arrives, apologetic and specific in a way the original quote never was, and by the time it’s totalled up, the gap has closed and often reversed, except now you’re three months in and the vendor knows you can’t easily walk away.
If you remember nothing else from this, remember the question, because it’s the whole method and it costs you nothing but an email.
Ask every vendor to break their number into blocks. Not a paragraph. Blocks, tied to real pieces of the work, that add up to the total they’ve given you.
If they can do it quickly and defend any piece you push on, you are looking at an estimate, and the number, whatever it is, deserves to be taken seriously. If they stall, or the breakdown arrives late and suspiciously round, you are looking at a guess wearing an estimate’s clothes, and the real number is still ahead of you, waiting to arrive at the worst possible time.
The cheapest quote on your desk is not the one with the lowest number. It’s the one that’s actually telling you the truth about what the work will take. Sometimes those are the same quote. When they’re not, the gap between them is exactly where you’ll pay later, with interest.
If you’re staring at two quotes right now and the gap between them doesn’t quite make sense, send me both breakdowns. I’ll tell you which one was actually built, and which one is still being invented.