Core services
Enterprise Data Extraction

Scalable web, app and AI-powered collection across 40+ countries.

All 58 services →
New 2026
AI Training Data

Corpus building with provenance and opt-out compliance.

Learn more →
Free pilot
24-hour sample

We run collection on your own sources before you commit.

Get a sample →
58Services
40+Countries
DEVELOPER

Ready-Made Scrapers

Pre-built for top platforms. Self-serve, no setup.

View All →
TRY FREE

API Playground

Test endpoints instantly. No credit card.

Start Free →
28Tools
2SDKs
icons Delivery & SDKs
Streaming Crawl API Scheduler Realtime Alerts Webhook Delivery 🐍 Python SDK 💚 Node.js SDK
Need it managed instead?

Fixed monthly retainer, named engineer, no per-request metering.

Managed Data API →
HOT

Case Studies

How brands use Actowiz, with named outcomes.

Read →
FREE

Sample Datasets

Real output, no signup.

Download →
NEW

ROI Calculator

Model the return on a data engagement.

Calculate →
UK Grocery Loyalty Pricing Data Capture

The Client

A pricing-intelligence business building a product around UK grocery — the market where, more than almost anywhere, the loyalty price has quietly become the real price. When the majority of a supermarket's promotional volume moves at Clubcard Price, Nectar Price, or More Card Price, a dataset that captures only the standard shelf price is describing a market that increasingly doesn't exist at the till. The client understood this precisely, which is why their engagement with Actowiz Solutions began not with a full production order but with a sample — a verification step before commercial scoping, targeting the exact field that makes or breaks UK grocery data: member pricing, captured correctly.

This case study is worth documenting for two reasons: it's a clinic in what UK grocery pricing data actually requires, and it shows how a sophisticated buyer de-risks a data engagement — by testing the hardest field first, and asking the one technical question most buyers forget to ask.

The Challenge

UK Grocery Loyalty Pricing Challenge

The client's sample brief was specific, and every specification pointed at a genuine difficulty:

  • Loyalty pricing is a distinct field, not a discount. The core requirement: capture standard price, member/loyalty price, and promotional price as three separate fields — member price null where none exists, promotional price distinguished from both. This sounds simple and is the crux of the entire problem. On a UK grocery product page, these prices appear in different components, with different labels (Clubcard Price, Nectar Price, More Card Price), sometimes layered (a promotional price and a member price on the same product), and a pipeline that collapses them into one "price" field destroys exactly the signal the client needed. Getting the three-way distinction right, per chain's different presentation, is the engagement.
  • Three chains, three loyalty schemes, three page structures. Tesco's Clubcard Price, Sainsbury's Nectar Price, and Morrisons' More Card Price each present differently, on differently-built sites. A unified schema had to capture the same logical fields from three distinct presentations without losing each scheme's specifics.
  • Price-per-unit is mandatory for grocery comparison. As in any grocery data, price-per-unit (per litre, per kg, per 100g, per wash) is essential — and it must be captured or computed consistently, and ideally captured for each price type so member-price-per-unit is comparable across chains.
  • Search-driven scope with completeness. The brief specified running defined search terms per chain and returning all matching products per term — plus a targeted set of products currently on loyalty price across any category. This is a search-completeness requirement: return everything matching, not a first-page sample.
  • And the question that revealed a serious buyer: ID stability. The client asked, explicitly, whether the product identifiers returned would be stable across refreshes — would the same product carry the same ID in next week's data? This is the single most important and most overlooked question in recurring price data. An ID that changes between crawls makes time-series analysis impossible: you cannot track a product's price over time if you can't reliably say "this is the same product as last week." That the client asked it upfront signalled they were scoping a real production time series, not a one-off snapshot — and it deserved a real, honest answer, not reassurance.

The Actowiz Solution

1. The three-way price model, per chain.

The heart of the engagement: extraction logic tuned per chain to correctly identify and separate standard price, loyalty price (Clubcard/Nectar/More Card, captured with its scheme label), and promotional price — as three distinct fields, with member and promotional prices null where genuinely absent, and layered cases (member + promo on one product) represented correctly rather than flattened. This three-way model, validated against each chain's specific presentation, was exactly the field the client's sample existed to verify.

2. Full required-field schema.

Every record delivered with the client's specified fields: product identifier, chain, product title, brand, pack size, standard price, member/loyalty price (separate, null where none), promotional price (distinguished from both), price-per-unit, direct product-page URL, stock availability, category, and capture timestamp — in the client's preferred JSON (CSV available), the complete record as specified.

3. Search-completeness execution.

The defined search terms run per chain with all matching products returned per term (not a first-page sample), plus the targeted loyalty-priced product set per chain across categories — delivered with the completeness the brief required, so the sample genuinely represented the chains' matching assortment.

4. Price-per-unit rigour.

Price-per-unit captured/computed consistently and, where the client needed comparison, aligned to the member price too — so loyalty-price-per-unit was comparable across the three chains, the genuinely useful comparison in a loyalty-driven market.

5. The honest ID-stability answer.

Rather than a marketing reassurance, we gave the client the real engineering answer their question deserved: which identifier we return (the retailer's own stable product identifier where exposed, resolved from the product URL/page), why that ID is stable across refreshes (it's the retailer's persistent product key, not a position- or session-derived value), the specific cases where it can change (product relisting, catalogue restructures) and how those are handled, and — crucially — that our recurring feeds are built to maintain a consistent internal product key that survives retailer-side changes, so the client's time series stays joinable even when a retailer reshuffles. This answer, more than the data itself, was what the sample was really testing.

6. Crawl-transparency metadata.

Per the brief's request, the sample stated, per chain, exactly when it was crawled — capture timestamps per record and a per-chain crawl-window summary — so the client knew the data's vintage and freshness precisely, and could judge it as the point-in-time snapshot it was.

7. Compliance.

Public catalogue and pricing data only; no personal or loyalty-account data (the loyalty price is public on the product page; no member accounts, no personal data involved); GDPR-conscious posture per our compliance framework; per-record lineage.

Sample Structure (Illustrative)

Product record (sample, as delivered):
{
  "product_id": "tesco-284729103",
  "id_stable": true,
  "chain": "tesco",
  "title": "Tesco British Semi Skimmed Milk 2 Pints 1.13L",
  "brand": "Tesco",
  "pack_size": "1.13L (2 pints)",
  "standard_price": 1.45,
  "loyalty_price": {"scheme": "Clubcard", "value": 1.25},
  "promo_price": null,
  "price_per_unit": {"standard": "1.28/ltr", "loyalty": "1.11/ltr"},
  "url": "https://www.tesco.com/groceries/en-GB/products/284729103",
  "availability": "in_stock",
  "category": "Fresh Milk",
  "captured_at": "2026-08-11T07:20:00+01:00"
}
Per-chain crawl summary (sample):
Chain Loyalty Scheme Crawled (window)* Search Terms Loyalty-Priced Set ID Stability
Tesco Clubcard Price 11 Aug, 07:00–07:40 BST 6 terms, all matches 20+ Retailer product key (stable)
Sainsbury's Nectar Price 11 Aug, 07:45–08:30 BST 6 terms, all matches 20+ Retailer product key (stable)
Morrisons More Card Price 11 Aug, 08:35–09:15 BST 6 terms, all matches 20+ Retailer product key (stable)

Sample data — illustrative of deliverable format.

Engagement Metrics (Representative)

Metric Value*
Chains (sample) 3 (Tesco, Sainsbury's, Morrisons)
Loyalty schemes captured Clubcard, Nectar, More Card
Price fields per record 3 distinct (standard / loyalty / promo) + per-unit
Search terms per chain 6, all matches returned
Loyalty-priced verification set 20+ per chain
ID stability Retailer product key, consistent-key maintained across refreshes
Delivery JSON (client schema) + crawl-transparency metadata
Time to sample delivery Days

Representative engagement figures — illustrative of project structure.

The Outcome

The client got exactly what a well-designed sample delivers: verification of the hard thing. The three-way price model — standard, loyalty, and promotional as distinct, correctly-populated fields across three different loyalty schemes and three different site structures — was proven on their own specified search terms and loyalty-priced set. This was the field their entire product depended on, and the sample demonstrated it worked, per chain, with the null-handling and layered-case correctness that separates a usable loyalty-price dataset from a misleading one.

The ID-stability answer was, by the client's own framing, the deciding factor. Because we answered it honestly and specifically — which ID, why it's stable, when it can change, and how our consistent-key approach protects their time series through retailer-side changes — the client could scope their production time series with confidence rather than discovering an ID-drift problem three months into a longitudinal dataset. That honesty, delivered at the sample stage, is what earns the production engagement: a buyer scoping recurring price data is really buying reliability over time, and the sample proved it.

The crawl-transparency metadata closed the loop: the client knew precisely when each chain was captured and could judge the sample as the point-in-time reference it was. The sample did its job — it verified the pipeline on the client's terms — and set up the commercial scoping for the full production programme (more UK chains, Aldi/Lidl coverage, with and without member pricing) on a foundation of demonstrated capability rather than promised capability.

Why This Pattern Repeats

UK grocery — and increasingly grocery markets everywhere with loyalty-tiered pricing — cannot be understood without capturing member pricing correctly, as a field distinct from standard and promotional price. And any recurring price dataset lives or dies on identifier stability. The transferable design: a rigorous multi-way price model tuned per retailer's presentation, complete search-driven collection, price-per-unit across price types, an honest and engineered answer to ID stability, and crawl-transparency metadata — proven on a sample before production. The loyalty price is the real price now; capturing it correctly, with joinable IDs over time, is the whole game.

Frequently Asked Questions

Why capture loyalty price as a separate field from standard and promotional price?

Because in UK grocery the loyalty price (Clubcard, Nectar, More Card) is increasingly the price most volume actually transacts at — and collapsing it into a single "price" field destroys the exact signal that matters. Standard, loyalty, and promotional must be three distinct, correctly-populated fields.

Are the product IDs stable across refreshes?

We return the retailer's persistent product key (resolved from the product page/URL) and maintain a consistent internal key across refreshes, so the same product carries the same ID week to week — the prerequisite for any price time series. Cases where retailer IDs can change (relisting, restructures) are handled to preserve joinability.

Is loyalty-account or personal data involved?

No — the loyalty price is displayed publicly on the product page. No member accounts, no personal data; public catalogue and pricing data only, handled per our compliance framework.

Can this scale beyond three chains?

Yes — the same model extends across UK chains including Aldi and Lidl, with and without member pricing. This sample is the verification step before that production scope. Contact Actowiz Solutions to scope UK grocery price coverage.

Social Proof That Converts

Trusted by Global Leaders Across Q-Commerce, Travel, Retail, and FoodTech

Our web scraping expertise is relied on by 4,000+ global enterprises including Zomato, Tata Consumer, Subway, and Expedia — helping them turn web data into growth.

4,000+ Enterprises Worldwide
50+ Countries Served
20+ Industries
Join 4,000+ companies growing with Actowiz →
Real Results from Real Clients

Hear It Directly from Our Clients

Watch how businesses like yours are using Actowiz data to drive growth.

1 min
★★★★★
"Actowiz Solutions offered exceptional support with transparency and guidance throughout. Anna and Saga made the process easy for a non-technical user like me. Great service, fair pricing!"
TG
Thomas Galido
Co-Founder / Head of Product at Upright Data Inc.
2 min
★★★★★
"Actowiz delivered impeccable results for our company. Their team ensured data accuracy and on-time delivery. The competitive intelligence completely transformed our pricing strategy."
II
Iulen Ibanez
CEO / Datacy.es
1:30
★★★★★
"What impressed me most was the speed — we went from requirement to production data in under 48 hours. The API integration was seamless and the support team is always responsive."
FC
Febbin Chacko
-Fin, Small Business Owner
icons 4.8/5 Average Rating
icons 50+ Video Testimonials
icons 92% Client Retention
icons 50+ Countries Served

Join 4,000+ Companies Growing with Actowiz

From Zomato to Expedia — see why global leaders trust us with their data.

Why Global Leaders Trust Actowiz

Backed by automation, data volume, and enterprise-grade scale — we help businesses from startups to Fortune 500s extract competitive insights across the USA, UK, UAE, and beyond.

icons
7+
Years of Experience
Proven track record delivering enterprise-grade web scraping and data intelligence solutions.
icons
4,000+
Projects Delivered
Serving startups to Fortune 500 companies across 50+ countries worldwide.
icons
200+
In-House Experts
Dedicated engineers across scrapers, AI/ML models, APIs, and data quality assurance.
icons
9.2M
Automated Workflows
Running weekly across eCommerce, Quick Commerce, Travel, Real Estate, and Food industries.
icons
270+ TB
Data Transferred
Real-time and batch data scraping at massive scale, across industries globally.
icons
380M+
Pages Crawled Weekly
Scaled infrastructure for comprehensive global data coverage with 99% accuracy.

AI Solutions Engineered
for Your Needs

LLM-Powered Attribute Extraction: High-precision product matching using large language models for accurate data classification.
Advanced Computer Vision: Fine-grained object detection for precise product classification using text and image embeddings.
GPT-Based Analytics Layer: Natural language query-based reporting and visualization for business intelligence.
Human-in-the-Loop AI: Continuous feedback loop to improve AI model accuracy over time.
icons Product Matching icons Attribute Tagging icons Content Optimization icons Sentiment Analysis icons Prompt-Based Reporting

Connect the Dots Across
Your Retail Ecosystem

We partner with agencies, system integrators, and technology platforms to deliver end-to-end solutions across the retail and digital shelf ecosystem.

icons
Analytics Services
icons
Ad Tech
icons
Price Optimization
icons
Business Consulting
icons
System Integration
icons
Market Research
Become a Partner →

Popular Datasets — Ready to Download

Browse All Datasets →
icons
Amazon
eCommerce
Free 100 rows
icons
Zillow
Real Estate
Free 100 rows
icons
DoorDash
Food Delivery
Free 100 rows
icons
Walmart
Retail
Free 100 rows
icons
Booking.com
Travel
Free 100 rows
icons
Indeed
Jobs
Free 100 rows

Latest Insights & Resources

View All Resources →
thumb
Blog

How the US Grocery Price Inflation Tracker 2026 Helps Retailers Manage Rising Food Costs and Pricing Decisions

Track the US Grocery Price Inflation Tracker 2026 to monitor food price trends, category changes, and inflation insights for smarter decisions.

thumb
Case Study

How We Helped a Retail Brand Leverage Sobeys and Walmart Retail Data for Assortment and Pricing Optimization

Discover how Sobeys and Walmart retail data scraping helps brands track prices, products, promotions, and assortment for smarter retail decisions.

thumb
Report

Zomato Restaurant & Menu Data Intelligence Report 2026

Zomato Restaurant & Menu Data Intelligence Report 2026 reveals restaurant, menu, pricing, ratings, and food delivery trends for smarter decisions.

Start Where It Makes Sense for You

Whether you're a startup or a Fortune 500 — we have the right plan for your data needs.

icons
Enterprise
Book a Strategy Call
Custom solutions, dedicated support, volume pricing for large-scale needs.
icons
Growing Brand
Get Free Sample Data
Try before you buy — 500 rows of real data, delivered in 2 hours. No strings.
icons
Just Exploring
View Plans & Pricing
Transparent plans from $500/mo. Find the right fit for your budget and scale.

Request Free Sample Data

Our team will reach out within 2 hours with 500 rows of real data — no credit card required.

+1
Free 500-row sample · No credit card · Response within 2 hours