Contribution Margin by Channel
Contribution margin by channel tells you which places you sell are worth more spend. It only works when every fee and cost lands on the right channel, once.
The short answer
Sound familiar?
- One channel looks far more profitable than the others, and nobody can say why.
- Yesterday always looks better than last week.
- Revenue goes up when fee detail is added to the report.
- Old orders carry today's product cost.
Why it happens
- Fees sit in several fields
- Shipping, affiliate commission, referral fees, and promotion costs can come out before payout in separate fields. One traced TikTok Shop order showed 0.00 platform commission and 8.55 in other fees on a 25.50 sale.
- Costs land on the channel that billed them
- In one multi-brand build, Amazon billed shipping fees for orders not sold on Amazon. Left on the Amazon side, they made Amazon look more expensive and the Shopify store more profitable than either was.
- Pack sizes and costs are mapped loosely
- A two-pack selling for $30 with an $8 item cost has a $14 margin. Mapping it to one unit of cost reports $22. A single static cost field also gives old orders today's cost.
How we fix it
- 1
Keep a fee ledger beside the orders
Store each fee as its own row with the order ID, fee type, amount, and posting date. Keep revenue in an order-level table so splitting fees into rows never repeats a sale.
- 2
Assign costs by the order's sales channel
List each cost line by who bills it and which channel sold the order, and write a rule wherever those differ. Decide every platform subsidy on purpose: revenue, a cost reduction, or its own line. Map SKUs with pack quantities and dated costs.
- 3
Label what is still incomplete
Compare a day's margin at two days old and at two weeks old to see how long costs take to post, then label those days provisional. Show known-cost margin with its coverage, since unknown cost is not zero.
What you end up with
- A fee ledger with one row per fee
- Contribution margin by channel and product
- Labels for provisional days and estimated fees
- A review list of unmapped SKUs and missing costs
Common questions
What goes into contribution margin by channel?
Net revenue for the channel minus product cost, fulfillment, and payment and marketplace fees for that channel's orders. If you also subtract ad spend, call the result contribution after marketing so it is not confused with contribution margin.
Is a marketplace settlement the same as profit?
No. Settlement is what the platform pays you. Product cost, packaging, fulfillment you pay for outside the platform, ad spend on other channels, and overhead all still come after it.
Why does recent margin drop a week later?
Some costs post days after the sale, so the most recent days show revenue with only part of the cost. Measure how long your costs take to post by channel and label that many days as provisional.
How do we check whether our channel margin is right?
Rebuild five real orders per channel by hand from sale price to payout: full price, discounted, free shipping, and affiliate-credited. If you land on the platform's number, the fee logic is sound. Most teams can run this check in a day with exports and a spreadsheet.
Guides
Bring the numbers that don't add up
We'll trace them to the source with you and say where we'd start. No pitch deck.