Skip to content

How to build a channel mix case for your CFO, step by step

Start from Shopify's net sales and gross profit, take spend from the ad accounts' bills, and set a break-even line from your margin. Then show each channel's credit range in GA4, grade the evidence behind it, and end with one test and the decision it will drive.

By , Founder & CEOUpdated 8 min read

Run the numbers for your store: the free multi-channel budget calculator.

Usually in seven steps on one page. Start from Shopify's net sales and gross profit, take spend from the ad accounts' bills, and set a break-even line from your margin. Then show each channel's credit range, grade the evidence behind it, and end with one test and the decision it will trigger.

The aim is a page your CFO can check line by line against systems finance already trusts. Every number on it comes from the books, the bills or a test, or it carries a label saying whose claim it is. What it leaves out is anything nobody can check: dashboard screenshots, blended platform totals and adjectives. Keep it to one page. A second page is where doubts go to breed.

Step by step

  1. Start from the books. Take net sales and gross profit for the quarter from Shopify's Finance Summary. Use net sales, not total sales, because Shopify's total sales also include taxes, shipping and fees. Path: Shopify admin > Analytics > Reports > Category filter > Finances > Finance Summary.
  2. Take spend from the bills. Meta's Amount spent may include billable amounts that haven't been invoiced yet. Google splits served cost from billed cost, which is what you pay after adjustments. Path: Meta Billing & payments > Payment activity > Download > Download report (CSV). On monthly invoicing, Google Ads > Campaigns menu > Insights and reports > Report editor > Template gallery > Billing > Billed cost.
  3. Turn margin into a break-even line. Shopify works out gross margin as net sales minus cost, divided by net sales. Break-even ROAS is 1 divided by that margin. For a stricter margin, the Profit margin by order report also counts shipping costs, duties and import taxes your store paid. Path: Shopify admin > Analytics > Reports > Category filter > Profit Margin > Profit margin by order.
  4. Label each claim with its rule. Next to each platform's claimed revenue, write the window it was counted in. Meta's view-through, for one, counts events up to a day after someone merely saw an ad. Path for Google's windows: Google Ads > Goals icon > Conversions > Summary > your purchase action > Edit settings.
  5. Show GA4's credit range on the spend calendar. Compare Data-driven with Paid and organic last click for each channel, and note the % change. Then set Reporting time to Ad interaction time, so credit lands in the period the money was spent. Path: GA4 > Advertising > Attribution > Attribution models.
  6. Grade the evidence for each channel. Mark every line tested, modelled or attributed only, and pull any test results you already have. A model counts only if its method is written down. Path: Meta Experiments > Learn > your test > View report; Google Ads > Goals menu > Lift measurement.
  7. End with one test and its decision rule. Pick the untested line where a wrong call costs most. Write the rule before it starts: below break-even the budget shrinks, above it the budget holds or grows. Path: Meta Experiments > Conversion Lift, or Google Ads > Lift studies tab under Campaigns > Experiments > plus button.

A worked example

Here is one quarter for a store with a 40% gross margin, in round numbers invented for illustration.

For illustrationMetaGoogle SearchTikTokAll channels
Billed spend€60,000€30,000€10,000€100,000
Revenue the platform claims€240,000€150,000€30,000€420,000
GA4 credit, last click to data-driven€90,000 to €130,000€110,000 to €125,000€5,000 to €12,000
EvidenceLift test: ROAS lift 3.0xAttributed onlyAttributed only

Say the quarter's net sales in Shopify come to €350,000. If your margin is 40%, that is €140,000 of gross profit, and €40,000 left after €100,000 of ads. That bottom line goes first, because it is the one number nobody can argue with.

Say the platforms claim €420,000 between them, more than the €350,000 in the books. The touched view in one store's Channels sheet sums to 110.4% for the same reason: a sale that touched two channels counts in both. So the claims row stays on the page, labelled as claims, and never gets added up.

Now hold each line against the bar. One store's Break-even sheet gives the same bar for a 40% margin: 1 divided by 0.40, or 2.5x.

  • Meta: tested, above the bar. If the ROAS lift is 3.0x, each euro returns €1.20 of gross profit at a 40% margin. GA4 alone would have failed it. For example, its GA4 range of €90,000 to €130,000 on €60,000 is only 1.5x to 2.2x. It keeps its budget, and the test goes on the page instead of the claim.
  • Google Search: attributed only, comfortably above. For example, GA4 credits it €110,000 to €125,000, which is 3.7x to 4.2x on €30,000. If much of that is brand search, a go-dark test in some regions is next in line.
  • TikTok: attributed only, below the bar. For example, GA4's range is €5,000 to €12,000 on €10,000 of spend, so 0.5x to 1.2x. Click reports can undercount a channel people watch more than they click, so trim it to a test budget rather than cut it to zero.

The page then closes with one line: the next test, the date it reads out, and what happens above or below the bar.

What to check when the numbers look wrong

  • Shopify and GA4 disagree on revenue. GA4 only sees the visits it tracked, while Shopify sees every order. Use Shopify for the top line and GA4 only for each channel's share.
  • Gross profit looks too low. Shopify counts only net sales with a cost recorded toward gross profit. Divide gross profit by those net sales, not by all net sales, or add the missing costs.
  • Spend doesn't match the ledger. Meta notes Amount spent can take up to 48 hours to process. Part of it may not be invoiced yet. Reconcile on billed figures, after month end.
  • Sales and payments disagree. Shopify's sales reports count an order in the month it was placed. Its payments reports use the month it was paid. Pick one, and say which.
  • A channel shows almost no GA4 credit. A channel people watch more than they click can earn close to nothing in click-based credit. Keep it on the page with its spend, mark it untested, and let a test decide.
  • A channel jumps under Ad interaction time. Its sales arrive after the period you report on. Report that channel on a lag, or over a quarter instead of a month.

What to do this week

  1. Agree the spend with finance. Download last quarter's Meta billing report as a CSV, and Google's Billed cost report if you invoice monthly. Pass: the totals match what finance booked as ad spend. Fail: they differ, so settle the number with finance before any ROAS reaches the page.
  2. Check Google's conversion windows. In Google Ads, click the Goals icon, open Conversions, then Summary, and open your purchase action's settings. Pass: the click-through and view-through windows are the ones you report under, unchanged this quarter. Fail: someone changed them, and Google applies changes only going forward, so mark the break in your trend.
  3. Agree the margin with finance. In Shopify, open Profit margin by order for last quarter and set it next to finance's gross margin. Pass: the two are close, so your break-even line will survive the meeting. Fail: finance uses a different cost base, so adopt theirs and redo the bar.

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: Finance reports (Shopify Help Center); Amount spent (Meta Business Help Center); View and download receipts for your Meta ad charges (Meta Business Help Center); How to view daily costs at the campaign and account level (Google Ads Help); Profit reports (Shopify Help Center); About conversion windows (Google Ads Help); About attribution models and attribution settings (Meta Business Help Center); Key event attribution models report (Google Analytics Help); View and understand holdout test results across Meta technologies (Meta Business Help Center); Set up Conversion Lift based on geography (Google Ads Help); Set up Conversion Lift based on users (Google Ads Help); About Conversion Lift (Meta Business Help Center).

Frequently asked questions

  • What goes on a one-page channel report for a CFO?
    Net sales and gross profit from the books, billed spend by channel and a break-even line from your margin. Then each channel's credit range and evidence grade, plus one test with its decision rule. Platform ROAS can appear too, labelled as the platform's own claim.
  • How often should I update my CFO on the channel mix?
    Monthly for spend, sales and margin, in the same format each time. Update the evidence grades whenever a test reads out. If an attribution setting changed in between, say so on the page: a CFO forgives a changed rule, not a hidden one.
  • What if my CFO wants one ROAS number for the whole business?
    Give the blended figure with its definition: net sales divided by billed ad spend, for the same dates. Put your break-even line beside it. Then add the catch: a blended number also counts sales no ad caused, so it can look healthy while one channel loses money.

Go deeper: Causal attribution, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.