How to measure incremental revenue, step by step
Set Shopify net sales as the scoreboard and note what Google Ads and Meta claim. Then get a measured gap from a Conversion Lift study or a regional holdout. Incremental revenue is test sales minus the control's expected sales. Multiply by margin, then subtract spend.
By Joris van Huët, Founder & CEOUpdated 7 min read
Run the numbers for your store: the free profit margin and markup calculator, or the free safety stock calculator.
Usually in seven steps. Set Shopify net sales as the scoreboard and note what each platform claims. Then get a measured gap from a lift study or a holdout. Incremental revenue is the test group's sales minus what the control group says you would have sold. Multiply by your margin before you celebrate.
Work from the till outwards. Shopify holds the sales that happened, and the ad platforms hold opinions about them. The steps below turn those opinions into a number you can check.
Step by step
- Make Shopify net sales your scoreboard. Incremental revenue is measured in your till, not in an ad account. Shopify defines net sales as gross sales minus discounts and sales reversals, so discounts and returns are already out. Group it by week so a test gets a clean before and after. Path: Shopify admin > Analytics > Reports > Category filter > Sales > Total sales over time > Group by > Week.
- Record what each platform claims for the same dates. These are the numbers your test will check, so write them down before it starts. In Google Ads, that is the Conv. value column, the sum of conversion values for your conversions. In Meta, note purchases and their value under your usual attribution setting. Path: Google Ads > Goals menu > Summary, and Meta Ads Manager > Columns: Performance dropdown.
- Rank your Meta campaigns with Meta's incremental model. Meta's incremental attribution counts only the conversions its model considers caused by an ad. Meta advises comparing campaigns within one model, not incremental against standard, so use it as a ranking. It has no results for date ranges before April 1, 2025. Path: Ads Manager > Columns: Performance dropdown > Compare attribution models > Incremental > Apply.
- Get a measured gap from Google. Conversion Lift ignores attribution rules and compares all conversions between a treatment group and a control group. Google computes incremental conversion value as treatment conversion value minus control conversion value. Not every account gets Conversion Lift, so ask your Google account representative. Path: Google Ads > Goals icon > Measurements > Lift measurement > study name > Details.
- No study? Make the gap with regions. Switch the ads off in some regions and keep them on in matched ones. The geo holdout walkthrough covers the setup. Here you need only its output: net sales per region, before and during the test. Path: Shopify admin > Analytics > Reports > Category filter > Sales > Total sales by billing location.
- Do the subtraction. Use the weeks before the test to learn the ratio between the two groups, then apply it to the test weeks. Expected sales minus actual sales in the dark regions is the revenue the ads added; if you added spend instead, take actual minus expected. Path: Shopify admin > Analytics > Reports > Total sales by billing location, once for the weeks before and once for the test.
- Turn revenue into profit. Multiply incremental revenue by your gross margin, then subtract the spend that bought it. Shopify calculates gross margin as net sales minus cost, divided by net sales. A lift can be real and still unprofitable. Path: Shopify admin > Analytics > Reports > Category filter > Profit Margin > Gross profit by product.
A worked example
Here is a made-up test with round numbers, to show the order of operations. Say Google ran a geo study on your Search campaigns, and Shopify net sales are your scoreboard.
| For illustration | Amount |
|---|---|
| Conv. value Google Ads reported for the test dates | €54,000 |
| Incremental conversion value from the lift study | €18,000 |
| Ad spend during the study | €12,000 |
| Incremental ROAS (€18,000 / €12,000) | 1.5x |
| Gross profit on the extra sales at a 40% margin | €7,200 |
| Result after ad spend (€7,200 less €12,000) | a loss of €4,800 |
For illustration, a third of the revenue Google Ads claimed was revenue the ads added: €18,000 of €54,000. If the result is significant, Google labels it Significant Positive iROAS, because net new revenue beat the spend. Your margin disagrees.
One store's Break-even sheet shows the arithmetic: at a 40% margin, break-even ROAS is 2.5x, because 1 divided by 0.40 is 2.5. For illustration, 1.5x sits well under that bar, so this lift loses €4,800 at that margin. The campaign isn't useless. It's overpriced: trim the budget or the bids, then test again.
Then the clock. In one store's Journeys sheet, journeys with 2 to 3 touches took 12.5 days to buy, and 4 to 9 touches took 16.9 days. If your buyers move like that, a study that stops counting on its last day misses the slow ones. Add a cooldown of two weeks or more.
Finally the overlap. That store's Channels sheet adds up to 110.4% in the touched view, because a journey that met two channels counts for both. Platform claims overlap the same way, which is why step 1 scores everything on Shopify net sales.
What to check when the numbers look wrong
- The lift beats the platform's claim. It happens. Someone can see an ad, never click, and buy later through search or Direct. Check the control group's setup first, then enjoy it.
- The lift is negative. Google notes that relative lift can theoretically fall as low as -1, which means the treated group converted less. That usually points to noise, a stock-out or a promotion in one group. Check those before you blame the ads.
- Google says Not enough data. That is normal early in a study. If it lasts, Google suggests running at the budget recommended for High feasibility, not over-targeting audiences, and removing location exclusions.
- Meta's incremental column is blank. It has no results for date ranges before April 1, 2025. Campaigns that optimise on standard attribution can still show the modeled incremental results.
- Shopify and Google disagree on the totals. Google's conversion columns follow your attribution settings and may include modeled conversions. Shopify's net sales don't. Keep Shopify as the scoreboard and Google's number as the claim.
- Returns arrive after the test. Shopify shows a return as a negative number on the date it was processed. Run the subtraction again once your return window has closed.
What to do this week
- Save the scoreboard. In Shopify admin, go to Analytics, then Reports, set the Category filter to Sales and open Total sales by billing location. Pass: you can see net sales by region for the past year. Fail: almost all orders come from one region, so a regional test is hard; ask Google about a user-based lift study instead.
- Write the claim ledger. For last month, list each platform's claimed revenue next to Shopify's net sales. In Google Ads, that is Conv. value under Goals, then Summary; in Meta, it is Ads Manager. Pass: the claims add up to less than net sales. Fail: they add up to more, so at least part of the credit is counted twice.
- Book the test dates. Pick four or more clean weeks with no sale, launch or stock-out, then add a cooldown. Pass: dates in the calendar and a group that will go without ads. Fail: no clean window before your peak, so test after it, not during it.
Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework
Sources, 1 October 2026: Sales reports (Shopify Help Center); Understand your conversion tracking data (Google Ads Help); How to view results for incremental attribution in Meta Ads Manager (Meta Business Help Center); Understand your Conversion Lift based on users measurement data (Google Ads Help); Understand your Conversion Lift based on geography measurement data (Google Ads Help); About Conversion Lift (Google Ads Help); Profit reports (Shopify Help Center)
Related answers
Frequently asked questions
Should I use net sales or total sales for incremental revenue?
Net sales. Shopify's total sales adds taxes, duties, shipping and fees on top, which your ads did not earn. Net sales is gross sales minus discounts and sales reversals, so discounts and returns are already taken out.Can I measure incremental revenue without switching ads off?
Yes, by adding instead of cutting. Raise spend in some regions and compare their sales with the rest, or let a user-based lift study hold back a random group. You still need a group treated differently, or there is no gap to measure.How long should I keep counting after a test ends?
As long as your slower buyers take to decide. Google's geo studies include an optional cooldown, which it recommends when your conversion cycle runs longer than a few weeks. Read Days to key event in GA4's attribution paths report to size it.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- Attribution ModelAn Attribution Model defines how credit for conversions is assigned to marketing touchpoints. It dictates how marketing channels receive credit for sales.
- Control GroupControl Group is a segment of an audience intentionally not exposed to a marketing campaign, used to measure the campaign's true causal impact.
- IncrementalityIncrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
- Incrementality TestingIncrementality Testing measures the additional impact of a marketing campaign. It compares exposed and control groups to determine causal effect.
- Lift MeasurementLift Measurement: A method to determine the incremental impact of a marketing campaign by comparing exposed and control groups.
- Profit MarginProfit margin measures profitability, calculated as net income divided by revenue and expressed as a percentage.
- Treatment GroupTreatment Group is the set of users exposed to a specific marketing intervention. Comparing this group to a control group shows the intervention's causal impact.