Here’s a problem that’s come up many times in my life, in one form or another: when you do something for someone, how much should you charge? There are many things that could be a said about negotiation, cost estimation, and so on, but I just want to share one simple insight based on three related but distinct words: cost, value and price.
- Cost is how much it costs you to do the work.
- Value is how much the work is worth to the customer.
- Price is how much money the customer gives you in exchange for the work.
For example, if a software shop is interested in taking on a contract to build a web-site, then the cost is however many man-days’ work it’s going to take times the daily cost; the value is whatever money the new site enables the customer to save; and the price of course is whatever the two parties agree between themselves.
Estimating costs and values is an art in itself. But if the software shop knows what it pays to keep its office rented, heated, lit and connected to the network, what it’s paying in salaries and taxes, etc., it should be able to make a fair estimate of what it costs to supply a day of programmer time; and the programmers should be able to do at least a half-way decent job of estimating how long the work will take. And if the customer is going to use the web-site to sell merchandise and it expects to shift n additional units at a marginal profit of £x each, it can estimate value.
So here is the very simple observation: everyone is happy when cost < price < value. You need to pick a price that is somewhere between the cost to the provider and the value to the customer. If the price is less than the cost, then the income from the work isn’t worth the provider’s time; if it’s more than the value, then it’s not worth the customer’s while. But if it’s somewhere in the middle, then the benefit to each (price−cost for the provider, value−price for the customer) is positive.
(An obvious corollary: if the cost is greater than the value, then there is no price that will satisfy both parties, and the project should be abandoned.)
Assuming that the value is more than the cost, then, what should the price be? It’s tempting to think it should be right in the middle: (value+cost)/2. That way, the provider and customer get the same benefit of (value−cost)/2.
But suppose a one-man shop can put a site together for £10,000, and it’s going to be worth £1,000,000 to a big corporate customer. Good luck to the one man as he attempts to explain to the customer why they should pay him £505,000. They’ll say they’re getting about twice the value of what they’re paying, while the lucky (or brilliant) programmer is getting more than fifty times what it’s going to cost him. You can (and as a programmer, I would) make a case that none of this is any of the customer’s business: if they’re getting back twice what they pay, then they’re getting a good deal, whatever’s happening on the other end of the transaction.
Or you could say that maybe each party should get the same ratio of return. In that case, you’d pick the price as the geometric mean, rather then arithmetic mean, of the value and cost. It would be sqrt(value*cost), which in this case would be £100,000. Now the programmer’s getting paid ten times what the work cost him, and the customer’s getting ten times the value of what they paid. Is that fairer? Well, under this regime the customer is £900,000 up on the deal whereas the programmer is only making £90,000, so there is a good argument that this is ten times better a deal for the customer.
I don’t have a strong feeling about which is the fairer here. Does anyone out there? Is all this stuff Economics 101 (a subject that I never studied)? Is there in fact a well-known The Right Way to set a price?
And of course all this is rather utopian: it depends on having perfect knowledge; or at least, imperfect but complete knowledge. You need to know both estimates, cost and value, in order to derive a price based on them. In reality, customers rarely tell their providers what value they expect to get from a project (though providers often quote a day-rate which gives the customer some idea of the provider’s costs). So neither party has the information they need to calculate either the arithmetic or geometric mean of the two amounts.
Worse, it’s often the case that customers have a fixed ceiling on the amount of money they can spend, and simply cannot go above that amount, whatever the available value.
So all of this becomes a guessing game. But even at that low level of certainty, this is well worth thinking about. If I figure that a project is going to cost me £10,000 to do, and my impression is that it’s probably worth about £30-50,000 to the customer, then at least that gives me some space to play in when coming up with a price to offer.
Update (25 November 2010)
Thanks to Brian D., who pointed out in a comment that Joel Spolsky covered a similar subject — and, frankly, did a much better job of it — in his 2004 column Camels and Rubber Duckies. You should have read that instead of this.