Channel mix — donut explained
getChannelMixTrend service. Donut: current per-platform spend share. Stacked area: trend over time. 90-day max. Spot budget concentration.
Written By Salvatore Sinigaglia
Last updated About 4 hours ago
getChannelMixTrend service. Donut: current per-platform spend share. Stacked area: trend over time. 90-day max. Spot budget concentration.
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()inapps/backend/src/services/cross-channel-analytics.service.ts. ReturnsChannelMixTrendPointper 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:
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 possible - Currency: all spend in
target_currency(EUR intermediate) - Feature gating:
ENABLE_CROSS_CHANNEL_ANALYTICSflag required
How donut + trend differ visually
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
FAQ
What does the Wevion Channel mix block show?
The Wevion Channel mix block shows per-platform spend share two ways: a donut chart of current share at the end of the date range, and a stacked area chart of that share as a trend over time. It's backed by getChannelMixTrend() and helps you spot concentration or drift in how budget is distributed across platforms.
When should I use the donut versus the trend chart?
Use the donut for "where are we now" — it's a snapshot of current spend share per platform, easy to grasp at a glance. Use the stacked area trend for "how did we get here" — it shows distribution over the date range and makes budget shifts, step changes, and gradual drift visible.
How do I spot budget concentration in the Channel mix?
Read the donut: one platform above roughly 60-70% of spend signals high concentration, which is risky if that platform falters. A balanced split like 25/25/25/25 is healthy diversification, and any platform under 5% is either unused or a small test worth noting.
Why is a platform missing from the donut?
A platform is absent from the Channel mix donut when it had no spend in the selected window, or when it wasn't included in the platforms scope for the query. If the donut total looks slightly under 100%, that's just rounding and should be very close.
Does the Channel mix tell me if my mix is good?
No — the Channel mix block only tells you what the mix is, not whether it's good. Pair it with the Channel comparison block to see whether each platform's share is earning its keep, and with the Budget recommendation block to see what the share should be.