All metrics

What is saturation?

Saturation measures how much of a channel's realistically reachable effect current spend already captures — a value between 0 and 1 on the channel's fitted diminishing-returns curve. Near 0, the channel is barely tapped and additional spend buys nearly proportional margin. Near 1, the audience is exhausted: more budget buys impressions, not incremental sales. It is a raw decimal, not a percentage.

Formula

saturation = Hill(current average adstocked spend) ∈ [0, 1]

Worked example

A channel at saturation 0.35 with marginal ROAS 1.8× has room: spend can grow substantially before returns flatten. Another at 0.85 with marginal ROAS 0.6× is spent through its curve — its strong average ROAS was earned on the steep early part, and the next euro lands on the flat part. The app marks any channel at 0.6 or above in amber as a scaling caution.

How Saldo Metrics computes it

The MMM fits each channel's weekly spend through an adstock transform and a Hill saturation curve — an S-shaped function the regression shapes to the channel's own history of spend and margin. Saturation is that fitted curve evaluated at the channel's current average adstocked spend, clamped to [0, 1], stored per run in fact_mmm_channel_contribution and served from the latest run per method by v_mmm_channel_contribution. It is the level on the curve where marginal ROAS is the slope: the two columns describe the same fitted point, which is why a high saturation and a low marginal ROAS arrive together.

Why it matters

Saturation is the why behind a weak marginal ROAS, and the difference matters for action. A low-marginal-ROAS channel at high saturation is a good channel fully exploited — hold budget, refresh audiences or creative to move the curve itself. The same marginal ROAS at low saturation means the channel is weak per se, and the budget belongs elsewhere.

Common mistakes

  • Reading saturation as a performance grade. High saturation often marks your best channels — you spent them up because they worked. It bounds growth, not quality.
  • Treating 0.6 as a stop sign. The amber threshold is a caution to check marginal ROAS before scaling, not an instruction to cut.
  • Assuming the curve is fixed. Saturation is fitted against the audiences and creatives of the trailing window; new markets, formats or creative can shift the whole curve, and the next run will see it.

Where you see this in the app

Marketing → MMM, as the saturation column of the channel table — amber at 0.6 and above.

Formula
position on the fitted response curve at current spend, 0 to 1
How Saldo Metrics computes it
canonical.v_mmm_channel_contribution, canonical.fact_mmm_channel_contribution

Last reviewed 2026-08-29