Skip to content
Price IntelligencePrice Intelligence home

Metrics

The price index formula, and how to read price position

A price index expresses one price as a percentage of a reference price, where 100 means exactly at the reference. The price index formula is your price divided by the reference price, multiplied by 100. The reference is usually the average of in-stock competitor offers for the same matched product, and the weighting changes the answer.

Ashesh DhakalFounder9 min read
Start free trialOpen the live demo14 days, no credit card, cancel in one click.

The price index formula is your price divided by a reference price, multiplied by 100. At 100 you are exactly at the reference. At 96.4 you are 3.6 percent below it, and at 110.7 you are 10.7 percent above it. The reference is normally the average of in-stock competitor offers for the same matched product. Everything difficult about the metric happens after that: which offers count, how SKUs are weighted, and what an index number does not tell you.

Price index
A ratio expressing one price as a percentage of a reference price. In retail price monitoring, the reference is usually the average of competitor offers for the same product, so an index of 100 means at market, below 100 means cheaper than market, and above 100 means more expensive than market.

The price index formula

Price index = (your price / reference price) x 100

reference price is one of:
  mean of in-stock competitor offers      most common
  median of in-stock competitor offers    safer with fewer than 5 references
  lowest in-stock competitor offer        aggressive, matches how shoppers compare
  one named competitor                    a rival index, not a market index

Category index = weighted mean of SKU indexes
  weight by revenue    default for pricing decisions
  weight by units      what a typical unit sold experiences
  weight by margin     exposure of profit dollars
  no weighting         only for a like-for-like basket

Single-SKU example. Northline Supply lists a cordless drill kit at $229.00. Three competitors have it in stock at $239.00, $234.00 and $239.50. The reference is (239.00 + 234.00 + 239.50) / 3 = 712.50 / 3 = $237.50. The index is 229.00 / 237.50 x 100 = 96.4, so the drill kit is priced 3.6 percent below the market average.

Mean or median, and why it matters at small reference counts

With three or four references, one outlier controls the mean. Take a pressure washer you list at $379.00 with competitor offers at $389.00, $399.00 and a marketplace seller clearing stock at $199.00. The mean is (389.00 + 399.00 + 199.00) / 3 = 987.00 / 3 = $329.00, which gives an index of 379.00 / 329.00 x 100 = 115.2. You look 15 percent expensive. The median of those three offers is $389.00, which gives 379.00 / 389.00 x 100 = 97.4. You are slightly cheap. Same day, same data, an 18-point difference decided by one liquidation listing.

A full worked example, with the arithmetic shown

Six SKUs from the fictional Northline Supply demo tenant, each with three in-stock competitor offers from Voltbay, Harborline and PrimeDeck. Every index below is the SKU price divided by the market average of those three offers, times 100.

Step one: per-SKU price index against the mean of in-stock competitor offers
SKUOur priceCompetitor offers (in stock)Market averagePrice index
Cordless drill kit, 20V$229.00$239.00 / $234.00 / $239.50$237.5096.4
Wet-dry shop vacuum, 12 gal$149.00$154.00 / $149.99 / $145.00$149.6699.6
Pressure washer, 2200 PSI$379.00$389.00 / $399.00 / $384.00$390.6797.0
Drill bit set, 29 pc$34.50$29.99 / $31.00 / $32.49$31.16110.7
Vacuum filter, 2 pack$24.00$19.99 / $21.50 / $20.00$20.50117.1
Hose extension, 25 ft$39.00$34.00 / $33.50 / $36.00$34.50113.0

Check one row yourself: 34.50 / 31.16 = 1.1072, so the drill bit set indexes at 110.7, meaning it is 10.7 percent above the market average.

Read the column and the story writes itself: three big items priced below market, three small accessories priced well above it. That is a deliberate and extremely common structure. Now watch what happens when it gets summarised into one number.

Step two: the same six SKUs with volume and revenue, and each SKU's contribution to the revenue-weighted index
SKUPrice index30-day units30-day revenueShare of revenueContribution
Cordless drill kit, 20V96.4120$27,48044.5%42.86
Wet-dry shop vacuum, 12 gal99.690$13,41021.7%21.61
Pressure washer, 2200 PSI97.045$17,05527.6%26.76
Drill bit set, 29 pc110.740$1,3802.2%2.47
Vacuum filter, 2 pack117.155$1,3202.1%2.50
Hose extension, 25 ft113.030$1,1701.9%2.14
Total380$61,815100.0%98.3

Contribution is the SKU index multiplied by its share of revenue. The contributions sum to 98.34, which rounds to a revenue-weighted index of 98.3. Small differences from hand arithmetic are rounding in the share column.

Price position on a live market rangeA horizontal price scale showing four in-stock competitor prices and your own price. Your price sits above the market low, and the gap between your price and the lowest in-stock competitor is the number that drives a repricing decision. Out-of-stock listings are excluded from the range.IN-STOCK COMPETITOR PRICES — OUT-OF-STOCK LISTINGS ARE EXCLUDEDVoltbay$219PrimeDeck$232Harborline$251Casa & Kin$264You · $243gap $24Market lowMarket highPrice index 98.6 · position: above the low, below the average
Index and position read off the same market range.

Weighting: four answers from the same six SKUs

The unweighted average of those six index values is (96.4 + 99.6 + 97.0 + 110.7 + 117.1 + 113.0) / 6 = 633.8 / 6 = 105.6. The revenue-weighted index is 98.3. The same six products, the same day, the same competitor prices, and the two numbers disagree about whether this business is 5.6 percent expensive or 1.7 percent cheap.

Four ways to summarise the same six SKUs, and what each one is actually answering
MethodHow it is computedResultWhat it answersHow it misleads
Unweighted mean of indexesAverage the six per-SKU index values105.6Where a randomly chosen SKU sits relative to marketTreats a $24.00 filter and a $379.00 pressure washer as equally important
Basket ratio, one unit of eachSum our prices ($854.50), divide by the sum of market averages ($863.99)98.9What it costs to buy one of everything here versus elsewhereWeights by price level, so expensive items dominate whether or not they sell
Volume-weightedWeight each index by units sold: 39,155.5 / 380103.0What the average unit sold experiencesOverweights cheap high-unit accessories, which are usually the highest-index items
Revenue-weightedWeight each index by revenue: 6,078,591 / 61,81598.3Where the dollars actually sitUnderweights low-revenue perception SKUs that shape how expensive customers think you are

A fifth option, weighting by gross margin dollars, answers a different question again: how much profit is exposed to a competitor move. Use it when the decision is about margin defence rather than price perception.

Two things follow. First, an unweighted index is only defensible on a deliberately constructed like-for-like basket, such as twenty comparable items in one category at similar price points. Across a mixed catalog it reports the tail. Second, a mean of ratios is not the same as a ratio of means, which is why the basket ratio of 98.9 sits far from the unweighted 105.6. If someone hands you an index without telling you the weighting, you have been handed a number, not a measurement.

Pricing analytics — price index by SKU

ProductYour priceMarket avgIndex60-day trend
Aurora H7 Noise-Cancelling Headphones$249.00$258.9096.2
Aurora H7 Noise-Cancelling Headphones — Black$275.83$272.00101.4
Aurora H7 Noise-Cancelling Headphones — Midnight Blue$275.90$278.1999.2
Aurora H7 Noise-Cancelling Headphones — Sand$273.31$265.46103.0
Aurora Buds Pro$149.00$162.5391.7
Aurora Buds Pro — Black$165.68$173.0295.8

Index = your price ÷ average in-stock competitor price × 100. Above 100 means you are priced above the market.

The index over time with the weighting stated on the chart, so nobody has to guess which of the four numbers above they are reading.

In-stock filtering, and the rules that keep an index honest

A competitor price on a product they cannot ship is not a price. It is a historical artefact displayed on a page. Including out-of-stock offers in a reference average systematically drags the reference toward whatever the cheapest unavailable listing happens to say, which makes you look more expensive than you are and invites a price cut you did not need.

  • Exclude out-of-stock offers from the reference entirely. Not down-weight, exclude. An offer you cannot buy has no bearing on a purchase decision.
  • Require a minimum reference count. Two in-stock offers minimum, three preferred. Below that, drop the SKU from the index rather than reporting a comparison against one rival dressed as a market.
  • Report the basket size on every index. If 220 of 260 SKUs qualified this week and 244 qualified last week, the index moved partly because the basket moved.
  • Compute a constant-basket index for period comparison. Restrict to SKUs present in both periods, then report both numbers. The full-basket index tells you where you are; the constant-basket index tells you what changed.
  • Cap reference age. A price collected nine days ago does not belong in this morning's average. Reference age should be shorter than the reporting interval, which makes refresh frequency a reporting decision and not only a data decision.
  • Decide advertised price or delivered price, then never mix. If a competitor shows $199.00 plus $14.00 shipping and you show $209.00 delivered, an advertised-price index says you are 5.0 percent expensive and a delivered-price index says you are 1.9 percent cheap. Both are computable. Only one can be your standard.

Check the shipping arithmetic above, because it is the kind of thing that gets waved through in a meeting. Advertised: 209.00 / 199.00 = 1.0503, so 105.0. Delivered: 209.00 / 213.00 = 0.9812, so 98.1. That is a 6.9-point swing produced entirely by a definition.

Reading price position mix

An index is a single number, and single numbers hide distributions. Price position mix is the companion metric: the share of your SKUs that are the lowest offer available, matched within a tolerance band, or above the market. Define the comparison explicitly, because position against the lowest competitor offer and position against the market average produce different pictures of the same catalog.

Take the six SKUs above and measure position against the lowest in-stock competitor offer, with matched defined as within 1.0 percent. The drill kit at $229.00 beats the lowest offer of $234.00, so it is lowest. The pressure washer at $379.00 beats $384.00, so it is lowest. The shop vacuum at $149.00 sits above the lowest offer of $145.00 by 2.8 percent, so it is above, not matched. The three accessories are all above. That gives lowest on 2 of 6, matched on 0, above on 4 of 6.

By SKU count that reads badly: lowest on only 33.3 percent of the catalog. Weight it by revenue and the same data reads differently. The two SKUs where you are lowest carry $27,480 + $17,055 = $44,535 of the $61,815 total, which is 72.0 percent of revenue. You are the cheapest option on 72 percent of the money and the most expensive option on a handful of accessories. Both sentences are true, and only one of them should drive a pricing decision.

Price position — full catalogue

34
17
57
  • Lowest in market34
  • Matched17
  • Above market57
  • No live data2

Competitor price changes per SKU, last 60 days

  • Audio11.4changes / SKU
  • Small appliances8.1changes / SKU
  • Power tools6.7changes / SKU
  • Home & kitchen5.2changes / SKU
Position mix by SKU count and by revenue side by side, because the two views frequently disagree and the disagreement is the finding.

Eight ways a price index quietly lies

  1. 1Unweighted across a mixed catalog. The failure shown above: 105.6 versus 98.3 on identical data. If a report does not state its weighting, treat the number as unverified.
  2. 2A basket that changes between periods. Add 40 accessories to monitoring and the index rises even though no price changed. Always report basket size, and always compute a constant-basket comparison alongside.
  3. 3Out-of-stock references included. Unavailable listings drag the reference down and make you look expensive against products nobody can buy.
  4. 4Bad matches in the reference set. One 6 quart pot matched to your 8 quart pot puts a phantom low price into the average. See the product matching guide for how to score and review matches before they reach a report.
  5. 5Advertised price compared against delivered price. Shipping, on-page coupons, membership pricing and bundle inclusions all change what is being compared. Pick one definition and enforce it in the pipeline, not in the analysis.
  6. 6Stale references. Averaging today's price against a competitor price collected last week is a comparison across time presented as a comparison across the market. Cap reference age below your reporting interval.
  7. 7Averaging averages. Computing sub-category indexes and then averaging those indexes reproduces the unweighted problem one level up. Weight at every level of aggregation, using the same weight.
  8. 8A market of one. An index against a single competitor is a rival comparison. It can be useful and it should be labelled as what it is, never as a market index.

Setting a target index band

An index is a diagnostic, not a goal. Nobody should be asked to hit 100. What works is a band per SKU role, reviewed quarterly, with the repricing rules that enforce the band carrying hard floors underneath them.

Example target bands by SKU role. Numbers are illustrative starting points, not benchmarks.
SKU roleExample target bandReasoning
Price-perception and advertised items97 to 100These set the belief that governs the whole basket. Being visibly above market here is expensive in ways the index will not show you.
Revenue spine, contested98 to 101Close enough to stay in consideration, with room to hold price when a competitor runs a short promotion.
Mid-tail, uncontested100 to 104Comparison shopping is lighter here, and the margin is worth more than the index point.
Accessories and attachment items105 to 112Bought alongside a main item where the shopper is not re-comparing. This is where the unweighted index gets its bad news from, and usually where it should be ignored.
Private label and exclusivesNo bandNo comparable offer exists, so any index computed for them is manufactured. Exclude them from the basket entirely.

Size the prize before you chase a band. On the six-SKU example, moving the revenue-weighted index from 98.3 to 99.3 is a price increase of roughly 1.0 percent, because 99.3 / 98.3 = 1.0102. On $61,815 of monthly revenue that is about $628 more revenue in the month, and because unit costs do not change, close to all of it lands as gross margin. That figure holds only if unit volume holds, which is an elasticity question rather than an index question, and the honest version of this calculation always states that condition.

From there, the band becomes the input to a rule rather than a slide. Rules that chase an index need a margin floor, a cost floor, a MAP floor and a maximum daily change underneath them, so that a broken match or an outlier reference can never move a real price beyond a boundary you set. That mechanism is covered on repricing software, and the reporting side lives in pricing analytics. If you want to see position mix on your own catalog before committing to any of it, the price position analyzer runs on a CSV.

See your weighted price index on your own catalog

Revenue-weighted and unweighted side by side, in-stock filtering applied, basket size on every report, with the SKUs driving the number listed underneath. 14-day free trial, no credit card.

Frequently asked questions

What is the price index formula?

Price index equals your price divided by a reference price, multiplied by 100. If you charge $229.00 and the average in-stock competitor offer is $237.50, the index is 229.00 / 237.50 x 100 = 96.4, meaning you are 3.6 percent below the market average. The reference can be a mean, a median, the lowest offer, or one named competitor.

What does a price index of 100 mean?

It means your price equals the reference price exactly. Below 100 you are cheaper than the reference, above 100 you are more expensive. A category index of 98.3 means that, weighted by whatever basis the report uses, your prices sit 1.7 percent below the reference. The weighting basis matters as much as the number itself.

Should a price index be weighted by revenue or by units?

Revenue weighting is the default for pricing decisions because it reflects where the dollars are. Unit weighting answers a different question, what the average unit sold experiences, and it tends to overweight cheap accessories. Margin weighting is better when the question is profit exposure. Unweighted averages are only safe on a deliberately comparable basket.

Why does my price index look different from my team's?

Almost always one of four things: a different weighting basis, a different reference (mean versus median versus lowest), different in-stock filtering, or a different basket of SKUs. Two people can compute 105.6 and 98.3 from identical competitor prices. Agree the definition in writing before comparing numbers.

Should out-of-stock competitor prices be included in a price index?

No. A price on a product that cannot be purchased has no effect on a buying decision, and including it drags the reference average down so you appear more expensive than you are. Exclude unavailable offers, require at least two in-stock references before a SKU enters the index, and drop the SKU when the reference count falls below that.

What is price position mix?

The distribution of your SKUs across lowest, matched and above, relative to a stated reference. It complements the index by showing the shape behind the single number. Report it by SKU count and by revenue, because a catalog can be lowest on only a third of its SKUs while being lowest on the large majority of its revenue.

How often should a price index be reported?

Weekly for most mid-market catalogs, on a constant basket, with the basket size stated. Daily reporting invites reaction to noise and to basket changes rather than to price changes. Whatever the interval, the age of the underlying competitor prices should be shorter than the reporting interval, or the index describes a period that has already passed.

Start monitoring in the next ten minutes

Connect your store, match your catalogue and get your first competitor comparison in the same session.

14 days, no credit card, cancel in one click.