
Contents
For years I billed by the hour. It’s the default for a reason — it feels fair, it’s easy to explain, and every client has done it before. It’s also quietly the worst-aligned way to buy development work, and I stopped doing it as the primary model on purpose. Here’s the honest case for a monthly retainer instead — including where it’s the wrong choice, with the actual math.
The hidden tax in hourly
Hourly billing has a structural problem nobody likes to say out loud: it rewards the vendor for being slow. Not maliciously — but every efficiency I find literally costs me money under an hourly model. Your incentives and mine point in opposite directions from the first invoice.
It also taxes you in ways that never show up as a line item:
- The proposal lag. Every new piece of work needs scoping, an estimate, an approval. That’s one to three weeks of calendar time before a single line of code, repeated per project.
- The estimate dance. Padded estimates (to be safe) or blown estimates (when reality hits) — either way you’re managing a number instead of getting work done.
- The meter anxiety. Clients ration small requests because every email “starts the clock.” The good small improvements never get asked for.
What a retainer changes
A productized monthly retainer flips the model: a flat fee, a backlog you control, one request worked at a time, start to finish. No scoping calls, no SOW per task, no meter. You send work; it gets built; you send the next thing. My incentive becomes “keep you subscribed by shipping,” which is the incentive you actually want.
Hourly pays for time. A retainer pays for throughput. You almost never actually want time — you want the thing shipped.
The benefits — for you, specifically
- Predictable cost. Same number every cycle. Finance stops getting surprised; you stop pre-negotiating every task.
- Speed. No proposal phase means work starts the day you ask, not three weeks later. For anything revenue-adjacent, time-to-live is the whole game.
- Aligned incentives. I win when you keep getting value, not when a task takes longer.
- Context retention. The same person who built your last thing builds the next one. No re-onboarding, no “let me get up to speed” billed back to you.
- Small things get done. Because there’s no per-request cost, the unglamorous 30-minute fixes that quietly compound finally get asked for.
The drawbacks — honestly
A retainer is not universally better, and I’d rather you hear this from me than feel it later:
- Low-volume months feel expensive. If you only have two hours of work this month, a flat monthly fee is bad value. The fix is pausing — but if your needs are genuinely sporadic, hourly is honestly the better instrument.
- It requires a real backlog. The model only pays off if you can keep meaningful work queued. Thin pipeline, thin ROI.
- It requires trust. You’re paying for outcomes over a cycle, not clock-verified hours.
- It’s not for a single tiny one-off. One scoped audit doesn’t justify a month. That’s what an hour pack is for — and I keep that option precisely because retainer-everything would be dishonest.
The ROI math
Concrete scenarios using real numbers — a $4,995 monthly retainer versus $200/hr hourly:
Scenario A — steady needs (the clearest win). A growing B2B team needs roughly 40 hours of dev a month: a landing page, CRM tweaks, a few module fixes, ongoing performance work. Hourly: 40 × $200 = $8,000, plus scoping overhead. Retainer: $4,995, no scoping. ~$3,000/month saved and the work starts immediately. Over a year that’s ~$36,000 and roughly 30+ reclaimed calendar-weeks of not waiting on estimates.
Scenario B — the proposal tax. Say you run six discrete projects in a year. Hourly, each one loses ~2 weeks to scope/estimate/approve before work begins — 12 weeks of dead calendar time annually. On a retainer those six projects start the day they’re queued. If even one of them is a lead-gen page, shipping it 2 weeks sooner is real revenue, not a soft benefit.
Scenario C — opportunity cost. A pricing-page rebuild that converts 1% better on, say, $50k/month of traffic-driven pipeline is ~$500/month in perpetuity. Hourly model: it’s “scheduled” behind the estimate cycle. Retainer: it’s live next week. The ROI of a retainer is often not the rate — it’s the weeks you didn’t lose.
Scenario D — when hourly actually wins. You need one 3-hour technical SEO audit and nothing else this quarter. An hour pack at 3 × $200 = $600 obliterates a $4,995 month. If this is you, do not buy a retainer, and be skeptical of anyone who tells you to.
Why this matters more in the age of AI
The common objection now is “AI writes the code, so why retain a developer at all?” It’s the right question and the answer isn’t what the hype implies.
AI made writing code dramatically faster. It did not make knowing what to build, what not to build, and catching the confidently-wrong thing faster. If anything it raised the value of that judgment, because AI will produce a plausible, shippable-looking solution to the wrong problem at incredible speed, and someone has to be senior enough to notice before it’s in production.
The bottleneck moved from typing to discernment. An experienced developer on retainer is exactly the right shape for that new bottleneck: on-tap senior judgment, already holding your context, using AI as a force multiplier rather than a substitute — without you hiring, onboarding, or carrying a full-time senior salary. The retainer amortizes that judgment across every small request cheaply. Hourly, you’d ration the very calls that prevent the expensive mistakes.
AI lowered the cost of code and raised the cost of being wrong. A senior on retainer is leverage on both at once.
How to actually decide
- Steady backlog + you value speed and predictability → retainer. This is most growing teams.
- One scoped, finite task → hour pack. No retainer required, no guilt.
- A single massive capital project with a hard fixed budget → neither; that wants a fixed-bid statement of work.
Bottom line
Hourly isn’t evil — it’s just misaligned, and it taxes you in calendar time you never see invoiced. A monthly retainer trades a predictable fee for throughput, speed, and an incentive structure that points the same direction yours does. It’s the wrong tool for sporadic one-offs, and I’ll tell you so. But for a team with a real backlog — especially now, when the scarce thing isn’t code but the judgment to aim it — having an experienced developer on retainer is the highest-leverage way to buy the work. That’s why it’s how I work, and why I still keep hour packs for the times it isn’t.