Why channel and campaign totals don't add up
Under linear and time-decay attribution, the sum of credit across your Meta campaigns won't match the total credit attributed to Meta as a channel. This is by design and matches how every other multi-touch tool works — here's why.
Why channel and campaign totals don’t add up
If you’ve ever compared your Sources page (channels) with your Campaigns page (individual campaigns), you may notice that under linear or time-decay attribution, the numbers don’t tie out: the sum of credit across every Meta campaign doesn’t equal the credit Meta gets as a channel.
This is intentional, mathematically correct, and matches how every other multi-touch attribution tool on the market behaves. Here’s the intuition.
The simplest example
Imagine a customer’s journey to a $100 order looks like this:
- Clicked a Meta ad for Campaign A
- Clicked a Meta ad for Campaign B
- Clicked a Google search ad
- Bought.
Three distinct ad clicks across two channels (Meta and Google).
What the Campaigns view tells you
Under linear attribution, each of the three campaign touches gets equal credit:
- Campaign A: 1/3 of the order = $33.33
- Campaign B: 1/3 of the order = $33.33
- Google campaign: 1/3 of the order = $33.34
Total credit across all campaigns = $100. ✓
What the Sources view tells you
Under linear attribution applied at the channel level, what matters is which channels touched the journey, not how many ad clicks within each channel. The customer “engaged with Meta” once and “engaged with Google” once — two channels.
- Meta: 1/2 of the order = $50
- Google: 1/2 of the order = $50
Total credit across all channels = $100. ✓
So the sum of Meta’s campaigns = $66.66, but Meta as a channel = $50
Both numbers are correct. They answer different questions:
- Campaign-level: “If I had to choose which of my specific campaigns drove this purchase, how would I split the credit?” → Each Meta campaign is its own distinct touchpoint.
- Channel-level: “If I had to choose which channel drove this purchase, how would I split the credit?” → Meta is one channel, regardless of how many of your Meta campaigns the customer saw.
You can’t have it both ways. If we didn’t collapse Meta’s two campaigns into one channel-touch at the channel level, Meta would get a 2-of-3 “vote” against Google’s 1-of-3 in the channel weighting, purely because Meta had more ad clicks in the journey. That would systematically over-weight channels that run more campaigns — which isn’t a property of marketing effectiveness, it’s a property of how many ad sets a marketer chose to run.
Why this only happens under linear and time-decay
Single-touch models — first-click and last-click — reconcile cleanly across channels and campaigns, because only one touch gets credit and that touch belongs to exactly one channel and exactly one campaign.
- Under last-click, if Campaign B was the final ad-tagged touch, Campaign B gets the full $100 and Meta gets the full $100.
- Sum of campaigns = $100. Meta channel = $100. They match. ✓
The non-reconciliation is unique to the fractional models (linear and time-decay), because they need to split credit somehow — and a $1 split four ways across four campaigns inside one channel is not the same as a $1 split two ways across two channels.
How to think about it
When you’re comparing channel-level and campaign-level numbers, remember that the underlying data is the same. The same orders, the same customer journeys, the same touchpoints. What differs is which dimension we’re collapsing on:
- The Sources page collapses on channel. Meta is one column.
- The Campaigns page expands every individual campaign into its own row.
If you want the numbers to tie out exactly, look at them under last-click or first-click. Those are the lossless reconciliation models — every touch contributes to one channel and one campaign, and the rollups match.
If you want to evaluate which specific campaign is pulling its weight inside Meta, use the campaign-level fractional credit on the Campaigns page.
If you want to evaluate Meta as a channel against Google as a channel, use the channel-level fractional credit on the Sources page. Don’t try to derive one from the other by summing the rows — the math doesn’t work that way, and any tool that claims it does is quietly making the same trade-off and not telling you.
This isn’t a bug or a quirk
Every multi-touch attribution tool collapses touches at the dimension you’re rolling up to — they have to, otherwise channels with more campaigns systematically out-weight channels with fewer, regardless of actual performance. Most tools just don’t surface the math. We do, because reconciling totals across dimensions is the single most common attribution-tool support question, and the honest answer is “they’re not supposed to tie out under fractional models.”
Related reading
- Attribution models explained — the four models Ordinary supports and what each one answers.
- Multi-touch vs single-touch attribution — when to reach for fractional models vs single-touch.
- Channel taxonomy — how Ordinary categorises traffic into channels.