← Back to list

Choosing the Right Curve: Power vs. Hill in Marketing Mix Models

Two tools that look similar, behave differently, and are routinely confused

Ayushi · 2026-03-28 17:16 · 4 claps · 3.3 min read
#saturation-curve #mmm #marketing-analytics #marketing-roi
Open on Medium ↗
Wiki topics: ECO · Economy · General GRW · Growth & Analytics

Choosing the Right Curve: Power vs. Hill in Marketing Mix Models

Two tools that look similar, behave differently, and are routinely confused

If you’ve built or reviewed a Marketing Mix Model, you’ve encountered both the power transformation and the Hill (saturation) function. On the surface, they do the same job — they bend a linear spend-response relationship into a diminishing-returns one. But they make different assumptions, behave differently at the extremes, and should never be used together on the same channel.

The Problem Both Are Solving

When you increase media spend, response doesn’t scale linearly. The first £100k on a TV campaign works harder than the next £100k. You reach your best audiences first, hit optimal frequency before wasteful frequency, and your creative is fresh before it becomes wallpaper.

This is the diminishing marginal returns problem. Both transformations address it — differently.

The Power Transformation

transformed_spend = spend^β

One parameter — β between 0 and 1 produces a concave, diminishing-returns curve. The smaller β is, the more aggressively it flattens.

What it assumes: A pure power law anchored at zero, with no ceiling and no threshold. At any spend level, however small, you’re already generating some response. As spend grows unboundedly, so does the transformed value — just slowly.

Use it when:

  • You have limited data or narrow spend variability
  • You’re using frequentist OLS and need parsimony
  • The channel is performance-oriented with no threshold behaviour — paid search, shopping, retargeting
  • You want a fast, robust, single-parameter transformation that won’t overfit

Its blind spot: It can never produce an S-shape, and it never plateaus. It doesn’t respect the physical reality that media markets have ceilings — you can’t reach more people than exist in the market.

The Hill Function

Response(S) = Sⁿ / (Kⁿ + Sⁿ)

Two parameters:

K (half-saturation point) — the spend level at which you achieve 50% of maximum possible response. Low K means the channel saturates quickly; high K means a long efficient runway before diminishing returns bite hard.

n (steepness / Hill coefficient) — controls the curve shape. When n = 1, you get a purely concave hyperbolic curve. When n > 1, an S-shape develops: there’s an initial phase of increasing returns at low spend, an inflection point, then the expected diminishing returns above it. When n > 4, the curve approaches a step-function — near-zero effect below K, near-maximum above it.

What it assumes: A bounded response with a realistic ceiling (the function is constrained between 0 and 1). When n > 1, it also encodes a minimum effective threshold — the idea that below a certain spend level, your campaign struggles to register at all.

Use it when:

  • You’re working in a Bayesian framework with proper priors on K and n
  • Your historical spend varies enough to trace out a curve shape
  • The channel plausibly has threshold behaviour — TV, OOH, radio, podcast, brand campaigns
  • You need the model to respect a response ceiling for budget optimisation
  • You want to let the data reveal whether an S-shape exists, rather than assuming it away

Robyn, PyMC Marketing, and Google Meridian all default to the Hill function. That’s not a coincidence.

Its risk: Two parameters are harder to identify than one. With limited data, K and n can become poorly constrained, and the model may confidently estimate a steep S-shape that’s purely an artefact of the prior. A spuriously high n implies a spend threshold that can produce dramatically wrong budget recommendations.

The One Rule You Cannot Break: Never Stack Them

This is the mistake I see most often, even in experienced teams.

If you apply a power transformation and a Hill function to the same channel, you’re double-applying diminishing returns. The result: a model that massively overstates how quickly channels saturate, understates efficiency at lower spend levels, and produces budget optimisation outputs that recommend spreading spend impossibly thin — because every channel looks nearly saturated at any meaningful investment.

Choose one per channel. Apply it once.

The Decision in One Table

Situation Use Frequentist OLS, limited data Power Performance channel (search, retargeting) Power Narrow historical spend range Power Bayesian MMM with informative priors Hill Brand / broadcast channel (TV, OOH, radio) Hill Need response ceiling for optimisation Hill Unsure if S-shape exists Hill (with prior n ≈ 1)

When genuinely unsure: default to the Hill function with a strong prior pulling n toward 1. You get the flexibility of the Hill shape, but the model won’t invent an S-curve unless the data actually supports one.

Why This Choice Matters

Both transformations encode your beliefs about how media markets work into the model’s functional form. The power transformation says: this channel has diminishing returns and no ceiling. The Hill function says: this channel has diminishing returns, a realistic ceiling, and possibly a spend threshold.

Neither is universally correct. Both can be correct for the right channel with the right data. The discipline is making the choice consciously — and never forgetting that a misspecified spend-response curve produces budget recommendations that are confidently, precisely, and subtly wrong. That’s the worst kind of wrong in a model stakeholders trust.


메타데이터
post_id
e56296473df6
slug
choosing-the-right-curve-power-vs-hill-in-marketing-mix-models-e56296473df6
url
https://medium.com/@ayushi712/choosing-the-right-curve-power-vs-hill-in-marketing-mix-models-e56296473df6
canonical_url
https://medium.com/@ayushi712/choosing-the-right-curve-power-vs-hill-in-marketing-mix-models-e56296473df6
author_url
https://medium.com/@ayushi712
status
ok
fetched_at
2026-06-09 15:37:30