Diminishing Returns Budget Allocator
Fit a saturation curve to each channel and split your budget where the next dollar buys the most results.
Example scenario—not a forecast or verified benchmark. Enable JavaScript to edit inputs, view charts, save locally and export your analysis.
Example inputs
- Channels (two spend levels each)
- [{"name":"Google Search","currentSpend":12000,"currentResults":150,"testSpend":8000,"testResults":115},{"name":"Meta Ads","currentSpend":10000,"currentResults":100,"testSpend":6000,"testResults":85},{"name":"Local Services Ads","currentSpend":3000,"currentResults":50,"testSpend":2000,"testResults":38}]
- Total monthly budget to allocate
- 25,000
- Value of one result
- 150
- Max spend per channel (× highest spend you've run)
- 2
- Curve exponent when a channel can't be fitted
- 0.7
Example results
Reallocating the same $25K/month budget lifts results from 300 to 329 a month (+9.7%), worth about $53K a year.
- Results per month, optimal mix
- 329.2
- Results per month, current mix
- 300
- Annual value of reallocation
- $52,629
- Cost per result, current
- $83.33
- Cost per result, optimal
- $75.93
- Biggest shift
- +$4,125 to Google Search
- Budget left unplaced (guardrail)
- $0
What stands out
Meta Ads saturates fast (exponent 0.32)
Doubling spend here adds well under half again as many results. Hold it near its efficient level.
Next dollar works hardest in Google Search
At current spend it returns 8.2 results per extra $1,000 vs 3.2 in Meta Ads.
Reallocation adds 29.2 results a month (9.7%)
Worth about $53K a year at $150 per result, with no extra spend.
Next actions
- Move budget toward Google Search in two steps of about $2,063 a month, measuring results after each.
- Trim Meta Ads by $7,125 a month; its last dollars are on the flat part of the curve.
- Refit the curves every quarter with fresh spend/result pairs; saturation shifts with seasonality and competition.
Model assumptions & limitations
- Each channel follows results = a × spend^b, fitted through your two observations, with b clamped between 0.05 and 1 (diminishing or constant returns).
- Budget is allocated in small increments to whichever channel adds the most results next, which equalizes marginal returns.
- Spend per channel is capped at 2x the highest level you have run, because curves are unreliable far outside observed data.
- Assumes channels act independently; cross-channel effects (e.g. brand search lifted by social) are not modeled.