POAS: The Metric That Beats ROAS

Profit on ad spend, POAS, is profit divided by ad spend rather than revenue divided by ad spend. That single substitution is why it should govern scaling decisions and ROAS should not. Two products can post the same ROAS and be in completely different financial positions, one funding the business and one quietly draining it.
Why the same ROAS can mean opposite outcomes
Take two products, both running at a 3.0x ROAS on $1,000 of daily spend, so both generate $3,000 in revenue. Product A costs $0.60 to make and ship for every dollar of revenue, leaving 40 cents of gross margin. Product B costs $0.85, leaving 15 cents.
Product A returns $1,200 in gross margin against $1,000 in spend: a genuine profit of $200 a day. Product B returns $450 in gross margin against the same $1,000 spend: a loss of $550 a day. Same ROAS, same spend, same revenue. One product is worth scaling aggressively. The other is bleeding money on every order, and the dashboard cannot tell you which.
POAS for Product A is $200 profit / $1,000 spend = 0.20, or 20 cents of profit per dollar spent. Product B’s POAS is negative 0.55. That is the number that should decide whether you push the budget up or shut the campaign down, and it points in the opposite direction from what ROAS alone would suggest.
The decision rule
Scale spend on anything with positive and rising POAS. Hold or cut anything with POAS near zero or negative, regardless of how strong the ROAS looks. A campaign at 4.0x ROAS on a low-margin product can be less valuable than a campaign at 2.2x ROAS on a high-margin one, because scaling multiplies whatever unit economics already exist. Scale a losing product and you get a bigger loss faster.
This is the same logic behind break-even ROAS: the ROAS you need just to cover cost of goods before ad spend even enters the picture. POAS goes one step further and puts an actual number, not just a pass or fail threshold, on how much the spend is worth.
Why teams still default to ROAS anyway
ROAS is the number Meta Ads Manager reports natively, tied directly to pixel or Conversions API events, refreshed in near real time, and comparable across every campaign in the account without extra setup. POAS requires margin data, and margin data does not live in an ad platform. It lives in a product catalog, an ERP, or a spreadsheet someone updates by hand, often unevenly across SKUs.
That gap explains most of why accounts optimize toward a proxy instead of the outcome they actually want. It is not that marketers do not understand the difference. It is that ROAS is free and POAS costs engineering effort to assemble, so the easy number wins by default until someone notices the account is growing revenue while margin quietly shrinks.
What it takes to get margin data into the decision
At minimum, feed per-SKU or per-product-category cost of goods into the same system that reports ad performance. That means COGS, and ideally landed cost including shipping and payment processing, attached to each conversion event rather than treated as a single blended average across the catalog. A blended average erases exactly the difference that matters, the one between Product A and Product B above.
Many merchants find this genuinely hard for a scattered catalog with hundreds of SKUs and shifting supplier costs. A reasonable middle ground is grouping products into two or three margin tiers, high, medium, low, and tracking POAS at the tier level rather than per SKU. Rough tiering beats no margin signal at all, and it is far less work to maintain than perfect per-SKU accounting.
When ROAS is still the faster read
ROAS remains useful for one thing POAS is bad at: fast, same-day directional reads when margin data lags behind conversion data, which it often does when finance closes the books weekly rather than daily. Use ROAS to spot a campaign that has clearly broken, a sudden drop with an obvious cause. Use POAS to decide whether a campaign that looks fine on ROAS is actually worth funding further.
How YieldBI helps
YieldBI triages a Meta account daily and surfaces which ad sets need a decision rather than leaving that judgment to a dashboard scan. It does not compute your margin, so the POAS half of the picture still comes from your own cost data. The value is that the ad-side judgment arrives daily, which is what makes a margin-aware scaling call possible before the spend is already committed.
The number that actually pays the bills
ROAS answers “did the ad work.” POAS answers “did the ad make money,” and those are not the same question whenever margin varies across what you sell. A business with one product and one fixed margin can get away with treating them as interchangeable. Almost no real catalog looks like that. The accounts that scale profitably are the ones that made the harder number available before they hit the button, not the ones that found out afterward.