How We Stopped Losing Money on Fixed-Price Projects
Agencies lose money on fixed-price work because scoping is bad. Here's how structured requirement gathering transformed our estimates and profitability.
The Project That Lost Us £30k
A client came to us with what sounded like a straightforward request: “Build us a customer portal.” We had a one-hour call, scribbled some notes, and quoted £45k based on what we thought they meant.
Eight months and £75k of billable time later, the project was still in progress. The “customer portal” had turned into a full CRM with custom reporting, role-based permissions across three user types, an API integration with their legacy ERP system, and a mobile-responsive redesign that wasn’t discussed until month four.
We ate the difference. Not because the client was unreasonable, but because we never pinned down what “customer portal” actually meant. And by the time we realized the gap, we were too deep to renegotiate without damaging the relationship.
This wasn’t a one-off. It was our pattern.
Why Agency Scoping Fails
Most agencies scope projects the same way: have a call, take notes, build an estimate based on experience and gut feel. It works when the project is genuinely simple. It falls apart on anything with complexity.
The problem is that clients describe what they want in terms of outcomes (“I need a customer portal”) while agencies estimate in terms of effort (“that’s about 6 weeks of dev work”). The gap between the outcome and the effort is filled with assumptions. The client assumes things are included. The agency assumes things are excluded. Nobody writes any of it down.
Three specific failure modes keep repeating:
The “obvious” feature. The client mentions it once in passing during the discovery call. The agency doesn’t capture it. Three months in, the client asks where it is. “We talked about this.”
The undefined user. “Customers will use the portal” could mean ten customers or ten thousand. It could mean tech-savvy developers or retired accountants. The design, the infrastructure, and the support model all change depending on the answer.
The integration surprise. “It needs to connect to our system.” That system turns out to be a fifteen-year-old on-premise database with no API, a custom authentication layer, and data quality issues that require a migration project before any integration work can start.
What We Changed
After three painful fixed-price projects in a row, we overhauled our scoping process. The changes were simple, but the impact was significant.
Discovery calls became structured interviews
We stopped having freeform conversations about what the client wanted. Instead, we built a question framework that we walked through systematically:
- Who are the users? How many? What’s their technical comfort level?
- What can they do today? What should they be able to do after this project?
- What systems does this need to connect to? Who manages those systems?
- What does “done” look like from a user perspective? Walk us through the ideal experience.
- What’s explicitly out of scope for this phase?
The last question was transformative. Clients almost never volunteer what they don’t want. But when you ask directly, you get answers that prevent months of misalignment.
Outputs became documented specs
Every discovery session now produces a written scope document. Not a proposal. A scope document that both sides sign off on before we estimate anything.
It lists every feature, every user type, every integration, and every explicit exclusion. It includes rough wireframes for any screen that could be interpreted multiple ways. It’s usually 3-5 pages.
The document becomes the contract’s technical appendix. When a client asks for something that’s not in the spec, we have a productive conversation about scope changes instead of an argument about expectations.
Estimates became accurate
With clear specs, our estimates improved dramatically. We went from regularly overrunning by 40-60% to coming in within 10% of the original quote. Not because we got better at estimating, but because we finally knew what we were estimating.
Our profit margins on fixed-price work went from negative (yes, negative) to a consistent 25-30%.
The Structured Scoping Session
Here’s what a typical scoping engagement looks like now:
Session 1 (90 minutes): Walk through the question framework. Record the call. Capture every feature request, assumption, and concern.
Between sessions: Write up the scope document. Flag ambiguities and unknowns. Prepare follow-up questions.
Session 2 (60 minutes): Review the scope document with the client. Resolve ambiguities. Agree on what’s in and what’s out.
Deliverable: Final scope document, signed off by both parties, attached to the contract.
This adds about a week to the sales process. It has saved us hundreds of hours of unbillable rework.
The Uncomfortable Truth
The reason most agencies don’t do structured scoping is that it feels slow. You’re adding time before the project starts, and clients want to start yesterday. There’s pressure to skip the process and just begin.
But the time you “save” by skipping scoping is borrowed time. You’ll spend it later, in status calls explaining delays, in internal meetings debating what the client actually wanted, in free rework to keep the relationship alive.
Good scoping isn’t overhead. It’s the foundation that makes fixed-price work profitable.
If you want to take this further, tools like Projan can help structure these requirement gathering conversations automatically, turning a client discussion into an organized spec you can hand to your team. It’s especially useful when you’re running multiple discovery sessions a week and need consistency. Give it a try if your scoping process could use more structure.
Frequently asked questions
Why do agencies lose money on fixed-price projects?
Because clients describe outcomes and agencies estimate effort, and the gap between them gets filled with assumptions nobody writes down. The client assumes things are included, the agency assumes they are excluded, and the difference only surfaces once you are too deep to renegotiate without damaging the relationship.
What does bad scoping actually cost?
One project quoted at £45k after a one-hour call ran to £75k of billable time over eight months and was still unfinished. The customer portal had become a CRM with custom reporting, three permission levels, a legacy ERP integration and a responsive redesign nobody mentioned until month four.
What are the recurring scoping failures?
The obvious feature mentioned once in discovery and never captured. The undefined user, where customers could mean ten or ten thousand, developers or retired accountants, each implying different design, infrastructure and support. And the integration surprise, where their system is a fifteen-year-old on-premise database with no API.
How do you fix a discovery call?
Stop having a freeform conversation and walk a fixed question framework: who the users are, how many, their technical comfort, what they can do today versus after the project, what systems this connects to and who manages them. The structure is what stops the important question going unasked.
Should agencies just stop quoting fixed price?
Not necessarily. Fixed price fails when the scope is guessed, not because it is fixed. Once the discovery produces a written, agreed scope with an explicit exclusion list, a fixed quote becomes a calculation rather than a bet, which is what makes the model survivable.
Scope it before you price it
Projan turns a client conversation into a spec both sides signed off, so "that's not what we asked for" stops being a conversation.
Start free trial14-day free trial. No credit card required.