Blog / From the bench

From the bench 5 min read

Why I stopped selling hourly

Hourly billing charges the client for the developer's learning curve and rewards the slow. What changed when every project got one fixed number, what it cost me, and why I'd never go back.

Bishoy AwadFounder, RoundBorders · WordPress since 2012
In this post
  1. The incentives are backwards
  2. What fixed pricing actually changed
  3. What it costs
  4. The one rule that came out of it

For the first years I worked the way everyone works: an hourly rate, a rough estimate, and an invoice at the end that was usually a bit more than the estimate. Nobody complained much. It’s the industry default. But I kept noticing the same thing from the client’s side of the table, and once you see it you can’t unsee it: hourly billing charges the client for my learning curve.

If a bug takes me four hours because I’ve never seen it, the client pays four hours. If it takes twenty minutes because I fixed the same thing last month, the client pays twenty minutes. The client is buying the same outcome in both cases. The price varies with something they can’t see, can’t control, and shouldn’t have to think about.

The incentives are backwards

Worse than the unfairness is what hourly does to the work. It quietly rewards being slow. Not dishonestly; nobody pads hours on purpose. But when time is the product, there’s no pull toward the fast fix, the reusable tool, the ten minutes of thinking that saves two hours of doing. Every efficiency I build is a discount I give myself.

And on the client’s side, hourly makes every conversation expensive. “Can I ask a quick question?” has a meter running behind it. People stop asking, and the questions they don’t ask are the ones that would have saved the project.

What fixed pricing actually changed

I moved every project to one number, quoted after diagnosis and before work. If I’m wrong about the effort, that’s my problem. Three things happened.

I got better at diagnosis, because the price depends on it. Looking properly before quoting is no longer unbilled time; it’s the whole job. That’s where “diagnose before we quote” on the pricing page comes from. It isn’t a marketing line, it’s self-defence.

Clients stopped watching the clock, and started asking the questions. Emails got longer and projects got shorter, which sounds like a contradiction until you’ve lived it.

The fast fix became mine to keep. When the twenty-minute version of the four-hour problem is worth the same to the client, I’m paid for what I know, and I have every reason to know more. The tools I’ve built to make rescues faster would never have existed on an hourly meter.

What it costs

Honesty demands the other side. Some projects lose money. A “small fix” turns out to be three problems wearing a coat, and the number I quoted is the number, so I eat the difference. It happens less than you’d guess, because of the diagnosis habit, but it happens. I’ve decided that’s the right place for the risk to sit. I’m the one who can see the code; the client can’t. The person with the information should carry the uncertainty.

It also means saying no to work I can’t scope. “Just keep going and bill me” is an offer I turn down, politely, because the thing that makes it attractive to the client is the thing that makes it bad for them.

The one rule that came out of it

The price doesn’t move. Ever. Not when it takes longer, not when I find something else, not when the plugin’s author stopped answering emails in 2021. If more work is needed than was quoted, that’s a new, separate quote the client can decline. Anything else is hourly billing wearing a fixed-price badge.

I don’t think hourly is immoral. I think it’s a habit the industry inherited from law firms, and it’s the wrong habit for work where the outcome is what’s being bought. Every project on this site is priced the other way, and after this many, I can’t imagine going back.

If you're here, it isn't a quick one

Need it built? Engineered, not assembled.

Custom themes, plugins, and integrations coded to WordPress standards, with a fixed price before we start.

Plugins & integrationsfrom $1,499
Site builds$3,499 – $14,999
You ownEverything
pricingopinionfixed price
Found a mistake, or a step that didn't work? Write me