A product sells for $40. It costs $10. So the margin is $30 — and every part of that sentence is wrong except the arithmetic.
Amazon takes its fees. Advertising takes more. Freight was never in the $10. Returns happen. By the time the money settles, the $30 has become something you'd have wanted to know before ordering another container.
The usual response is to hunt for the real number — one figure, per product, that finally tells the truth. That hunt fails, and not because the arithmetic is hard.
It fails because there isn't one margin. There are five, they're all correct, and they answer different questions. A seller who knows which one they're looking at makes better decisions than a seller with a more precise version of the wrong one.
So let's build all five, decide what belongs in each, and then work out which one to use when.
01Five margins, in order
Every honest product P&L is this ladder. Each rung subtracts one category and answers one question.
- L1Net revenueGross sales less refunds, returns and promotional rebates — the money you keep.What did it really sell for?
- L2Gross marginAfter landed product cost.Is the sourcing good?
- L3Margin after AmazonAfter referral, fulfilment, storage and the rest of Amazon's take.Does it work on this channel?
- L4Contribution after adsAfter the advertising required to sell it.What does it contribute?
- L5Net business profitAfter overheads — salaries, software, accounting, everything that runs regardless.Is the company healthy?
The critical structural point: L1 to L4 are product numbers. L5 is a company number. They aren't different levels of the same measurement — they're different measurements. Trying to push overheads down to the SKU is where most profitability projects die.
A product doesn't have a net profit. A company does. A product has a contribution.
02The test for whether a cost belongs to a product
Almost every argument about product profitability is really an argument about where a cost goes. There's a single test that settles most of them:
Does this cost change because you sold one more unit?
Yes → it belongs in the product's ladder. No → it belongs to the business, below L4.
Freight per unit: yes. Referral fee: yes. FBA pick-and-pack: yes. Your bookkeeper's monthly retainer: no — it's the same whether you sell 900 units or 1,100.
You can divide $5,000 of accounting across every ASIN. It will produce a number. Ask what you'd do differently knowing that Product A carries $0.37 of accounting cost, and the answer is nothing — which is how you know the allocation was decoration.
Worse, it's actively misleading: allocated overhead makes low-volume products look unprofitable purely because there are fewer units to divide by, and a seller who discontinues one hasn't removed the cost. It just redistributes onto the survivors.
Keep the ladder clean. Let overheads sit at the company level where they can be managed as what they are.
03Every margin is made of three kinds of number
Two products can both show "24% contribution" and one of those numbers can be worth ten times the other. The difference isn't the formula. It's where the inputs came from.
All three are legitimate. What isn't legitimate is presenting them identically. A margin built mostly of measured numbers can carry a purchasing decision; one where landed cost is a typed default and freight is spread evenly can't.
So a product margin should carry its basis the way a chart carries its axis: contribution $9.20 — measured, except freight (allocated by units) and storage (allocated by revenue share).
This one habit does more for trust than any refinement of the formula. It also makes the system tell you what to fix: the assumed inputs are your work queue.
04Landed cost — and which basis you're using
Using the supplier's unit price as your product cost is the most common single error in Amazon accounting, and it's usually wrong by 20 to 40%.
Landed cost is everything required to make a unit sellable:
manufacturing + international freight + duty + customs
+ inspection + prep + labelling + inbound transport
─────────────────────────────────────────────────────
= landed unit cost
An $8 factory price with $3 of everything else is an $11 product. Across 10,000 units that's $30,000 — the difference between a good year and a flat one, invisible in the number most sellers use.
The part nobody mentions: there are three landed costs
Even with perfect records, the same unit has more than one defensible cost, depending on which batch you say it came from:
- FIFO — the cost of the actual oldest batch. Right for what a sale really cost you.
- Weighted average — all batches pooled. Smoother, and what most accountants prefer.
- Latest known — the most recent batch. Right for should I buy more of this?, because it's what the next unit will cost.
These are all correct and they disagree — often by 10 to 15% after a freight-rate swing. Two rules keep it sane: state which basis a number uses, and never rank two products on different bases. A comparison across bases isn't a close call; it's a category error.
05Amazon fees come in two kinds, and only one is really per-product
This distinction matters more than its airtime usually suggests.
Transaction fees — referral, fulfilment, refund administration — arrive on the settlement line attached to the sale that caused them. They're measured. Assign them and move on.
Account charges — monthly storage, long-term storage, inbound placement, removals, the subscription — arrive as account-level charges. Amazon does not tell you which ASIN owes what.
So they must be allocated, and the rule you pick shapes every number downstream:
- By revenue share — simple; systematically over-charges your high-price, fast-moving SKUs and under-charges the slow bulky one actually consuming the shelf.
- By units — better for anything priced per unit handled.
- By cubic feet held × days — the honest one for storage, because that's literally how Amazon bills it.
Storage allocated by revenue is the classic quiet distortion: the slow-moving product that occupies a pallet for eight months looks cheaper to hold than the fast one that never sits still. Since that's precisely the SKU you're trying to find, the allocation rule defeats the analysis.
Whichever you choose — label it, and use the same rule everywhere.
06Allocating advertising, without pretending
Here's the genuinely hard part, and it has a workable answer.
Start with what's already per-product
Advertised-product reporting attributes spend to a SKU directly. Where that exists, use it — no allocation needed, no methodology to defend. This covers most spend for most sellers.
For multi-product campaigns, split by attributed sales
A campaign advertising three ASINs spends $300 and generates attributed sales across all three. Split the $300 in proportion to each product's attributed sales within that campaign. It's simple, it's reproducible, and it degrades sensibly — a campaign with one product gets an exact answer.
For spend that fits no product, stop allocating
Brand campaigns, Sponsored Display audiences, external traffic, the agency retainer. Smearing these across ASINs by revenue is how a healthy product gets convicted of a cost it never incurred.
These belong in a marketing line at the company level — below L4, beside overheads. That's not a fudge; it's a claim about what the money was for. It was spent on the brand, not on a SKU.
Category picks the line; attribution picks the SKU. If attribution can't name a product, the cost doesn't get one — it moves up a level. Unattributed money should be visible, not hidden by being divided.
And be careful with the word "attributed"
If a product does $100,000 in sales and ads are attributed $30,000, that isn't $30,000 of incremental revenue. Some of those customers were going to buy anyway.
Attribution tells you how the ad platform assigned credit under its own measurement window. Incrementality — what would have happened without the ad — is a different question that attribution data cannot answer. Use attribution for allocation, which is what it's good for. Don't use it as a claim about causation.
07Break-even ACOS is your L3 margin
ACOS is fine. It just answers a question about advertising efficiency, not one about profit — and sellers keep asking it to do the second job.
One number connects them:
break-even ACOS = margin after Amazon fees ÷ net revenue
Which is to say: your break-even ACOS is your L3 margin percentage. Spend that fraction of a sale on ads and you make nothing. Below it you profit; above it you're buying revenue with contribution.
That identity is what makes ACOS meaningful, because it's per-product. Take the two products people always compare:
| Per unit | Product A | Product B |
|---|---|---|
| Net revenue | $40.00 | $40.00 |
| Landed cost | −$8.00 | −$15.00 |
| Amazon fees | −$10.00 | −$12.00 |
| Margin after Amazon | $22.00 | $13.00 |
| Break-even ACOS | 55% | 32.5% |
| Actual ACOS | 20% | 20% |
| Headroom | 35 pts | 12.5 pts |
A can absorb a bad month, a competitor's bidding war, and a fee increase. B is one change away from advertising at a loss. Identical ACOS; opposite risk. A dashboard that shows both as green 20% has told you nothing.
TACOS — total ad spend over total revenue — is worth watching too, but it's a business-health indicator, not a margin. It tells you how dependent your revenue has become on paid traffic. Useful, different question.
08One product, all the way down
A $40 product with a 3.5% return rate, a $11 landed cost, and honest fees.
Contribution waterfall — per unit sold
Each bar is a level of the ladder. The last is what the product contributes to the company.
Four percentages, all true, all about the same product: 71.5% gross, 40.4% after Amazon, 27.5% after ads, 23.8% contribution. Quote any one of them without saying which and you've had a misunderstanding, not a conversation.
And note the $30 we started with is nowhere on this chart. It never existed.
09One number, one definition, everywhere
The failure that quietly destroys trust isn't an inaccurate margin. It's two accurate margins that disagree.
It happens easily. The advertising screen computes margin after ads on FIFO cost, before refunds. The inventory screen computes contribution on average cost, after refunds. Both are defensible. Both were written by someone careful. The seller opens two tabs, sees 27% and 24% for the same SKU, and from then on trusts neither.
Three rules prevent it:
- One definition per level, owned in one place. Every screen reads it; none re-derives it.
- Every margin declares its cost basis and its window. "FIFO landed, last 90 days of data, refunds included."
- Refunds sit at a fixed rung. Wherever you put them, put them there always. Moving refunds between levels is the single most common source of two-tabs-disagree.
If two screens must differ — and sometimes they legitimately must, because they answer different questions — say so on the screen. A named difference is a feature. An unexplained one is a bug the user finds before you do.
10Margin for which decision?
Now the ladder earns its keep. The right level isn't the deepest one — it's the one that matches the choice in front of you.
| The decision | Use |
|---|---|
| Negotiating with a supplier | L2 gross |
| Should this SKU be on Amazon at all | L3 after Amazon |
| Raising or cutting PPC budget | L3, as break-even ACOS |
| How much price room do I have | L4 contribution |
| Which SKU gets the next $30k of stock | L4 ÷ capital tied up |
| Can we afford another hire | L5 net profit |
| Is this launch worth doing | Forecast L4 |
The inventory row is the one sellers most often get wrong. When capital is the constraint — and for most sellers it is — the best product isn't the one with the highest contribution margin. It's the one with the highest contribution per dollar per year: contribution per unit × units per year ÷ dollars tied up. A 40% margin that turns twice loses to a 20% margin that turns six times, every time.
11Ranges, not decimals
A margin displayed as 27.43% claims a precision it cannot have when freight was allocated by a rule you chose and returns came from a historical average. The decimals don't add accuracy. They add unearned confidence.
Better:
Contribution after ads ~27% (22% – 30%)
low freight allocated by units, returns at 5%
base freight allocated by units, returns at 3.5%
high measured freight, returns at 2%
The range isn't hedging. It's the answer to the only question that matters next: which assumption is this conclusion resting on, and how much would I have to be wrong for the decision to flip?
Sometimes the range is tight and the decision is easy. Sometimes it straddles zero, and then the useful output isn't a margin at all — it's a list of the two inputs worth going and measuring properly.
Frequently asked
What is the best way to calculate true product margin after advertising costs?
Build a five-level ladder rather than one number: net revenue after refunds, minus landed cost, minus Amazon fees, minus advertising, with business overheads kept below and outside the product. The fourth level — contribution after ads — is the product's real economic output. Label each input as measured, allocated or assumed so the number carries its own reliability.
Should I allocate overhead to each product?
Generally no. If a cost doesn't change when you sell one more unit, allocating it makes low-volume products look bad for arithmetic reasons and doesn't change any decision. Keep overheads at the company level and compare products on contribution.
How do I split advertising spend across multiple products in one campaign?
Use per-SKU advertised-product data where it exists. For genuinely multi-product campaigns, split spend in proportion to each product's attributed sales within that campaign. Spend that fits no product — brand campaigns, external traffic, agency fees — goes to a company-level marketing line rather than being smeared across ASINs.
What is break-even ACOS and how do I calculate it?
Margin after Amazon fees ÷ net revenue — which is to say, your L3 margin percentage. It's the ACOS at which advertising a sale produces zero contribution. The distance between it and your actual ACOS is your real advertising headroom, and it's per-product.
Why do two tools show different margins for the same product?
Almost always one of three things: a different cost basis (FIFO vs weighted average vs latest), refunds placed at a different level, or a different allocation rule for account-level charges like storage. All three can be individually correct. That's why every margin should state its basis and window.
Is contribution margin the same as profit?
No. Contribution is what a product leaves over to cover the costs of running the company. Profit is what remains after those costs. A product with strong contribution can sit inside an unprofitable business, and often does.
Should product cost be FIFO or average?
FIFO for what a past sale actually cost you. Weighted average for smoother reporting and most accounting purposes. Latest-known for deciding whether to buy more, since it reflects what the next unit will cost. Pick per decision, label it, and never rank two products on different bases.
Not "what's my margin"
The question isn't what your margin is. It's which products are creating value, which are consuming it, and what the numbers are solid enough to justify doing about it.
Five levels, each honest about what it includes and where its inputs came from, answer that. One number carried to two decimal places doesn't — however carefully it was computed.