adlibrary.com Logoadlibrary.com
Share
Advertising Strategy

POAS in 2026: The Profit Metric ROAS Should Have Been

POAS replaces ROAS as the primary ad optimization metric. Learn the formula, calculation walkthrough, and how to bid to gross profit targets by margin tier.

Split-screen dashboard illustration showing ad spend and revenue with ROAS formula calculation

Profit on ad spend. The name is self-explanatory, the math is not complicated, and yet most paid-media teams are still optimizing for a number — ROAS — that counts revenue instead of profit. POAS fixes that. One formula change that turns your ad account from a revenue machine into a margin machine.

TL;DR: POAS = gross profit ÷ ad spend. It replaces ROAS as the primary bid optimization signal for any operator who cares whether spend is profitable, not just whether it generates revenue. Calculate it per SKU, per campaign, per channel. Bid to a POAS target, not a flat ROAS target. Your high-margin products will scale. Your margin-destroyers will get cut.

Why ROAS became the default — and why that was always wrong

ROAS won by accident. In the early days of paid search, tracking revenue was hard enough. Tracking profit per ad click required integrating COGS data that lived in ERP systems most agencies never touched. So the industry settled on "revenue divided by spend" and called it efficiency.

It's not efficiency. It's a revenue multiple. A 4x ROAS on a product with 20% gross margin is a loss. A 2x ROAS on a product with 70% gross margin is outstanding. The number tells you nothing without the margin context.

Contribution margin is what ROAS pretends to measure. POAS makes it explicit.

The practical problem: you can't bid to profit if you're optimizing to revenue signals. Meta's value optimization sends spend toward high-revenue orders. If your highest-revenue products are also your lowest-margin products — and for most ecommerce businesses, they are — you're training the algorithm to find the wrong customers at the wrong price.

POAS breaks that loop.

The POAS formula and what goes into it

The core math is simple:

POAS = Gross Profit from Ads ÷ Ad Spend

Where gross profit = revenue − COGS − variable fees (returns, payment processing, platform fees, fulfillment).

A POAS of 1.0 means you broke even on gross profit before fixed costs. A POAS of 2.0 means $2 of gross profit for every $1 of ad spend. Unlike ROAS, you know exactly what "good" means: anything above your fixed cost ratio is profitable, and you can calculate that number in ten minutes.

The components you need per order:

  • Revenue (net of discounts, not gross)
  • COGS (landed cost: product cost + inbound freight + duties)
  • Return rate × average return cost (reverse logistics + restocking)
  • Payment processing (typically 2.5–3.5% of revenue)
  • Platform/marketplace fees if applicable
  • Variable fulfillment cost per unit if not included in COGS

Fixed costs — salaries, software, rent — don't belong in POAS. They go in MER and blended contribution margin calculations. POAS is the marginal profitability signal for the ad-level decision.

POAS calculation walkthrough: a real product example

This is where most explanations go abstract. Let's use an actual product: a $120 skincare kit sold DTC on Shopify with Meta as the primary paid channel.

Line itemPer-order value
Revenue (net of 10% discount)$108.00
COGS (product + inbound freight)$32.00
Return rate (12%) × return cost ($8)$0.96
Payment processing (2.9% + $0.30)$3.43
Variable fulfillment (pick/pack/ship)$6.50
Gross profit per order$65.11
Gross margin %60.3%

If this customer was acquired via a Meta campaign with $22 in ad spend (blended CAC across the cohort):

POAS = $65.11 ÷ $22.00 = 2.96

The same order has a ROAS of 4.9x ($108 ÷ $22). The ROAS looks great. The POAS tells you something more useful: you're generating $2.96 of gross profit per dollar of spend, meaning your gross margin covers spend with a 2.96x buffer before fixed costs.

Now the same calculation on a different SKU in the same catalogue: a $45 accessory with $28 COGS, 8% return rate, same fulfillment:

Line itemPer-order value
Revenue (net of 5% discount)$42.75
COGS$28.00
Return cost$0.38
Payment processing$1.54
Variable fulfillment$6.50
Gross profit per order$6.33
Gross margin %14.8%

If this SKU drives a 4.9x ROAS at the same $22 CAC — which looks identical on the dashboard — the POAS is $6.33 ÷ $22 = 0.29. You're spending $22 to generate $6.33 of gross profit. The algorithm is scaling a product that destroys margin while a 4.9x ROAS signals "keep going."

That's the ROAS trap. POAS surfaces it instantly.

POAS targets by margin tier

The right POAS target isn't universal — it depends on your gross margin and fixed cost structure. This table gives you the working targets by margin tier.

Gross margin %Breakeven POASConservative targetAggressive growth targetNotes
10% (low-margin retail, commodities)1.01.4–1.82.2–2.8Tiny buffer; volume-dependent model; MER discipline critical
30% (average ecommerce, apparel basics)1.01.3–1.61.8–2.5Standard DTC benchmark; subscription uplift helps
50% (branded CPG, premium DTC)1.01.5–2.02.5–3.5Most flexibility; allows LTV bets
70%+ (digital goods, SaaS, high-IP)1.02.0–3.04.0–6.0+Unit economics very favorable; CAC payback is the binding constraint

The breakeven POAS is always 1.0 — gross profit equals spend. The conservative and aggressive targets assume fixed costs represent 20–35% of revenue (typical for scaling DTC). If your fixed cost ratio is higher or lower, adjust accordingly.

One important nuance: these are acquisition POAS targets. If you're optimizing on LTV cohorts — baking in predicted repeat purchase value — your target POAS can drop below 1.0 on first purchase if the cohort economics justify it. This is the DTC subscriber playbook. Don't confuse acquisition POAS with lifetime POAS.

See also: how average order value interacts with POAS — a higher AOV on the same margin % changes your absolute gross profit per order and gives you more headroom on CPA without moving the POAS ratio.

How to implement POAS bidding on Meta

Meta doesn't have a native "POAS" optimization objective. You implement it via value-based bidding with a profit-adjusted signal.

The mechanism: instead of passing order revenue as the conversion value in your pixel or CAPI event, pass gross profit per order. Meta's value optimization algorithm then bids to maximize the value signal — which is now margin, not revenue.

Step 1: Calculate gross profit server-side. Your Shopify order webhook fires → your backend calculates gross profit using the SKU-level margin data (COGS table) minus the variable cost stack. This is the value field in your Purchase event.

Step 2: Send via Conversions API. Pass the profit-adjusted value to Meta CAPI with currency: "USD". The pixel-only implementation isn't sufficient for attribution window accuracy post-ATT.

Step 3: Set a minimum ROAS (MOAS) floor. In Meta's value optimization settings, set the "minimum ROAS" to your breakeven POAS expressed as a ratio. For a 50% margin business targeting 1.5 POAS, set minimum ROAS to 1.5. Meta will restrict delivery to orders expected to exceed that margin threshold.

Step 4: Validate with MER. POAS is a micro-signal; MER (total revenue ÷ total marketing spend) is the macro check. Run POAS optimization per campaign, validate the portfolio-level MER every week. If MER improves while POAS holds, you're scaling efficiently.

For Advantage+ Shopping Campaigns, value optimization is natively available — set your conversion value rules at the catalog level for best results. For manual creative testing campaigns, pass profit values consistently to avoid signal contamination.

Google Ads handles this via Target ROAS bidding with profit-adjusted conversion values — same principle, different interface. If you're running performance marketing across channels, standardize the profit-value calculation upstream and pass it consistently.

POAS vs ROAS vs MER: when to use each

These three metrics aren't competing — they're operating at different levels of abstraction.

ROAS = revenue signal, channel-level, fast feedback. Use for creative performance comparison within a campaign, where margin mix is roughly constant. Don't use as a portfolio optimization target.

POAS = gross profit signal, campaign/SKU level, requires COGS integration. Use as the primary bid optimization signal and for SKU-level ad spend allocation decisions. The right metric for "should I scale this campaign?"

MER = portfolio-level efficiency, attribution-agnostic, slow signal. Use for channel budget allocation across paid social, search, and media buying. The right metric for "is total marketing spend sustainable?"

The typical cascade for a mature DTC marketing operation: set MER guardrails at the CFO level → allocate channel budget to hit MER → within channels, optimize ecommerce ads to POAS targets by campaign → use ROAS only as a creative signal within consistent-margin ad sets.

Contribution margin per order and payback period close the loop: contribution margin tells you whether each incremental order is profitable at all, and payback period tells you whether the CAC is sustainable given LTV.

For a worked comparison of how the numbers diverge in practice: MER might show 3.5x portfolio efficiency while your POAS on a specific product line sits at 0.8. That's a signal to cut that product from paid allocation, not to cut the channel. That distinction is only visible when you're running all three metrics.

The POAS vs payback period decision

A common question: if I'm optimizing on POAS, do I still need payback period?

Yes, because POAS is instantaneous. It measures whether an order generates gross profit. Payback period measures how long it takes to recover CAC from that gross profit stream — and for any subscription or repeat-purchase business, these diverge sharply.

Example: a POAS of 0.7 on acquisition looks bad in isolation. But if your average customer makes 4 purchases in year one with a 60% retention rate, the 6-month cumulative POAS is 3.2. You're acquiring below gross margin on first purchase and winning over time.

The rule: use POAS for in-flight bid optimization. Use payback period to set acceptable first-purchase POAS floors. For most DTC businesses, a first-purchase POAS floor of 0.5–0.8 is defensible if cohort data supports a 6-month payback.

Don't let this become an excuse to hide bad unit economics. If your payback period keeps extending quarter over quarter, that's a product-market or pricing problem, not an ad optimization problem.

LTV forecasting models and growth marketing cohort analysis give you the data to set those floors confidently. Without them, you're setting POAS targets blind.

Step 0: AdLibrary as POAS hypothesis seed

Here's where AdLibrary fits before you've run a single POAS-optimized campaign.

Competitors who are spending at scale on high-margin angles are already running the POAS analysis — they just won't tell you their margin stack. But their ad patterns are public. When you see a competitor hammering a "bundle" angle, a "premium version" message, or a "subscribe and save" hook in their ad creative, that's a signal they've identified a high-margin product configuration worth acquiring customers on at aggressive ad spend.

The AdLibrary surface area: search your category, sort by longest-running ads. The creatives that have been running 6–12 months at scale are almost certainly positive POAS. The angle that drove that spend decision — the benefit claim, the format, the offer structure — is your hypothesis.

You're not copying creative. You're inferring which product configurations and margin structures your competitors have already validated, then testing the equivalent angle on your own catalogue. Creative testing with POAS as the success metric instead of ROAS will surface which of those hypotheses holds for your margin stack.

For DTC marketing operators building a POAS framework from scratch: start by flagging your top three highest-margin SKUs, then spend two hours in AdLibrary looking at what your category leaders run the longest on those product types. The intersection of "competitor has run this angle for 6+ months" and "our margin is 50%+ on this SKU" is your first POAS test queue.

Growth marketing teams can use the same signal at the channel level — which competitors are investing in paid social versus search versus media buying at scale tells you where the margin-positive acquisition signals are coming from in your category. It's the cheapest POAS research available.

Common POAS implementation mistakes

Using revenue as the CAPI value and calling it POAS. Sending revenue but then calculating POAS manually post-campaign doesn't close the loop — the algorithm still optimized to revenue signals. You have to pass profit values upstream or the bid signal is unchanged.

Ignoring return rate variance by product. A 5% return rate on product A and 22% return rate on product B change the gross profit calculation significantly. Averaging across the catalogue is a mistake that biases your POAS signal upward and causes over-bidding on high-return SKUs.

Conflating gross margin and contribution margin. Contribution margin includes variable marketing costs in the calculation. Gross margin doesn't. For POAS, use gross margin (revenue minus COGS and variable unit costs, excluding marketing spend). The marketing spend is the denominator in POAS — including it in gross profit creates circular logic.

Setting POAS targets without a MER anchor. If you set POAS targets at 2.0 per campaign but your fixed cost ratio requires a portfolio MER of 3.5, you'll hit POAS targets and still lose money. Set MER first, then back-calculate the POAS floor that makes the MER achievable at scale.

Running POAS optimization without sufficient volume. Meta's value optimization requires meaningful conversion volume to model effectively — typically 30–50 purchase events per week per ad set. If you're below that threshold, use cost cap with profit-adjusted conversion values rather than value optimization. Low-volume value optimization delivers erratic CPM spikes and inconsistent CPC patterns that collapse ROAS and POAS simultaneously.

Frequently asked questions

What is POAS in advertising? POAS — profit on ad spend — is gross profit generated from advertising divided by ad spend. It replaces ROAS as the primary optimization metric for operators who need to know whether ad spend is actually profitable, not just whether it drives revenue. The formula is: POAS = (revenue − COGS − variable costs) ÷ ad spend. Sources: Triple Whale POAS methodology, Common Thread Collective POAS guide.

What is a good POAS? A POAS of 1.0 is gross breakeven. For most ecommerce and DTC businesses, a target POAS of 1.5–2.5 on acquisition is standard, depending on gross margin and fixed cost structure. High-margin businesses (60%+) can target POAS of 3.0+ profitably. Low-margin businesses (under 20%) need POAS of 1.8+ to cover fixed overhead. See the margin-tier table above for specific targets by business type. Shopify's ecommerce benchmarks and Klaviyo's DTC metrics report align with these ranges.

How is POAS different from ROAS? ROAS = revenue ÷ ad spend (a revenue multiple). POAS = gross profit ÷ ad spend (a profit multiple). ROAS ignores COGS, returns, and fees. POAS accounts for all variable costs. A 5x ROAS on a 15% margin product generates less gross profit per dollar of spend than a 2x ROAS on a 70% margin product. POAS is the number that tells you whether advertising is building or destroying your business.

Can you optimize Meta campaigns to POAS? Yes, via value-based bidding with profit-adjusted conversion values. Pass gross profit per order as the value in your Meta CAPI Purchase event instead of revenue. Meta's Value Optimization documentation covers the implementation. Meta's algorithm will then bid to maximize profit-weighted conversion value. Set the minimum ROAS threshold equal to your POAS target. Meta's Advantage+ Shopping supports this natively.

How do you calculate POAS?

  1. Take net revenue per order (post-discount). 2. Subtract COGS (product cost + inbound freight + duties). 3. Subtract variable costs per order (returns × return cost, payment processing, fulfillment). 4. The result is gross profit per order. 5. Divide by ad spend (either blended CAC or campaign-attributed spend). That's POAS. Run this per SKU, per campaign, and per channel. Use the Facebook Ad Cost Calculator to model spend scenarios before committing budget.

POAS is what ROAS was always supposed to tell you. It's not a new metric — it's the honest version of one you've been using wrong. The operators who make the COGS integration work will have a systematic edge over those still optimizing to revenue multipliers. The algorithm is already powerful enough; you just need to give it the right signal.

Related Articles

AdLibrary image
Advertising Strategy,  Guides & Tutorials

Contribution Margin: The Metric That Beats ROAS

Contribution margin, not ROAS, decides whether your ad spend is rational. Real CM1/CM2/CM3 walkthrough, channel thresholds, and the operator playbook.