- Platform
- Web App
- Duration
- 12 weeks
- Industry
- Food & Beverage (F&B) Industry
- Read time
- 5 min read
In short
RaftLabs built an AI OCR loyalty platform for Musgrave's SuperValu and Centra supermarket chains in Ireland, acquiring 1,062 users in the first four weeks with 99.9% uptime and processing over 1,600 receipts automatically. The platform uses Google Vertex AI to validate customer receipts, checking store name, spend threshold (€10 minimum), and prohibited items without manual review. Both brands run independent campaigns from a single centralized admin interface, with automated weekly draws selecting 10 winners per store across 18 participating locations.
Musgrave Group is Ireland's largest grocery distributor, with two major retail brands: SuperValu and Centra. They wanted to build stronger customer loyalty in the Northern Ireland market through a digital prize draw campaign, but their existing process relied on staff manually verifying paper receipts. At scale, that was not going to work.
Through their agency Brandfire, they came to us to build the technical platform. The brief was clear: automate receipt verification, run independent campaigns for both brands, and handle the volume of a national retail promotion without the system going down.
We built a production-ready AI loyalty platform in 12 weeks. Customers upload a receipt to enter a weekly prize draw. AI validates the receipt against the store, the spend threshold, and a list of prohibited items, in seconds. Both SuperValu and Centra run their own branded campaigns, prize pools, and winner draws from a single admin interface. In the first four weeks, the platform registered 1,062 users and processed 1,610 receipts with 99.9% uptime.

before / after
What changed
- Every receipt required a person to check the store name, spend total, and excluded items by hand
- Managing two brands meant running two separate systems with no shared infrastructure
- High submission volumes during campaign launches meant staff working overtime to keep up
- Manual draws were prone to human error when selecting winners across 18 store locations
- No reliable audit trail for GDPR marketing consent across thousands of customer records
- Static seasonal themes were slow to update and inconsistent across devices
- Google Vertex AI reads every receipt automatically: store name, spend, and prohibited items, in seconds
- Both SuperValu and Centra run independent campaigns from one centralized admin panel
- The platform handles submission spikes without any manual intervention or overtime
- Automated draws select 10 winners per store per week across 18 locations with full audit logs
- GDPR-compliant registration captures explicit opt-in with timestamp and source URL for every entry
- Mobile-responsive UI adapts to seasonal campaign branding without a developer
What we had to solve
- 01
OCR that works across 18 supermarket locations
Every till produces a slightly different receipt layout. Store name, spend total, and date appear in different positions on receipts from different locations. The AI had to correctly extract all three fields across 18 stores plus identify prohibited items like fuel, tobacco, and PayPoint services. We worked through the OCR confidence thresholds with Brandfire until the system could handle edge cases, including faded thermal receipts, cropped photos, and receipts in poor lighting, without requiring manual review for borderline cases.
- 02
Two brands, one system, no data crossover
SuperValu and Centra are independent brands. Prize pools, competition windows, winner lists, and customer data had to stay completely separate. At the same time, Musgrave's team needed to manage both from one admin interface without switching between systems. We built a multi-tenant architecture where each brand has its own campaign space, its own branded URLs, and its own data isolation, all managed from a shared admin panel that brand managers could use without technical help.
outcomes
What we achieved
Promotional entries ran on manual receipt verification. Staff checking receipts one by one was the ceiling on how fast the campaign could grow.
Manual processes had no reliability guarantee. A surge of entries during a promotion meant staff working overtime to keep up. The system was the bottleneck.
Every receipt required a person to check the store name, spend threshold, and excluded items individually. The workload scaled linearly with the number of entries.
What clients say
What Nuala said after launch
Three-year average engagement. Founders and operators describing the work in their own words. No marketing varnish.

RaftLabs was outstanding at addressing our complex platform needs, delivering a stable, high-performance loyalty application that has been genuinely loved by the customers.
Running loyalty campaigns that still rely on manual verification?
the build
What we built
Behind the scenes, the platform is built around a validation engine that handles everything a human checker would do, in seconds, at any volume.
Customers upload a receipt and are entered immediately, valid or declined with a clear reason
A customer visits the campaign URL, enters their email, gives explicit GDPR marketing consent, and uploads a photo of their receipt. The AI reads the receipt immediately: store name, purchase date, total spend. If the receipt meets the rules (€10 minimum spend, correct store, no excluded items), the entry is validated and the customer is entered into that week's draw. If not, it is declined with a clear reason shown on screen.

SuperValu and Centra campaigns run independently, both managed from one dashboard
The admin panel lets Brandfire and Musgrave's team create and manage SuperValu and Centra campaigns independently. Each brand has its own seasonal creative, its own store lists, its own competition windows, and its own prize pool. Everything is separate from the customer's point of view. From the admin's point of view, it is one dashboard.

Draw takes minutes instead of hours: admins confirm and publish results
At the end of each competition window, the system runs a randomized draw selecting 10 winners per store across all 18 participating locations. Admins confirm and publish the results. A "Winners Coming Soon" placeholder shows automatically until results go live. The entire draw process takes minutes rather than hours.

Every entry has a timestamped audit trail, GDPR exports ready on demand
The admin dashboard shows live submission totals, pending validations, and approved winners in real time. Full CSV exports include email addresses, validation status, and consent flags for marketing analysis. Every entry has a timestamped audit trail for GDPR compliance.

Engagement
How we worked together
- 01Weeks 1–2
Discovery and scoping
We map the problem before writing code. Two weeks of technical audit, stakeholder interviews, and prototype — so both teams align on scope and risk before sprint one.
- 02Ongoing
Two-week Agile sprints
Each sprint ends with working software, not a status update. You review a real build, request changes, and approve before we move forward. No surprises at handover.
- 03Ongoing
Daily async updates
Slack for daily progress, Asana for task visibility, weekly video calls for decisions. You have full visibility without needing to attend every meeting.
- 04Final
Handover and warranty
Full code handover with deployment runbooks and documentation. Thirty-day warranty period for production issues at no extra cost.
stack
Why we chose this stack
- 01The customer-facing campaign pages needed fast load times on mobile and good search visibility. Next.js handles both through server-side rendering without extra infrastructure.Next.js
- 02Google's OCR is the most reliable available for varied receipt formats. We needed consistent extraction accuracy across 18 store locations producing different receipt layouts. Vertex AI handles edge cases that simpler OCR tools miss.Vertex AI
- 03A big Christmas campaign can generate thousands of submissions in an afternoon. Lambda scales to meet that spike without pre-provisioning capacity or managing servers.AWS Lambda
- 04The admin dashboard needed to show receipt validation status in real time. Hasura's GraphQL subscriptions push live updates to the dashboard without polling the database.Hasura
- 05Entry records, GDPR consent timestamps, and winner draw logs all needed audit-grade storage with reliable querying. PostgreSQL gives us the reliability and query flexibility this kind of compliance data requires.PostgreSQL
FAQs
The platform uses Google Vertex AI to scan uploaded receipt images and extract the store name, purchase date, and total spend amount. It then checks the entry against the campaign rules: minimum €10 spend, correct store, no excluded items (fuel, tobacco, PayPoint). Valid entries go into the draw. Invalid entries are declined automatically with a reason shown to the user.
A fully featured, production-ready loyalty platform of this type typically costs between $20,000 and $40,000 depending on the number of brands, validation complexity, and integrations required. See our loyalty program cost guide for a detailed breakdown.
Yes. The platform runs on AWS Lambda, which scales automatically to handle sudden submission spikes. During the first week of the Musgrave campaign, 471 users registered and 573 receipts were validated without any manual intervention or downtime.
The system checks each upload against previously validated receipts within the campaign. Duplicate submissions are detected and rejected automatically. The admin dashboard flags these so the team can see them.
Yes. We have built loyalty platforms for Aldi Ireland, Sanbra Fyffe, and Energia. We also build custom loyalty programs across healthcare, hospitality, and retail. Visit our loyalty program development page to see the full scope.
Ready to scope a receipt-validation platform for your business?
Related work
More work like this
Loyalty Rewards App for Brand Loyalty and Customer Retention
Aldi Ireland's AldiFest campaign reached 2,000+ signups and processed 5,000 receipts in the first week. Built via BrandFire in 14 weeks.
Read case study

Modernizing Loyalty for a Leading Irish Utility Provider
We rebuilt Energia's loyalty rewards platform from WordPress to Next.js in 12 weeks, migrating 300K+ user records with 99.9% uptime from day one.
Read case study
Gas Station Management Software with AI-Based OCR
AI-based OCR automates invoice processing and unifies inventory, sales, and vendor tracking across 40+ gas station locations.
Read case study







