There’s no universally “best” billing model. Each works well in specific situations and poorly in others. The right choice depends on how well-defined the work is, who should bear the risk, and what kind of relationship you want.
Here’s an honest breakdown.
The Three Models
Hourly: You pay for time spent. Simple, flexible, but unpredictable costs.
Time & Materials (T&M): You pay for time plus materials/expenses, usually with detailed tracking and estimates upfront. More structure than pure hourly.
Fixed-Price: You pay a set amount for defined deliverables. Predictable costs, but scope changes require negotiation.
When Hourly Works
Hourly billing makes sense when:
- Scope is genuinely unknown. True R&D, exploratory prototyping, or debugging where nobody knows how long it’ll take.
- Work is ongoing and variable. Maintenance, support, or advisory work without clear deliverables.
- Tasks are small and discrete. Quick consultations, code reviews, or one-off questions.
The problem with hourly is incentive alignment. The firm makes more money when work takes longer. A junior engineer taking 3x as long as a senior generates 3x the revenue. Without visibility into where time goes, costs spiral.
I’ve seen projects quoted at “probably $50k” end up at $150k because nobody was tracking anything.
When T&M Works
T&M with transparency works when:
- Requirements will evolve. You know roughly what you want but expect to discover better approaches mid-project.
- You want flexibility without surprises. Detailed estimates upfront, real-time tracking, weekly burn rate updates.
- The relationship is collaborative. You’re involved in decisions and trade-offs throughout.
Done right, T&M gives you visibility: every hour logged and categorized, access to tracking tools, proactive communication when something’s running over. “This subsystem is at 80% of budget with 60% of work done—here are options.”
The downside: it requires active client involvement. Some clients want to hand off a problem and get back a solution, not make ongoing decisions about scope trade-offs.
When Fixed-Price Works
Fixed-price works when:
- Scope is well-defined. Clear requirements, known deliverables, minimal expected changes.
- The firm has done similar work before. Experience enables accurate estimation.
- You need budget certainty. Startups with fixed runway, grant-funded projects, or corporate budgets that can’t flex.
- You want accountability. The firm is incentivized to be efficient because they absorb overruns.
The common criticism of fixed-price is scope rigidity. But that’s a feature, not a bug. It forces both sides to think carefully about requirements upfront. If you can’t define what you want, maybe the project isn’t ready for development.
The real risk with fixed-price is on the firm. If they estimate poorly, they eat the cost. This means good firms quote carefully and say no to poorly-defined work. Bad firms either pad quotes excessively or cut corners when they underbid.
Why We Use Fixed-Price
At Crab Labs, we primarily use fixed-price. Here’s why:
We can estimate accurately. Our engineers have done similar work many times. A BLE sensor project, an industrial controller, a medical device firmware stack—we know how long these take because we’ve built them before.
We staff with seniors. Junior engineers are slower and less predictable. When your team is experienced, estimates are reliable. We don’t need T&M flexibility because we rarely have surprises.
Clients want certainty. Most of our clients are startups or small companies with fixed budgets. They need to know what a project will cost, not track hours anxiously.
It aligns incentives. We make more money by being efficient, not by taking longer. If we finish early, we keep the margin. If we run over, we absorb it. That’s skin in the game.
It forces honest scoping. When we bear the risk, we’re motivated to push back on vague requirements and ensure scope is clear before starting. That discipline benefits everyone.
We do use T&M occasionally—for genuine R&D where nobody knows the scope, or for ongoing support relationships. But for defined projects, fixed-price works better for us and our clients.
The Trust Question
Every model requires trust. The question is where and how.
Hourly requires trust that the firm is billing honestly and working efficiently.
T&M requires trust that estimates are reasonable and overruns are legitimate.
Fixed-price requires trust that the firm will deliver quality work, not cut corners to protect margin.
Transparency helps in all cases. Even with fixed-price, we explain how we arrived at the number, what’s included, and what would trigger a change order. Clients can evaluate whether the estimate is reasonable.
Questions to Ask Any Firm
Regardless of billing model:
How did you arrive at this estimate? Detailed breakdown or gut feel? Task-level estimates suggest experience.
What happens if scope changes? Easy changes suggest confidence. Rigid change processes suggest margin protection.
What’s your track record on estimates vs. actuals? Past performance predicts future performance.
Who’s actually doing the work? Senior engineers quoted, juniors delivered? That affects both quality and timeline.
What’s included and excluded? Assumptions matter. “PCB layout” might mean different things to different firms.
The Bottom Line
The “best” model depends on your situation:
- Unknown scope, exploratory work: Hourly or T&M
- Evolving requirements, collaborative relationship: T&M with transparency
- Well-defined scope, need budget certainty: Fixed-price
- Ongoing support, no clear deliverables: Hourly
What matters more than the model is whether the firm is honest, experienced, and aligned with your success. A good firm will recommend the model that fits your project, not the one that’s most profitable for them.
We chose fixed-price because it fits how we work: experienced engineers, well-defined projects, and clients who value certainty. If your project is different—true R&D, unclear requirements, or ongoing support—we’ll tell you, and we might suggest a different approach.
Honesty about fit matters more than winning the contract.