I used to lose money on almost every fixed-price project.
Not because I was slow. Because I was vague. My estimates were based on what clients told me they wanted, not what the project actually required.
This changed when I built a proper estimate template.
Here is the structure.
Section 1: What is included (be specific to the point of being annoying)
Do not write "build user authentication." Write "build email/password login, password reset flow, email verification, session management with 30-day expiry, and rate limiting on login attempts."
Every word you do not write is a future argument about scope.
Section 2: What is explicitly not included
This is the section most freelancers skip and they regret it.
List things the client might reasonably assume are included but are not. "Social login (Google/Facebook) is not included in this scope." "Mobile responsiveness is included for screen widths above 375px. Native mobile apps are not in scope." "Content migration from the existing site is not included."
Section 3: Your assumptions
List every assumption you made when building the estimate. "I am assuming the client provides all copy and images before development begins." "I am assuming the existing API documentation is accurate and up to date." "I am assuming one round of revision per deliverable."
When reality does not match an assumption, you have a documented basis for a change order.
Section 4: What triggers a change order
One paragraph explaining that any work outside this document requires a written change order with updated timeline and price. Not aggressive. Just clear.
Section 5: What you need from the client to start
Access requirements, content, decisions that need to be made. This establishes that delays from their side affect the timeline.
Since I started using this structure, I have had exactly one scope dispute. The client looked at section 2, acknowledged the item was not in scope, and we agreed on a change order in about ten minutes.
Before this template I was having that fight on every other project.
The template itself takes an extra 30-45 minutes to write for a new project. It has saved me dozens of hours of unpaid work.
The Freelance Command Center includes a project scoping template, client tracker, proposal system, and more. Built in Notion. EUR 17.
Top comments (0)