Fixed Price or Time and Materials? The Real Question Is Who Eats the Risk
Fixed price vs time and materials, explained without the sales pitch: who holds the risk, how discovery sets an honest number, and what our own milestone billing looks like.
Every pricing conversation eventually comes down to two sentences. Time and materials puts the risk of scope creep on the client — the meter runs whether or not the plan was solid. And a number given before anyone has looked at the mess is a guess wearing a suit.
Everything else — the hourly rate, the total contract value, whether someone calls it "agile pricing" — is decoration on top of that. Before you sign anything, figure out which one of you is holding the bag if the estimate turns out to be wrong. Then get the mechanics for that, not just the number, in writing.
The Two Models, No Jargon
Fixed price is one number for a defined piece of work, agreed before the work starts. You know the total before anyone opens a laptop. Time and materials is billed for the hours and materials actually used, with no ceiling unless one is written in. You find out the total when the work is done.
That's the whole fixed bid vs hourly software development debate, stripped of the branding. Everything you'll read about "hybrid" or "agile pricing" is one of these two things wearing a costume. If a vendor tells you their pricing model is Agile, ask them to point to the number. Agile is how the work gets organized. It is not how the invoice gets calculated. The real time and materials vs fixed price contract choice is a choice about who absorbs a bad guess, not which one sounds more modern.
Time and Materials: Flexible for Whom?
T&M gets sold as flexibility. It is — for the person billing it. The meter runs whether or not the plan was solid, and that risk sits with whoever's paying the invoice. If the requirements were vague going in, T&M doesn't punish the vagueness. It bills it, hour by hour, for as long as it takes to notice.
Here's the part vendors don't say out loud: T&M rewards a vendor for finding more work, not for finishing faster. There's no structural reason for a team billed hourly to move quickly. Some do anyway, because they're good people or they want the referral. But the contract itself isn't pulling in that direction. It's pulling toward more hours, billed at the same rate, for as long as the client keeps paying.
That doesn't make T&M dishonest. It makes it a bet you're placing on the vendor's discipline rather than on the contract's structure. Fine, if you know that going in. Not fine if you thought you were buying a number.
Fixed Price Only Holds If It's Set After the Mess Is Understood
Here's the limitation of fixed price, including ours: a number given before anyone has looked at the mess is a guess wearing a suit. A fixed price quoted on a sales call is really a T&M bet wearing a fixed-price label — someone pads it to cover the unknowns, or someone eats the surprise later and starts cutting corners to make the number still work. Either way, the client just doesn't see it happening.
We don't quote a fixed number off a first call, on purpose. Not because we're being cautious for the sake of it, but because a number from a first call is a guess, and we don't like putting a client's budget behind a guess we made. The spreadsheet everyone secretly runs the business on has years of undocumented exceptions built into it. You can't price replacing it until you've actually opened it up.
How We Actually Set the Number
So we do a discovery week first. Flat $4,800. It's credited back in full if the client continues, so it isn't a toll for the privilege of getting a quote — it's the work that makes the quote real.
Discovery week ends in written scope, an architecture sketch, and a fixed estimate. At that point the number isn't a guess anymore. It's based on someone having actually looked at your data, your integrations, and the exceptions nobody wrote down. If you walk away after discovery, you keep the scope document and the architecture sketch. You paid for something real either way.
What a Fixed-Scope Project Actually Bills Like
Once scope is locked, a fixed-scope project runs from $28k per phase. It's billed on milestones: 30% at kickoff, the rest on phase acceptance. Net 14 terms on everything.
"Phase acceptance" isn't a vague checkpoint — it means the thing in the scope document actually works, in your environment, with your data, and someone on your side has signed off on it. Not a demo. Not a beta link. Acceptance. That's the moment the next chunk of money moves.
The project also includes 30 days of post-launch fixes, so acceptance isn't the finish line where we disappear and you discover the edge cases alone. If something the scope covered breaks in that window, it's on us to fix it, not on you to negotiate it.
Scope Changes: Priced, Not Snuck In
Scope changes happen. Someone remembers a reporting requirement in week six, or the accounting package changes its API. Fine. Scope changes are priced before work starts, not slipped into an invoice afterward. You'll know the cost and the timeline impact before we touch it, and you decide whether it's worth doing now, later, or not at all. No invoice should ever be the first time you hear about a change.
When Something Like Time and Materials Is the Honest Answer
Fixed price works when the destination is known. It stops making sense when the work is genuinely ongoing — a product that keeps evolving, a backlog that grows as the business grows, priorities that shift by quarter. Pretending that's a fixed-scope project just means renegotiating the "fixed" price every few months, which is worse than admitting it's ongoing from the start.
That's what a dedicated squad is for. From $18k a month, rolling 3-month terms, one designer, two engineers, one lead, billed monthly in advance. This is the honest version of "flexible," not open-ended hours with no shape. You get a consistent team who knows your codebase, a fixed monthly number, and the ability to redirect their attention as priorities shift — without a change order every time something moves.
What We Won't Do to Make a Number Look Better
We do not take equity or offer deferred payment. It muddies the relationship and it has never once made the software better. Cash, milestones, clear scope. If a vendor is willing to defer payment or take a stake instead, ask yourself why they'd rather be paid in outcomes they don't control than dollars they do.
And we don't blend billing models without writing down what changed. If a fixed-scope project turns into ongoing care after launch, that's a new agreement with its own number, not a quiet drift from milestone billing into open hours nobody agreed to.
Ask This Before You Sign Either Contract
Skip the pros-and-cons chart. Ask who holds the risk if the estimate is wrong, and ask for that answer in writing before the number, not after. If the answer is "you do, and here's how we'll handle it if it happens," you're looking at a real contract. If the answer is a shrug, or a hybrid model nobody can quite explain, you already know who's going to be eating the surprise.
Want this applied to your business?
Describe the process that's hurting. You'll get a real reply from an engineer.