How to set a price. Or: cost, value, and price

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.


11 responses to “How to set a price. Or: cost, value, and price

  1. Gerrat Rickert

    Interesting post. The rather large elephant in the room is competition.
    What do you think the competition would charge?

    You really want:
    Cost < price < (competiton price) < value

  2. You also need to factor in the probability of the nominal value actual being realised – typically the customer will be wearing all that risk, hence they should get a greater proportion of the upside if the value is realised.

  3. Economics 101 says that prices are set by the degree of competition. The “fair” price (or anyway, the price that will be accepted) is the one that is better than the alternative for both parties.

    If there is a glut of programmers who can do the job for 10,000 pounds, then no programmer can charge significantly more than 10,000 pounds… or else the customer will simply hire someone else.

    On the other hand, if programmers are scarce and similar work is plentiful, then the customer will have to pay 1 million pounds… if they don’t, the programmer will just do a million-pound job for someone else.

    The situation may fall between these two limiting cases. In Economics 101 it is usual to assume that the amount of available programmer labor is a function increasing with price, and the amount of work on offer is a function decreasing with price. Where the two curves intersect is the market price.

  4. I don’t think Economics 101 offers much guidance to the individual programmer on what to charge, except for the pretty-obvious “what is the competition charging?” and “put yourself in the customer’s shoes, what is the highest price they will pay?”

    Perhaps the biggest way in which reality deviates from Economics 101 is that customers have imperfect information about which vendor will really deliver better value… so they are influenced by things like advertising and sales tactics. In Economics 101, customers are supposed to select the lowest bidder, but that gets up-ended if customers think (let’s suppose wrongly) that the lowest bidding programmer is “too cheap” and must not be as good as the more expensive programmer.

  5. Thanks, Richard, that all makes sense.

    Also, while the market for programmers in general is enormous, and you might think that customers have a huge choice of who to use, the reality is that there are many specialisms, and programmers who are experienced in a specific area may well be in much shorter supply. I guess there really is a huge market for more or less interchangeable financial-application Java programmers (and, conversely, a huge market of interchangeable jobs in that field); but in an area such as metasearching in libraries, both the market and the pool or talent are much smaller. So Econ 101 doesn’t apply so well.

  6. It reminds me of a story reported by E. Rather of Forth, Inc.
    When she began her business, she used to set her price offers based on the cost rather then on the value; her prices were well below her competitor’s offers. However, the customers didn’t buy her solution.
    The reason, she guesses is the one pointed by Spolky: by setting her price offers too low, she was sending a bad signal to her potential customers (cheap product = low quality product).

    I also read a long time ago something related in a book about “value analysis”. This is the same problem viewed from the buyer’s perspective: how to choose among similar products, according to functions, prices… The authors were warning the readers against the temptation to buy more expensive products just because they have more functions and the assumption that quality is related to price.

    The obvious strategy seems to set your prices slightly below the competitor’s – assuming your product has the same features. If not, the real guessing game is to estimate how much you must remove from the tag price because of a missing feature and your product, and how much you should add for an extra feature (because offering a more feature-rich product at same price as competitors may also be a bad signal).

  7. With respect to programmer specialties, there’s a trade-off there, as well. There’s very little that a programmer with experience in a specialized area can do that any other competent programmer couldn’t learn to do. So there is a trade-off between hiring an experienced programmer, who can tackle the job immediately, versus hiring a less-experienced programmer who’d need to climb the learning curve.

    Generally, the experienced programmer will be faster, and perhaps of higher quality. The less-experienced programmer would be take longer, and might make some mistakes that need to be recovered from. Which is cheaper is sometimes hard to say.

    (Of course, all of that is predicated on the question as to whether the “experienced” programmers experience is really the critical experience. It may be that he is experienced in the chosen language, and the problem at hand is constrained more by domain expertise than by language, or vice versa.)

  8. Yeah competition price is good and fine. But over here, in Spain, website-making is about as undervalued as it goes. That means, that the competition usually are people who can afford working for horrible rates nobody could ever live off, and those trying to make a living are competing with them.

    As for the value to the customer, it’s about as low, because nobody cares, really. Hence, I don’t even bother searching for customers in my own country.

  9. Pingback: Tweets that mention How to set a price. Or: cost, value, and price | The Reinvigorated Programmer --

  10. Pingback: The second stupidest thing in the world | The Reinvigorated Programmer

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.