AHMED.AYOUTTY ← Work
Case study · DTC e-commerce (client, anonymized) · Saudi Arabia · 4 ad platforms

Four platforms claimed SAR 14.2M. The store banked SAR 11.5M — I report the second number.

One Saudi store, four ad platforms, one full year of spend. Each dashboard told a flattering story; the bank told the true one. Reconciling the two is the job — and the gap between them is the most useful number in the account.

The two numbers

Every ad platform is an enthusiastic witness to its own performance. Over twelve months (June 2025 to June 2026) this store spent about SAR 2.3M across Google, Meta, TikTok and Snapchat. Add up what the four dashboards reported and you get roughly SAR 14.2M in revenue — a tidy 6.1× blended return. The store's own ledger tells a quieter story: about SAR 11.5M collected across ~27,000 orders, a clean 5.0×.

Both numbers are real. Only one of them pays salaries. I report that one — and I round it down on the way.

Four platforms, four versions of the truth

Each platform counts the revenue it believes it caused, and none of them subtract what the others claim. Here is the same year, dashboard by dashboard:

TikTok and Snapchat carried most of the spend and most of the claimed revenue, which is normal for a visually-driven Saudi catalogue. The problem is not that any single dashboard is lying — each is measuring honestly inside its own walls. The problem is the overlap. A shopper who watches a TikTok video, gets retargeted on Meta, then searches the brand name on Google can be counted three times. Sum four walled gardens and you buy the same order more than once.

Where the missing SAR 2.7M went

The gap between 14.2M reported and 11.5M banked is about 19%, and it is not a mystery. It splits cleanly into two parts:

Roughly 15% is orders that were placed, attributed, celebrated — and then returned. In Saudi e-commerce, with card-on-delivery and a healthy try-before-you-keep habit, returns are a structural part of the model, not an accident. The other ~4% is the overlap above: a single order credited by more than one platform. Strip both and you are left with the number the bank actually saw.

This is the gap most reports leave out. A dashboard that says 6.1× and a ledger that says 5.0× are describing the same money — one before returns and double-counting, one after. I show both, with the after-figure as the headline.

How I reconcile it

The method is unglamorous, which is the point. It is bookkeeping discipline applied to ad reporting:

I take each platform's revenue at the campaign level rather than the rolled-up headline, pull the store's own orders from Zid (Snapchat's USD figures converted to SAR at 3.75), and match platform-attributed orders to ledger orders so an order claimed by two platforms is counted once. Returns come out at the order level, not as a tidy blended percentage. Then I take the collected total and round it down by about 5% as a deliberate buffer. I never round up. The output is one figure a business owner can budget against: 5.0× on collected cash, not 6.1× on dashboard credit.

Why the second number is the only one that matters

If you set next quarter's budget on 6.1×, you are spending against revenue that partly does not exist. The platform number is never 100% yours; the banked one is. An ads specialist hands you the dashboard ROAS and calls it a result. I read the account the way the owner has to read it — against the ledger, after returns, after the double-counting — because that is the number that decides whether the next riyal of spend is profit or a polite illusion.

It also changes what you do next. Once the real blended return is on the table, you can see that the cheap-looking channel was subsidised by another channel's retargeting, that the returns rate quietly eats a chunk of the headline, and that scaling the wrong platform would have scaled the leak. None of that is visible from inside a single dashboard. All of it is visible from the bank.

Frequently asked questions

What is blended ROAS, and why can it mislead?
Blended ROAS divides total revenue by total ad spend across every channel. It is useful as a top line, but when four platforms each report their own attributed revenue, the figure you get by summing the dashboards counts overlapping orders more than once. The honest version reconciles against the cash the store actually collected.

Why do ad platforms over-report revenue?
Each platform counts the conversions it believes it influenced, inside its own attribution window, with no visibility into the others. A buyer touched by three platforms is claimed by three, and none of them subtract returns. Summed, the four dashboards here overstated revenue by about 19%.

Is a 5.0× ROAS good for e-commerce?
On collected cash, after returns and de-duplication, 5.0× is strong for a Saudi store running four platforms at scale. But the number only means something once you know which number it is: a 6.1× on dashboard credit and a 5.0× on banked cash can describe the exact same account.

How should returns be handled in a ROAS calculation?
At the order level, not as a blended percentage. I match each attributed order to the store ledger, mark the ones that came back, and remove their value before reporting. In a returns-heavy market, treating returns as an afterthought is how a profitable-looking account quietly loses money.

Limitations: the client is anonymized (no brand name, no product niche) at their request. Figures are account-aggregated actuals from the four ad platforms and the store's Zid dashboard for 1 June 2025–1 June 2026, converted to SAR where needed and rounded down ~5% as a conservative buffer — never rounded up. Attribution overlap and return rates vary by catalogue, season and platform mix.

Reconcile your own platform numbers →