Hourly Pricing Across 12 UK Supermarkets
Author : Actowiz Solutions | Published On : 22 Jun 2026

Introduction
How a London-based consumer app went from manual price checks to 4.8 million product updates a day — with zero downtime in the first 180 days
Actowiz Solutions | Case Study | Industry: Consumer Apps / Retail Tech
Client Snapshot
The client is a London-headquartered consumer app helping UK households save on their weekly grocery shop by comparing prices across major supermarkets in real time. Backed by a seed round in 2024 and a Series A in 2026, the company set out to be the most accurate, most current grocery price comparison platform in the UK — a market with notoriously fast-moving prices and aggressive private-label dynamics.
Client name and exact retailer breakdown are anonymized at the company’s request.
The Business Challenge
In its first year, the app relied on a combination of manual price checks, weekly flyer ingestion, and best-effort scraping built by two backend engineers. As user growth accelerated past 380,000 monthly active users, three problems became existential:
- Price freshness was inconsistent. Some categories refreshed weekly, others daily, others not at all. A growing share of user-reported errors traced back to stale data.
- Coverage was patchy. Only seven of the twelve major UK supermarkets were tracked. Users repeatedly asked why Lidl, Aldi, M&S Food, Iceland, and Ocado were missing.
- Engineering capacity was being burned on infrastructure maintenance instead of product features. The in-house scraping stack broke an average of 3.4 times a week.
"Every hour of bad data was an hour of churn risk. We needed a partner who treated price data as a first-class product, not as a side gig." — Head of Product
Project Scope
| Dimension | Coverage |
|---|---|
| Retailers | Tesco, Sainsbury’s, Asda, Morrisons, Aldi, Lidl, Co-op, Waitrose, M&S Food, Iceland, Ocado, Amazon Fresh UK |
| Postcode coverage | All UK postcode districts, with store-anchored pricing where retailers expose it |
| Products tracked | Approximately 168,000 active SKUs across all 12 retailers |
| Refresh cadence | Hourly on promotion-sensitive categories, every 4 hours on long-tail SKUs, daily on assortment |
| Field depth | Selling price, was-price, loyalty-card price, multi-buy promo, in-stock flag, unit price |
| Delivery | REST API with sub-200ms p95 latency + nightly Parquet to client S3 bucket |
Solution Architecture
1. Postcode-anchored crawler fleet
Actowiz deployed a distributed crawler fleet anchored to representative postcodes across all UK regions, capturing store-level pricing where retailers expose it (notably Tesco and Sainsbury’s) and chain-level pricing where they do not. Crawlers ran on residential IPs with mobile-app traffic patterns to maintain stability against anti-bot systems.
2. Loyalty-pricing capture
Clubcard prices on Tesco and Nectar prices on Sainsbury’s were captured as a second price field alongside the everyday price. This single capability differentiated the client’s app from every competitor in the market.
3. Real-time promotion engine
Multi-buy mechanics ("3 for £5", "2 for £1.50"), BOGOs, and percentage-off offers were parsed into a structured promotion schema so the client app could surface the cheapest equivalent basket, not just the cheapest unit price.
4. Self-healing schema monitoring
Each retailer module ran continuous schema validation. Any deviation from the expected response shape triggered an engineering alert before user-visible errors could spread.
5. Two delivery channels
A low-latency REST API powered the live in-app comparison experience. A nightly Parquet dump replicated the full dataset into the client’s data warehouse for analytics, personalization, and CPI-style historical analysis.
Implementation Timeline
| Phase | Activities | Duration |
|---|---|---|
| Discovery & pilot | Schema design, sample delivery on Tesco + Sainsbury’s + Asda | Weeks 1–2 |
| Core rollout | Remaining 9 retailers, loyalty price capture, promotion parser | Weeks 3–6 |
| Cut-over | API live, in-app integration, parallel run versus legacy stack | Weeks 7–8 |
| Hyper-care | Daily SLA monitoring, schema drift triage, optimization | Weeks 9–12 |
Results in the First 180 Days
- 4.8 million product price points refreshed per day, up from 380,000 with the legacy stack — a 12.6x increase in data throughput.
- Retailer coverage grew from 7 to 12 of the UK’s major grocery chains, with Lidl, Aldi, M&S Food, Iceland, and Ocado added in the first 10 weeks.
- Zero unplanned downtime on the production data feed in the first 180 days. Schema drift was detected and patched proactively in 14 separate instances before any user-facing error.
- User-reported price accuracy complaints dropped 71 percent quarter-on-quarter.
- In-app session length grew 28 percent, attributed by the product team to the addition of loyalty-card pricing and the new "cheapest basket" recommendation.
- Engineering hours redirected: approximately 1,100 hours per quarter previously consumed by scraper maintenance moved to product feature work.
- The client closed its Series A on the strength of the data moat — investors cited Actowiz-powered freshness and coverage as a differentiator in due diligence.
"Actowiz turned price data from our biggest operational risk into our biggest product strength." — CTO
Why It Worked
- Treating data as a product, not a script. SLAs, schema versioning, and proactive monitoring were table stakes — not stretch goals.
- Loyalty pricing as a differentiator. Capturing what other comparison tools missed gave the client a marketing story and a measurable UX uplift.
- Engineering offload. Letting the client team stop maintaining scrapers was as valuable as the data itself — it converted into product velocity.
- Promotion intelligence, not just prices. Surfacing the cheapest basket required structured promotion data, not raw price lists.
Learn More >> https://www.actowizsolutions.com/uk-supermarket-price-comparison-app.php
Originally published at https://www.actowizsolutions.com
