Ad budget allocation simulator
Paste each channel’s spend and results history. The simulator fits the return curves and tells you how much to put in each channel to get more out of the same budget.
Channels and history
For each channel, enter pairs of spend and results from the same period (month, week or campaign). You can paste two columns straight from a spreadsheet into any cell.
Total budget and suggested split
Enter the budget for the period. The simulator spreads it across channels up to the point where the last dollar returns the same everywhere.
Return curves and suggested point
Suggested split
—
Projected leads
—
Cost per lead
—
Next $1,000 returns
—
Gain over an equal split
Reading the result
A point flagged as extrapolation sits beyond the largest spend ever observed in that channel. The curve there is an estimate; raise the budget in steps and feed the history back in.
How to use the simulator
- Name each channel and enter pairs of spend and results from the same period (month, week or campaign). You can paste two columns straight from a spreadsheet into any cell, and the table grows on its own.
- Read the line under each channel. The simulator estimates the result ceiling, the spend that delivers half of that ceiling and the quality of the fit, and warns you when the data is not enough yet.
- Enter the total budget for the period. The suggested split, the projected results and the marginal return of each channel appear instantly, along with the chart of the curves.
- Drag the budget slider to see how the split changes and what the next dollar returns. If a channel has a contractual minimum or a spending cap, set the limits and the simulator respects them.
How the simulator calculates the split
More spend brings more results, but each extra dollar returns less than the one before, because the auction gets pricier and the audience saturates. The simulator describes that behavior with an inverted exponential, y = a · (1 − e^(−b·x)), where a is the channel’s ceiling and b is how fast it saturates. Both parameters are fitted to your points by least squares, with b searched on a fine grid and then refined.
Once the curves are in place, splitting the budget becomes a convex optimization problem, which is why it has a single solution. At the optimum, the marginal return per dollar is the same in every channel that receives budget, because if one channel returned more at the margin, moving a dollar into it from another would improve the total. The simulator finds that point by bisection, respecting the minimums and maximums you set, and shows the common marginal return as what the next dollar brings.
It is the same method Marktech applies when managing accounts, described in the article on allocating budget across channels. The difference is that here it runs on your numbers, in the browser, without sending anything to a server.
What each number means
The terms that appear in each channel’s reading and in the suggested split:
- Ceiling
The most results the channel can deliver in the period, no matter how much you spend. It is the a parameter of the curve. When it sits far above your largest observed result, it is extrapolation, and the simulator warns you. - Half the ceiling
The spend that takes the channel to half its ceiling, equal to ln 2 divided by b. The smaller it is, the sooner the channel saturates. It is a quick way to compare channels, since one may saturate at $1,500 and another only at $4,500. - R²
How much of the variation in your results the curve explains, from 0 to 1. Above 0.9 the fit is good; below 0.5 the points are too scattered and the measurement deserves a review. - Marginal return
How many results the next $1,000 brings in each channel, at the suggested point. At the optimum it is equal in every channel that receives budget, and it is the number that tells you whether raising the total budget is worth it. - Extrapolation
The flag appears when the suggested spend exceeds the largest spend you have ever made in the channel by more than 25%. The curve there is an estimate. Step up gradually and feed the history back in.
Frequently asked questions
How many points do I need per channel?
Two points with different spend levels already define a curve, but with no room for error. From four or five periods on, with budgets that varied between them, the fit starts to become reliable. If you spent the same amount every month, the points pile up and the curve learns nothing about saturation.
What if I have no history for a channel?
Fill in two rows with estimates, what you spend and get today and what you think you would get with double the budget. The curve passes through those two points and the split comes out consistent with your expectation. The better path is to run a few weeks with different budgets and come back with real data.
Why is the curve an inverted exponential?
Because it captures the essentials with two parameters, a ceiling and a saturation speed, and because its derivative has a closed form, which keeps the allocation exact and fast. It is an approximation, not a law. If your data suggests another shape, a low R² is the signal.
Does it work for sales or revenue, not just leads?
It works for any result you can count per period. Pick sales or conversions in the selector and the labels follow. For revenue, enter the amount in the results column and read the projection the same way; the math is identical.
What should I do when the suggested spend exceeds what I have ever invested?
Treat it as a direction, not an order. The curve beyond the largest observed spend is extrapolation. Move the budget in steps of 20% to 30%, measure the period’s results, add the new point to the history and run it again. In two or three rounds the curve learns the new stretch.
Does my data leave the browser?
No. The fitting and the allocation run entirely in your browser, and nothing is sent to a server. So that you do not lose your work when reloading the page, the numbers are kept in your own browser, and the load example button takes you back to the starting point.
Does the split account for attribution between channels?
No. Each curve is fitted to the results attributed to its own channel, so the simulator inherits the attribution model of your tracking. When part of the conversions happens far from the click, as in upper-funnel channels, it is worth complementing it with an aggregate model such as Marketing Mix Modeling.
Read more
- How to Allocate Budget Across Media ChannelsThe article behind the simulator, from concave curves to the equal marginal returns condition.
- Media Plan BuilderOnce the split is decided, build the plan line by line, with a consolidated funnel and a spreadsheet-ready table.
- Marketing Mix Modeling: Attribution Beyond the ClickWhen results happen far from the click, the aggregate model completes each channel’s curve.
- Media Funnel CalculatorProject clicks, leads and sales for one channel from its budget and funnel rates.
Want to apply this to your accounts with real data?
Marktech is a Google and Meta partner and uses this method to manage paid media for companies, chains and franchises.
Talk to a consultant