Every MSP has been there: you quote a two-day project, schedule it with confidence, then find yourself on Day 5 wondering if you accidentally signed up to rebuild the Pentagon. Fixed-fee projects are the business equivalent of “all-you-can-eat” sushi, great in theory, but sometimes you’re the one being eaten alive. So what do you do when the job drags on, the quote was way off, and the client already paid?
Before you draft an angry invoice or fake your own death, let’s talk strategy. This blog walks you through what to do, what not to do, and how to ensure this never happens again, without burning bridges or losing your shirt.
Fixed-fee means you’re not charging by the hour, you’re charging for an outcome. That’s great for clients who love predictable costs and not-so-great for MSPs who discover halfway through that “a quick audit” involves legacy systems, firmware updates from the Jurassic era, and a client who thinks two-factor authentication is “calling twice.”
Once a price is agreed and the invoice is paid, the client sees the deal as done. Even if the project morphs into a monster, your ability to adjust pricing after the fact is almost nonexistent unless you’ve scoped and documented it with enough legalese to rival a tech startup’s terms of service.
If you're mid-project and already sweating through your “it’ll only take two days” optimism, hit pause and talk to the client. Let them know the scope is bigger than expected. Explain where the complexity is hiding and offer a few options: rescope, prioritize, or split phases. Most reasonable clients appreciate the heads-up, and it gives them the choice to either adjust expectations or the invoice.
If you've already sent the invoice (and worse, they've paid it) trying to reverse-engineer a price hike will likely go over like a lead balloon. You can try to explain the situation and ask for partial compensation, but tread carefully. Be honest, not defensive. Don’t say, “You should’ve told me your network was a mess.” Say, “We discovered additional complexity that wasn’t clear in the initial scope. I wanted to be transparent about the time investment, and I’d love to work with you on a solution that’s fair for both of us.”
Sometimes, the answer will be “thanks, but no thanks.” That’s okay, consider it a tuition fee for your MSP MBA.
Revisiting price after they’ve paid feels shady, even if your intentions are good. It reads as unprofessional and can tank your credibility faster than an expired SSL certificate.
Yes, maybe they left out key info. Maybe their network diagram was last updated during the Cold War. But it’s your quote, and it’s your responsibility to scope properly. Own the miss and learn from it.
Misquoting once is forgivable. Doing it again makes it look like your sales team is throwing darts at a calendar. Start tracking your quote-to-time ratios and identify where you consistently go wrong.
Share the experience with your team. Document it. Create a “Lessons Learned” Slack channel or, better yet, a post-mortem template. Don’t let this experience disappear into the memory hole, use it to tighten your process.
Charge for a pre-project audit or analysis. It gives you time to fully understand the environment and gives the client a taste of your process. If you uncover chaos early, you can quote appropriately (or run).
Analyze past projects. Track how long “2-day” projects really take. Use that data to inform future estimates, and build in a 15-25% buffer for the unexpected.
Not every project fits a fixed-fee mold. For high-risk or undefined scopes, use time-and-materials or block-hour models. You can still give a price range for budget comfort while protecting yourself from infinite scope creep.
Track Time Religiously – Compare quote vs actual. Adjust quoting algorithms accordingly.
Train Sales to Spot Complexity – Your quoting team should know what red flags to look for during scoping calls.
Standardize Your SOWs – Clearly define what's in and out of scope. Clients who know where the line is are less likely to cross it unknowingly.
Automate Where You Can – Use your PSA or RMM tools to log time, flag overruns, and send alerts before scope becomes a disaster.