Use case · Product and channel economics
Which products and channels contribute after costs?
The useful comparison is contribution: net sales less product, channel, fulfilment and acquisition costs on a stated basis. Rank products and channels by that result, then check the cost or allocation behind a weak row before changing price, spend or stock.
Find what supports the business beneath the sales total.
A product may be selling well while fees, fulfilment or acquisition spending leave little contribution. When the team wants more stock or advertising, compare the same product across channels and explain the costs that drive the difference.
Start with one period and a common cost definition. Separate recorded charges, estimates and unallocated spending, then choose the row that needs a source check or a measured test.
Check the same sales population and costs in each row.
Match period, currency and product-channel definitions. Reconcile net sales to the period report and list missing costs separately so a blank field cannot inflate the margin.
Shopify product and variant profit reports depend on costs recorded at the time of sale; discounts and refunds affect net sales and margin. Check which sales the chosen report includes before combining it with channel costs.
Amazon separates selling fees from FBA fulfilment, storage and other costs. Map the actual charges from the relevant marketplace and period, keeping shared charges visible until their allocation is agreed.
Scroll horizontally if needed to see all columns.
| Input | Check | If it is unresolved |
|---|---|---|
| Sales, discounts and refunds by product and channel | Match the reporting period, currency and sales population | Label the coverage gap and reconcile the difference |
| Recognised cost of units sold | Confirm cost basis and the treatment of returned stock | Keep affected margins provisional with a stated estimate basis |
| Channel and payment costs | Map charges once to the correct product, channel or shared category | List unmapped charges separately |
| Fulfilment and return logistics | Separate customer refunds from handling, freight and other costs | State which logistics costs are missing |
| Acquisition spending | Document how ads and affiliate costs are attributed or allocated | Show unallocated spending and avoid causal claims |
| Fixed operating costs | Keep the contribution definition distinct from the operating result | Do not present contribution as net profit |
Compare the same serum in two channels.
For September 2026, Hero serum 30 ml is compared on one basis: net sales less recognised cost of goods sold (COGS), platform and payment fees, fulfilment including return logistics, and allocated ads and affiliates.
For Shopify DTC, $96,400 - $34,000 - $2,600 - $7,200 - $16,000 = $36,600 contribution. For Amazon, $71,900 - $25,500 - $9,500 - $8,300 - $20,000 = $8,600. Divide each result by that row's net sales to calculate its contribution margin.
Scroll horizontally if needed to see all columns.
| Metric | Shopify DTC | Amazon |
|---|---|---|
| Gross sales | $108,000 | $79,000 |
| Less discounts | $6,000 | $2,000 |
| Less customer refunds | $5,600 | $5,100 |
| Net sales | $96,400 | $71,900 |
| Less recognised COGS | $34,000 | $25,500 |
| Less platform and payment fees | $2,600 | $9,500 |
| Less fulfilment, including return logistics | $7,200 | $8,300 |
| Less allocated ads and affiliates | $16,000 | $20,000 |
| Contribution before fixed overhead | $36,600 | $8,600 |
| Contribution / net sales | 38.0% | 12.0% |
Investigate the weaker row before increasing exposure.
The Amazon serum row has a lower contribution margin and higher fee, fulfilment and acquisition amounts. Check the source charges and the advertising allocation first. The question is whether those inputs support the difference on a consistent basis.
Across all products, contribution is $67,200. Less $42,000 fixed operating expenses gives a $25,200 operating result. Interest and tax are outside this calculation. Contribution covers fixed costs before those deductions; cash for an order also depends on receipt and payment dates.
The Travel kit on Amazon contributes -$700. Check whether its costs reflect a recurring unit loss, a one-off period charge or an acquisition allocation that needs correction before assigning more spend.
Scroll horizontally if needed to see all columns.
| Product / channel | Net sales | Costs before acquisition | Acquisition | Contribution | CM % |
|---|---|---|---|---|---|
| Starter bundle Shopify DTC | 54,200 | 22,600 | 7,800 | 23,800 | 43.9% |
| Hero serum 30 ml Shopify DTC | 96,400 | 43,800 | 16,000 | 36,600 | 38% |
| Hero serum 30 ml Amazon | 71,900 | 43,300 | 20,000 | 8,600 | 12% |
| Travel kit Amazon | 18,300 | 14,200 | 4,800 | −700 | −3.8% |
| Gift set TikTok Shop | 12,600 | 8,200 | 5,500 | −1,100 | −8.7% |
Contribution = net sales − product cost − fees − fulfilment − acquisition costs; before fixed overhead, interest and tax. Return logistics are included in fulfilment. Acquisition costs are allocated by product and channel.
Inspect the complete cost breakdownChoose an action that tests the suspected driver.
Write the observed difference and the suspected cause separately. Choose a measurable cost correction, offer test or spending limit, with an owner, maximum exposure and review date.
Scroll horizontally if needed to see all columns.
| Option | Evidence to check | Limit of the conclusion |
|---|---|---|
| Correct costs or allocations first | Source charges, return treatment and the allocation basis | A revised report changes the measurement, not the underlying transactions |
| Test an offer, fulfilment change or spending limit | Price, cost and demand assumptions plus measured results | Historical contribution does not predict customer response or incremental sales |
| Reduce exposure while investigating | Stock commitments, avoidable spending and channel obligations | Removing a channel can affect shared costs or sales elsewhere; the row is not a complete exit analysis |
Assign the source check and the test.
For the serum comparison, ask the reporting owner to verify the Amazon charges and acquisition allocation. If the lower contribution remains after that check, ask the commercial owner to specify a bounded test and the result needed before expanding it.
- Record the product, channel, period and exact contribution definition.
- List missing costs, estimates and shared spending that could change the ranking.
- Separate an observed cost difference from a claimed explanation.
- Specify the test, decision owner and spending or inventory limit.
- Set the review measure and date; compare realised results with the stated assumptions.
Keep accounting, allocation and business decisions assigned.
The accounting owner prepares reconciled sales and COGS. The brand supplies fulfilment and marketing records and explains commercial changes. Assign the contribution comparison and allocation notes to the finance preparation owner.
The reviewer checks cost completeness and the reporting basis. The authorised brand decision maker approves price, stock or spending changes; the operational owner implements the test and reports results for the next review.
Bring the product, channel and period you want checked.
For the initial finance audit, identify the comparison you want to understand and the cost records available. Flag missing fulfilment charges, uncertain COGS or shared advertising allocations.
Start with cost completeness and a contribution bridge. Use the profitability service page to see the reporting work, then compare package options if the decision also needs continuing strategy or acquisition analysis.
Sources and calculation notes
- Shopify Help Center — Profit reports
Product and variant profit reports depend on costs recorded at sale; discounts and refunds affect net sales and margin.
Accessed 2026-10-07.
- Amazon — A guide to Amazon FBA fees
The US guide separates Amazon selling fees from FBA fulfilment, storage and other costs.
Accessed 2026-10-07.
Your next financial question
Put numbers behind the next move.
Start with the decision ahead and the reporting you have today.