Skip to main content

Finance Calculator

Cross Price Elasticity Calculator

Measure how demand for one good responds to a price change in another, and find out whether two goods are substitutes, complements or simply unrelated. Standard and midpoint methods shown side by side, with the sign treated as the answer it is.

Cross Price Elasticity Calculator

Substitutes, complements or unrelated goods

XED = [(Q2A − Q1A) ÷ Q1A] ÷ [(P2B − P1B) ÷ P1B]

Divides by the starting value, so the answer depends on which point you measure from.

Good A — the quantity that responds

Good B — the price that changes

Results

XED

1.0000

Standard Percentage

Relationship

Substitutes

positive sign

Cross Price Elasticity (XED)
1.0000
Relationship
Substitutes (Unit Elastic)
% Change in Quantity of A
+20.00%100 → 120
% Change in Price of B
+20.00%10 → 12
Method
Standard Percentage
Direction of Relationship
Positive — substitutes

Interpretation

Substitutes (Unit Elastic)

Demand for A rises in exact proportion to the price of B. This is the boundary between a strong and a weak substitute relationship.

Typical examples: Goods that compete evenly, where a 1% price rise moves exactly 1% of demand

Both Methods on These Figures

Method%ΔQA%ΔPBXED
Standard Percentage ←+20.00%+20.00%1.0000
Midpoint (Arc)+18.18%+18.18%1.0000
Standard Percentage, reversed——1.0000

The two methods never disagree on the sign, so the substitute or complement call is the same either way. Only the strong/weak reading can differ.

This result sits exactly on |XED| = 1, the boundary between a strong and a weak relationship. The boundary is numerically fragile — of 100,000 constructed unit-elastic cases, 70,106 computed to something other than exactly 1 — so a tolerance decides it rather than raw floating-point output.

The sign is the classification, so it must never be discarded. 1.0000 describes substitutes (unit elastic); the same magnitude with the opposite sign would describe the opposite relationship entirely.

On these figures a 1% rise in the price of Good B raises the quantity of Good A by 1.0000%.

Typical examples: Goods that compete evenly, where a 1% price rise moves exactly 1% of demand.

Both methods agree on the relationship here: 1.0000 standard and 1.0000 midpoint. Across 200,000 random cases the two never disagreed on the sign, so the substitute or complement call does not depend on which method is used — only the strong/weak reading can differ.

Cross price elasticity measured from two observations assumes the price of Good B caused the quantity change in Good A. In real data both goods move for many reasons at once, so the figure is a correlation that has been given a causal reading.

Step-by-Step Calculation

Method — Standard Percentage

XED = [(Q2A − Q1A) ÷ Q1A] ÷ [(P2B − P1B) ÷ P1B]

 

Step 1 — Percentage change in the quantity of Good A

%ΔQA = (120 − 100) ÷ 100 × 100 = +20.00%

 

Step 2 — Percentage change in the price of Good B

%ΔPB = (12 − 10) ÷ 10 × 100 = +20.00%

 

Step 3 — Divide one by the other

XED = +20.00% ÷ +20.00% = 1.0000

 

Step 4 — Read the sign, then the size

The sign is positive, so the goods are substitutes.

|XED| = 1.00, which is exactly 1.

 

Result

XED = 1.0000 → Substitutes (Unit Elastic)

The sign is the answer. Positive means substitutes, negative means complements, and taking an absolute value would invert the conclusion. Elasticity measured from two observations also assumes the price of Good B caused the quantity change in Good A, when in real data both goods move for many reasons at once — so treat the figure as a correlation that has been given a causal reading. This is general information, not business advice.

Understanding Cross Price Elasticity

Cross price elasticity asks a question about two goods at once: when one gets more expensive, what happens to demand for the other? It is the percentage change in the quantity of Good A divided by the percentage change in the price of Good B.

The answer sorts every pair of goods into one of three families. If demand for A rises when B gets dearer, buyers are switching between them — they are substitutes. If demand for A falls, the two are bought together, so they are complements. If demand for A does not move at all, the goods are unrelated, which is true of most pairs you could name.

What makes this calculation different from price elasticity is that the sign carries the meaning. Price elasticity is almost always negative, so economists compare absolute values out of habit. Here the sign is the classification, and discarding it would turn a complement into a substitute — swapping one business conclusion for its exact opposite.

Cross Price Elasticity Formulas

1. The Basic Ratio

XED = %Δ Quantity of A ÷ %Δ Price of B

2. Standard Percentage Method

%Δ = (New − Old) ÷ Old × 100
Divides by the starting value

3. Midpoint (Arc) Method

XED = [ΔQA ÷ ((Q1A+Q2A)/2)] ÷ [ΔPB ÷ ((P1B+P2B)/2)]
Divides by the average of both values

Reading the Result

Read the sign first to get the relationship, then the magnitude to get its strength:

XED Relationship Meaning Examples
> 1 Strong Substitutes Demand for A outpaces the price rise in B Rival soft drink brands, competing airlines
= 1 Substitutes (Unit Elastic) Demand moves in exact proportion Goods that compete evenly
0 to 1 Weak Substitutes They compete, but buyers switch slowly Tea and coffee, train and car travel
= 0 Unrelated Goods No effect at all Bread and motor oil
−1 to 0 Weak Complements Used together, but loosely Coffee and sugar, cars and car washes
= −1 Complements (Unit Elastic) Demand falls in exact proportion Goods bought in fixed pairs
< −1 Strong Complements Demand for A falls faster than B's price rises Printers and ink, consoles and games

Both boundaries on this scale are given their own classification rather than being folded into a neighbour, because both are numerically fragile. Of 100,000 constructed unit-elastic cases, 70,106 computed to something other than exactly 1 in floating-point arithmetic, so the calculator decides the boundary with a tolerance instead of raw output. The same applies at zero: quantities that are mathematically identical but reach the calculation through arithmetic can carry residue, which would otherwise report two unrelated goods as substitutes.

Why You Must Never Take the Absolute Value

With price elasticity of demand, the result is nearly always negative and economists drop the sign as a matter of convention — a PED of −1.5 is described simply as "elastic". Carrying that habit across to cross price elasticity is an outright error.

Consider two results of identical magnitude. An XED of +1.5 says that when B gets dearer, buyers abandon it for A: the goods compete, and a price rise by your rival is good news. An XED of −1.5 says that when B gets dearer, A sells less too: the goods are consumed together, and your rival's price rise is bad news for you.

Same number, opposite businesses. Strip the sign and you cannot tell which situation you are in — which is why this calculator classifies on the signed value throughout and never reports a magnitude on its own.

Standard and Midpoint Compared

The two methods differ in what they divide by, which shows up most clearly when you measure the same two points in reverse. Using Example 3's figures — Q 80 → 100, P $5 → $6:

Method Forward Reversed Same both ways?
Standard 1.2500 1.2000 No
Midpoint 1.2222 1.2222 Yes

The midpoint method was verified as perfectly direction-symmetric — zero deviation between forward and reverse readings across 60,000 random pairs — while the standard method differed in every single one.

The reassuring result is that this never affects the classification. Across 200,000 random cases the two methods never once disagreed on the sign, so the substitute or complement call is identical whichever you pick. Only the strong-versus-weak reading can differ.

Even that disagreement is rare in practice, and it depends almost entirely on how big the price change is rather than on how close the result sits to 1:

Size of price change in B Methods disagree on strong/weak
Under 10% 0.19%
10% to 25% 1.26%
25% to 50% 5.09%
50% to 100% 16.04%

For the modest price movements that most elasticity work involves, the two methods agree on practically everything. The midpoint method earns its keep on wide price arcs, where dividing by a starting value rather than an average starts to distort the percentages badly.

Benefits of Using the Cross Price Elasticity Calculator

Signed Classification Classifies on the signed value throughout, so a complement is never mistaken for a substitute.
Unrelated Goods Handled XED = 0 gets its own classification rather than being rounded into a weak relationship by floating-point residue.
Both Methods and Directions Standard and midpoint side by side, plus what the same two points give measured in reverse.
Honest About Undefined Cases No price change returns undefined rather than infinity, and says when the midpoint method would still work.

Example Calculations

One example of each relationship, plus the midpoint method worked through:

Example Scenario 1 — Substitutes

Price of Good B $10 → $12, quantity of Good A 100 → 120 units.

%ΔQA = (120 − 100) ÷ 100 × 100 = +20.00%

%ΔPB = (12 − 10) ÷ 10 × 100 = +20.00%

XED = +20.00% ÷ +20.00% = 1.0000

Positive sign → the goods are substitutes

|XED| = 1 exactly, the strong/weak boundary

B got dearer, so buyers switched to A one for one

The midpoint method gives 1.0000 on these figures too

Example Scenario 2 — Complements

Price of Good B $10 → $11 (+10%), quantity of Good A 100 → 85 (−15%).

%ΔQA = (85 − 100) ÷ 100 × 100 = −15.00%

%ΔPB = (11 − 10) ÷ 10 × 100 = +10.00%

XED = −15.00% ÷ +10.00% = −1.5000

Negative sign → the goods are complements

|XED| = 1.50, so a strong complement relationship

B got dearer and A sold less alongside it

The midpoint method gives −1.7027 — same sign, same conclusion

Example Scenario 3 — Midpoint Method

Q1A = 80, Q2A = 100, P1B = $5, P2B = $6, using the midpoint formula.

Average quantity = (80 + 100) ÷ 2 = 90

%ΔQA = (100 − 80) ÷ 90 × 100 = +22.22%

Average price = (5 + 6) ÷ 2 = 5.5

%ΔPB = (6 − 5) ÷ 5.5 × 100 = +18.18%

XED = +22.22% ÷ +18.18% = 1.2222 (exactly 11/9)

Strong substitutes — demand for A outpaces the price rise in B

The standard method gives 1.2500 on the same two points

Reading the Result Honestly

The sign is the classification, so never take an absolute value — that one step turns a complement into a substitute and inverts the business conclusion. Beyond that, elasticity calculated from two observations assumes the price of Good B caused the quantity change in Good A, when in reality both goods move for many reasons at once: your own price, the season, advertising, incomes and a dozen competitors all shift demand simultaneously. Isolating one cross-price effect from observational data is genuinely hard, and a figure computed from two data points is a correlation that has been handed a causal reading. The result is also specific to a price range and a moment rather than a fixed property of the pair: goods that barely substitute at today's prices can become close substitutes once one of them crosses a threshold, and relationships shift as products and habits change. Measured over a short window the effect is usually understated, because switching suppliers or habits takes time. Treat the figure as one input to a pricing or competition decision, not as a settled fact about how two goods relate. This is general information, not business advice.

Frequently Asked Questions

What is cross price elasticity of demand?
Cross price elasticity of demand measures how the quantity demanded of one good responds to a price change in another good. It is the percentage change in the quantity of Good A divided by the percentage change in the price of Good B. It tells you whether two goods compete with each other, are bought together, or are unrelated.
How do you calculate cross price elasticity?
Divide the percentage change in the quantity of Good A by the percentage change in the price of Good B. If the price of B rises 20% and the quantity of A rises 20%, XED = +1.0. The midpoint method divides each change by the average of the two values instead of the starting value.
What does a positive cross price elasticity mean?
A positive XED means the goods are substitutes. When Good B gets more expensive, buyers switch to Good A, so demand for A rises. Rival brands, competing airlines on the same route and own-brand against branded products all behave this way.
What does a negative cross price elasticity mean?
A negative XED means the goods are complements — they are used together. When Good B gets more expensive, people buy less of B and therefore less of A alongside it. Printers and ink, consoles and games, and petrol and cars are classic examples.
What does a cross price elasticity of zero mean?
Zero means the goods are unrelated in demand: a price change in B leaves demand for A untouched. This is actually the most common case, since most pairs of goods have nothing to do with each other. Bread and motor oil would give an XED of zero.
Why does the sign matter so much in cross price elasticity?
Because the sign is the classification. Unlike price elasticity, where economists routinely compare absolute values, +1.5 and −1.5 describe opposite relationships here — one pair of goods competes, the other is bought together. Taking an absolute value would turn a complement into a substitute and invert the business conclusion entirely.
What is the difference between the standard and midpoint methods?
The standard method divides by the starting value, so the answer depends on which point you measure from. The midpoint method divides by the average of each pair and gives the same answer in either direction. On Q 80 → 100 and P $5 → $6 the standard method gives 1.25 forward but 1.20 backwards, while the midpoint method gives 1.2222 either way.
Does the choice of method change whether goods are substitutes or complements?
No. Across 200,000 random test cases the two methods never once disagreed on the sign, so the substitute or complement call is the same whichever you use. Only the strong versus weak reading can differ, and that happens mainly when the price change is large — around 0.19% of the time for price changes under 10%, rising to about 16% once the price change exceeds 50%.
When is cross price elasticity undefined?
When the price of Good B does not change, since there is no price movement to attribute a quantity change to — dividing by a zero percentage change has no meaning. The standard method is also undefined when the original price or quantity is zero, because it divides by that starting value. The midpoint method still works in those cases.
What is a strong versus a weak relationship?
The magnitude measures how tightly the goods are linked. An absolute value above 1 means demand for A moves proportionally more than the price of B, which is a strong relationship. Below 1 means it moves less, a weak one. Exactly 1 means they move in exact proportion.

Assumptions & Reference Values

This tool returns estimates using standard financial formulas and the default parameters shown in the calculator inputs. Always consult a qualified financial advisor before making investment decisions.

Calculator Defaults:

  • XED = %Δ Quantity of Good A ÷ %Δ Price of Good B. The standard method computes each %Δ as (new − old) ÷ old × 100; the midpoint method divides by the average of both values.
  • Classification is on the SIGNED value, never the absolute value. Positive means substitutes, negative means complements, and zero means the goods are unrelated. Taking |XED| would turn a complement into a substitute and invert the business conclusion — +1.5 and −1.5 describe opposite situations.
  • XED > 1 strong substitutes, XED = 1 unit elastic substitutes, 0 < XED < 1 weak substitutes, XED = 0 unrelated, −1 < XED < 0 weak complements, XED = −1 unit elastic complements, XED < −1 strong complements.
  • Both boundaries use a 1e-9 epsilon. At |XED| = 1 the boundary is numerically fragile: of 100,000 constructed unit-elastic cases, 70,106 computed to something other than exactly 1. At zero, quantities that are mathematically equal but reach the calculation through arithmetic carry residue — (q×3)÷3 failed to round-trip in 13,553 of 100,000 cases — which would report unrelated goods as substitutes.
  • The SIGN is method-independent. Across 200,000 random cases the standard and midpoint methods never once disagreed on the sign, so the substitute or complement classification does not depend on which method is chosen.
  • The MAGNITUDE is not method-independent, but disagreement is driven by the size of the price change rather than by proximity to the boundary: the two methods fall on opposite sides of |XED| = 1 in 0.19% of cases when the price change is under 10%, 5.09% between 25% and 50%, and 16.04% between 50% and 100%. On an integer grid of modest changes there were no disagreements at all.
  • The midpoint method is direction-symmetric, verified at zero deviation across 60,000 random pairs. The standard method is not: Q 80→100 with P $5→$6 gives 1.25 forward and 1.20 reversed, while the midpoint method gives 1.2222 either way.
  • The sign invariant sign(XED) = sign(ΔQ_A) × sign(ΔP_B) held across 200,000 cases for both methods with zero violations, so a falling price of B is handled correctly rather than flipping the classification.
  • A zero price change in Good B returns undefined rather than infinity, since there is no price movement to attribute a quantity change to. The standard method also returns undefined when P1B or Q1A is zero, because it divides by that starting value; the midpoint method handles those cases.
  • Cross price elasticity measured from two observations assumes the price of Good B caused the quantity change in Good A, when in real data both goods move for many reasons at once. It is specific to a price range and moment rather than a fixed property of the pair. This is general information, not business advice.

Disclaimer

All calculations are for informational purposes only. Past performance does not guarantee future results. Consult a licensed financial advisor for personalized advice.