Methodology — Stealth price hikes
We flag a “stealth price hike” when a retailer ends a temporary promotion and the subsequent regular price sits more than 5% abovethe median price of the four weeks before the promotion. In short: the promotion ends, but the “new normal” sits above the old one.
1. How is the baseline determined?
For each retailer product we look at every non-promotional price row in the 35 days before the promotion ended, excluding a 7-day buffer around the promotion itself. We require at least 2 distinct rows covering a span of at least 21 days, and take the median across them. A single possibly-mis-scraped outlier therefore cannot define the baseline.
2. Threshold
An event is only recorded when the first non-promotional price after the promotion ends is at least 1.05x the baseline. Below that we treat the change as noise.
3. Per-retailer filter rules
Some promotions are structurally different from a classic price cut — loyalty card discounts, price-match guarantees, multibuy promotions — so we exclude them at the detector layer to avoid generating false stealth-hike events when they end.
- Morrisons: promotions with the text
More Card,Price Match,Buy N for £M,Any N for £MorMeal Dealare excluded. - Sainsbury's: excluded entirely — the per-price-row Nectar signal we receive is not yet safe to publish on. Will be re-evaluated once ISS-304 lands.
- Tesco + ASDA: currently emit no live
is_promotion=truerows in our scrape data; no filter clause is needed (ISS-305). - Waitrose + UK Aldi: included with no filter; re-evaluated at the D+30 audit if false-positive rate rises.
4. Examples
Example 1 — Dirk Sana First-Aid Plasters (NL)
- Baseline (4-week median): €0.99
- Promotion price: €0.39
- New base after promo: €1.49
- Real hike: +50.5% vs the baseline.
Example 2 — Morrisons Fruit Shoot Squash 750ml (UK)
- Baseline (4-week median): £1.50
- Promotion price: £0.75
- New base after promo: £1.88
- Real hike: +25.3% vs the baseline.
5. Verification cadence
The editorial team verifies new detections weekly. If the most recent verification is older than 14 days, a notice on the public page surfaces that a new verification batch is pending. The list only shows verified events — unverified detections are structurally unreachable via the public API.
6. No retrospective backfill
Detections are forward-only from the monitor's registration date (2026-05-16). Historical events from earlier months are not automatically added; they were detected under earlier, less thoroughly tested filter rules and therefore are not publishable without per-event operator verification.
7. What is not detected?
- Cost-pass-through inflation (a commodity price rises and every retailer lifts the base simultaneously). That is not a stealth hike in our definition.
- Price-per-unit comparisons across package sizes — those belong to the shrinkflation monitor.
- Competitor benchmarking (“retailer A is more expensive than retailer B for product Z”).