Channel ROAS Inflation Factor: Measuring Platform Over-Reporting

Metricuno
June 6, 2026
6 min read
Channel ROAS Inflation Factor: Measuring Platform Over-Reporting — How to calculate the Channel ROAS Inflation Factor, haircut Meta and Google over-reporting, and bid on channel ROAS while forecasting on Shopify truth.
Quick answer

The Channel ROAS Inflation Factor is the ratio of platform-reported revenue to Shopify-attributed revenue — the haircut number that keeps your bids honest without abandoning channel ROAS as a bidding signal.

Quick answer

Channel ROAS Inflation Factor = platform-reported revenue ÷ Shopify-attributed revenue for the same channel and window. A Meta-reported 4.0 ROAS at an inflation factor of 1.6 is really a 2.5 in Shopify terms. Divide your blended ROAS target by (1 / inflation factor) — i.e. multiply it by the factor — to get the inflated channel tROAS you actually load into the bid strategy.

Definition
Paid acquisition measurement

Channel ROAS Inflation Factor

Platform-reported channel revenue divided by Shopify-attributed revenue for the same channel and window.

The Channel ROAS Inflation Factor is a single ratio that quantifies how much a paid channel (Meta, Google, TikTok) over-reports revenue relative to what actually landed in Shopify under last-non-direct or your chosen source-of-truth model. It's the bridge metric between two worlds you can't reconcile any other way: the platform's view-through, fractional, modelled attribution and your store's deterministic order-level data.

You compute it once per channel per window, then use it as a haircut on the channel tROAS target so you can keep bidding inside Meta or Google on their numbers while forecasting blended performance on Shopify truth.

Also known as
Platform over-reporting ratio
Attribution haircut factor
Channel-to-Shopify gap

Most performance teams discover the gap the hard way. Meta Ads Manager shows a 3.8 ROAS for the month, the finance team pulls Shopify and sees the channel contributed closer to 2.3, and nobody can explain the €40k gap without a two-hour meeting.

Why platforms over-report channel revenue

Meta and Google use view-through windows (1-day, 7-day, sometimes 28-day click) and modelled conversions to fill iOS 14.5 gaps. Both decisions inflate reported revenue versus a last-non-direct view in Shopify.

There's also overlap. A shopper sees a Meta ad, clicks a Google branded search, then converts. Meta claims the revenue on view-through, Google claims it on click, and Shopify assigns it to Google organic or direct. Sum the platform reports and you've counted the same order twice.

Typical inflation factors we see across DTC stores

Meta (7-day click, 1-day view): 1.4-1.9× on prospecting, 1.8-2.6× on retargeting where overlap with branded search is highest. Google Ads (data-driven attribution): 1.1-1.3× on non-brand, 1.5-2.0× on brand search if you're double-counting paid brand against organic. TikTok: 1.6-2.2× when view-through is on. Treat these as starting hypotheses, not constants — your factor depends on your channel mix and brand share.

How to detect and measure your inflation factor

Pick a stable 28-day window. Pull platform-reported revenue from Meta Ads Manager and Google Ads at the campaign level. Then pull Shopify orders attributed to that channel under last-non-direct using UTM-tagged sessions — your ROAS measurement layer should already expose this.

Divide: inflation_factor = platform_revenue / shopify_revenue. Do this per channel, not blended. A 1.7 factor on Meta and a 1.15 on Google non-brand are completely different problems requiring different haircuts.

How to fix it: haircut the channel tROAS target

If your blended ROAS target is 2.0 and Meta's inflation factor is 1.6, the Meta tROAS you load into Advantage+ bidding should be 2.0 × 1.6 = 3.2. The channel hits the inflated target inside Meta, which translates back to a real 2.0 in Shopify. This is the core of bidding on channel ROAS while forecasting on blended ROAS.

Refresh the factor monthly. Creative refreshes, seasonality, and brand share shifts move it. A factor that's drifted from 1.5 to 2.1 over a quarter means your channel target is now under-bid by 40%, which shows up as starved spend and budget under-pacing before it shows up in ROAS.

Don't divide blended ROAS by the factor

Common mistake: teams compute inflation factor = 1.6 and lower the channel target from 2.0 to 1.25, thinking they're "correcting for inflation". This bids more aggressively into a channel that's already over-claiming. Multiply, don't divide — the haircut is applied to the platform's number, not to your target.

Calibrating the factor with geo holdouts

Last-non-direct in Shopify isn't ground truth either — it under-credits paid social and over-credits direct. The cleanest calibration is a geo holdout: turn Meta off in one region for two weeks, measure the incremental drop in Shopify revenue, and back into a true incremental factor. Using geo holdouts to calibrate the channel-to-blended gap typically tightens the factor by 10-25%.

If a geo test is off the table for budget reasons, run a weekly diff instead: track inflation factor as a time series and flag when it drifts more than 15% from its 4-week trailing average. The drift signal often catches creative fatigue or audience saturation before ROAS does.

Frequently asked

Frequently asked questions

For DTC stores on Shopify, Meta typically reports 1.4-1.9× the revenue Shopify attributes under last-non-direct on prospecting, and 1.8-2.6× on retargeting. Anything above 2.5× on prospecting suggests view-through windows are too generous or there's heavy overlap with branded search you're not deduplicating.

Last-non-direct is the practical standard — it gives credit to the marketing touch when the final session is direct (someone typing your URL after clicking your ad yesterday). Last-click systematically under-credits paid channels and will inflate your factor artificially.

Inflation factor measures the reporting gap between platform and Shopify. Incrementality measures whether the channel actually caused the revenue — the lift versus a holdout. A channel can have a low inflation factor and still be non-incremental (e.g. branded search). Use both together.

Per channel is enough for bidding decisions in most cases. Per campaign type (prospecting vs retargeting, brand vs non-brand) is the right granularity once you're past €500k/month in paid spend and the differences become material.

Monthly for the canonical value used in bid targets, weekly as a drift monitor. Big creative refreshes, iOS updates, or seasonal traffic shifts can move the factor 20%+ in a single month, so don't set it once a year and forget it.

This is the deduplication problem. The cleanest fix is to compute each platform's inflation factor against last-non-direct Shopify revenue (not platform-summed revenue). Each platform's factor then implicitly accounts for its own overlap with the others.

GA4's data-driven attribution sits somewhere between platform reports and Shopify last-non-direct, and it has its own modelling assumptions. It's a useful triangulation point but not a substitute — Shopify is where the order actually exists, so it stays your source of truth for revenue.

Yes, and it matters more there. TikTok's 1-day view + 7-day click default produces inflation factors in the 1.6-2.2× range, often higher than Meta. Compute it the same way; just expect a noisier number until you have 3+ months of stable spend.

Your blended target is the Shopify-truth number you commit to finance. The inflation factor converts that into the inflated channel tROAS you load into Meta/Google bid strategies, so the channel hits a number that — once haircut — equals your blended commitment.

Pull last month's Meta-reported revenue and last month's Shopify revenue tagged from Meta UTMs. Divide. That's your v1 factor. Apply it as a 1.5× multiplier on your Meta tROAS this week, then refine the denominator with last-non-direct logic in week two.

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.