UK Online Shelf-Price Index: how it is measured
The method behind the UK Online Shelf-Price Index. Field definitions are in the data dictionary.
What it measures
The index follows the posted online shelf prices of the same products at Tesco, Sainsbury's, Asda and Aldi from one week to the next. It is not what shoppers paid, it is not the ONS Consumer Prices Index (CPI), and it is not a forecast. Offers that need a loyalty card, and multibuy promotions, are left out of the published figures.
Method
Each week the online catalogue of each retailer is read as any visitor sees it, and each week's snapshot is compared with the week before. A product is matched by the retailer's own product id, and only products present in both weeks with a price in both are used.
For each retailer and each broad product class, the weekly change is the geometric mean (a Jevons index) of the products' price ratios: equal weight to each product within a retailer-class cell, equal weight to each retailer, no spending weights.
- Suspect moves. A price that multiplies by 3 or more in one week (a rise of 200% or more), or falls to a third or less (a fall of 66.7% or more), is treated as a probable pricing error, or the correction of one, and left out of the index. It is listed in the weekly report.
- Pack-size changes. When a product's pack size changes, the change in its price per unit is used. If that cannot be worked out, the product is left out that week.
- Thin cells. A cell (one retailer and class) with fewer than 20 matched products that week keeps last week's level and is marked as not updated (status
carried, orinsufficientwhen nothing matched). - Classes. There are 16 classes, assigned by keyword rules on the retailer's category names and product names, so they are approximate. A class row can rest on fewer than four retailers: if a retailer has too few matched products in a class that week, its cell is left out of that class's figure, and the row's matched count and status show it.
- The headline always includes all four retailers, and a week is not published unless it does.
Base weeks and the restart
The weekly changes are chained from a base of 100. The first series has its base at ISO week 2026-W39 and covers weeks 39 and 40. The collection of week 41 (11 October 2026) did not complete, so week 41 is skipped and the index will restart with a new base of 100 at 2026-W42, which has not been published yet (the latest published week is 2026-W40); the first weekly change of the new series is for week 43 (notice). The earlier levels stay in the dataset as a closed series, there is no level for week 41, and four-week changes are empty across the gap. Each vintage's meta item names its base.
There is no year-on-year figure, because the series starts in 2026.
Coverage and limits
- About 73,000 products a week in the weekly snapshots (73,745 in the week 40 snapshot of 4 October 2026). Matched counts are shown on every row.
- Only what the retailers show online is covered: no in-store or regional prices.
- A product relaunched under a new identifier drops out of the match, so its price change is missed.
- When a retailer's snapshot covers far fewer products than the week before, the meta names it (
coverageWarnings); the week is still published only if all four retailers contribute to the headline. Weeks are never backfilled or interpolated. - Barcode coverage, completeness and run success for the weekly snapshots behind the index are on the data quality page; how the snapshots are collected is in the methodology, and a short recording of the scraper is on the demos page.
- Morrisons joins from November 2026. The index continues on the four-retailer basis, with Morrisons reported separately until a full year of five-retailer data exists.
Release and cadence
Intended weekly, normally on Monday, when a complete week is available. The first vintage was published on Monday 5 October 2026 (the 2026-W40 figures, with 2026-W39 as the base). Each week is added to the public dataset uk-shelf-price-index as a vintage and is never revised afterwards; a correction, if ever needed, would be a new revision that is clearly marked. The licence is CC BY 4.0.
Download the full series: CSV or JSON. Only aggregates are published: no product names, ids, URLs or prices.
Changelog
- 5 October 2026: first vintage, 2026-W40, with the 2026-W39 base rows (every level 100, status
base). - 12 October 2026: week 41 skipped; the index will restart with a new base at 2026-W42, not yet published (notice).
- After 2026-W40: the combined "food and soft drinks" figure, which appeared among the class rows as
food-soft-drinksin 2026-W39 and 2026-W40, is published as a subtotal (record typessubtotalandretailer_subtotal). The 16 classes and their rules are unchanged, and W39 and W40 stay as published.
Announced changes are posted on the notices page before they ship. Announced changes to the UK Supermarket Price Scraper, which collects the snapshots: matchKey changes and the default retailers change.
Cite
Yappman Data, UK Online Shelf-Price Index, CC BY 4.0, vintage [week], https://data.yappman.com/shelf-price-index/. The index page fills in the latest vintage.