What we have seen is this: the product called a “bestseller” in a Shopify meeting is often the one with the highest revenue, not the one that contributes the most cash after discounting, fulfilment and returns. When teams optimise only the top line, they can scale a product whose economics weaken with every order.
Contact StoreBuilt to connect Shopify order data with the costs needed for a decision-ready margin model.
Table of contents
- Keyword decision
- Choose the margin layer
- Build an order-line cost model
- Allocate shared costs honestly
- Turn the metric into decisions
- Implement a 30-day reporting plan
- StoreBuilt point of view
Keyword decision
Primary keyword: Shopify contribution margin. Secondary intents include Shopify profit by SKU, ecommerce unit economics UK and Shopify product profitability. Search intent is mid-funnel analytics and commercial implementation. Generic ecommerce guides explain gross margin, while Shopify documentation explains profit reports; StoreBuilt can win the practical bridge between order-line data, variable costs and decisions across merchandising, acquisition and fulfilment.
Choose the margin layer
Name each layer so teams do not compare different calculations under the word profit.
| Layer | Illustrative calculation | Decision supported |
|---|---|---|
| net sales | gross sales minus discounts, refunds and relevant taxes | trading demand |
| gross profit | net sales minus product cost | product economics |
| contribution 1 | gross profit minus payment and variable fulfilment | order viability |
| contribution 2 | contribution 1 minus expected returns and service cost | range and channel choice |
| post-marketing contribution | contribution 2 minus attributable acquisition cost | scalable growth |
This is a management framework, not a statutory accounting definition. Finance should approve the exact treatment. Keep VAT, duties and customer-paid shipping consistent with the purpose of the report.
Shopify profit reports depend on cost per item being recorded. Shopify also notes that this field is static and suggests another business system when dynamic cost reporting is required. That matters when supplier prices, freight, duty or exchange rates change through the year.
Build an order-line cost model
Start at the order line, then aggregate to SKU, product, category, channel and cohort. Preserve order ID, line ID, SKU, quantity, selling market, net line revenue, discounts, refunds and cost version. Add fees with a documented source and effective date.
An anonymous UK merchant ranked a high-volume accessory as exceptionally profitable using product cost alone. Order-line review showed that it frequently shipped alone under a free-delivery threshold and consumed a disproportionate packaging and postage subsidy. The product remained useful, but its role changed from standalone acquisition item to basket builder. This is a qualitative example and does not invent a result.
Use actual costs when available. Where they are unavailable, use a labelled estimate and keep the allocation method visible.
| Cost | Preferred source | Practical allocation |
|---|---|---|
| product cost | ERP or governed cost history | exact SKU and period |
| payment fee | gateway settlement | order or transaction |
| pick-pack | 3PL invoice or warehouse rate | order, unit or touch |
| packaging | packaging BOM | parcel or order |
| shipping subsidy | carrier invoice minus customer charge | shipment |
| returns | refund, label and handling events | returned line |
| marketplace fee | channel settlement | order line where possible |
Allocate shared costs honestly
Some costs exist at order level. Allocating a payment fee evenly across lines may distort a basket containing one premium item and several cheap accessories. Revenue share, unit count, weight or fulfilment touch can each be reasonable depending on the cost. Document the rule and test whether it changes the ranking materially.
Returns need two views. Realised contribution uses actual return events after enough time has passed. Expected contribution can reserve for the SKU’s observed return rate, but label it as a forecast. Do not compare a new product with incomplete return maturity against an older product without adjustment.
Marketing allocation is especially fragile. If campaign-to-SKU evidence is weak, publish contribution before marketing and keep acquisition cost at channel or cohort level. False precision is worse than an honest boundary.
Explore Shopify SEO and AI-search readiness when organic product discovery needs to be measured against commercial value, not sessions alone.
Turn the metric into decisions
Segment products by contribution rate and total contribution. A high-rate, low-volume line may deserve discovery investment. A high-total, low-rate line may need price, packaging or fulfilment work. A negative line may still have a strategic role, but that role should be explicit and bounded.
Use the model to review discount floors, free-shipping thresholds, bundle design, paid campaign exclusions, supplier negotiations and range exits. Do not automate price decisions directly from one short reporting window. Seasonality, newness and customer lifetime value can justify a different action.
Audit the metric against finance totals each month. Differences will occur because timing, refunds, tax and settlement periods vary. Reconciliation is not a nuisance; it is what makes the dashboard credible.
Implement a 30-day reporting plan
In week one, agree the definition and inventory of sources. In week two, build a small order-line model for one category and reconcile Shopify net sales and product cost. In week three, add payment, fulfilment, shipping and return costs. In week four, compare decisions with the previous revenue-led ranking and document exceptions.
Track missing SKU cost, estimated-cost share, unreconciled order value, late returns and source freshness. Give every feed an owner. A contribution dashboard that silently carries last month’s fulfilment rate can look exact while becoming less true every day.
Add confidence to every margin number
Give each SKU-period a data-quality status. A green result can use complete recorded costs and mature returns; amber may include estimated fulfilment or incomplete return maturity; red may lack product cost or a reliable SKU. Decision-makers can then filter for trustworthy comparisons instead of treating every decimal equally.
Keep a bridge from the previous month. Separate changes caused by selling price, discount, product cost, payment mix, fulfilment, shipping and returns. A product can show a lower rate because the business deliberately acquired more customers, or because a supplier cost changed without a price review. The bridge tells the team which owner can act.
Set thresholds for investigation, not automatic punishment. Review a SKU when total contribution turns negative, its rate moves materially, estimates exceed a set share or the result conflicts with operational knowledge. Require a short note for approved exceptions such as samples, acquisition products or warranty replacements. That context prevents a useful strategic item from being deleted by an overly mechanical report.
Request a Shopify audit if product, order and cost data cannot be reconciled into one commercial view.
StoreBuilt point of view
StoreBuilt believes contribution margin is valuable because it changes decisions, not because it creates another dashboard. Begin with a definition finance trusts, expose estimation honestly and trace every surprising SKU back to the order events that caused it. Revenue tells you what sold; contribution helps decide what is worth scaling.