Guide

What is price elasticity, and how do you calculate it?

Price elasticity tells you how much your sales move when your price moves. This guide covers the formula, a worked example on two years of weekly sales, the mistakes that give the wrong answer, and how to turn the result into a pricing decision.

In short

  • Price elasticity is the percentage change in units sold divided by the percentage change in price.
  • An elasticity of -1.5 means a 1% price rise loses about 1.5% of volume, so a 10% rise loses about 15%.
  • Below -1 (for example -2), a price rise loses revenue. Between 0 and -1, a price rise gains revenue. Profit also depends on your margin, so a price rise can lose revenue and still make more profit.
  • To measure it from your own sales, you have to take out everything else that moved sales at the same time: weather, holidays, promotions and the season. Skip that step and the answer can come out with the wrong sign.

Contents

1. The formula

Two percentage changes, one divided by the other

Price elasticity of demand compares how much the quantity sold changed with how much the price changed.

Price elasticity = % change in units sold ÷ % change in price

Say you raise the price of a can from £1.00 to £1.10, a rise of 10%, and weekly sales fall from 10,000 cans to 8,500, a fall of 15%. The price elasticity is -15% ÷ 10% = -1.5.

For bigger changes, use the midpoint method

Percentage changes depend on where you start. Going from £1.00 to £1.10 is a 10% rise, but going back from £1.10 to £1.00 is a 9.1% cut, so the simple formula gives a different answer depending on the direction. The midpoint method divides each change by the average of the before and after values, so the answer is the same both ways.

% change in units = (units after - units before) ÷ average of the two
% change in price = (price after - price before) ÷ average of the two

For the same can: units change by -1,500 ÷ 9,250 = -16.2%, price changes by £0.10 ÷ £1.05 = 9.5%, and the elasticity is -1.70. Statistical models use a third version based on logarithms, which gives almost exactly the same answer as the midpoint method here (-1.71) and treats every 1% price change the same way. That is the version our calculator reports.

2. Reading the number

What the number tells you

ElasticityDescribed asVolume after a 10% price riseRevenue after a 10% price rise
-0.5Inelastic-4.7%+4.9%
-1.0Unit elastic-9.1%0.0%
-1.5Elastic-13.3%-4.7%
-2.5Very elastic-21.2%-13.3%

Most single brands are elastic. Two large reviews of published studies found average brand-level elasticities of -1.76 across 367 estimates (Tellis, 1988) and -2.62 across 1,851 estimates (Bijmolt, van Heerde and Pieters, 2005).

A whole category is less elastic than any one brand in it. When one brand's price rises, many shoppers switch to another brand instead of buying fewer drinks, so the brand loses more volume than the category does. Make sure the figure you use matches the decision: a category elasticity understates how much one brand stands to lose.

A positive elasticity, where sales rise with price, is almost never real. It usually means something else drove sales at the same time, as the next example shows.

3. A worked example

Why a simple before-and-after gives the wrong answer

We use the example product from our free calculator: a Pink Lemonade 330ml can. Its sales are made up, but they follow real UK weather and bank holidays, and they were built with a true price elasticity of -1.7, so we can check each method against the right answer.

There are 104 weeks of sales, from September 2024 to August 2026. The regular price went up twice, from £0.62 to £0.66 in April 2025 and to £0.69 in April 2026, and the can was on promotion in 36 of the 104 weeks, at prices between £0.48 and £0.60.

Attempt 1: compare sales before and after a price rise

Take the last eight regular-price weeks before the April 2025 rise and the first eight after it.

8 weeks before20 Jan to 31 Mar 20258 weeks after21 Apr to 30 Jun 2025Changemidpoint method
Regular price£0.62£0.66+6.3%
Average weekly sales53,78965,243+19.2%
Average daily high temperature11.0°C21.1°C+10.1°C

Sales went up after the price went up, which gives an elasticity of 19.2% ÷ 6.3% = +3.1. Taken at face value, shoppers bought more because the can got dearer. They didn't: spring arrived. The weeks after the rise were 10°C warmer on average and included a bank holiday. This product sells about 2.5% more for each extra degree, so the weather alone was worth about 28% more sales, far more than enough to hide a price effect of about -10%.

Attempt 2: compare promotion weeks with normal weeks

Over the same months, from September 2024 to March 2025, the can sold an average of 56,965 a week at its regular £0.62 and 96,965 a week on promotion at £0.48.

That is a price change of -25.5% and a volume change of +52.0% on the midpoint method, an elasticity of -2.04. This time the answer is too high: it makes the can look about 20% more price-sensitive than it really is. A promotion is more than a lower price. It usually comes with a display, a leaflet or a better spot on the shelf, and those lift sales on their own. In this example the promotion support added about 13.5% on top of the price cut. In real sales data, some promotion sales are also borrowed from the following weeks, when shoppers have stocked up.

4. Doing it properly

Measure every driver at the same time

The reliable way is a regression model that explains each week's sales with price and every other driver together, so that each effect is measured while the others are held still. This is what our calculator does:

log(units) = elasticity × log(price) + promotion + temperature + bank holidays + Christmas + football + trend + seasonThe number in front of log(price) is the price elasticity.

On the Pink Lemonade sales, the model finds a price elasticity of -1.75, with a 90% likely range of -2.11 to -1.39. The true value, -1.7, is inside that range. It also measures each of the other drivers:

DriverEffect on weekly sales
Promotion weeks, on top of the price cut+13.5%
Each 1°C warmer than usual+2.5%
Bank holiday weeks+10.6%
Christmas weeks+20.1%
Big football tournament weeks+7.7%
Underlying trend, per year+4.8%

Why every driver has to be in

Here is the same model with the drivers added one at a time:

What the model includesPrice elasticity
Price only-1.87
Price and promotions+0.59
Adding temperature-1.12
Adding bank holidays, Christmas and football-1.27
Adding the trend and the season (the full model)-1.75
The true value-1.70

Leave a driver out and the price estimate soaks up its effect. Price on its own happens to land near the truth here, but only because two errors cancel out: promotions make price look stronger than it is, and the regular price rises both happened in spring, which makes price look weaker. With your own data you can't tell whether the errors cancel, which is why the model has to account for all of them, and why it should give a likely range rather than a single number.

5. Doing it in Excel

The same model in a spreadsheet

You can fit this kind of model in Excel with the LINEST function, or with the Regression tool in the Analysis ToolPak (Data, then Data Analysis, then Regression).

  1. Put one week per row, with columns for units sold, price, promotion (1 or 0), average temperature, bank holiday week (1 or 0), Christmas week (1 or 0) and big football tournament week (1 or 0). The Met Office publishes daily UK temperatures and GOV.UK publishes bank holiday dates, both free.
  2. Add a column with =LN(units) and another with =LN(price).
  3. Add a week counter for the trend (1, 2, 3 and so on) and two season columns: =SIN(2*PI()*WEEKNUM(date)/52) and =COS(2*PI()*WEEKNUM(date)/52).
  4. Run the regression with LN(units) as the Y range. For the X range, use LN(price), the promotion, temperature and holiday columns, the week counter and the two season columns, side by side. The coefficient on LN(price) is your price elasticity.
  5. For a 90% likely range, take the coefficient plus and minus 1.66 times its standard error (with about two years of weekly data).

On the Pink Lemonade sales, this recipe gives -1.75 with a likely range of -2.11 to -1.39, the same as our calculator.

LINEST lists the coefficients in the reverse order of your X columns, and returns standard errors in its second row when the last argument is TRUE. The Regression tool labels everything, so it is easier to read.

Or paste the same weekly sales into our free calculator. It matches each week to Met Office temperatures and UK bank holidays for you, fits the model in your browser, and turns the result into the money figures below. Your data is never uploaded.

6. From elasticity to a decision

Turn the number into pounds

An elasticity becomes useful when you turn it into money. For the example can, one year of sales is about 3.73 million cans and £2.27 million of revenue, at an average price paid of £0.61 including promotions. Each can costs £0.38 to make and deliver.

Price changeVolumeRevenue per yearProfit per yearProfit, likely range
-10%+20.2%+£186k-£101k-£129k to -£72k
-5%+9.4%+£89k-£44k-£59k to -£29k
+5%-8.2%-£81k+£35k+£19k to +£50k
+10%-15.3%-£156k+£62k+£31k to +£94k

The can is elastic, so a price rise loses revenue. It still makes more profit, because each can sold earns more and the cans no longer sold were only earning about 23p each. A price cut does the opposite: more revenue, less profit.

A quick break-even test

A price rise pays for itself if volume falls by less than: price rise ÷ (margin + price rise)Margin is your profit per unit as a percentage of the price.

Here the margin is 37.4% of the price, so a 5% rise breaks even if volume falls by 5 ÷ (37.4 + 5) = 11.8%. The model expects a fall of 8.2%, and even the most price-sensitive end of its range (9.8%) stays below that line. That is the kind of evidence a pricing decision needs: not just a best guess, but how sure you can be that it pays.

Before you act on it

  • Trust the model for price changes inside the range you have already charged. The further outside it you go, the less reliable it gets.
  • Retailers set shelf prices. A change to your list price doesn't always reach the shelf in full, or at the same time in every store.
  • Competitors may respond, and your other products may gain or lose sales when this one changes price. A single-product model can't see either. Our service measures both across your whole range.
7. Common mistakes

Seven ways to get the wrong answer

  • Comparing before and afterWithout adjusting for the weather and the season, the answer can even come out with the wrong sign, as in the first attempt above.
  • Reading promotion uplift as a price effectPart of a promotion's extra sales comes from displays, leaflets and stock-ups, not from the lower price.
  • Too little price movementIf your price hardly changed, no method can measure elasticity. Our calculator needs at least a 3% spread and warns below 8%.
  • Too little historyOne year is the minimum and two is better, so the model can tell the season apart from your price changes.
  • Mixing products in one seriesDifferent pack sizes, flavours or retailers each have their own elasticity. Measure them separately.
  • Ignoring the likely rangeAn estimate of -1.5 with a range of -0.5 to -2.5 can't support a confident price decision, however precise the headline looks.
  • Using a category figure for a brand decisionA category is less elastic than the brands in it, so it understates what one brand stands to lose.
8. Questions

Questions people ask

Is price elasticity always negative?

For a product's own price, almost always: people buy less of something when it costs more. A positive estimate from sales data is usually a sign that something else moved sales at the same time as the price, such as warmer weather, a promotion or a new listing.

What is a good price elasticity?

There is no good or bad value: it is a measurement, not a score. What matters is how it compares with your margin. Most single brands fall between -1 and -3.

How much data do I need?

At least 52 weeks of weekly sales, with some real price changes in them and not only promotions. Two years is better, because every season appears twice and the model can tell the season apart from your price changes.

Can I use monthly sales data?

It works less well. Two years of monthly data gives only 24 data points, and a month blends promotion weeks, hot weeks and bank holidays into one total. Weekly data is the standard for measuring price elasticity.

What is cross-price elasticity?

It measures how much one product's sales change when another product's price changes. A positive value means the two are substitutes: when one gets dearer, the other sells more. It matters for a range, because a price rise on one product can send shoppers to your other products rather than to a competitor.

Does price elasticity change over time?

Yes, usually slowly: with household budgets, with competitors' prices and ranges, and as a brand builds or loses loyalty. That is why it is worth measuring again before each pricing round rather than reusing an old figure.

Sources. Tellis, G. J. (1988), The price elasticity of selective demand: a meta-analysis of econometric models of sales, Journal of Marketing Research 25(4). Bijmolt, T. H. A., van Heerde, H. J. and Pieters, R. G. M. (2005), New empirical generalizations on the determinants of price elasticity, Journal of Marketing Research 42(2). Temperatures: Met Office Hadley Centre Central England Temperature. Bank holidays: GOV.UK. The example product's sales are made up for illustration.

Try it

Measure your own product

Paste a year of weekly sales into the free calculator and get your elasticity, its likely range and what a price change would do to your profit.