Channel mix — donut explained
Last updated: May 19, 2026
Channel mix — donut explained
The Channel mix block in Cross-Channel mode shows per-platform spend share as a current donut + trend over time as a stacked area chart. Backed by getChannelMixTrend() in apps/backend/src/services/cross-channel-analytics.service.ts. Returns ChannelMixTrendPoint per day per platform. Use to spot concentration ("Meta consuming 80% of spend") or drift over time ("we silently shifted to Google last month").
Who is this for
Mediabuyers + admins making cross-platform budget allocation decisions. PMs auditing where spend went last month.
What's in the block
The donut chart
Current spend share at the right edge of the date range:
Slice | Platform | % of total spend |
|---|---|---|
Largest | Meta | 45% |
Next | 30% | |
Next | TikTok | 20% |
Smallest | Taboola | 5% |
Each slice colored consistently per platform across all Wevion analytics views.
The trend (stacked area)
Same data over time:
X-axis: dates within selected range
Y-axis: % share (stacked to 100%) OR absolute spend (stacked)
Each band = one platform
Watch for: shifts in band thickness over time = budget reallocation events
How to read it
Current share
Read the donut. Identify:
Concentration: one platform > 60-70% = high concentration; risk if that platform falters
Diversification: 25/25/25/25 = healthy diversification; may dilute optimization
Outliers: one platform <5% = either unused (consolidate) or a test (note)
Trend over time
Read the stacked area. Identify:
Smooth bands = stable allocation, deliberate
Step changes = a budget shift on a date (intentional or accidental)
Drift = gradual change you didn't notice (Meta's auto-scaling caused share creep)
Cross-reference with calendar: did the shift coincide with a planned change?
Companion blocks
The Channel mix block doesn't tell you whether the mix is good — only what it is. Pair with:
Channel comparison (an-108) — per-platform performance side-by-side. Tells you whether each platform's share is earning its keep.
Budget recommendation (an-109) — rule-based suggested allocation based on performance. Tells you what the share should be.
Sequence: Channel mix (what is) → Channel comparison (how is each performing) → Recommendation (what should change).
Use cases
Weekly allocation review
Look at current share vs last week's share. Did anything shift? Was it intentional?
Quarterly executive report
Donut + trend chart export → exec sees diversification + recent shifts at a glance.
Onboarding a new client
For agencies: show the client's current channel mix as a starting baseline. Set expectations for how it'll evolve.
Identifying budget leaks
Spending on a platform with no campaign activity = leak (orphan adsets, rogue automation, manual unfinished pause). Donut surfaces unexpected slices.
Constraints
90-day max date range (Cross-Channel limit)
10-min Redis cache (
cca:v2:prefix) — small lag possibleCurrency: all spend in
target_currency(EUR intermediate)Feature gating:
ENABLE_CROSS_CHANNEL_ANALYTICSflag required
How donut + trend differ visually
Donut | Trend |
|---|---|
Snapshot at end of date range | Distribution over date range |
Single number per platform | Time-series per platform |
Easy to grasp current state | Easy to spot changes |
Bad for change-over-time | Bad for current-state-only |
Use both. Donut for "where are we now"; trend for "how did we get here".
Common mistakes
Reading the donut and assuming it's been stable: check trend before concluding
Confusing % share with $ amount: same % can hide growing or shrinking absolute spend
Reading channel mix without channel comparison: high % doesn't mean good performance
Expecting real-time updates: 10-min cache + 15-min sync lag = up to 25-min delay
Common issues
One platform missing from donut: no spend on that platform in window OR platform not selected in scope
Donut total < 100%: rounding; should be very close
Trend looks flat: small range or stable allocation — try a longer window
Numbers different from platform UI: cross-channel converts to
target_currency; tiny FX variance expected
Related
Cross-Channel overview — context
Channel comparison — paired performance view
Budget recommendation — what mix should be