Every Shopify project quote sits between two failure modes. Under-quote, and you eat the difference — sometimes for weeks. Over-quote, and you either lose the deal or win it on terms the merchant will resent once the work turns out smaller than expected. The standard way to manage this is to pad: take your honest guess and quietly add a 30–50% buffer. It looks like prudence and feels like protecting yourself. It also transfers your uncertainty to the client as a price they didn't sign up for.
The alternative is to find out what's actually there before committing to a number. This is the part of consulting I think about most, and the part I get asked about least.
Why estimates are usually wrong
When a quote misses, the miss almost always traces back to one of three assumptions:
- You assumed the work was greenfield, when something already existed that you could have built on.
- You assumed this job matched a previous job, when the details that determine the actual time were different.
- You assumed the merchant's framing of the problem matched the actual problem.
All three are diagnoseable in two to four hours of focused work. None of them are diagnoseable from a 30-minute sales call.
A worked example
A few months ago a Shopify Plus merchant wrote to me about structured data. His brief was specific and reasonable: "We have no structured data. Build it for us." An external AI-generated crawl had told him the site was outputting zero schemas. He'd already received one quote that priced the work as a from-scratch implementation — twelve hours, plus discovery, plus QA. By the time everything was added up, the number was approaching four figures for what sounded to him like a small, well-scoped piece of work.
Before quoting, I asked for two hours of paid audit time. The audit number was a fraction of the eventual quote. He agreed.
What the audit actually found: the merchant's theme was already outputting ProductGroup, BreadcrumbList, FAQPage, Organization, and WebSite schemas. The AI-generated crawl had been wrong — and the wrongness was the kind a human reading the page source would have caught in ten minutes. The actual issue wasn't missing schemas. It was missing fields inside an existing ProductGroup schema: offers were thin, ratings were unwired, review markup wasn't being inherited from the apps where reviews actually lived.
The merchant got a quote that was half the size of the one his AI tool had implied he needed. He paid less. I worked on a job I was confident in, scoped against real data, not a wrong premise.
Final scope: about six hours of enrichment work, not twelve hours of new-build. The merchant got a quote that was half the size of the one his AI tool had implied he needed. He paid less. I worked on a job I was confident in, scoped against real data, not a wrong premise. The pre-quote audit paid for itself several times over in the difference between the two scopes.
The enrichment-vs-build reframe
This pattern shows up constantly. "We need X" almost always has some version of X already present in the theme, the metafield architecture, or an installed app. The right diagnostic question is rarely "should we build X?" The right question is "does X already exist in some form, and is what's there usable as a starting point?"
When the answer is yes, scope often drops by 30–60% and the work becomes safer (less rebuild risk, fewer regressions). When the answer is no, the quote is the same as it would have been without the audit — but now both sides know why. Either way the merchant gets an accurate number.
When the audit reverses the recommendation
Sometimes the pre-quote audit doesn't just shrink the project. It cancels it. A brand asked me to scope email automation; the pre-quote audit found that the repeat-buyer signal those automations would target wasn't being measured anywhere accurate. Build the automations on top of the broken measurement and they'd run on guessed-at audience segments. The honest reply was: don't build the email automation yet. Fix the measurement layer first. Here's what that costs.
The merchant saved several thousand dollars they were ready to spend. I lost a project I was ready to take. This is the part of the practice that makes the rest of it work. If the diagnostic only ever shrinks scope and never cancels the project, it's a sales tool dressed up as a diagnostic. If it sometimes cancels the project, it's a real diagnostic — and the next time it doesn't cancel the project, the merchant can trust the quote.
What the math looks like for the merchant
Pre-quote audit: two to four hours of paid work, fixed fee. Saves the merchant the difference between a padded quote and an accurate one — often 30–60% on the implementation that follows. The math only works under one condition: the consultant has to be willing to recommend smaller scope when the data says smaller is right. If the consultant's incentive is to hit a revenue number for the quarter, "diagnostic" is just a billable hour on top of an inflated quote. If the consultant's incentive is the long relationship, the audit becomes the most important hour of the engagement.
Three signals you're about to be overquoted
If you're a merchant evaluating a quote you haven't accepted yet, three things are worth checking before signing:
- The consultant won't do a paid pre-quote diagnostic — or treats the audit as included in the quote, meaning it'll happen after you've already committed to the scope.
- The quote arrived faster than the work it describes — implying the consultant skipped the audit entirely and is pricing from a template.
- The quote arrives without a list of assumptions. Every honest quote rests on assumptions about what's already there. If the assumptions aren't written down, neither of you can tell when reality diverges from them.
None of these are deal-breakers on their own. All three together is a signal.
The diagnostic isn't a sales tactic
It's the only way I've found to quote honestly without padding. The right question to ask before any Shopify project is "what's the smallest version of this that gets you where you need to go?" — and the only way to answer it is to look at the data before naming a price. If you're considering a Shopify scope right now and the number is making you queasy, the cheapest thing to buy first isn't the project. It's the audit that decides what the project actually is.