iOS14 Over-Reporting: How Meta Modeled Conversions Inflate ROAS 20-40%

Meta fills the iOS14 attribution gap with statistical modeling that systematically over-credits its own ads. Here's how to measure the inflation and adjust your ROAS targets accordingly.
Quick answer
Since iOS14's App Tracking Transparency, Meta plugs the lost signal with statistical modeling — and independent geo-holdout studies show this inflates reported ROAS by 20-40% versus incrementality-measured truth. To detect it on your account, reconcile Meta-reported purchase revenue against Shopify orders tagged with a Meta UTM for the same window; a gap larger than 15-20% is the modeled-conversion tell.
iOS14 Over-Reporting (Meta Modeled Conversions)
Meta's post-iOS14 use of statistical modeling to fill attribution gaps, which systematically inflates reported ROAS by 20-40%.
When Apple's App Tracking Transparency removed deterministic conversion signal from a majority of iOS users in 2021, Meta replaced the missing data with probabilistic modeling — extrapolating from observed conversions, click patterns, and aggregated Aggregated Event Measurement reporting. The output looks like a normal conversion in Ads Manager, but a meaningful share of it is a statistical estimate, not an observed event. Independent advertiser studies and geo-holdout tests consistently find this inflates Meta-reported revenue 20-40% above what Shopify, GA4, or true incrementality measurement records — distorting ROAS, CPA, and any bid strategy that optimises against those numbers.
The practical consequence: if Meta says you ran a 4.0 ROAS last month, your actual platform-truth ROAS is probably closer to 2.8-3.2. That gap is the difference between a profitable scaling decision and quietly burning margin.
Why Meta over-reports after iOS14
Pre-2021, Meta saw deterministic pixel fires for almost every iOS conversion. Post-ATT, roughly 70-85% of iOS users opt out of tracking, so the pixel and even the Conversions API can no longer tie those purchases back to a specific ad click.
Meta fills this hole with a model. It takes the conversions it can still see deterministically, learns their patterns, and extrapolates to estimate conversions for the users it can't observe. The model is incentivised — structurally — to give Meta credit, because the only conversions it learns from are conversions Meta already touched.
Layer on Meta's default 7-day-click + 1-day-view window, and the inflation compounds. View-through conversions, in particular, attribute revenue to impressions a user never clicked — covered in depth in the view-through inflation breakdown.
CAPI is not a fix
Conversions API improves signal quality for the conversions you CAN observe server-side, but it doesn't recover the deterministic link for ATT opt-out users — Meta still models that audience. CAPI typically shrinks the inflation gap by a few points, not eliminates it. See the CAPI vs iOS14 breakdown for the full picture.
How to detect the inflation on your account
The fastest diagnostic is a UTM reconciliation. Pull Meta-reported purchase revenue from Ads Manager for a clean 30-day window, then pull Shopify orders where the landing-page UTM source equals facebook or instagram for the same window. Compare the two totals.
A healthy account shows a 5-15% gap (Meta higher, explained by legitimate cross-device and view-through). A 20-40% gap is the modeled-conversion signature. Anything above 40% suggests retargeting-heavy spend amplifying the effect — retargeting campaigns consistently show the worst inflation.
Typical Meta-reported vs Shopify-UTM revenue gap by campaign type
| Campaign type | Meta-reported revenue (€) | Shopify UTM revenue (€) | Gap % | Read |
|---|---|---|---|---|
| Cold prospecting (broad) | 48,000 | 41,500 | +15.7% | Within normal range |
| Prospecting (interest-based) | 62,000 | 48,200 | +28.6% | Modeled inflation likely |
| Retargeting (7-day site visitors) | 85,000 | 52,000 | +63.5% | Heavy over-credit |
| Retargeting (ATC + view-content) | 34,000 | 19,800 | +71.7% | Cannibalisation territory |
| DPA / catalog | 41,000 | 31,500 | +30.2% | Modeled inflation likely |
Another fast tell sits inside Ads Manager itself: dotted underlines on conversion numbers indicate modeled (not observed) values. The dotted-line diagnostic walks through where to surface these in the column set.
For a structural sanity check, watch your Marketing Efficiency Ratio. If channel-level ROAS keeps climbing but blended MER is flat or declining, the channel numbers are lying — using MER as a sanity check is how to formalise this.
How to fix it: adjust, measure, and re-benchmark
You can't make Meta stop modeling — but you can stop letting modeled numbers drive your bids. Three corrections, in order of leverage.
First, adjust your target ROAS down by your measured inflation rate. If your UTM reconciliation shows a 30% gap, a 3.5 Meta-reported target becomes a 4.55 Meta-reported target to hit the same true 3.5 — the target-ROAS adjustment guide covers the math and edge cases.
Second, run a Meta geo holdout once a quarter. Split comparable regions, pause Meta in the holdout cells, and measure the actual revenue delta. This gives you a calibrated incrementality multiplier — the only number that survives a CFO conversation.
Third, segment your inflation analysis. High-AOV brands consistently see larger gaps because Meta's model over-weights the long click-to-purchase windows that high-consideration purchases naturally have — covered in the AOV-driven inflation page.
Rule of thumb
Treat Meta-reported ROAS as a directional signal for creative and audience performance, but never as a profitability number. Profitability lives in Shopify + holdout-tested incrementality — not in Ads Manager.
Experiment ideas to quantify your own inflation
Run a 4-week geo holdout: pick two matched-pair regions (e.g. Belgium vs Netherlands, or two US DMAs of similar size and AOV). Pause Meta in one, hold spend constant in the other, and compare the revenue trajectory in Shopify. The incremental lift in the active cell is your true Meta contribution.
Pair it with a campaign-type teardown: turn off retargeting for two weeks and watch whether blended MER moves. If retargeting was genuinely incremental, MER drops. If it was mostly modeled-credit cannibalisation, MER holds steady — and you've found a hidden margin lever.
Frequently asked questions
Yes. ATT opt-out rates have stayed stubbornly high (70-85% on iOS), and while Meta's modeling has improved, independent geo-holdout studies still find 20-40% over-reporting versus true incrementality. The problem is structural, not transitional.
The model only learns from conversions Meta touched, so it can only attribute conversions to Meta — it has no mechanism to credit Google, organic, or email. Combined with view-through windows and a 7-day click attribution default, the bias is one-directional: upward.
Partially. CAPI improves signal for users who didn't opt out and reduces match-quality loss, typically closing the gap by 3-8 percentage points. It does not recover deterministic attribution for ATT opt-out users, so meaningful inflation remains.
Use the same date range, the same conversion event (Purchase), and filter Shopify orders by landing-page UTM source = facebook or instagram. Don't filter by referrer (dark social breaks it) and don't use last-click GA4 (which has its own modeling). The UTM reconciliation guide details the exact query.
Two reasons stacked: retargeted users were already going to buy (so Meta claims credit for organic intent), and modeled view-through windows over-attribute impressions to users who saw your ad once after visiting your site. Retargeting consistently shows the worst inflation of any campaign type.
For relative comparisons between ad sets and creatives, yes — the inflation is roughly proportional, so the ranking is usually directionally correct. For absolute profitability decisions (scale up, scale down, kill channel), no — use Shopify-measured or holdout-calibrated numbers.
5-15% is structurally explainable by cross-device behaviour and legitimate view-through. 15-25% suggests moderate modeled inflation. Above 25% indicates either heavy retargeting spend, weak server-side tracking, or a real attribution problem worth a deeper audit.
Less. Google has logged-in user identity (Gmail, YouTube, Chrome) that survives ATT, so its modeled-conversion share is smaller. Google's enhanced conversions and consent-mode modeling exist but typically produce 5-15% inflation, not 20-40%.
Measure your gap once via UTM reconciliation, then raise your Meta-reported ROAS target by that percentage. A 30% gap means a 3.0 true target becomes a 3.9 Meta-reported target. Re-measure quarterly — the inflation rate drifts as Meta's models update.
Almost always yes for accounts spending €50k+/month on Meta. A two-region, four-week holdout typically costs 2-5% of monthly Meta revenue but produces an incrementality multiplier that recalibrates every downstream budget decision for the next quarter. The ROI is usually 10x or better.
Track CAC, channels, and funnel conversion in one place
Metricuno connects ad spend, funnel events, and revenue so you can see CAC by channel, cohort, and campaign — without stitching together five tools.