What is a competitive price index? How to calculate and use it in e-commerce
How a competitive price index works in e-commerce: the formula, choosing a reference price, weighting across a catalogue and the mistakes that distort it.
Luska Research
Pricing team
A competitive price index is a single number that tells you where your price sits relative to the market for a product. It turns a messy list of competitor prices into something you can compare across products, categories and weeks. This article explains how a price index is calculated, which reference to use, how to aggregate it across a catalogue, and the mistakes that make it misleading.
The basic formula
At product level, a price index is your price divided by a market reference price, multiplied by 100:
Price index = (your price ÷ reference price) × 100
An index of 100 means you are exactly at the reference. Above 100 means you are more expensive; below 100 means you are cheaper. An index of 106 says you are 6% above the reference, which is easier to reason about than "we are 30 kr above Shop B and 12 kr below Shop C".
Note that this is not the same thing as a consumer price index published by a statistics office. Those measure price changes over time across the economy. A competitive price index measures your position against competitors at a point in time.
Choosing the reference price
The formula is simple; the choice of reference is where the judgement lies. The main options are:
Median of competitors
The middle value of the competitor prices you track. It is not pulled about by one shop running a clearance or one shop that is wildly overpriced, which makes it the most stable reference for most stores.
Average (mean) of competitors
Easy to calculate, but sensitive to outliers. If one competitor lists a product at half price because of a data error or a liquidation, the average moves noticeably and your index jumps for no good reason.
Cheapest competitor
Useful as a second figure for products where customers sort by price, such as on comparison sites. As the main reference it is fragile, because the cheapest offer is often the least representative one: an out-of-stock item, a shop with long delivery times, or a temporary promotion.
A named key competitor
Some retailers index against one dominant rival. This works when the market really is a two-horse race, but it hides what everyone else is doing.
A sensible default
A worked example
Say you sell a coffee grinder at 1,190 kr. You track five competitors, whose prices today are:
- Shop A: 1,099 kr (in stock)
- Shop B: 1,149 kr (in stock)
- Shop C: 1,199 kr (in stock)
- Shop D: 1,249 kr (in stock)
- Shop E: 549 kr (in stock)
Shop E's price looks suspicious. At less than half of everyone else's price, it is more likely to be a wrong match (perhaps the URL now points at a replacement burr set) than a real offer. Excluding it, the median of the four remaining prices is (1,149 + 1,199) ÷ 2 = 1,174 kr. Your index is 1,190 ÷ 1,174 × 100 ≈ 101.4.
If you had included Shop E, the median would have been 1,149 kr and your index about 103.6, suggesting you were more expensive than you really are. If you had used the mean including Shop E, the reference would have been 1,049 kr and your index about 113. The same shelf price can look reasonable or badly overpriced depending on how the reference is built.
Cleaning the inputs
An index is only as good as the prices that go into it. Before calculating, apply a few rules consistently:
- Exclude out-of-stock offers. A competitor who cannot sell the product today does not set today's market price.
- Exclude stale readings. Decide a freshness window, such as prices read in the last 48 hours, and drop anything older.
- Flag outliers. Prices below half or above double the median are usually wrong matches, bundles or data errors. Check them before trusting them.
- Compare like with like. Decide whether you compare prices including VAT and whether delivery costs are included, and apply the same rule to every competitor.
From product index to catalogue index
A single product's index is useful for a pricing decision. For management reporting, you usually want one number per category or for the whole shop. There are two common ways to combine them.
Simple average
Average the product indices. Every product counts equally, so a cheap accessory that sells twice a year has the same influence as your best seller. This is fine as a rough check on assortment-wide positioning.
Revenue-weighted average
Weight each product's index by its revenue (or units) over a recent period. This reflects the prices customers actually encounter when they buy from you. If your best sellers are priced at 98 and your long tail at 110, a simple average might report 107 while the weighted index reports something close to 99. The weighted figure is the better guide to how price-competitive you appear to most shoppers.
Whichever method you choose, keep it fixed. An index that changes definition every quarter cannot be compared over time.
What a "good" index looks like
There is no universally correct index. It depends on your positioning:
- Price-led shops aim for an index below 100 on high-visibility products, and accept tighter margins there.
- Mid-market shops aim for roughly 98 to 102 on comparable products, competing on range, delivery and service rather than price alone.
- Premium shops may run at 105 or above deliberately, provided the service difference is visible to customers.
More useful than a single target is a band per category, plus a rule about what happens when a product drifts outside it. A product that moves from 100 to 112 in a week deserves a look; one that has sat at 104 for a year probably does not. Price sensitivity also differs by product, which is covered in price elasticity of demand.
Common mistakes
- Mixing currencies or VAT treatments. Comparing a German competitor's price with VAT against your Swedish price without VAT produces a meaningless number.
- Changing the competitor set without noting it.Adding a discount shop to the set will lower the median and push your index up, even though nothing about your prices changed.
- Ignoring margin. An index of 95 is not a success if it was bought with a negative margin. Look at index and margin together.
- Treating comparison sites as a competitor. Sites such as PriceRunner, Prisjakt or idealo aggregate other shops' prices. They are a useful cross-check, but counting them as a competitor double-counts the shops they list.
How Luska calculates it
In Luska's price grid, the index uses 100 as the median of the competitor prices read in the last 48 hours. Readings below half or above double the median are flagged as likely wrong matches, and comparison sites are shown as reference only. The grid also shows gap to cheapest and your margin, and can be exported to CSV if you want to build your own weighted catalogue index.
See your price index for every product
Luska reads competitor prices daily and shows your index, gap to cheapest and margin side by side. Start a 14-day free trial without a card.
See competitor price monitoringFrequently asked questions
Is a price index the same as price positioning?
The index is the measurement; positioning is the target. You decide that you want to be mid-market, then use the index to check whether you are.
How many competitors do I need for a meaningful index?
Three or more in-stock prices give a usable median. With only one or two, the index is effectively a comparison against named shops and should be read that way.
Should delivery costs be included?
If customers in your category routinely compare the total cost at checkout, yes. If most shops offer free delivery above a threshold your typical basket exceeds, product price alone is usually enough. Pick one rule and apply it to every competitor.