The Audit That Ruined My Q1
In January 2026 I pulled every project I'd quoted in the previous 18 months — 50 in total — into a spreadsheet. I had two goals: figure out my real effective hourly rate and figure out how good I actually was at quoting.
Neither answer was kind.
Of the 50 projects:
- 38 were underquoted. The actual delivery cost (using real logged hours, not just the work I billed for) exceeded the quote by an average of $1,840 per project.
- 9 were quoted roughly right. Effective rate within 10% of the target rate.
- 3 were overquoted. I left money on the table, but the client was happy and the work was bounded, so no complaints from anyone.
Total underquote damage: $69,920 over 18 months. Almost exactly one and a half quarters of revenue I should have collected and didn't.
I want to be clear: I am not a bad freelancer. The work shipped, the clients renewed, the reviews were good. I was just systematically pricing as if every project would go perfectly when, empirically, none of them do.
This post is the diagnostic. Five patterns explained 36 of the 38 underquotes. If you've been freelancing for more than a year and have never run this audit, you probably have most of them.
How to Run the Audit Yourself
Before the patterns, the methodology. You need real numbers, not your memory.
For each project from the past 12-18 months, pull:
- Quoted price (the number on the proposal).
- Logged hours — all of them. Coding, design, calls, Slack, "quick" emails, the 45 minutes you spent unbreaking the dev server, the 90 minutes onboarding their new project manager.
- Calendar time — kickoff date to final payment date.
- Out-of-scope work you did and didn't bill for. Most underquoting hides here.
Then compute three numbers per project:
- Effective hourly rate = quoted price ÷ total hours
- Target rate gap = (target rate − effective rate) ÷ target rate, as a percentage
- Underquote dollars = (target rate × hours) − quoted price
Anything where the gap is over 25% is an underquote. Anything where you did unpaid scope work is an underquote regardless of the gap.
Pattern 1: Quoting the Happy Path (28 of 38)
The single most common pattern, and the one I'd been doing for years.
I'd estimate the project assuming nothing goes wrong: client responds within a day, deliverables get approved on first show, no revisions beyond what's in scope, all external dependencies are available when I need them.
Then I'd add 10% as a "buffer" and call it conservative.
Real projects don't go like that. Across the 38 underquotes, the actual hours exceeded my "happy path" estimate by an average of 42%. A 10% buffer is mathematically guaranteed to fail.
The fix: stop quoting the happy path. Estimate the "75th percentile path" — the path that's worse than 75% of similar projects but better than 25%. Then add 15-20% on top of that.
Practically: take your gut estimate, multiply by 1.4, then add 15%. That's your floor.
Yes, it sounds high. The audit data says it isn't.
Pattern 2: No Communication Tax (24 of 38)
I never billed for the calls, the Slack threads, the "can you hop on Zoom real quick," the project manager handoffs. None of it was "the work."
Total communication hours across the 38 projects: 312 hours. At my target rate that's about $23,400 of work I did for free.
The fix: in the quote, communication time has its own line. Two options work:
- Bundled cap: "Includes up to 4 hours/week of meetings, async messaging, and project communication. Time beyond this is billed at $125/hr."
- Explicit allocation: add 15-20% to your hours estimate as the communication line item, visible on the quote.
I prefer the bundled cap. It teaches the client that communication has economic weight without making the quote feel like an accountant's invoice.
The first time a client asks "can you hop on a call to walk through that?" and you say "happy to — we'll be at 4.5 hours this week, want me to bill it or hold the question till our standing call?", the entire dynamic of the project shifts.
Pattern 3: The Revision Black Hole (19 of 38)
19 projects had revision rounds that exceeded the contractual cap. In how many of those did I charge for the extra rounds? Two.
The 17 unbilled rounds added up to about $11,500 of un-recovered work.
The mechanics are familiar to anyone reading this. The client comes back with "just a few small changes." Three of them are inside scope. Two of them are technically new work. You spend the weekend doing all five because you don't want to be "that freelancer." Monday morning the client says it looks great and asks for one more round of "polish."
The fix is operational, not conceptual. The contract clause about revision rounds is necessary but not sufficient. What actually changes behavior is visibility.
Tell the client at the start: "You have 2 revision rounds included. After each round I'll send a one-line note confirming where we are."
Then, after round 1: "Round 1 done. 1 of 2 included rounds remaining."
After round 2: "Round 2 done. 0 of 2 included rounds remaining. Any further changes will go through a change order at $125/hr."
This is uncomfortable to send the first few times. It's also the single most reliable way to convert revision overflow into billed work. Clients who get the visible counter rarely ask for round 3 unless they actually need it — and when they do, they pay.
Briefance has this counter built into the project view because of exactly this audit. Most of the un-recovered revision dollars happen because the freelancer doesn't have a defensible record of which round they're on.
Pattern 4: Fixed Price on Vague Scope (15 of 38)
The deal-breaker pattern. I quoted a fixed price on a project where I couldn't have told you, with a straight face, what "done" meant.
Examples from my own audit, slightly anonymized:
- "$6,500 for the brand refresh." (Brand refresh including or excluding the new logo? The voice guidelines? The Figma library? Which?)
- "$4,200 for the migration." (Migrating which features? Which legacy quirks do we preserve?)
- "$8,000 for the marketing site." (8 pages? 12? Does the blog need a CMS or are we hardcoding?)
These all closed because the price felt clean and the client felt comfortable. They all underran because nothing in the quote could referee a scope dispute. Every ambiguity resolved in the direction of more work for me.
The fix isn't to ask more questions before quoting (though you should). The fix is to honestly refuse to give a single number when scope isn't nailed down.
Quote a band instead:
"Brand refresh: $6,500-$9,200 depending on final scope. Confidence: medium. The price will narrow once we lock the deliverable list (specifically: which assets are inside vs outside the Figma library, and whether voice guidelines are in this engagement or a separate one). I can give you a single number after a 30-minute scoping call."
Three things this does:
- Tells the truth about your actual uncertainty.
- Creates a path to a single number that's the client's call, not yours under pressure.
- Filters clients. The ones who refuse to do a 30-minute scoping call are exactly the ones who will scope-creep you to death.
I lost two clients in March from doing this. Both of them came back in April with smaller, scoped, single-number projects. Net effect: more revenue, less rework.
Pattern 5: The "I'll Just Absorb It" Conclusion (14 of 38)
The smallest dollar pattern, but the most psychologically destructive.
Some part of the project goes sideways. Client added an extra page. Designer subcontracted late. The CMS plugin you assumed worked, doesn't. You add hours. You don't bring it up because the relationship is good, the project is mostly going well, and you don't want to be the freelancer who nickel-and-dimes.
Net effect: client has no idea anything went sideways, learns to expect that level of effort at that price, and the next project starts from a worse anchor.
The fix is the easiest of the five and the hardest emotionally. When something goes outside scope, send a one-line note. Not an invoice. Just visibility:
"Quick note: the extra blog page we discussed today is outside the original scope. Happy to roll it in — figure ~3 hours, would be $375 on the next invoice or absorbed if you'd prefer to drop something else from the list. Let me know which."
Eighty percent of the time the client says "just add it to the next invoice." Once they understand that out-of-scope work is visible, they self-regulate. The remaining 20% choose to drop something else, which is also a fine outcome.
The one outcome you don't want — silent absorption — happens only when you make the silent-absorption choice for them.
What the Fixed Process Looks Like
After the audit, I rebuilt my quoting around five mechanical steps:
- Estimate hours assuming the 75th-percentile path (not the happy path).
- Multiply by 1.4, then add 15%. That's the hours figure.
- Add a communication line of 15-20% on top.
- If scope has any ambiguity, quote a band with a confidence note, never a single number.
- Run the project with visible counters for revision rounds and out-of-scope notes.
The April 2026 cohort (12 projects since switching): average effective rate within 6% of target, zero underquotes greater than 15% over.
I gave up roughly $4,800 in projects that didn't sign because the band-with-confidence framing scared them off. I gained roughly $19,000 in projects that didn't blow up.
Where Briefance Fits
The audit is what convinced me to ship the Pricing Confidence Score in Briefance as a banded output with explicit confidence levels and a list of missing information that would narrow the band — never a single number. Single-number quotes are the foundation of underquoting. The product refuses to output one.
TL;DR
- Run the audit. Pull every project from the past 12-18 months, compute effective hourly rate, find the gap.
- Five patterns explain almost every underquote: happy-path estimating, no communication tax, revision black hole, fixed price on vague scope, silent absorption.
- The fixes are mechanical, not motivational. Buffer math, communication caps, visible revision counters, quote bands with confidence, one-line out-of-scope notes.
- A quote with visible uncertainty filters clients more honestly than a single number that gets renegotiated under pressure.
You are probably underquoting by $1,500-$2,000 a project. The audit takes a Saturday. Run it.