There are many ways to structure pricing around software development work:
- Fixed price (based on time and materials)
- Hybrid (pre-paid discounted hours + hourly)
- Level billing
- Value-based pricing
- Productized services
- "Hourly not to exceed"
In the right situation, each of the above options can work as a viable pricing strategy, so long as you understand the tradeoffs involved. Each of them, that is, except for one.
"Hourly not to exceed" is the worst possible way to price your work and you should NEVER work that way.
What is "Hourly Not to Exceed"?
The idea is that you bill your client for the actual hours you work not to exceed some agreed-upon maximum amount.
For example, let's say your normal hourly rate is $100 per hour. You have a project that you estimate will take ten hours to complete. You tell the client you will charge them $100 per hour, not to exceed $1,500 (this assumes you at least have the good sense not to trust your own estimate so much that you set the cap at $1,000).
As long as the project comes in under your implicit maximum of 15 hours, you will make your full hourly rate of $100 per hour.
Of course, once you hit that max, your effective hourly rate starts to go down. And down. And down.
Why this is a Very Bad Idea™
When you purchase insurance, you pay what's called a "premium."
Premium is the word we use when pricing risk. The very concept of insurance involves the transfer of risk. We agree to pay someone else money (the insurance company) that we will never get back to avoid the risk of potentially losing even more money due to some unlikely and/or unforeseeable event.
In the "Hourly Not to Exceed" model, you are taking on all the risk of the project without receiving any sort of premium from your client.
An insurance company that gave out coverage without charging a premium large enough to cover its risk would immediately go out of business (unless it is the government; looking at you National Flood Insurance Program).
The same is true of anybody that's in the business of selling risk reduction. And, make no mistake about it, if you are using the "hourly not to exceed" model then you are "selling risk reduction" to your clients. You're just not charging them for it.
For software developers, "hourly not to exceed" is high risk with no reward.
Cover image is a scene from "Back to the Future" showing Marty McFly (left) and consummate pushover George McFly (right).