ROAS counts the revenue the platform can see. It’s blind to COGS, discount depth and returns — so budget scales the ad sets that win on ROAS and lose on margin. Contribution flattens while every dashboard still shows green.
Read-only access · one month of data · no credit card
On one live account a hero SKU reported 3.1× ROAS and looked worth scaling. Run the same revenue down through COGS, discounts and returns, and the ad spend behind it cleared a loss. ROAS graded it a winner. The P&L never agreed.
01
It counts the sale, not what the sale cost you. COGS, discount depth and returns all land after the number the platform grades itself on — so a 3× ad set can still sell below cost.
02
The refund and the promo code hit your margin days after ROAS has already called the ad set a winner and told you to put more budget behind it.
03
Blended ROAS or MER is an average. A few ad sets selling below cost disappear inside a 2.8× headline until contribution — not revenue — is the number you rank on.
Niti Lift resolves one customer across store and marketplaces, folds in real COGS, discount depth and returns, and reprices each ad set on contribution instead of platform ROAS. The call that looked like “scale” becomes “kill,” and you get a short daily list of what actually pays — with the reasoning shown on every call.
Platform ROAS 3.1× ✓
What Meta reports — looks like a winner
True contribution −6% · sold below cost
AOV $19 · COGS $14.10 · discount 18% · returns 7%
The same ad set. Priced on margin, “scale” was the wrong call.
Blended ROAS and MER net your winners and losers into one healthy-looking number. Niti grades every ad set on its own contribution, so the few selling below cost stop hiding behind the ones that aren’t.
All three are losing money inside the 2.8× average.
Kept ad set live — 0.42× → 2.06×
Meta overclaimed the loss ~4.9×. Scaled, not cut.
Cut prospecting 15%
Raise bids · 12 keywords
Retire fatigued creative
Shift 3% across channels
The free margin audit runs on your own numbers — which ad sets and SKUs sold below cost, and the calls that would put contribution back.
Read-only · no integration · no credit card · 45-day outcome guarantee