Cross-Price Elasticity (XED): Formula, Interpretation & Real-World Values

The mathematical relationship between one product's price and another's demand

Updated 23 April 2026From the Pricing module, lesson 6: Cross-Price Elasticity
What it is

One number for how closely two products compete

Shoppers do not buy in isolation. Put the price of one thing up and some of the people who were going to buy it buy something else instead, so a price decision you make on your own product ends up as a sales result on somebody else's. Cross‑price elasticity is the single number that measures how much of that happens between any two products.

It is the percentage change in one product's sales when another product's price changes by 1%. Your own price elasticity, from Lesson 1, tells you how much volume YOU lose. This tells you how much of it turns up somewhere specific.

Unlike your own price elasticity, which is almost always negative, this one has three possible signs and they mean three different things:

  • Positive. The two products are alternatives. One gets dearer, the other sells more. Almost every pair inside a supermarket category works this way.
  • Negative. The two products are bought together. Coffee gets dearer, coffee filters sell less. Rarer, and worth spotting when it happens.
  • Around zero. No relationship worth acting on. Washing powder prices do not move biscuit sales.

The size is what you act on. A value of 0.45 between two products means they compete hard for the same shopper. A value of 0.08 means they sit in different parts of that shopper's head, and a price move on one is barely news to the other.

Formula & calculation

The calculation, in plain words and then in symbols

In words. Cross‑price elasticity is the percentage change in one product's sales, divided by the percentage change in the OTHER product's price.

Try it on a round number. A product sells 100 packs. A rival puts its price up 10%. Our product now sells 105 packs, a 5% gain. 5 divided by 10 is 0.5, so the cross‑price elasticity is 0.5. That is the whole calculation.

In symbols, written the way you will meet it in a report:

EAB =(%change in A's volume) / (%change in B's price)
Cross‑price elasticity: how A's sales respond to B's price

Read E_AB as "how A responds to B". The first letter is the product whose sales move, the second is the product whose price moved. Getting the two the wrong way round is the most common mistake with this measure, and it produces a number that is not wrong so much as about something else entirely.

Turning it into packs, which is what you actually want:

packs A gains =A's volume x EAB x B's price change %
The same number, in packs you can count

Worked, from this lesson's shelf. The store brand raises its price by 4%. When the store brand's price moves 1%, CrunchField's volume moves 0.12%, and CrunchField sells 2,000,000 packs.

2,000,000 x 0.12 x 4% =9,600 packs
What CrunchField picks up when the store brand goes up 4%

The order matters and the two directions are almost never equal. Run the same 4% the other way, with CrunchField raising price, and the store brand's number is 0.45 on a base of 3,000,000: 3,000,000 x 0.45 x 4% = 54,000 packs. Same shelf, same size of move, nearly six times the traffic.

Worked example

The whole shelf, on a 10% rise

CrunchField raises its shelf price 10%, from $4.29 to $4.72. Its own price elasticity is -1.8, so it sells 18% fewer packs: 360,000 off a base of 2,000,000. Here is where every one of them goes. Set the sandbox to +10% and you will see these exact figures.

Where it goesCross‑price elasticityTheir volumePacks they gain
Store Brand0.453,000,000135,000
SweetBite0.351,500,00052,500
Baker's Choice0.122,500,00030,000
LuxCrisp0.08800,0006,400
Category contraction136,100
Total360,000

Two things to notice, and the second one is the important one.

The store brand takes the most, and not only because its number is the highest. Its base is 3,000,000 packs, the biggest on the shelf, and the packs it gains are that base times its elasticity. A rival with a big base and a middling elasticity will take more from you than a small rival with a high one, which is why a table of elasticities on its own tells you very little. Always multiply by their volume before you rank the threat.

The largest single line is the one nobody competes for. 136,100 packs, 38% of everything CrunchField gave up, were not bought by anyone. Cross‑price elasticity measures only the packs that moved between products. A competitive review that stops there is missing the biggest number on the page.

Practitioner insight

Where the number comes from, and how much to trust it

You will rarely measure this yourself, so most of the skill is knowing how good somebody else's number is. Four sources come up again and again, and they are not equally reliable.

Sales data from tills, run through a statistical model. This is the best you will get. Two to three years of weekly sales by store, with promotions, seasonality and distribution changes separated out first. It gives you the whole table at once, and it needs a skilled analytics team, either yours or one you pay for.

A price experiment, which is cleaner and more expensive. Move the price in a set of test stores, hold it steady in matched control stores, and read the difference between them. There is nothing to untangle afterwards, because you built the comparison in. What it costs you is the margin you give up in the test stores while it runs.

Household panel data, which tells you who rather than how many. It follows the same shoppers over time, so you can see which of them left you and what they bought instead. Weaker on the size of the effect, much stronger on the reason for it.

Your category team's judgment, which is better than people expect and worse than they use it for. Ask three experienced category managers to rank who takes your volume and they will usually get the order right. Ask them for the number itself and they will not. So use their ranking to pick which pairs are worth measuring properly, then measure those.

Three things go wrong often enough that you should ask about them by name.

Promotions still sitting in the data. If two brands happened to be on deal in different weeks, the model reads that as shoppers switching and the number comes out too high. This is the most common reason an elasticity looks implausible.

A window that is too short. Shoppers do not switch the week the price moves. They switch when the pack they already have at home runs out, which in most grocery categories is four to eight weeks later.

Distribution that moved at the same time. If a rival gained 200 stores in the same quarter it cut price, the model gives all the credit to the price and none to the extra shelves.

Related concepts

Continue exploring

Use it

Put this concept to work

See Cross-Price Elasticity Formula in action

RGM Academy lets you pull the levers yourself in an interactive simulator, with a senior AI RGM strategist coaching every decision you make.

Unlock the full Cross-Price Elasticity lesson

Or see what a team rollout includes