Your dashboard says 4.1×. Your bank account says 1.9×. Both numbers are real. Only one of them matters when you're deciding how much to spend next month.
The gap between real ROAS and reported ROAS is not a rounding error. It is a structural problem built into how most advertising platforms count success — and most marketers never look past the first number.
This post explains exactly where the gap comes from, how to measure it, and the reporting method I use with every client: the Two-Number Report.
Why reported ROAS is almost always flattering
Ad platforms count events, not money. When Meta or Google records a "conversion," it means a tracked action happened — a purchase event fired, a thank-you page loaded, a form submitted. What it does not mean: that money arrived in your account, that the order shipped, or that the customer kept what they bought.
Three forces quietly inflate your reported ROAS:
Attribution overlap. A customer clicked a Meta ad on Tuesday, clicked a Google Shopping ad on Thursday, and bought on Friday. Both platforms claim full credit. Your blended reported ROAS is now counting one sale twice.
Returns and cancellations. Most platforms do not automatically deduct returned orders from their conversion data. The sale fires. The return happens days later. The dashboard never updates.
COD failures. In cash-on-delivery markets — Egypt, Saudi Arabia, much of MENA — a significant portion of "confirmed" orders are refused at the door. The purchase event already fired. The revenue never arrived.
None of this is fraud. It is how the systems are designed. The platform's job is to show you value. Your job is to measure actual revenue.
What the gap looks like in practice
Here is a real example — anonymized because this is a client account.
An Egyptian mobile-accessories store ran Meta DM-conversion campaigns across several months. The dashboard reported strong purchase volume and a headline ROAS that looked healthy on paper.
When I pulled the actual numbers:
- Ad spend: ~137,000 EGP
- Reported sales (Meta-attributed): ~564,000 EGP → gross ROAS of ~4.1×
- Delivered revenue after accounting for ~33% COD return rate: approximately 1.9× ROAS
The 2.2× gap did not disappear. It went to returned shipments, refused deliveries, and cash that was never collected.
There is a second number in this account worth naming separately. The campaign generated over 10,000 DM conversations with buyers — at roughly $0.10 per conversation. That is a real, measurable asset. But a conversation is not a sale. Reporting it as a sale would have inflated the numbers further and misled every future budget decision.
The honest unit here was conversations — not guaranteed revenue. That distinction is the Two-Number Report working exactly as it should.
> Caveat, stated plainly: These numbers are from client campaign data. The 4.1× is the gross, Meta-attributed figure before returns. The 1.9× is the estimated delivered figure after applying the observed ~33% COD return rate to the attributed revenue. Neither figure accounts for attribution overlap with other channels — actual delivered ROAS could be lower. This is what Evidence-Graded Marketing means: you know exactly how confident to be in each number.
What the Two-Number Report is
The Two-Number Report is a reporting discipline, not a tool. Every result I hand to a client shows two numbers side by side:
- The flattering number — what the dashboard reports. This is the number most agencies lead with. It is not dishonest on its own; it is just incomplete.
- The real number — what you actually made after returns, COD failures, attribution overlap, and any offline adjustments.
Between the two numbers sits the explanation: where the gap went, which part of it is recoverable, and what the next decision should be.
This matters because marketing decisions compound. If you plan next month's budget against a 4.1× ROAS and your real delivered figure is 1.9×, you will overspend. You will scale a campaign that is not profitable at scale. You will look at a dashboard that tells you things are working while your margins erode.
The Two-Number Report forces the honest conversation before the budget decision, not after.
How to calculate your real ROAS
You need three data sources that most marketers already have but rarely connect:
1. Platform-reported revenue — pull this from Meta Ads Manager, Google Ads, or TikTok Ads. This is your flattering number baseline.
2. Actual orders fulfilled — your Shopify, WooCommerce, or OMS backend. Filter for orders that shipped and were not returned or cancelled within your return window.
3. COD confirmation rate (if applicable) — your logistics provider's dashboard. In most MENA markets, this is the number that kills the most reported ROAS figures.
The formula is straightforward:
```
Real ROAS = (Fulfilled revenue - Returned order value) / Ad spend
```
Then compare it to your platform-reported ROAS. The ratio between the two is your attribution inflation factor. Once you know it, you apply it as a correction to every future campaign before making a scaling decision.
If you use a third-party analytics tool that pulls cross-channel data, the attribution overlap piece becomes more tractable. If you do not, blended MER (marketing efficiency ratio — total revenue divided by total ad spend, no platform attribution involved) is a cleaner proxy than any single platform's reported ROAS.
Why most agencies never show you the second number
The incentive structure is not set up for honesty. An agency retained on a percentage of ad spend has a direct financial interest in showing you a ROAS that justifies continued or increased spend. A freelancer paid on a project basis has no system to even pull the delivered number unless the client asks.
This is not a character problem. It is a measurement problem enabled by an incentive structure. The fix is not to distrust your agency — it is to build the reporting layer that produces both numbers automatically, so nobody has to choose to be honest. The data just shows it.
The Evidence Grade: knowing how confident to be in your own numbers
Not every number in a marketing report carries the same certainty. I label every figure I produce with one of four grades:
- Verified — pulled directly from a connected data source, cross-checked against a second source.
- Inferred — calculated from available data, with documented assumptions.
- Connector-required — the number exists but cannot be confirmed until a specific integration is in place (e.g., GSC, GA4, or OMS).
- Fallback — an industry benchmark used when no client data is available; labeled as such.
When you see a number in one of my reports, you know exactly how much to trust it. That is not a disclaimer — it is the product.
FAQ
What is the difference between real ROAS and reported ROAS?
Reported ROAS is what your ad platform shows — it counts attributed conversion events. Real ROAS is what you actually earned after returns, COD failures, and cross-channel attribution overlap are accounted for. In COD markets, the gap is frequently 40–60% of the reported figure.
Why does Meta show a higher ROAS than my actual revenue?
Meta attributes purchases to any click or view within its attribution window, without deducting returns or adjusting for orders that were refused at delivery. It also does not account for Google or organic channels that may have contributed to the same sale. The platform is showing you its contribution claim, not your net result.
What is a COD return rate and how does it affect ROAS?
COD (cash-on-delivery) return rate is the percentage of orders that are refused or undeliverable when the courier arrives. In Egyptian and broader MENA e-commerce, return rates of 25–40% are common. Because the purchase event fires at order placement, not at successful delivery, platforms count these as conversions — inflating reported ROAS significantly.
What is MER and why do some marketers use it instead of ROAS?
MER (marketing efficiency ratio) is total revenue divided by total ad spend across all channels — no platform attribution required. It is a blunter instrument than channel-specific ROAS but immune to attribution inflation. In businesses with complex multi-channel funnels or high return rates, MER is often a more reliable decision-making signal.
How do I fix the gap between reported ROAS and real ROAS?
Connect your OMS or fulfillment data to your reporting layer. Apply your actual return and COD confirmation rate as a correction factor to platform-reported revenue before making budget decisions. Run MER as a sanity check alongside channel ROAS. And report both numbers — the flattering one and the real one — so every budget conversation starts from the same honest baseline.
One practical first step
If you want to know where your marketing dollars are actually going — not where the dashboard says they are going — start with an audit.
I run a free 25-Point Growth Audit that covers attribution, reporting gaps, COD correction factors, and whether your current campaigns are being measured against the right numbers. It takes me about two minutes to generate the initial evidence-graded report; the conversation that follows is where the real work starts.
Comment "AUDIT" below or send me a DM and I will send you the details.