All business tools

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

  1. Move budget toward Google Search in two steps of about $2,063 a month, measuring results after each.
  2. Trim Meta Ads by $7,125 a month; its last dollars are on the flat part of the curve.
  3. 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.

Explore the relevant Aryo service · All 100 tools