The failure mode for grocery loyalty is a points program that rewards the same behaviour the customer was already going to do. They earn points on every shop. They redeem on whatever they feel like. The program costs money, generates no incremental revenue, and gets cancelled after 18 months when the CFO asks for the ROI.
Grocery loyalty works when it changes basket composition, steering customers toward higher-margin categories, driving visit frequency between major shops, and rewarding the purchases you actually want to shift. That requires earn rate architecture that mirrors your margin structure, not a flat rate applied to everything.
According to a McKinsey survey of grocers (April 2026), more than 80% of grocers view loyalty programs as a primary engine of value delivery. That number tells you the table stakes: loyalty is no longer optional in grocery. What it doesn't tell you is how many of those programs are actually moving basket composition versus simply rewarding loyalty that already existed.
We've built grocery loyalty for Aldi Ireland and the Musgrave Group (SuperValu and Centra in Ireland). The commercial mechanics were designed before the first line of code was written.
Capabilities
What we build
01Margin-aware earn rate engine
Points earn rates configured by product category, margin tier, and promotional event, not a single flat rate across every SKU, so thin-margin categories earn less while hero products or categories you want to grow earn multipliers. The economics are modelled against your actual margin data before launch, so you know the breakeven point and the liability trajectory before the first member joins.
02AI receipt scanning and validation
Members upload a receipt photo and the system extracts the retailer, date, and line items, validates against eligible stores and promotion windows, calculates the award including any bonus-earn categories, and credits the account in under 10 seconds. Built for receipts from 18+ store locations across multiple brands with 99.9% accuracy, with duplicate detection and a manual review queue for low-confidence reads so members don't lose legitimate earn.
- Built with
- Google Vertex AI
03Mobile app with member-facing experience
White-labelled apps built from a single codebase across both platforms, with QR and barcode scanning for in-store checkout and points balance, transaction history, rewards catalogue, and tier status visible in-app. Push notifications cover bonus earn events, expiry reminders, and personalised offers, and the app design matches your brand rather than a generic loyalty template.
- Built with
- Flutter · iOS · Android
04Multi-brand platform architecture
One backend serving multiple grocery brands with complete data isolation between them. Each brand has its own earn rules, redemption catalogue, app branding, communications, and reporting view, while sharing the same member identity infrastructure, data warehouse, and admin tooling. Proven with Musgrave Group running SuperValu and Centra as fully independent programs from a single system.
05Promotional event engine
Time-limited bonus earn campaigns configurable without a code deployment, double-points weekends, category spotlight weeks, product-level bonuses, and milestone rewards like 5x on your tenth shop of the month. Events can be targeted to specific member segments rather than broadcast, and campaign analytics show uplift in targeted category purchases against a non-targeted control group so you can see whether the promotion moved behaviour.
06Points liability and analytics
Points liability tracked as a real financial metric: every earn creates a liability entry, every redemption settles it, every expiry reduces it, with monthly liability reports for finance. Member-level analytics cover visit frequency, basket size, category mix, and LTV by cohort, and a holdout control group lets you measure incremental revenue rather than just correlated revenue.
What behaviour does your loyalty program need to change?
Tell us your current earn model, your margin structure, and what you're trying to shift. We'll design the commercial mechanics before designing the platform.