Make your numbers tie out. Opera reconciles MMP attribution against ad-platform claims on every run — variance visible, thresholds flagged, in the report you already use.
Every performance team has lived the meeting where Meta says 1,400 conversions, AppsFlyer says 900, and someone asks which is 'right'. The honest answer is that they measure different things — and a report that doesn't show both, with the gap, will eventually mislead someone with budget authority.
None of this is fraud; all of it is mechanics. Reconciliation makes the mechanics visible.
Pull each platform's claimed results, pull the MMP, align dates, divide, eyeball percentages — for every channel, every week. It's an hour of careful work that gets skipped the week you're busy, which is precisely the week a tracking break goes unnoticed.
"Reconcile platform spend against AppsFlyer for last week and flag gaps over 10%."
| Channel | Spend | Platform conv. | AF attributed | Variance |
|---|---|---|---|---|
| Meta | $13,900 | 1,388 | 1,012 | +37% |
| $17,800 | 1,205 | 998 | +21% | |
| TikTok | $9,400 | 833 | 571 | +46% ⚠ |
Stable variance is just attribution physics. A jump in variance is a broken postback, a changed window, or a tracking gap — caught the week it happens, not at the quarterly business review.
Reconciliation assumes a stable MMP baseline — so MMP-side changes need the same announcement discipline as definition changes. An SDK upgrade, a changed attribution window, a privacy-setting shift or an MMP migration will move the attributed series for measurement reasons, and every channel's variance will jump together — which is itself the diagnostic signature (one channel jumping is a channel problem; all channels jumping is a referee change). The playbook: annotate the week in the report, re-baseline each channel's variance band over the following month, and never trend attributed numbers across the change without the annotation attached. Opera carries the annotation in the rows and the summary, so the discontinuity stays explained long after everyone has forgotten the SDK version that caused it. The same discipline covers planned window changes: announce, annotate, re-baseline — three steps that turn a measurement migration from a quarter of confused trend lines into one documented week.
Conversions get the attention, but spend has its own gaps: API-reported spend vs the invoice (fees, adjustments, coupons), multi-currency accounts converted at different rates by different people, and timezone edges moving a day of spend between weeks. The reconciliation view treats spend as a first-class column: API spend per platform tied out against the UI on every run, one FX policy applied at pull time, and a monthly invoice check where finance cares. Most weeks it's a silent ✓ — which is exactly what makes the one week it isn't visible.
Sophisticated clients ask why Meta's number and the report's number differ; unsophisticated ones assume someone's wrong. The reconciliation view answers both without a meeting: both series labeled, the variance explained once in the definitions block ("platforms claim under their own attribution; outcomes are MMP-attributed"), and movement flagged when it matters. Showing the gap deliberately reads as competence; having it discovered reads as concealment — the column is cheap insurance on trust.
Alert design decides whether the variance column gets read or muted:
Variance jumped — the fifteen-minute triage, in order:
The playbook's value is sequence: teams that start at #5 spend a week debating performance before finding the changed window setting from #1.
Reconciliation rows follow the same write rules as everything else: schema re-validated, previewed, append-only, logged. Start with one channel pair (AppsFlyer + your biggest platform), confirm the variance matches your manual calc once, then add channels and set the threshold.
See this running on your own reports.A 45-minute workflow audit maps your current process and shows exactly what Opera automates — step by step.
A 45-minute teardown of how you report today: we map every step, mark what Opera automates, and send you the written spec — useful whether or not you buy.