I have lost count of the times a dashboard told me one story and the bank statement told me another. The dashboard was not lying, exactly. It was answering a narrower question than the one the business was actually asking. An ad platform reports the outcomes it can attribute inside its own rules. The business has to collect, fulfil, qualify, or retain those outcomes before they count for anything. Here is the part most agencies will never volunteer: the reported number is the one that keeps them hired, so it is usually the only one you ever get to see. The Two-Number Report puts both figures side by side and names the gap.
The method is simple:
- show the platform or booked number;
- show the confirmed business number;
- explain the difference;
- make the decision from the appropriate number.
The two numbers, defined
Number 1: reported
Examples include:
- attributed purchase value;
- form submissions;
- booked appointments;
- placed orders;
- trial starts;
- platform-reported ROAS.
This number is useful for diagnosing channel activity and comparing like-for-like campaigns.
Number 2: confirmed
Examples include:
- collected revenue;
- delivered orders;
- qualified leads;
- attended appointments;
- activated accounts;
- retained customers.
This number is useful for budgeting and commercial decisions.
Neither number should replace the other. The gap is operational information.
More examples, by channel
- Google Ads (Search, Performance Max): the reported number is platform-attributed conversions and conversion value; the confirmed number is orders that actually shipped or leads a salesperson actually worked. Reconciling one against the other is the daily job behind Google Ads management — not just bidding, but checking what the platform claims against what the business banked.
- UAE service and e-commerce accounts: the gap shows up hardest in the lead-to-sale step. It is the first thing a Google Ads agency in Dubai should be tracking before recommending a budget increase.
- US service businesses: the same logic applies to a plumber, clinic, or law firm buying Google Ads for booked jobs — a Google Ads agency for service businesses should report booked calls next to jobs actually completed and paid, not just call volume.
- Meta and social: reported purchases versus delivered, paid orders, covered in the Facebook Ads breakdown linked below.
None of these examples change the method. They only change which system holds the confirmed number: the CRM, the fulfilment system, or finance.
Why the gap appears
The gap rarely has one clean cause. Two channels claim the same sale. Orders get cancelled, refunded, or returned. A COD parcel comes back undelivered. A conversion event fires twice, or fires for a bot. Leads arrive that no salesperson would ever call qualified. Appointments get booked and never attended, or attended and never paid. Some deals close on a cycle so slow the platform stopped counting them. And somewhere in finance, someone is quietly noting that the "revenue" on the dashboard is not contribution, and that the offline outcomes never made it into any system at all.
The dashboard may be accurate within its definition while still being unsuitable for the decision.
The revenue chain
Every outcome travels through a chain of custody before it becomes collected revenue, and each link can drop or distort the number:
- Ad spend — impressions and clicks the platform charges for.
- Platform-attributed conversion — the event the pixel or click model assigns to that spend.
- Order or lead created — what actually lands in the store, CRM, or booking system.
- Qualified or fulfilled — an order that ships, a lead a salesperson accepts, an appointment that is kept.
- Collected — payment received, COD delivered and paid, invoice settled.
- Contribution — collected revenue minus the variable cost of delivering it.
The platform only ever sees step 2. The Two-Number Report exists because steps 3 through 6 happen in systems the ad platform cannot see — the CRM, the warehouse, finance. Every step in that chain is a place attribution can inflate a number that operations later corrects. Naming the chain is what turns "the numbers don't match" into a specific, assignable gap.
Bad dashboards to avoid
Most reporting problems are not calculation errors. They are dashboard designs that make the wrong number look like the only number. Watch for:
- Single-number dashboards. One ROAS tile with no breakdown hides which platform, product, or period is driving it.
- Blended totals with no dedup logic. Summing Google, Meta, TikTok, and Snapchat "sales" without checking for double-attributed orders inflates the top line, sometimes by double digits.
- Revenue labelled as profit. A dashboard that shows attributed revenue but calls it "profit" or "ROI" skips contribution and cost entirely.
- No gap column. If the platform number and the confirmed number are not on the same screen, nobody is asked to explain the difference.
- Undated or unlabelled estimates. A number that was "estimated" in week one quietly becomes "actual" by week four because nothing on the dashboard says otherwise.
- Vanity metrics with no decision attached. Impressions, reach, and engagement can matter for brand tracking, but they should not sit next to budget-scaling decisions.
A dashboard that does any of these is not lying on purpose. It is optimised for looking finished rather than for being useful.
Build the report
Use four columns for every important outcome:
- Platform result: what the channel reported.
- Confirmed result: what the business verified.
- Gap: absolute and percentage difference where useful.
- Reason and action: known cause, unresolved issue, and next decision.
Then add three labels:
- reporting period;
- attribution or matching rule;
- evidence status: reconciled, estimated, or pending.
An estimate can support a temporary decision if it is labelled. It should not quietly become “actual.”
Worked examples
COD commerce
An anonymised mobile-commerce account showed 4.1× gross ROAS and 1.9× delivered ROAS, with a 33% COD return rate. That gap is the whole story. It pulled fulfilment and order quality into the media decision, where they belong. Reporting 4.1× on its own would have pushed us to scale hard against the wrong outcome.
Education
For FIT Institute, 121,330 AED in ad spend produced approximately 912,550 AED in collected revenue, about 7.5× clean ROAS. Education has no physical product-return step, so gross and collected converge here. The method still applies. It just confirms there is no hidden fulfilment gap to subtract, which is its own kind of answer worth having.
Lead generation
A platform may report 500 leads while the CRM confirms 120 qualified leads and 30 sales conversations. The cost per lead answers a media question. Cost per qualified lead and cost per sales conversation answer progressively stronger business questions.
Multi-platform e-commerce
In an anonymised KSA e-commerce account running SAR 2.3M across Google, Meta, TikTok, and Snapchat, the four platforms together claimed SAR 14.2M in sales, a 6.1× reported blended ROAS. The store actually banked SAR 11.5M on roughly 27K orders, which is 5.0× once you reconcile against the order record. The 19% gap is the report: about 15 points were returns and the other 4 points were the same sale counted twice across platforms. Summing four dashboards and calling it revenue would have meant scaling against a number that double-counts itself. The full walk-through is in the KSA ROAS reconciliation case study.
A good report, side by side
Here is what one row of a good report looks like, using the KSA e-commerce example above:
| Platform result | Confirmed result | Gap | Reason and action |
|---|---|---|---|
| SAR 14.2M reported sales (6.1× blended ROAS) | SAR 11.5M banked revenue, ~27K orders (5.0× reconciled ROAS) | 19% (≈15 pts returns, ≈4 pts cross-platform double-count) | Reconciled monthly against order records; scale budget from the 5.0× number, not the 6.1× |
That single row answers what a bare ROAS tile cannot: which number to trust, why it moved, and what to do next. A good report does not need more charts. It needs this row, repeated for every outcome that drives a decision.
Match the number to the decision
- Creative comparison: platform click and conversion signals may be sufficient.
- Campaign optimisation: use consistent platform outcomes plus quality feedback.
- Budget scaling: use confirmed or strongly reconciled outcomes.
- Profitability: use contribution after relevant variable costs.
- Forecasting: use conversion rates between reported and confirmed stages.
Do not force one metric to answer every question.
A monthly reconciliation process
- Lock the reporting period and currency.
- Export platform outcomes and spend.
- Match records to CRM, orders, finance, or fulfilment.
- Assign final statuses.
- calculate reported and confirmed unit economics.
- Investigate the largest gaps.
- Correct tracking or operations where possible.
- Feed confirmed outcomes back into optimisation.
- Record unresolved assumptions.
- Approve the next budget from the appropriate number.
Questions leaders should ask
- What exactly counts as a conversion?
- Who confirms it?
- When is revenue considered collected?
- Which returns, cancellations, or no-shows are excluded?
- Can two channels claim the same outcome?
- Is this revenue, gross profit, or contribution?
- Which part is estimated?
- What decision changes if the confirmed number is lower?
If a report cannot answer these questions, adding more charts will not help.
Dashboard design rules
- Show definitions next to metrics.
- Put reported and confirmed outcomes on the same screen.
- Display the gap, not only the two values.
- Separate revenue from contribution.
- Flag stale or incomplete data.
- Keep a short decision log.
- Remove metrics that do not change action.
The goal is not a more impressive dashboard. It is a shorter path from evidence to decision.
Copy this template
Paste this into your own report and fill in the blanks for each outcome you track:
Reporting period: [start] – [end]
Attribution / matching rule: [e.g., last-click 7-day, or order-ID match to CRM]
Evidence status: reconciled / estimated / pending
| Platform result | Confirmed result | Gap | Reason and action |
|---|---|---|---|
| [platform number] | [confirmed number] | [absolute / %] | [known cause + next decision] |
Run it monthly, not just at renewal time. If your team cannot fill in the "reason and action" column for last month's numbers, that is the actual finding — fix your marketing reporting before the next budget conversation.
Where this post stops
This article owns the cross-channel reporting method. For the Meta-specific calculation, use Facebook Ads ROAS. For the broader paid-growth service, use AI performance marketing.
Next step
If your platform, CRM, and finance reports disagree, request a systems diagnostic. We can define the two numbers, connect the evidence, and identify the operational gap.