Budget Allocator

What-if sandbox · live curves · no sign-up · shareable link

Every channel gets less efficient as you push more spend through it — that is why "put it all in the winner" stops working. Set your budget, each channel's ROAS at current scale, and how fast it saturates, then drag the split and watch blended ROAS, revenue and the marginal-rupee verdict move live. The model is deliberately simple and stated plainly below, so you can argue with it. Runs entirely in your browser; copy the link to send any scenario to a teammate.

Formula

Channel revenue = spend × base ROAS × (1 − drag × spend share)

Your numbers
Monthly budget₹10,00,000
Google share50% · ₹5,00,000
Meta share40% · ₹4,00,000

Retention gets the rest: 10% · ₹1,00,000

Google base ROAS3.2x
Meta base ROAS2.6x
Retention base ROAS6.0x
Google saturation drag0.30
Meta saturation drag0.50
Retention saturation drag0.70
Gross margin40%
Blended ROAS

2.75x

Breakeven at 2.50x on 40% margin.

Projected revenue

₹27,50,000

Contribution ≈ ₹11,00,000 after COGS.

Marginal ROAS — what the next rupee earns
Google · 2.24x2.24x · 25%
Meta · 1.56x1.56x · 17%
Retention · 5.16x5.16x · 58%
Verdict

Move budget from Meta (1.56x marginal) to Retention (5.16x marginal).

Blended ROAS as Google's share sweeps 5% → 90% (dashed = your breakeven)

2.4x2.5x2.6x2.7x2.8xbreakeven5%20%35%50%65%80%90%

Averages describe the past; marginals decide the next allocation. Run this same analysis on live spend in DataLens chat — no manual ROAS lookups.

Inputs

What each field wants

Monthly budget
The fixed total you are allocating. The tool only reallocates — it never suggests spending more, which is what makes the comparison honest.
Channel split
Share of budget per channel. Whatever is left after Google and Meta goes to retention/organic, which usually has the highest ROAS and the hardest ceiling.
Base ROAS per channel
Each channel's ROAS at its current spend level — read it off last month's reconciled numbers, not the platform dashboard.
Saturation drag per channel
How fast efficiency decays as a channel takes a larger share: 0 means perfectly scalable, 0.8 means brutal diminishing returns. Brand search is low-drag; broad prospecting is high-drag.
Gross margin
Used only to translate revenue into contribution, and to draw the breakeven line the blended ROAS must clear.
Methodology

How this number is derived

Diminishing returns in one controllable term

Channel revenue = spend × base ROAS × (1 − drag × share), where share is the channel's fraction of total budget. At zero share the channel earns its full base ROAS; as its share grows toward 100%, efficiency decays linearly toward base × (1 − drag). It is a simplification — real saturation curves are S-shaped — but it captures the decision-relevant behaviour: the marginal rupee earns less than the average rupee.

The marginal rupee decides the shift

The tool differentiates each channel's revenue curve — marginal ROAS = base × (1 − 2 × drag × share) — which is what one more rupee put there returns. Budget should flow from the lowest marginal ROAS to the highest until they equalise. A 0.5-point gap between two channels' marginal ROAS is a reallocation with a clear expected payoff; a 0.1 gap is noise.

Why retention is in the mix

Retention spend (email, SMS, loyalty) typically shows the highest ROAS and the lowest ceiling — it cannot absorb arbitrary budget because the audience is finite. Give it a high base ROAS and a high drag to model that honestly, and the allocator will stop feeding it once its marginal return falls below paid channels.

Worked example

₹10L across three channels

Budget
₹10,00,000/month
Current split
Google 50% · Meta 40% · Retention 10%
Base ROAS
Google 3.2x · Meta 2.6x · Retention 6.0x
Current blended ROAS ≈ 2.75x → ₹27.5L revenue
Marginal ROAS: Retention 5.2x > Google 2.2x > Meta 1.6x
Shift 10 pts Meta → Retention: blended ≈ 3.06x → ₹30.6L revenue
Gain ≈ ₹3.1L/month from one reallocation, same total budget

The average ROAS said Meta was fine at 2.6x. The marginal ROAS said the next rupee there earned 1.6x while retention earned 5.2x. Averages describe the past; marginals decide the next allocation — that gap is the whole reason this tool exists.

Reference

Sanity bands for the inputs

Rough D2C orientation — your account history beats any benchmark.

Brand search ROAS5–10xLow drag. Defend it, but it cannot absorb the whole budget.
Prospecting ROAS1.5–2.5xHigh drag. First to saturate, first to cut when marginals diverge.
Retention ROAS5–12xHighest base, highest drag — small audience, fast ceiling.
Healthy reallocation gap> 0.5xMarginal-ROAS gaps above ~0.5x are worth acting on; below that is noise.
Scope

What this assumes, and what it doesn't model

Assumptions

  • Channels are independent — no halo from Meta prospecting into Google brand search.
  • Base ROAS figures are reconciled against your books, on the same attribution window.
  • Linear efficiency decay within the explored range; valid for shifts of ±30 points, not for 10× scale-ups.
  • Budget is fixed; the tool reallocates rather than recommending more spend.

Deliberately not modelled

  • Does not model cross-channel halo, caching of which routinely understates upper-funnel value.
  • Does not model creative fatigue over time — drag is a static input, not a forecast.
  • Ignores cash-flow timing: a rupee in retention returns faster than a rupee in prospecting.
  • Single-period view. It does not compound new-customer acquisition into future retention revenue.
FAQ

Common questions

Why does the tool disagree with "put everything in the highest-ROAS channel"?

Because average ROAS is backward-looking and marginal ROAS is what the next rupee earns. The highest-average channel is usually the most saturated — its next rupee is its worst rupee. The allocator follows marginals, which is why it often recommends feeding the "worse" channel.

How do I estimate the saturation drag?

Look at history: when this channel's spend doubled, what happened to its ROAS? A 10% ROAS drop on a doubled share implies a drag around 0.2; a 40% drop implies ~0.6. Start with 0.3 for search, 0.5 for social prospecting, 0.7 for retention — then calibrate against your own months.

Is the revenue figure a forecast?

No — it is a scenario comparison. The absolute revenue depends on inputs you estimated; the ranking of scenarios (A beats B by ~₹X) is far more robust than either number alone. Use it to choose a direction and a size, then validate in the ad account.

Can I share a scenario with my team?

Yes — every slider position lives in the URL. Copy the link and anyone opening it sees exactly your scenario, with no account or login.

Last reviewed September 6, 2026.