Issue 01 · For the Head of Loyalty · GCC grocery and multi-format
Your sales grew 4%. Your margin fell 18%.
Maha shops every Thursday without an offer. Noura checks out only when one lands. Your report calls both retained.
Maha opens your grocery app every Thursday, once the two-year-old is finally in bed, and rebuilds almost the same basket: diapers, toddler milk, bananas, yoghurt and coffee. Maha bought all of it at full price for the past three weeks. This week, you sent Maha 15% off baby care, so the fourth basket arrived cheaper.
Noura buys the same pack of diapers, but has it saved in three grocery apps. Noura waits for a coupon, compares the final price and checks out wherever it’s lowest. Your 15% offer won that order this week.
You approved one audience for that campaign: members who bought baby care in the last 90 days. Maha and Noura both qualified, both redeemed, and your dashboard now calls both of them retained.
So the campaign will report a lift. What it won’t report is that you paid Maha to buy a basket already bought at full price three weeks running, and paid Noura for one order that will go elsewhere the week the offer stops. Both payments came out of the same gross margin line.
When your CFO asks what that margin bought, which of those two customers will you name?
SHARE made 65 brands remember the same customer.
Now follow Maha through SHARE. On Thursday, Maha buys diapers and toddler milk at Carrefour. On Saturday, Maha takes the toddler to Magic Planet. A week later, Maha submits a Crate & Barrel receipt. Three brands see three purchases. SHARE sees Maha.
Majid Al Futtaim built its customer system for exactly this moment. Its Advanced Analytics Centre connected data across the group, while SHARE generated omnichannel customer profiles and broke down the silos between its businesses. When SHARE launched across Saudi Arabia, one digital member ID began connecting earning, redemption and receipt submission across more than 65 brands and over 15 destinations. The app then used that connected view to give members promotions tailored to their preferences.
That memory changes the promotion. Maha’s repeat basket can earn a benefit built around that routine. Noura’s deal-led history can trigger a different, price-led offer. The diaper pack is identical. The customer isn’t. The offer shouldn’t be either.
Majid Al Futtaim says its AI-led personalisation is moving towards next-best offers, personalised search and dynamically tailored rewards. The response followed: across the wider SHARE ecosystem, personalised-offer click-through rates increased 23%. SHARE didn’t make the promotion prettier. It turned the customer’s history into a different next offer.
The same promotion cannot be right for two customers who buy for different reasons. What separates them is already sitting in your data.
Maha and Noura are the same row in your audience file.
Look at how that audience was built. Category and recency. Bought baby care, bought it recently. On those two fields, Maha and Noura are identical, and every campaign you run this quarter will keep treating them that way.
Two economics, one row
Maha buys at full price, three weeks running. Noura buys only when a coupon lands. Both resolve to the same audience rule, “bought baby care in the last 90 days”, and both receive the same 15% off. One customer needed nothing. One needed 15%. Both arrive as retained.
The fields that would separate them exist. They just live apart. Your loyalty platform knows the member. Your CRM knows the offer went out. Your till knows what left the store. Finance knows what the discount cost. Each record is accurate, and none of them follows the customer the whole way through.
Two fields do most of the work, and they’re usually the ones nobody owns: the price actually paid, and whether an offer was live at the moment of payment. Without those, a full-price routine and a coupon-triggered purchase arrive in your report looking the same. That’s how a customer who needed nothing and a customer who needed 15% end up on the same list.
Now run that forward across a year of your promotion calendar. Take a category carrying 20% gross margin. Put a third of its volume through a 15% offer, and assume the offer works: nearly 10% more units leave the shelf.
Your category report, at year end
Sales +4%. Gross margin −18%.
Modelled from stated assumptions: 20% category gross margin, one third of volume on a 15% offer, 9.5% unit uplift, no supplier funding. Substitute your own and the direction holds.
Your costs haven’t moved, so the whole of that margin loss lands on operating profit.
That isn’t a failed promotion. That’s a promotion that did exactly what you asked it to do and still cost you money, because a third of the discount went to demand you already had.
Then there’s the part that’s harder to look at. Noura didn’t arrive deal-led. Somebody taught Noura that the price falls for anyone patient enough to wait, and if you’ve run baby care on a discount rhythm Noura can predict, the teaching was yours. Every broad offer that lands on a customer who would have paid full price does two things at once: it gives away margin today, and it moves one more customer towards waiting.
The problem isn’t the discount. It’s the rule underneath it, that customers buying the same product should get the same offer, and that rule is yours to change.
These three numbers should change the offer.
01 · The full-price pattern
What share of each member’s recent category purchases happened at full price?
This separates a customer with an established routine from one whose demand appears only when the price falls. They should not receive the same treatment.
02 · The promotion dependence
How much of each member’s category spend happened during promotion windows, and what offer depth usually moved the purchase?
This tells you whether the customer responds to relevance, a small incentive or only the deepest discount. Give each customer the treatment their behaviour calls for, not the one the calendar calls for.
03 · The highest-margin response
For each customer segment, which treatment produced the strongest response while preserving the most gross margin?
Compare price, points, convenience and category-specific rewards. The winning offer is not simply the one that gets the most clicks. It is the one that earns the response without giving away more margin than that customer requires.
Stop sending Maha and Noura the same 15%.
Take the next baby-care promotion and pull six months of member purchase history. Separate customers with a strong full-price routine from those whose frequency is slowing and those who repeatedly buy only on promotion.
Give each audience a different treatment. Maha’s audience should receive value built around its established routine, not a price cut on the basket it already buys. Noura’s audience can receive a tightly controlled price offer built around winning the next order.
You don’t need a new loyalty platform to start. You need the member ID, product history, paid price, previous offer response and gross margin connected to one customer profile.
Then compare response and gross margin by treatment. In one campaign, you’ll see whether the change moved the economics or merely put different names above the same 15%.
Thanks for reading this far. The most dangerous campaign report is the one that looks healthy because you paid for the result.
Sources referenced
Majid Al Futtaim’s Advanced Analytics Centre and SHARE customer-profile foundation: Majid Al Futtaim, 3 July 2020. SHARE’s Saudi launch, digital ID, participating footprint, receipt submission and preference-tailored promotion mechanics: Majid Al Futtaim, 14 May 2026. SHARE’s first-party reported personalised-offer click-through result and stated AI-led personalisation direction: Majid Al Futtaim and Visa, 30 April 2026. The sales and gross-margin figures in the header and Section 02 are a Loyalytics calculation from the stated assumptions shown beside them. They are illustrative and are not an observed result for any named retailer. Maha, Noura and the campaign are illustrative.
