Against Flat Rate Projects

If you're a freelance web worker, then you may have run into this scenario before:

Prospective Client: I think I'd like to work with you! What's your hourly rate?
You: Great! My hourly rate is $X.
Prospective Client: Oh, that's a bit more than we can afford. Would you consider doing the project for a flat fee?
You: ...

First off, let me point out the obvious error in reasoning here: you can't say that an hourly rate is too expensive until you know how long the project is going to take. What if I can make your Groupon clone in 2 hours? The cost of the project could end up being lower than the cost of someone who charges a lower hourly rate but takes longer to get things done. So, I gotta call bullshit on that one.

But more importantly, I want to talk about the evils of working on a project for a fixed amount. In short, I think someone always gets screwed. It's the nature of the agreement.

Flat Rate == Stand-off

When a project is agreed upon to be completed for a fixed amount of money (and it supposedly has a fixed scope, yeah right), the worker and the client have set themselves against each other.

The worker is given an incentive to complete the project in as little time as possible. The faster you work, the higher your effective hourly rate is! So, screw quality, let's get this sucker done (not that you'll think this way, but the agreement promotes thinking this way).

And consequently, the worker also will end up wanting to fight tooth and nail to not let the client change anything whatsoever about the scope of the project. The thought process there goes something like,

"The client wants a little lightbox widget to view larger versions of photos? Well, that doesn't take very long, but I won't get paid any more for it, and it wasn't part of the initial agreement. What do I doooooo?"

At that point, as the worker you either stick to your guns and say no, or you say yes and effectively give away a little of your time for free.

On the other side, the client now knows exactly how much they're paying, and they will want to get as much as possible for that amount of money. When they change their minds about aspects of the project (as all clients do, hey it's natural), they'll be confronted with a worker that either says "no, no, no", or a worker that says "yes", begrudgingly, and resents them just a little more with each new request.

So by the end of the project, either the worker has given more time than they planned to, and effectively devalued their time, or the client paid more than they would have if the worker had been paid hourly. Or maybe, just maybe, it worked out just right. That's rare.

How I Think You Should Do It


  • Do your work for an hourly rate.
  • Give your clients good estimates, with a low and a high number as a range for the cost.
  • Find parts of the project scope that are vague, and talk them out and make them more specific.
  • Tell the client that you won't exceed the estimated price so long as there isn't a significant change in scope to the project.
  • Communicate about cost and progress over time as the project goes on.
  • If the scope is creeping, talk to the client about it and give them an idea of how much more the upper-end of the estimate needs to be to accommodate these changes.


Stop asking for a flat fee for your projects (I know, you won't). Yes, it's a little scary to not know exactly how much your project is going to cost. But we can give you a range! And we can give you a worst-case scenario.

I think it mainly comes down to trust. A flat fee for a project feels safer. But it's an illusion, and it makes for a bad relationship.

Full Disclosure: I'll still do a fixed-rate project, once in a blue moon. But I feel dirty and a little ashamed of myself every time I do, and I always tell myself "this is the last time..."

I know I'm taking a bit of a hard line on this. And if you disagree, I'd love to hear it in the comments.


chris's picture

I tend to like project-based fees for the very reason that it is up to me to find efficiencies to try to earn myself a higher rate. I do my best to scope accurately, take into account unknowns with padding, and get the client to agree to a feature set in writing. I don't think that quality necessarily has to go out the window, and as someone who takes pride in work I do I wouldn't want to cut more than a handful of corners because of how it would reflect on *me*.

When I say flat-rate project, I am almost always bidding on it with a number I come up with. I do an estimate based on the best information available, multiply it by my desired hourly rate, and go with that. If I know for past experience that a client is high-maintenance or there are considerable unknowns, I'll sometimes apply a "risk" multiplier that bumps up the cost by a percentage. Only in a couple of cases have I been approached with "I have $X and have this work to be done." In those instances, I've either worked to trim down the scope to fit the budget or walked away. In one crazy situation, the money my client had available to do the work was more than was necessary to get the job done. I disclosed this and they said they didn't care, they just needed it done quickly and the money was already allocated. I took the money and ran. :-)

As to the trust issue, I think it's all about developing a relationship with a client - getting to know the things they really care about and working to deliver best in those areas. Some clients don't have much imagination, so I know that a whole lot of back-end work needs to be counter-balanced with some pretty visuals to look at. Other clients may be technically oriented and be most interested in receiving an immaculately commented code-base at the end. I do my best to tailor what I deliver to who I'm delivering it to. If I don't like working with someone, I'm not likely to continue that relationship. If I do like working with them, and the feeling is mutual, then I might want to go an extra mile here or there for the sake of building the relationship and securing more work later.

In the end, even the biggest clients have a ceiling on how much they can spend, and I can respect that. Having been on the flip-side of the coin recently as a client, I can tell you that nothing is more likely to fill you with liquid rage than having a vendor charging you by the hour and delivering incomplete, lackluster work that almost feels intended to prolong the engagement and keep the stream of money rolling in. Back to the relationship issue, this vendor is not one I intend to work with again in the future. Their choices have closed off future potential revenue because they weren't willing to commit against our cost ceiling and put in the effort to figure out how to make the relationship work for everyone. Their loss.

My comment has gone long and rambly. I dig your blog and the code you've released - $3 well-spent to solve a problem I was having. Thanks!

Chadwick Wood's picture

Hey Chris,

Thanks for the thoughtful response! I think your thoughts point out that at the core of any successful project you need trust and a thorough and mutual understanding of expectations.

My experience has just been that when a client wants a flat rate, some of those essentials are lacking. But I'm willing to accept that that's just my experience!