Every operator we talk to opens the same tab first thing in the morning. Meta Ads Manager. Inside it, a single number, the campaign at the top of the table, the one with the green badge, the one with a 6.2× ROAS. That is the campaign your team is going to push more money into today. It's almost always the wrong choice.
The headline ROAS reported by an ad platform isn't wrong exactly. It's just a number computed by people whose job it is to make you spend more on their platform. It uses their attribution model, on their conversion windows, against the revenue they happened to see, and it knows nothing about the rest of your business.
The four numbers it doesn't know
To turn an advertised ROAS into an actual profit number, you have to subtract four things. None of them live inside the ad platform. All of them live inside the systems we connect to on day one.
The math, on a single campaign
Take a real example from a customer we onboarded last quarter, a supplements brand running a Meta prospecting campaign at a reported 6.2× ROAS against a $42,000 monthly spend. The dashboard says they're making money. Here's what actually happened once we computed the true contribution.
- Attributed revenue: $260,000. Looks great. Drop in COGS at 48% and suddenly we're at $135,200 of attributed gross profit.
- Subtract Shopify fees, processing, refund handling at a blended 6.5%, we're at $118,300.
- Subtract the actual return rate (12% on first-touch buyers from this campaign, well above the brand's 4% blended return rate) and we land at $86,400.
- Now the killer step: incrementality. A holdout test on this audience showed 58% of conversions would have happened anyway via organic and email. Multiply by 0.42, true incremental contribution: $36,300.
Plug that back in against the $42,000 spend. The "winning" 6.2× campaign was running at iROAS 0.86×. Every dollar spent was losing fourteen cents of true contribution profit. The brand had been pumping budget into the worst campaign in their account for six months.
The campaign at the top of the dashboard isn't the one making you money. It's the one easiest to take credit for.
What "true contribution" actually means
We use a specific phrase for the number that survives all four subtractions: true contribution profit. Revenue, minus landed COGS, minus fees and shipping, minus returns, minus incremental CAC. The number your bank account agrees with. The number a CFO will sign off on without re-checking by hand.
Every dollar of every campaign in margininfo is bridged back to that number. If the proposed drivers of a margin move don't reconcile to the actual P&L, the investigation re-runs. The math doesn't ship until it sums.
The fix is a queue, not a dashboard
Once you can see true contribution per campaign, the next step isn't another chart, it's a queue of fixes ranked by dollar impact. Pause the 0.86× campaign. Reallocate to the audience sitting at 3.4× iROAS. Reprice the bundle where the returned-COGS line is eating the margin.
That's why margininfo ends every investigation in the same place: a ranked list of recommendations, each sized in actual dollars, each gated for human approval, each reversible. A fix is only a fix if it shows up on the books.
Where to start
Run the math on one campaign. Pick the one currently at the top of your dashboard. Subtract landed COGS, fees, returns, and a conservative 40–60% incrementality factor. If the answer is below 1.0× contribution-ROAS, and for most operators it will be, you've just found a leak that's been hiding in plain sight for months.
Then connect your stack and let the agent do this for every campaign, every audience, every SKU, every week. That's the whole point of margininfo: the math shouldn't depend on you remembering to run it.