ProfitonAdSpendFormula:Inputs,Calculations,WorkedExamples
The Profit on Ad Spend formula is POAS = (Revenue − COGS − Shipping − Payment Fees − Discounts − Returns) ÷ Ad Spend. The numerator is contribution margin: revenue minus all direct variable costs. The denominator is the advertising cost. A POAS of 1.5x means £1.50 of margin generated per £1 of ad spend. Below 1.0x the campaign is losing money on every click.
The formula, broken down
Contribution Margin = Revenue
− Cost of Goods Sold
− Shipping & Fulfilment
− Payment Processing Fees
− Discounts & Promotional Codes
− Returns & Refund Costs
Every input, defined
Revenue
Gross order value attributable to the ad spend in question, after discounts but before refunds. If a customer orders £100 of product with a £20 promo code applied, the revenue input is £80. Use net-of-tax figures for like-for-like comparison if you operate cross-border.
Cost of Goods Sold (COGS)
The unit cost of the product shipped. Wholesale price for resellers; landed manufactured cost for own-brand. Do not include warehouse rent, fixed staff or software in COGS — those are overhead. Use SKU-level COGS where the back-office supports it; a blended average per category is the acceptable fallback when SKU-level data is missing.
Shipping & Fulfilment
The blended cost of picking, packing and delivering the order to the customer. Includes courier cost minus any shipping revenue collected at checkout. For 3PL operations, use the per-order fee plus any per-line-item charges. Free-shipping promotions show up here, not in discounts.
Payment Processing Fees
Typically 1.4–2.9% of the transaction value depending on payment method mix, plus a small fixed fee per order. PayPal, Klarna and Clearpay are usually more expensive than card; brands with heavy BNPL mix should use a weighted blended rate, not the headline card rate.
Discounts & Promotional Codes
Already netted off revenue. The reason to track them as a separate line is diagnostic — if discount usage spikes after a campaign change, the POAS gain may be illusory because the campaign is buying converted customers at a discounted margin.
Returns & Refund Costs
The single most under-counted input in real-world POAS. Includes the lost contribution margin on the returned item (revenue refunded minus any restocking fee, minus the COGS that cannot be resold), plus inbound shipping where you cover it. In fashion, ignoring returns can overstate POAS by 30–40% on size-fragmented SKUs.
Ad Spend
The denominator. Direct media cost for the campaign or SKU you are measuring. Exclude agency fees and tooling cost — those are overhead. Include incremental costs of running the campaign (creative production amortised over campaign life) if you want a stricter view.
Worked example 1 — premium homeware
| Ad spend | £12,000 |
| Revenue (net of discount) | £54,000 |
| COGS (44%) | −£23,760 |
| Shipping (bulky) | −£4,860 |
| Payment fees (2.1%) | −£1,134 |
| Returns (6%) | −£1,944 |
| Contribution margin | £22,302 |
| POAS | 1.86x |
Headline ROAS here is 4.5x. POAS lands at 1.86x. The campaign is healthy but the gap between the two numbers shows how much of the apparent return is consumed by direct variable costs.
Worked example 2 — fashion (high return rate)
| Ad spend | £10,000 |
| Revenue | £48,000 |
| COGS (36%) | −£17,280 |
| Shipping | −£3,840 |
| Payment fees (2.4%) | −£1,152 |
| Returns (34%) | −£16,320 |
| Contribution margin | £9,408 |
| POAS | 0.94x |
4.8x ROAS, 0.94x POAS. The campaign is losing money. The 34% return rate, common in apparel, destroys the contribution margin entirely. This is the case the brand's CFO needed to see — the ROAS report would have green-lit a scale-up.
Worked example 3 — supplements (subscription)
| Ad spend (acquisition) | £15,000 |
| First-order revenue | £18,000 |
| COGS (22%) | −£3,960 |
| Shipping & fulfilment | −£1,800 |
| Payment fees | −£432 |
| Returns (3%) | −£540 |
| First-order contribution | £11,268 |
| First-order POAS | 0.75x |
| 90-day LTV contribution (62% retention) | +£14,500 |
| 90-day POAS | 1.72x |
First-order POAS looks bad. 90-day POAS is healthy. This is the LTV-aware POAS view that subscription brands need to bid commercially — a Gateway SKU (acquisition product) can run at first-order POAS < 1.0x deliberately, provided the cohort economics hold.
Common formula mistakes
- Using gross margin instead of contribution margin. Gross margin only deducts COGS. POAS needs the full variable cost stack.
- Bundling agency fees into ad spend. Fees are overhead, not media. Inflating the denominator understates POAS.
- Ignoring discount stacking. Promo codes plus cart-tier discounts plus first-time-buyer offers can compound into 25%+ effective discount the headline doesn't show.
- Using gross revenue when refunds run through Stripe weeks later. Trailing-refund POAS lags actual POAS by 30–60 days; build a rolling adjustment.
- Calculating campaign POAS but bidding on aggregate ROAS. The whole point of POAS is to feed it back into bid decisions. A POAS dashboard nobody acts on is theatre.
Related reading