
Key takeaways
- Profit per order = price + shipping charged − product − packaging − shipping label − payment fee − platform fee − returns allowance − ad cost per order.
- Count shipping you charge as revenue and the label you buy as a cost. Payment and marketplace percentages are usually charged on the shipping too.
- Spread returns across every order: return rate × what each return costs you.
- In our example a $38 candle with $4.95 shipping keeps $14.37 per order. Offering free shipping cuts that to $9.57, and a 10% discount cuts it to $10.68.
Profit per order is a contribution margin
Profit per order is what one order leaves you after every cost that comes with that order. Accountants call this the contribution margin: the amount each sale contributes towards your fixed costs and, after those, your profit.
It is different from gross margin, which stops after the cost of the goods. It is also different from net profit, which subtracts rent, software, wages and other monthly costs. Those fixed costs do not change with one extra order, so leave them out here and cover them by selling enough orders. If you want to include a monthly app or storage bill, divide it by your monthly orders and add it to packaging.
Working per order makes the numbers small enough to check line by line, and it shows exactly which cost to attack first.
Revenue = Selling price + Shipping charged Payment fee = Revenue × Payment % + Fixed fee Platform fee = Revenue × Platform % Returns allowance = Return rate × Cost per return Profit before ads = Revenue − Product − Packaging − Shipping label − Payment fee − Platform fee − Returns allowance Profit per order = Profit before ads − Ad cost per order Margin = Profit per order ÷ Revenue × 100

Start with revenue: price plus shipping charged
Revenue for one order is the price of the items plus any shipping the customer pays you. Use the price after any discount code, because that is what the customer actually paid.
Leave sales tax and VAT out. You collect them for the government and pass them on, so they are not your money. In the US, tax is added on top at checkout, so use the pre-tax price. In the UK and EU, prices usually include VAT, so enter the price without the VAT part.
Product, packaging and shipping costs
Product cost is what the goods in one order cost you to buy or make, including inbound freight and duty to get them to you. If an order usually has two items, use the cost of both.
Packaging is the box or mailer, tissue, tape, filler and any inserts. It is often under a dollar or two, but it is paid on every order, so measure it rather than guessing.
Shipping is where many stores lose money without noticing. Keep two numbers apart: the shipping you charge, which is revenue, and the label or fulfilment fee you pay, which is a cost. If you charge $4.95 and the label costs $7.25, you are paying $2.30 towards every order’s postage. That can be a fair choice, but it should be a choice. For marketplaces where the platform ships for you, enter its fulfilment fee as the shipping cost.
Payment and marketplace fees
On your own store you pay a card processing fee on each order. Stripe’s standard US rate for domestic online cards is 2.9% + $0.30. Shopify Payments rates depend on your plan, so copy yours from your admin rather than assuming. Apply the percentage to the whole amount the customer pays, shipping included.
On a marketplace you pay a commission instead, and payment processing is often included. eBay charges a final value fee of 13.6% on most categories, plus $0.40 per order over $10, and does not charge a separate processing fee. Its percentage applies to shipping and to the sales tax collected, so on a taxed order the real fee is slightly higher than a calculation on the pre-tax amount shows.
The same $42.95 order from the worked example below would pay $1.55 in Stripe fees on your own site, or $5.84 plus $0.40 on eBay. That moves profit per order from $14.37 to $9.68 before you change anything else.
Free toolPayment fee calculatorAd cost per order
If you pay for ads, every order carries a share of that spend. The simplest figure is your total ad spend for a month divided by the orders in that month. That gives a blended cost, which includes customers who would have found you anyway. For one campaign, use the cost per acquisition the ad platform reports, or divide the order value by the campaign’s ROAS (return on ad spend).
In the example, $9 of ads per $42.95 order is a ROAS of about 4.77. The order makes $23.37 before ads, so ads can cost up to that much per order before it starts losing money. That ceiling is your break-even point, and our calculator shows it as break-even ROAS.
Ad cost per order = Ad spend ÷ Orders or Ad cost per order = Order revenue ÷ ROAS
Free toolROAS calculator
The returns allowance
Returns do not happen on every order, so spread their cost across all of them. Multiply your return rate by what you lose on each return.
Cost per return is not the refund itself if the item goes back on the shelf: the sale simply reverses. It is the money you do not get back: the return label if you pay it, the outbound label you already bought, any fees the payment processor or marketplace keeps on a refund, and the cost of stock that cannot be resold. In the example, a $6.75 return label plus the $7.25 outbound label makes $14 per return. At a 2% return rate that is $0.28 on every order.
Returns allowance per order = Return rate % ÷ 100 × Cost per return
Worked example: one candle order
A small candle brand sells on its own site with Stripe. A typical order is one $38 candle with $4.95 shipping charged. The candle costs $9.40 landed, packaging $1.10 and the label $7.25. Ads cost $9 per order, and 2% of orders come back at $14 each.
- Of the $42.95 the customer pays, the candle itself is only $9.40. Packaging, shipping, fees, ads and returns together take $19.18.
- At 100 orders a month this order type contributes $1,437 towards fixed costs.
- The same order on eBay, with no ads, would keep $18.68: more than with ads on your own site, but before paying for any traffic of your own.
| Line | Working | Amount |
|---|---|---|
| Selling price | $38.00 | |
| Shipping charged | $4.95 | |
| Revenue | $38.00 + $4.95 | $42.95 |
| Product cost | −$9.40 | |
| Packaging | −$1.10 | |
| Shipping label | −$7.25 | |
| Payment fee | $42.95 × 2.9% + $0.30 | −$1.55 |
| Platform fee | Own store, 0% | $0.00 |
| Returns allowance | 2% × $14 | −$0.28 |
| Profit before ads | $23.37 | |
| Ad cost per order | −$9.00 | |
| Profit per order | $14.37 | |
| Margin | $14.37 ÷ $42.95 | 33.5% |
| Break-even ROAS | $42.95 ÷ $23.37 | 1.84x |
How free shipping, discounts and returns change the result
Each change below starts from the worked example and changes one input. The last row applies all three at once.
- Free shipping costs almost the full $4.95 you stop charging. Profit falls by $4.80 rather than $4.95 only because the card fee is charged on a smaller amount.
- A 10% discount looks small but takes a quarter of the profit, because it comes straight off the top while every cost stays the same.
- At these figures returns matter less than shipping. For clothing, where return rates are often far higher, run your own numbers before deciding which lever matters most.
- Combined, the three changes leave $5.46 per order, so the order could carry only $14.46 of ads before losing money, against $23.37 before.
| Scenario | Revenue | Profit per order | Margin | Change in profit |
|---|---|---|---|---|
| Worked example | $42.95 | $14.37 | 33.5% | |
| Free shipping ($0 charged) | $38.00 | $9.57 | 25.2% | −$4.80 |
| 10% discount ($34.20 price) | $39.15 | $10.68 | 27.3% | −$3.69 |
| 5% return rate | $42.95 | $13.95 | 32.5% | −$0.42 |
| All three together | $34.20 | $5.46 | 16.0% | −$8.91 |


