Skip to content
LunithLabs

Did the ad pay? How to read profit after ad spend, per order

An ad can bring sales and still lose money. Work out profit after ad spend per order, your break-even ad cost and break-even ROAS, with example math.

Updated · 5 min read

The ad report says the campaign brought in $240 of sales on $150 of spend. That looks like a win. It might not be.

Sales aren't what you keep. Before an ad can pay for itself, each order has to cover the product, the shipping you paid, and the fees the payment processor took. Only what's left over is available to pay for the ad. If the ad costs more per order than that, every extra sale makes you a little poorer.

Here's how to check, one order at a time.

Step 1: Work out what one order keeps before ads

Kept before ads = sale price − fees − product cost − shipping you paid.

Fees means everything the channel and payment processor took for that order. For your own site, that's mostly card processing. These rates come from each platform's own pricing page, checked on Oct 26, 2026 (US, standard pricing):

  • Shopify Payments lists online standard card rates of "2.9% + 30¢" on the Basic plan ("2.7% + 30¢" on Grow, "2.5% + 30¢" on Advanced), plus "Online international rates + 1%".
  • Stripe lists "2.9% + 30¢ per successful transaction for domestic cards", plus "1.5% for international cards" and "1% if currency conversion is required".

Example (made-up round numbers). You sell a $40 item on your own Shopify Basic store with Shopify Payments, to a US customer paying by domestic card. Shipping is free for the customer, and you pay $6 to ship it. The item costs you $14.

  • Fees: 2.9% × $40 = $1.16, plus $0.30 = $1.46
  • Kept before ads: $40.00 − $1.46 − $14.00 − $6.00 = $18.54

That $18.54 is the most an ad can cost per order before the order stops making money.

Step 2: Work out what the ad cost per order

Ad spend per order = what you spent on the campaign ÷ the orders it brought in.

Use the spend and order count for the same date range. If the platform says the campaign drove 6 orders on $150 of spend, that's $150 ÷ 6 = $25.00 an order.

Step 3: Subtract

Profit after ad spend, per order = kept before ads − ad spend per order.

Example, continued. $18.54 − $25.00 = −$6.46 an order. Across 6 orders, that's about $38.76 lost, even though the campaign "brought in" $240.

Now say the same $150 brought in 10 orders instead. Ad spend per order is $15.00, and $18.54 − $15.00 = $3.54 an order, or $35.40 across the 10. Same ad budget, same product, opposite answer.

The two break-even numbers worth knowing

Break-even ad cost per order is simply your kept-before-ads number. In the example, it's $18.54. Spend less than that per order and the ad pays; spend more and it doesn't.

Break-even ROAS turns that into the number most ad platforms report. ROAS (return on ad spend) is sales from the ad ÷ ad spend. Your break-even ROAS is:

Break-even ROAS = sale price ÷ kept before ads.

In the example, $40 ÷ $18.54 = 2.16. A campaign reporting a ROAS of 1.6 ($240 ÷ $150) is below that, so it's losing money per order. The 10-order version reports 2.67 ($400 ÷ $150), which is above it.

That's why "a ROAS of 2 is good" can't be a rule. A product that keeps a small share of its price needs a much higher ROAS to break even than one that keeps a big share.

What this check doesn't tell you

  • Repeat buyers. If people who find you through an ad come back and buy again without an ad, a small loss on the first order might still be worth it. That's a judgment call, and it needs your own repeat-purchase data, not a guess.
  • Which orders the ad really caused. Ad platforms count conversions their own way, and some of those buyers might have bought anyway. Treat the platform's order count as a reported number, not a certain one.
  • Monthly costs. Plan fees, apps and your own time aren't in the per-order math. They still have to be covered by what's left.
  • Marketplace ad fees. Some marketplaces charge an ad fee as a share of the sale instead of a separate ad bill. If yours does, count it in Step 1 as a fee on the orders it applies to, using the rate on that marketplace's own fee page.

Run it on one of your own orders

The free calculator at lunithlabs.com/calculator has a field for ad spend for this sale. Type in one order's price, its fees, the shipping you paid, the product cost and the ad spend per order from Step 2. It shows what that sale kept after all of it, in dollars and as a share of the price. Set the ad spend to zero first to see your break-even ad cost.

Keeping track as you go

One campaign is easy to check by hand. Checking every channel every week is where it slips. Lunith Commerce OS is a business operating system that runs in Notion. You log each sale and your ad spend, and it shows profit after ads on every channel's row, worked out from that channel's own fee row. It doesn't run your ads for you. It's a one-time purchase; the current price is on its page. See what's inside.

Or start with one order in the free calculator.

Sources

Sources checked on .

Checked: read at the source, on the date given. Not re-checked: from research we have not checked again ourselves. Not known: a question the research could not answer.

  • CheckedShopify pricing (Shopify Payments online card and international rates, US): https://www.shopify.com/pricing, accessed Oct 26, 2026
  • CheckedStripe pricing (standard US card rates, international cards, currency conversion): https://stripe.com/pricing, accessed Oct 26, 2026
  • CheckedLunithLabs free calculator (ad spend field and what it shows): lunithlabs.com/calculator, page copy as captured Oct 19, 2026
  • CheckedLunith Commerce OS, what's inside (profit after ads per channel row; does not run ads): lunithlabs.com/inside, page copy as captured Oct 19, 2026

More articles