Return on ad spend (ROAS) tells you how much revenue an ad brought back. It says nothing about whether that revenue was worth earning. A campaign can post a proud 4.0 ROAS and still bleed cash if your margins are thin. Profit on ad spend closes that gap by putting profit — not revenue — over the same denominator.
This guide gives you the exact formula, the two ways "profit" is defined, a full worked example, the single identity that tells you your break-even point, and the subtopics most POAS articles skip: when POAS is not the right metric, how to feed profit data into your ad platforms, and why print-on-demand stores face a harder version of this problem than most. If you want the wider set of definitions this metric lives inside, the ecommerce metrics guide is the hub.
What POAS actually means
POAS stands for profit on ad spend. As Profitmetrics explains, it is effectively the metric that ROAS was always supposed to be — "Return on Ad Spend" was intended to capture return in the economic sense, but industry convention turned the numerator into revenue, not profit. POAS corrects that by making the numerator explicitly profit after costs.
The distinction matters because revenue is not money you keep. If you sell a $40 shirt that cost you $16 to make and fulfill, only part of that $40 is yours. ROAS treats the whole $40 as the return; POAS treats only the profit portion as the return. Same ad spend, very different verdict.
Because profit is always smaller than revenue, POAS is always smaller than ROAS for the same campaign. The gap between them is your margin. A high-margin store sees POAS close to ROAS; a low-margin store sees POAS collapse toward zero even when ROAS looks healthy.
As Jentis puts it, POAS "focuses on the net profit after deducting the cost of goods sold (COGS) and other relevant expenses" — which is the core reason it gives a more actionable signal than ROAS for any store where margins vary across products.
The POAS formula
The formula mirrors ROAS with one change to the numerator:
POAS = profit attributed to ads ÷ ad spend
Where ROAS uses revenue attributed to ads, POAS uses profit. The result is a ratio — written like 2.4 or 1.6 — and it reads the same way: how many dollars of profit came back per dollar spent.
The break-even point is 1.0. At exactly 1.0, the profit your ads generated equals the money you put into them — you netted nothing. Profitmetrics frames this cleanly: because profit and ad spend are directly comparable numbers, a POAS above 1.0 means you made money and a POAS below 1.0 means you lost it. Some sources — particularly European agencies — express POAS as a percentage (100% = break-even) rather than a ratio (1.0 = break-even); the math is identical, just scaled by 100.
Gross-profit basis vs contribution-margin basis
Here is where vendors disagree, so state your basis every time.
Gross-profit POAS puts revenue minus cost of goods sold (COGS) over ad spend. It is the most common default and the easiest to compute, since COGS is the one cost every store already tracks.
Contribution-margin POAS is stricter. It also nets out the other variable costs of fulfilling an order — shipping, payment processing, return handling, and pick-and-pack — before dividing by ad spend. ClickForest lists these deductions explicitly: product costs, shipping, return processing costs, and payment costs all come out before the ratio is formed. This is the "honest" version, because those costs scale with every sale just as surely as COGS does.
Neither is wrong, but they produce different numbers from the same store. If you compare your gross-basis POAS to a competitor's contribution-basis POAS, you are comparing two different metrics that happen to share a name. State your basis every time you report the number.
POAS vs ROAS: a worked example
Say you run a print-on-demand apparel store — call it Summit POD — and you want to compare the two metrics on the same month of data. Here is the setup, framed as an example so the arithmetic ties together:
- Ad-driven revenue: $40,000
- Ad spend (Meta plus Google): $10,000
- Gross margin: 60% (so COGS is 40% of revenue)
ROAS is revenue ÷ ad spend: $40,000 ÷ $10,000 = 4.0. Impressive on a slide.
Gross-profit POAS starts from the profit. Gross profit is 60% of $40,000 = $24,000. Then $24,000 ÷ $10,000 = 2.4. There is a shortcut worth memorizing: POAS = ROAS × margin ratio, so 4.0 × 0.60 = 2.4 lands in one step.
Now the per-order view, because that is where the profit angle most SERP articles skip actually lives. Say each $40 order breaks down like this:
- Revenue: $40.00
- − COGS (blank garment, print, base fulfillment): −$16.00
- = Gross profit: $24.00 (60% margin)
- − Shipping: −$5.00
- − Payment processing (4% of $40): −$1.60
- − Pick and pack: −$1.40
- = Contribution margin before ads: $16.00 (40% of revenue)
On a contribution-margin basis, POAS uses that 40%: 0.40 × 4.0 = 1.6. So the same campaign reads as 4.0, 2.4, or 1.6 depending on which lens you pick — and only the 1.6 reflects what actually hits your bank account before the ad bill. That spread is exactly why POAS exists and why stating your basis is non-negotiable.
As AI Digital notes, a campaign can generate high revenue while "primarily driving low-margin or heavily discounted products — resulting in strong ROAS but weak or negative profit contribution." The worked example above is a clean illustration of that exact failure mode.
What counts as a good POAS
Because break-even is 1.0, any POAS above 1.0 is technically profitable. But "technically profitable" leaves nothing for fixed costs like rent, salaries, and software. You want a buffer.
Sensible targets scale with your margin. According to Polar Analytics, a store with a low gross margin (around 40%) should aim for a healthy POAS of roughly 1.4 or higher, a mid-margin store (around 60%) for 1.6 or higher, and a high-margin store (around 75%) for 2.0 or higher. Lower-margin businesses need a bigger cushion because a single returned order or fee surprise erases more of their thin profit.
Treat those as starting points, not laws. Your real floor depends on your fixed-cost base and how much of your ad-driven revenue comes from repeat buyers versus genuinely new customers — a distinction worth measuring with a metric like new-customer ROAS or NC-ROAS, which strips returning-buyer revenue that ads get wrongly credited for.
When POAS is not the right metric
POAS is most powerful when margins vary across your product catalog. As Funnel.io points out, if your store has minimal variance in profit margins — say, one product type that always carries the same margin — POAS adds little over a simpler target because there is nothing to differentiate. It is "best suited to brands with small margins and large product quantities" where blended ROAS can hide which SKUs are actually dragging down profit.
For print-on-demand sellers, variance is almost guaranteed: different garment types, different print providers, different shipping zones, and seasonal promotions all create margin spread across the catalog. That is exactly the environment where POAS earns its keep.
POAS also understates the full picture if you have high customer lifetime value. A campaign that acquires a new buyer at a POAS of 0.9 can be strategically correct if that customer goes on to make several repeat purchases — though you would need solid retention data to justify the logic. The metric measures the attributed window, not lifetime value. Use it alongside repeat-purchase data rather than as a standalone truth.
Why POAS matters: the break-even identity
The most useful thing POAS gives you is a hard floor for your ad efficiency, derived from your margin.
Your break-even ROAS equals 1 ÷ your margin ratio. On a 40% contribution margin, that is 1 ÷ 0.40 = 2.5. Any ROAS below 2.5 means you are losing money on those orders — full stop. On a 60% gross margin the floor is 1 ÷ 0.60 = 1.67. The lower your margin, the higher the ROAS you must clear just to break even.
POAS folds that whole idea into a single number. POAS equals 1.0 at exactly the point where ROAS equals your break-even ROAS. So instead of memorizing a different ROAS target for every product, you watch one line: is POAS above 1.0? That is the entire question, and it is the reason low-margin catalogs need to be managed on profit, not revenue.
This is also why chasing ROAS can quietly wreck a store. Scaling a campaign from 3.0 to 4.0 ROAS looks like a win, but if you did it by pushing your lowest-margin SKUs, your POAS can fall even as ROAS climbs.
How to improve POAS
There are only three levers, and they are all math you already have:
Raise the margin per order. POAS moves in lock-step with margin ratio. Cutting COGS — negotiating a lower blank cost, trimming a print charge, reducing returns — lifts POAS without touching a single ad setting. For print-on-demand stores in particular, supplier and print-cost reductions are often the fastest lever, because you rarely control the ad auction but you do control your sourcing. See how choosing the right POD supplier affects your base costs and margin floor.
Raise the average order value. More revenue spread over the same fixed per-order costs pushes a larger share of each order into profit, which lifts the numerator. Tactics like free-shipping thresholds and bundling directly improve your contribution-margin POAS — see how to increase AOV for a worked playbook. You can also benchmark where you stand against net profit margin benchmarks to calibrate how much room you have.
Lower the cost per order. Cheaper clicks or a higher conversion rate mean fewer ad dollars per sale, shrinking the denominator. CRO techniques that lift your store's conversion rate directly improve POAS by reducing effective cost per conversion — just be careful you are optimizing on real orders, not vanity clicks.
Notice that pausing your worst campaigns is only one of these levers, and often the weakest. Where your margin math is the problem, no amount of ad tinkering fixes it.
Feeding profit data into your ad platforms
POAS is not just a reporting metric — it can drive bidding. Profitmetrics explains that to "reap the fruits of profit data and POAS, you need to have the data where you optimize" — meaning profit signals need to flow into Google Ads and Meta Ads so smart-bidding algorithms can optimize on profit rather than revenue. Tools built for this purpose push per-order profit values as conversion values directly into the ad platforms.
For print-on-demand sellers this pipeline is non-trivial. Your per-order profit requires combining Shopify order data, Printify or Printful fulfillment costs (which only finalize on completed orders), shipping, and payment fees — then attributing the result back to the originating ad. Without that joined data, any "profit" signal you send to an ad platform is a rough estimate at best.
There is a further attribution wrinkle specific to Google: merchants missing proper ValueTrack parameters get NULL conversion attribution on the store side, which means Google-channel POAS can be silently understated. Fixing attribution setup is a prerequisite to trusting any Google POAS figure.
Where the numbers come from
POAS is only as honest as the profit figure you feed it. That is the hard part: your ad spend lives in Meta and Google, your COGS and fulfillment costs live with your print supplier, your fees live with your payment processor, and your orders live in your store. POAS requires stitching all of those together per order — which is exactly the work most teams do in a spreadsheet once a month and then never trust.
This is the problem PodVector is built to remove. It connects Shopify, Meta Ads, Google Ads, Printify, and Printful into a live data warehouse, then computes your true per-order profit from live data instead of a stale export. Victor, its AI employee, reads that joined data — including your ad performance — and proposes moves, executing approved actions on the Shopify side. For example, Victor can reprice your worst-margin SKUs to a target margin or raise your free-shipping threshold; the seller approves every action before it runs. Victor does not touch your ad account; he reads the numbers and hands you the profit-based decision.
If margin variance across your POD catalog is the root cause of a weak POAS, start with how PodVector approaches POD profit automation and how checkout completion rate affects the revenue side of the ratio. For email-driven revenue that reduces reliance on paid ads altogether, see the Klaviyo browse-abandonment flow setup guide.
FAQs
What is the difference between POAS and ROAS?
ROAS is revenue on ad spend; POAS is profit on ad spend. They share the same denominator (ad spend) but differ in the numerator — revenue for ROAS, profit for POAS. As ClickGuard summarizes: ROAS only looks at sales revenue, while POAS looks at how much actual profit remains after covering all costs. A 4.0 ROAS on a low-margin product can be a loss (POAS below 1.0), while the same 4.0 on a high-margin product is healthy. ROAS is a top-line vanity read; POAS is the bottom-line truth.
Is a higher POAS always better?
Higher POAS means more profit per ad dollar, but an unusually high POAS can also signal that you are under-investing in growth — spending too little and leaving profitable scale on the table. The goal is not to maximize the ratio; it is to keep POAS comfortably above your break-even of 1.0 while spending as much as you profitably can.
What is a good POAS?
Break-even is 1.0, so anything above that is profitable in principle. For a real cushion over fixed costs, targets scale with margin — roughly 1.4 or higher for low-margin stores and up to 2.0 or higher for high-margin stores, per Polar Analytics. Set your own floor based on your fixed costs.
Does POAS use gross profit or contribution margin?
Both definitions are in use, which is why you must state yours. Gross-profit POAS subtracts only COGS; contribution-margin POAS also subtracts shipping, payment fees, return handling, and fulfillment. The contribution-margin version is the more honest read because those variable costs are unavoidable, but it produces a lower number — never compare one basis against the other.
How do I calculate POAS from ROAS?
Multiply ROAS by your margin ratio. If your ROAS is 4.0 and your gross margin is 60%, your gross-profit POAS is 4.0 × 0.60 = 2.4. Use your contribution-margin ratio instead of gross margin if you want the stricter figure. This shortcut works because profit is just revenue times the margin ratio, and the ad spend cancels out.
Can I track POAS inside my ad platform?
Not accurately out of the box. Meta and Google know your revenue and spend but not your COGS, shipping, fees, or returns. Proton Effect notes that "many campaigns that show high ROAS can still be unprofitable once you account for the cost of goods sold (COGS), fulfillment, discounts, or returns." Real POAS requires joining your store, supplier, and payment data per order — a connected profit view rather than a single platform's report. Some tools push per-order profit values directly into ad platforms as custom conversion values, enabling profit-based bidding rather than just profit-based reporting.
When should I use ROAS instead of POAS?
ROAS is reasonable when your margins are uniform across your entire catalog and stable over time — in that case, revenue is a proportional proxy for profit and the simpler metric suffices. As Funnel.io points out, POAS "is best suited to brands with small margins and large product quantities" where blended ROAS masks which SKUs are destroying profit. For most print-on-demand stores with mixed catalogs, POAS is the right primary metric.
Does POAS account for returns?
It should, and the contribution-margin version of POAS does — return processing costs are a variable expense that scales with sales. If you use gross-profit POAS and have a meaningful return rate, your reported POAS is overstated relative to what you actually keep. Track your return rate separately and factor it into your POAS target floor accordingly. For POD stores, returns are relatively low given the made-to-order model, but shipping disputes and quality issues still create non-trivial variable costs.