- Narthur's Newsletter
- Posts
- Limiting Fixed-Bid Contract Risk
Limiting Fixed-Bid Contract Risk
Recently I’ve been thinking more about how I can reduce risk around my fixed bid contracts, ideally to me and the client.
The primary challenge I’ve faced with fixed bids is that there’s no bound on how long they can take. And this can create significant cash flow issues when a contract inevitably proves to be much harder than expected.
I include an early cancellation clause in all my contracts which is supposed to handle this issue. It states that either party can cancel the contract at any time, and the client agrees to pay a percentage of the contract’s value based on the number of tasks that were completed before cancellation.
The problem with this is that I find it extremely difficult to take advantage of, for a few reasons.
I don’t want to disappoint the client by failing to deliver the agreed-upon results.
If cash flow is struggling, my instinct is to double down and get that final payment after the contract is completed.
My ADHD means the cost of switching to trying to decide whether to cancel can feel painfully high.
It never feels like I’m actually any more than a few focused hours away from solving whatever’s currently blocking me.
What this all ends up meaning is that, even though I’ve given myself the option to cancel at any time, in reality I’ll push through contracts regardless of how long over they go or how much financial strain I’m putting myself in.
Recently I’ve been toying with the idea of having some threshold at which I’m required to reevaluate a contract, say when I’ve hit 2x my original estimate. But the idea hasn’t felt like it would actually reliably solve the problem.
Ensuring I’m prompted at the appropriate time (when I hit 2x) feels difficult and brittle, given I have a history of not tracking my time when I’m way over on a task, even though I definitely should be.
If I solve that and manage to ensure I do the review, I’m likely to be motivated to do it as quickly as possible to get back to the “real work.”
If I do the review and decide I do need to cancel the contract, it feels like it would be difficult to communicate to the client, it being due to hitting a threshold that’s invisible to the client and a squishy analysis of the value of cancelling the current contract and reassessing the project for a new contract.
I think I’ve found a different take on this idea that solves all these issues. Instead of using a multiple of the original estimate as my threshold, I should use a date, a deadline in time. And instead of that deadline triggering a review, it should simply automatically terminate the contract.
This has quite a few benefits:
It doesn’t require any code changes to my time tracking software to trigger.
It’s entirely transparent to the client.
It’s hopefully easier to sell to the client as a way to reduce their risk as much as mine.
It doesn’t introduce the new uncertainty and friction of needing to decide whether or not to cancel the contract.
It’s simple to represent as a new clause in future contracts.
It creates a hard bound on cash flow risk for any given contract.
It retains compatibility with my existing early cancellation clause.
It guards against more types of risk—not just going over on the work itself, but also things like an unforeseen event that greatly reduces our development bandwidth.
It creates a clear deadline to keep us focused on the contract at hand.
It creates an additional incentive to effectively break down the tasks within the contract during initial proposal to allow us to be paid fairly in the case that we don’t meet our deadline.
I haven’t yet discussed this with my clients. I’m a little nervous about how they’ll react. I’m hopeful, though, that they’ll like the idea. I need to change something in order for our fixed bids to continue to be a practical part of our work.
Enjoyed this issue?
Consider doing one of the following:
📬 Forward this email to someone you think would enjoy it
✨ Check out all the other things I’ve been working on
☕ Join my Ko-fi to provide ongoing support, or just leave a tip