Method

Setting an ad budget from the P&L

This is the method I use to set an ad budget for a consumer brand. Six steps, in order, and what each one requires before it will compute.

Platform ROAS and ad margin are two different calculations

Platform ROAS is the revenue a platform attributes to itself, divided by the spend on that platform. It is a gross number, and for most brands it is the only one they ever see.

Ad margin asks the same question financially. It takes the revenue the advertising produced, subtracts COGS, freight and everything else it costs to deliver the product, then subtracts the advertising itself. What is left is what the spend earned the business. I track it in dollars and as a percentage, the same way you would track gross margin.

The two can point in opposite directions in the same month. A 4.0 platform ROAS says the campaign worked. Ad margin on those same orders can be negative once product cost, freight, returns and discounts are loaded in.

This is most of what an agency and an accountant are actually disagreeing about. The agency reports the first number. The accountant reports the consequence of the second. Neither is wrong, and neither on its own is enough to set a budget.

Figure 1
A 4.0 ROAS month, read financially

The platform reports the first number. The business keeps the last one.

$100,000 Attributed revenue −45,000 COGS −14,000 Freight and fulfillment −8,000 Returns and discounts −25,000 Ad spend $8,000 Ad margin 8% of revenue Platform reports 4.0x ROAS Business keeps 8%
Same month, same orders. One number is a ratio of revenue to spend. The other is what the spend earned after the cost of delivering it.
Illustrative. Not client data.

What most brands are actually looking at

A platform reports three things.

Spend on that platform Revenue it attributes to itself The ratio of the two

It does not hold cost of goods, inbound freight, returns, discounts, or the fixed overhead the spend has to clear. Attribution also overlaps, so two platforms will both claim the same order, and adding attributed revenue across platforms overstates revenue by more as you add channels.

Against that, here is what most brands are doing.

That last one is the whole problem. Every number above already exists somewhere in the business. They sit in different systems, owned by different people, measured over different periods, and nobody is holding them together.

Build the P&L to line level

Nothing downstream computes until the P&L is right. On the engagement behind the case study I built 45 monthly P&Ls and broke OPEX into 14 lines. That became the measurement system every later recommendation ran on.

Line level is a requirement, not a preference. Ad spend sitting inside one undifferentiated marketing line cannot be tested against anything, because there is nothing to compare it to and no way to see which part of it moved. The same is true of COGS carrying freight inside it, and of OPEX carrying one-off costs that will not recur.

Before any of this computes, the books usually need work. The monthly P&L has to be normalized, which means restating the history so each month carries its own rent, interest, depreciation and inventory rather than landing wherever the payment happened to fall. Twenty-four months is the right depth, because it covers two of every season. Without it, a month looks expensive because an annual insurance premium landed in it, and you spend a week explaining a cost that was never a cost.

The data also has to tie out to the books before anyone trusts a conclusion drawn from it, and whatever is missing has to be written down rather than estimated around.

Until this exists, every ad budget conversation is an argument between two opinions. After it exists, it is arithmetic.

Find the balance between growth and profitability

The question is not what the maximum return is. It is which combination of growth and profitability the business actually wants, and what spend level delivers it.

Regress monthly ad spend against incremental revenue. On the engagement behind the case study that was two years of monthly history. The regression gives you the shape of the curve, which is what the trade is actually made against.

Figure 2
Ad margin against monthly spend

Underspending leaves growth unbought. Overspending buys revenue that only covers its own cost. The budget decision is choosing a point on this curve deliberately.

Threshold Growth left unbought Working harder for the same money Monthly ad spend Ad margin ($)
Ad margin Fixed and operating costs
A brand scaling on purpose may choose to sit right of the threshold. That is a decision as long as the business can fund the gap. The failure is landing there without knowing it.
Illustrative. Not client data.

Spend too far under the threshold and you are leaving growth on the table while reporting a healthy ad margin. Spend too far past it and the additional revenue only covers what it costs to deliver, so the measured ad margin erodes toward breakeven, in dollars and as a percentage. You end up working harder for the same money.

Neither end of that is automatically wrong. A brand taking share or entering a market may choose to run at a thinner ad margin on purpose, and that is scaling wisely as long as the business can fund the gap while it does. A brand protecting cash may choose the other side.

What makes it a decision rather than an accident is knowing what the next point of growth costs in margin before you buy it.

Fixed and operating costs set the floor underneath all of it. You can express that floor either way, as the overhead dollars the ad margin has to cover or as the ad margin percentage that clears them. It is the same arithmetic, so I use whichever one the business already thinks in.

On the engagement behind the case study, ad spend came down 24% in FY2025 and sales still grew 10.4%.

Analyze every channel, then move the money

Blended ad margin hides the channels doing the damage. A brand can hold an acceptable blended number while one channel runs at breakeven and another carries it.

Run the full calculation per channel. Revenue the channel produced, less the cost to deliver those orders, less the spend on that channel. Keep CAC and platform ROAS alongside it, so you can see what the platform was reporting while that was true.

Figure 3
What blended reporting hides

Four channels, one acceptable blended number, and one channel contributing nothing.

Channel Reported ROAS Ad margin Contribution Meta 3.8x 14% Newsletter 6.1x 22% Reddit 2.9x 6% Google 4.2x −3% Blended 4.1x 11% Looks fine
Google reports the second-best ROAS on the page and is the only channel not contributing. Nothing in the blended number says so.

The gap is usually attribution. A channel weighted toward branded search and retargeting claims orders that would have happened anyway, so its reported revenue is real and its incremental revenue is not.
Illustrative. Not client data.

The output is not a verdict on each channel on its own. It is a ranking of where the next dollar earns the most, which is what you actually have to decide. Pull back where ad margin is thin, divert into what is working, and test surfaces you are not on yet.

On the engagement behind the case study that meant cutting Google spend 64.5% year over year and redeploying into Reddit, MNTN and newsletter. Active channels went from three to six.

Two things happened there at once, and they are separate decisions. Step 2 sets how much total spend the business should carry. Step 3 sets how that total is divided. Deciding them together is how a brand ends up cutting a channel that was working because the overall number needed to come down.

Test ad margin against fixed and operating costs

Ad margin is what the advertising left behind. Fixed and operating costs are what the business carries regardless of how the advertising performed. Put them next to each other, and what remains is EBIT.

If ad margin clears the overhead, the spend level from Step 2 holds and you carry on.

If it does not, the first question is whether the advertising is inefficient enough that fixing it would close the gap. Sometimes it is, and a CPA improvement covers the shortfall on its own. More often the gap is larger than any plausible CPA improvement, and the problem is structural rather than in the advertising.

Compare the size of the shortfall to what a realistic CPA improvement would produce. If the shortfall is bigger, it is one of three things, and the test tells you which.

The response follows the cause. Too little volume is a business model question before it is a marketing one. A pricing problem is solved with pricing, not with more spend. Too much fixed cost is solved by taking cost out.

A brand can optimize its advertising for a year and stay unprofitable, not because the optimization failed, but because the shortfall was never in the advertising to begin with.
Figure 4
The same ad margin, against two different cost structures

Ad margin is not good or bad on its own. It is only good or bad relative to what the business has to carry.

Fixed and operating costs Ad margin EBIT Business A overhead is covered Ad margin Shortfall Business B overhead is not covered Same ad margin percentage. Different answer.
Business B does not have an advertising problem. It has too much fixed cost, too little volume, or pricing that does not support the structure. More ad work will not close that gap, which is why this test comes before any further optimization.
Illustrative. Not client data.

Read the financials and the ad metrics over the same periods

Everything to this point measures one period. A period can look acceptable on its own and still be moving in the wrong direction.

Put the period over period change in the financials next to the period over period change in the ad metrics. When the ad metrics improve and the financials do not, it is usually one of three things.

Then split new customers from returning ones. Ad spend that is buying returning customers is likely buying revenue the business would have had anyway. That shows up as an acceptable ROAS next to flat growth, and it is one of the few places where the platform number and the financial number can both look fine while nothing is actually happening.

Then put CLV against CAC. Ad margin measures what an order left behind in the period it happened. CLV against CAC measures what a customer leaves behind over their life. A channel can look thin on first-order ad margin and still be worth funding if those customers come back, and a channel can look healthy on first-order ad margin and never produce a second order.

That is the holistic read, and it is what tells you whether you are over or underspending across the customer lifetime rather than inside the month.

Set the budget

Start with what you changed last period and what it did to the financials. You moved spend between channels, you pulled back somewhere, you changed a price. The financials from that period tell you which of those worked, and that is a better input than any forecast.

The platform metrics tell you whether it worked too, and they tell you sooner than the financials do. Work the chain.

CPMs spiked in the window, as predicted You cut spend rather than bid into it CPAs should come down ROAS should strengthen Ad margin on the financials should follow

Each link is checkable on its own, which is what makes it useful. If CPMs spiked and you cut and CPAs did not come down, the problem is not the auction and you go looking somewhere else. If the first three hold and ad margin still does not improve, the problem sits downstream of the advertising, which puts you back on timing, COGS, OpEx or AOV.

Then take the forward view. CPMs move with the market, not with your business. Q4 costs more than Q2 because everyone is bidding, not because your ads got worse. A budget set without that gets read as a performance problem in November when it is a pricing problem in the auction.

Run expected seasonality against your own platform performance. What demand does in your category, what CPMs do in that window, and what your channels actually did in the same window last year.

The budget is where those two meet. Last period tells you what works. Seasonality tells you what it will cost.

Step 6 feeds straight back into Step 5, because next period you are reading the impact of the budget you just set. This is a loop that runs every period, not a project with an end.

Figure 5
CPMs move with the calendar, not with your performance

Q4 costs more because everyone is bidding. A budget set without that reads as a performance problem in November when it is a pricing problem in the auction.

Peak CPMs JFM AMJ JAS OND Month
CPM index Monthly spend
Spend comes down into the peak rather than up. The same dollar buys less attention in November, so the question is not whether to be in market but how much of the year’s budget to spend at the year’s worst prices.
Illustrative. Not client data.

A note on concentration

Concentration in two platforms is a risk to the business, not only to marketing performance. When one algorithm changes, revenue changes with it, and nothing in the P&L absorbs that.

On the engagement behind the case study the brand went from three active channels to six, and from one market to four, adding Canada, the UK and Australia. The 2026 focus is scaling Google through non-branded search, to acquire new customers at a lower marginal CAC than re-targeting saturated audiences.

Figure 6
Four steps set it up. Two run forever.

The reason this is a cadence rather than a project.

Step 1 Step 2 Step 3 Step 4 Build the P&L Find the balance Move the money Test overhead Every period Step 5 Read the period Step 6 Set the budget Runs once, in order Repeats
Step 6 feeds straight back into Step 5, because next period you are reading the impact of the budget you just set. That loop is the work. The first four steps exist to make it possible to run.

What the work actually requires

Every item on that list is a prerequisite, not a deliverable. None of it is exotic, and all of it already exists somewhere in the business. The work is assembling it into one frame and keeping it there.

What it added up to

One engagement, three years, figures from the client's monthly P&Ls.

Ad spend 47% to 30% of net sales EBIT margin −0.7% to 16.6% Revenue +70% from FY2023 to FY2025 AOV +18% Repeat purchase share 38% Capital raised none

Absolute dollars are redacted at the client's request. All ratios and percentages are real. The full engagement is at /case-study.

If you want this run on your numbers

I do a First Read before any first call. You send your last twelve months of P&L and whatever SKU or channel detail you keep, I work through it, and I bring you where I think the margin actually is.

I sign a mutual NDA before you send anything. It is optional, and if you would rather just talk first, we talk first.

Start a conversation
Figures in Figures 1 to 3 are illustrative and do not represent any client. The results above are real and anonymized. More at /insights.