How to scope projects so you stop losing money
Bad scoping loses agencies more money than any other single thing. Not bad execution. Not bad clients. Bad scoping.
You quote 40 hours, it takes 80. The margin vanishes. If you do this consistently, you go out of business with a full client pipeline.
The problem: most agencies wing it. They gut-check an estimate or use intuition. They don't have a system.
The Estimation Framework
Here's what actually works.
Step 1: Break the project into components.
Don't estimate "website redesign." That's too big and too vague.
Break it into:
- Discovery and strategy (4 hrs)
- Wireframes (12 hrs)
- Design (24 hrs)
- Front-end development (30 hrs)
- Back-end development (20 hrs)
- Testing and QA (10 hrs)
- Revisions (20 hrs)
- Deployment and handoff (5 hrs)
Total: 125 hours
This is better than one big number because you can spot where you're uncertain. Is front-end really 30 hours? Maybe. But maybe it's 45 if they want animations.
Step 2: Use historical data if you have it.
If you've done 5 similar websites, you know how long they take. Average your actual hours from those projects.
If you've never done this before, you're guessing. And you're usually guessing low because you're optimistic.
Step 3: Add 20-30% buffer.
This accounts for:
- Communication and clarification meetings you didn't expect
- Client approval delays that turn into rework
- Scope creep (things they asked for that weren't in the original scope)
- Unknowns (you discover something weird midway)
If your estimate is 125 hours, add 25 hours. Quote 150 hours.
This feels high. It's not. It's reality. Scope creep happens in 80% of projects.
Step 4: Add profit margin.
You need to make money. Your loaded cost is $35/hour (salary, taxes, benefits, overhead). You estimate 150 hours.
Cost: 150 x $35 = $5,250 Your margin target: 40% Quote: $5,250 / 0.60 = $8,750
(If you want 40% margin, you price at 60% of cost. If you want 50% margin, you price at 50% of cost.)
Let's call it $9,000 to make it clean.
Step 5: Get it in writing.
The scope document is the most important thing. It's what prevents the argument later.
"Website redesign includes:
- One round of user interviews (6 client participants)
- Wireframes for 5 main pages
- Custom design mockups (not template)
- Front-end development in React
- Integration with their existing CMS
- One round of revisions
- Testing on desktop and mobile
- Deployment and 30-day support
This does not include:
- Additional interviews beyond 6
- Pages beyond the 5 specified
- Custom animations or interactions (use plugin instead)
- Third-party integrations (Salesforce, HubSpot, etc.)
- CMS training (separate proposal)
Timeline: 8 weeks from kickoff to launch Budget: $9,000 Revision rounds: 1 included, additional at $125/hr"
This is crystal clear. Client knows what they're getting. You know what you're delivering. No surprises.
The Estimation Mistakes Agencies Make
1. Estimating design as a variable.
"Design is subjective. Could take 20 hours or 40."
Then you go with the optimistic 20. It actually takes 40. You're under.
Use explicit criteria instead. "Design includes 3 mockup revisions. Anything beyond that is scope creep."
2. Underestimating meetings and communication.
Actual work: 60 hours. Meetings, email, Slack, clarifications: 20 hours. You estimate 60. You're under.
Always add 20-30% for communication overhead.
3. Not separating custom from standard work.
Custom work takes 3x longer than standard work. If it's custom, estimate it as custom. "Custom integration with their legacy system: 40 hours" vs. "WordPress integration (standard): 8 hours."
4. Assuming clients know what they want.
They don't. Discovery usually takes 50% longer than you think because they're not clear on their own requirements.
Budget extra time for this. It saves money later.
5. Not tracking how long things actually take.
You estimate 20 hours. It takes 30. You don't track this, so next time you estimate 20 again. You never get better.
Track actual hours. Compare to estimate. Learn what your estimates are systematically wrong about.
6. Buffering inconsistently.
One project you add 30% buffer. One you add 10%. There's no system.
Pick a consistent buffer (20-30% for most work) and use it always. Adjust based on uncertainty (high uncertainty = higher buffer).
The Scope Change Process
Scope creep kills margins. A formal process stops it.
When client asks for something extra:
- Acknowledge it: "Great idea. Let me scope that."
- Estimate the hours: "That's about 8 additional hours."
- Calculate cost: "8 hours x $125/hr = $1,000"
- Get approval: "Should I proceed with that as a change order?"
- Document it: Invoice line item for "website redesign - extra pages: $1,000"
If they say yes, great. Invoice them. If they say no, you move on.
Most of the time, once they see the cost, they realize it was a small ask and decide it's not worth it. You save time. They're not surprised by the bill.
Never start work on something "out of scope" hoping they'll pay for it later. They won't. You'll eat the cost.
The Template Approach
If you do the same type of work repeatedly, standardize the scope.
"Website Redesign - Standard Package"
- 1 discovery meeting
- 5 main page wireframes
- Custom design (3 rounds of revisions)
- Front-end development
- CMS integration
- Mobile optimization
- 30-day post-launch support
- Timeline: 6 weeks
- Price: $12,000
Now every website quote is based on this. It takes 15 minutes to customize instead of starting from scratch.
If a client wants something outside this scope, you write a change order. It's professional and clear.
How to Estimate When You're Unsure
Ask someone who's done it before.
"Hey, how long does a Shopify product integration usually take?" Get their estimate.
Sanity-check with a simple formula.
"I think 60 hours. That's realistic if the developer works efficiently. Worst case is 90 hours if it's messier. Let's estimate 80 hours and see how it goes."
Price conservatively.
If you're uncertain, overestimate. Bringing a project in under estimate is good. Bringing it in over is bad.
Use a tiered approach for big projects.
Phase 1: Discovery and scope clarification ($3,000, 2 weeks) Phase 2: Design and prototype ($8,000, 4 weeks) Phase 3: Development ($15,000, 6 weeks)
Now you're not estimating the whole thing upfront. You're breaking it into phases. Each phase is clearer and easier to estimate accurately.
The Profitability Check
If you're consistently under on estimates, you've got a pricing problem. You can fix it one of two ways:
1. Raise your estimate. If projects are taking 150 hours and you estimate 120, quote based on 150.
2. Raise your price. If your clients are used to a rate, keep it but be more aggressive about scope. Include less in the base project. Charge more for add-ons.
Most agencies should do both. Better estimation + slightly higher pricing = healthy margins.
FAQ
How do I estimate if I've never done this type of project?
Get help. Call a colleague. Offer to pay them a consulting fee for advice. "I'm estimating a Shopify migration for a client. Based on 2,000 products, how long would you estimate?" Then add 30% buffer because it's new to you.
Should I charge more for rush projects?
Yes. 25-50% premium. Rush work has opportunity cost (it keeps people from other projects) and usually involves rework.
What if I estimate wrong after the fact and realize I should have charged more?
For the next project, charge more. For this project, eat it (sadly). Don't invoice them for more than you quoted. That damages trust.
Can I request a time extension instead of going over budget?
Only with client approval in the scope change process. Don't just extend timeline hoping they won't notice.
How do I convince a client that my estimate is realistic?
Show them the breakdown. "Discovery (4 hours), wireframes (12 hours), design (24 hours), development (30 hours), testing (10 hours), revisions (20 hours) = 100 hours. At $125/hr, that's $12,500." They can see the logic.
What if they push back and want it cheaper?
Give them options. "We can scope it down to 3 pages instead of 5, which brings it to $8,000. Or we can keep everything and extend the timeline to 10 weeks. What works better?"
Don't just drop the price and eat the margin.