Pricing is the hard part
Nobody writes about this. Here's where the money in a day rate actually goes.
Every developer who bills their time, directly or through somebody else, is part of answering “what do we charge for this,” repeatedly, under uncertainty, with real consequences, and mostly without being told they’re doing it.
And there’s almost nothing written about it. I went looking properly, across a lot of blogs by people who do this for a living, and found one post about raising prices and then a wall of silence. Meanwhile there are 400 posts about which bundler to use.
So this is my attempt, with the caveat that I’m a developer and not a business owner. I don’t set the rate card. What I’ve had for the last couple of years is a seat in the room where the number gets built, which is a more useful vantage point than I expected, because the number turns out to be mostly assembled out of things developers say.
Why nobody writes about it
Two reasons, I think, and they compound.
Money is genuinely taboo in a way that technical opinion isn’t. Publishing “I charge X” invites every client who paid less to feel cheated and every peer who charges more to feel smug, and there is no version of the sentence that doesn’t cost you something.
And being wrong about pricing is embarrassing in a specific and personal way. If I publish a bad opinion about CSS, I was wrong about CSS. If I publish that I put three weeks on something that ate seven, I’ve published something about my judgment, and that feels like it’s about me rather than about a subject.
Which is a shame, because it’s the thing developers most need and have least access to. Nearly everyone I’ve worked with has spent years handing over numbers that quietly became prices, without ever being shown what happened to them afterward, and every one of them read their misses as a personal failing rather than a structural one.
The arithmetic nobody shows you
Here’s the single most useful thing in this post and it’s just sums.
You’re in a scoping call. Somebody asks how long the checkout work will take. You say “about three weeks,” meaning it, having considered it for roughly four seconds.
You have just priced the job. Not estimated it, priced it. What happens next is that your three weeks gets multiplied by a rate nobody has told you, adjusted by a margin you’ve never seen, and sent to a client as a number with your name invisibly underneath it.
The rate is not your salary, and the gap isn’t what you think. This is where most of the resentment I’ve watched comes from. A client is billed something like three times what the developer costs, and the reflexive read is that somebody is taking an enormous cut.
They’re mostly not. Roughly where a billable day goes:
what the client pays = $1,600
the developer, fully loaded ≈ $610/day worked
...but only ~65% of days are billable,
so per *billable* day they cost ≈ $940
share of everyone who never bills anybody ≈ $330
rent, insurance, software, hardware ≈ $170
margin ≈ $160
Utilization is the whole game. You don’t bill every working day. Standups, reviews, the meeting about the other project, the afternoon lost to a broken staging environment, the fix you did for free because it was faster than the conversation about whether to charge for it. 65% is a good year. The rate already assumes a specific amount of that, which means an unusually bad month isn’t just annoying, it’s a number somebody has already promised.
And the estimate is where all the risk actually sits. The rate was fixed months ago by somebody in a spreadsheet. The margin was fixed with it. The only variable left on the day is how long you said it would take, so the entire commercial exposure of a project rests on a sentence a developer says in a meeting, in under five seconds, usually knowing none of the above.
I’m not claiming those are anyone’s real numbers, and they’ll be wrong for your market. The point is the shape, and the shape is that the developer holds the one term nobody has explained to them.
People anchor their day rate on their old salary divided by 250 and add a bit, which lands at roughly half of what it needs to be.
What each model optimizes
Hourly or daily. Simple and honest, and it contains a straightforward conflict of interest: you’re paid more for taking longer, and every efficiency you gain reduces your income. It also caps you at hours times rate, forever, and it invites the client to watch the clock rather than the outcome. I still use it for open-ended work, because it’s the fairest model when nobody knows the shape of the job.
Fixed price. The client loves it, because certainty is worth a lot to them. Every scrap of risk is yours. That’s fine if the scope is fixed, and the scope is never fixed, which is the entire subject of a post I wrote in 2021. Fixed price plus a scope written as a list of nouns is the most reliable way I know to lose money on a project.
If you do fix a price, the exclusions list is the thing that makes it survivable.
Value-based. Charge a fraction of what it’s worth to them. There’s a consultancy literature about this and it works in a narrow band: when the value is measurable and attributable, like a conversion improvement on a shop with real volume. For a brochure site for a firm of surveyors there is no number, and attempts to construct one are transparent and slightly insulting. I’d be skeptical of anyone who says this is always the answer.
Retainer. Predictable for both sides, aligns you with the thing continuing to work rather than with hours, and it’s the only model where I’ve felt like a professional rather than a supplier. It’s also the hardest to sell, which I wrote about at length in 2022.
Your rate isn’t a claim about your skill
The thing that took me longest to believe.
Two teams of identical ability, correctly, charge different amounts, because a rate is a function of the client’s alternatives, the overhead standing behind the person doing the work, utilization, risk, and how specialized the job is. Not of how good anybody is.
Which means “am I worth this?” is the wrong question and it’s the one everybody asks, at 2 am, before a number goes out. The right question is whether the number covers your costs and reflects what this work is worth to this client relative to what else they could do.
I find that freeing, because the wrong question has no answer and produces paralysis, and the right one is arithmetic.
What I do with the number now
Three things, all of which took embarrassingly long to arrive at.
Never say it in the room. Same as with estimates and for the same reason. “Let me look at that properly and come back to you this afternoon” has never once been refused, and the gap between a four-second number and a 40-minute number is routinely a factor of two.
Give a range with its reason attached. Not “three weeks,” but “three weeks if their payment provider’s sandbox behaves like it did last time, five if it doesn’t, and I can find out which by Thursday.” That’s a more useful sentence for whoever is assembling the proposal, and it moves the uncertainty out of my head and into a document where somebody can actually price it.
Ask what happened to it. This is the one I’d push hardest. For years I handed numbers into a void and never learned what became of them. Now I ask afterward what the job sold for and what it actually cost, and perhaps a third of the time the answer reframes something I’d been confident about. Nobody has ever refused to tell me. I simply hadn’t asked, and I don’t think most developers ever do, which is roughly why we’re all bad at this in the same direction.
The quote is a document
Not a number in an email.
What’s included. What’s specifically not included, which is the half that does the work. What happens when something changes, agreed in advance rather than negotiated in week nine. Payment terms. What happens if the project goes quiet for six weeks, which happens constantly and which nobody writes down, and which is how you end up holding a slot for a client who has gone silent.
Payment terms are pricing, incidentally, and people miss this. 50% up front against 30 days from completion is a real difference in what you’re actually being paid, because cash flow is what kills small firms rather than margin.
The most useful thing anybody did for me
I’d like there to be more than two posts about this in the entire field, so here’s a second one, and I’d encourage anybody who’s further along than me to write a third.
The most useful thing anybody ever did for me was somebody at a meetup in about 2017 telling me, unprompted and in a completely normal tone of voice, what their agency billed them out at. It took four seconds and it recalibrated me by about 40%, and nobody had done it before or has since.