Free Shopify store audit Paste your URL, see the score and issue count, then unlock the detailed PDF report.

Run Free Audit
StoreBuilt Team Analytics Sep 1, 2026 6 min read

Revenue Is Not the Answer: Shopify Contribution Margin by SKU

A UK ecommerce guide to measuring Shopify contribution margin by SKU after discounts, payment, fulfilment, returns and other variable costs.

Written by StoreBuilt Team
Reviewed by StoreBuilt Commercial Review
Shopify product variants passing through discount, cost, payment, fulfilment, shipping and returns layers to reveal contribution margin.
Direct answer Quick answer for search and AI systems

Direct answer: Shopify contribution margin by SKU starts with net product revenue and subtracts product cost plus variable costs caused by the sale, such as payment, pick-pack, shipping subsidy, marketplace commission and expected returns. Use one documented definition, preserve order-level evidence and avoid pretending that Shopify gross profit alone equals fully loaded profitability.

User question: Who is this StoreBuilt guide for?

Direct answer: UK ecommerce founders, operators, and marketing leads working on Shopify ecommerce delivery.

User question: Which StoreBuilt service fits this topic?

Direct answer: Support, Maintenance & Technical Audits: We stay close to the store after go-live with technical audits, bug fixing, backlog support, and structured iteration. Learn more at https://storebuilt.co.uk/services/shopify-support-maintenance-and-audits/.

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

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.

LayerIllustrative calculationDecision supported
net salesgross sales minus discounts, refunds and relevant taxestrading demand
gross profitnet sales minus product costproduct economics
contribution 1gross profit minus payment and variable fulfilmentorder viability
contribution 2contribution 1 minus expected returns and service costrange and channel choice
post-marketing contributioncontribution 2 minus attributable acquisition costscalable 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.

CostPreferred sourcePractical allocation
product costERP or governed cost historyexact SKU and period
payment feegateway settlementorder or transaction
pick-pack3PL invoice or warehouse rateorder, unit or touch
packagingpackaging BOMparcel or order
shipping subsidycarrier invoice minus customer chargeshipment
returnsrefund, label and handling eventsreturned line
marketplace feechannel settlementorder 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.

FAQ

Useful questions about this guide.

Does Shopify report contribution margin by SKU?

Shopify provides product and order profit reports when cost per item is recorded, but a full contribution view usually requires additional variable-cost data and modelling.

What costs belong in ecommerce contribution margin?

Common inputs are net revenue, product cost, payment fees, fulfilment, packaging, shipping subsidy, marketplace commission, returns and other costs that vary with the order.

Should marketing spend be included by SKU?

Only when attribution is reliable enough for the decision; many teams report contribution before marketing and a second view after allocated acquisition cost.

How should returns be assigned to products?

Use actual return and refund events where available, then report both realised contribution and a clearly labelled expected-return view.

Can one cost per item be trusted historically?

Not always. Shopify notes that cost per item is static and profit reporting depends on the cost recorded at the time of sale, so changing supplier or landed costs need governed history elsewhere.

How often should SKU contribution be reviewed?

Review weekly for trading exceptions and monthly for range, pricing and buying decisions, with longer windows for seasonal or low-volume products.

What is a dangerous contribution-margin shortcut?

Subtracting today's unit cost from gross sales while ignoring discounts, refunds, shipping subsidy, payment fees and cost changes can reverse the ranking of products.

Should a Shopify store use one-page or three-page checkout?

Most stores should start with Shopify's native one-page checkout, then test whether form length, B2B requirements or custom fields create a reason to change. The layout matters less than speed, payment confidence, delivery clarity and error handling.

What checkout customisations are still safe on Shopify?

Use checkout extensibility, Checkout UI extensions, Shopify Functions, pixels and supported branding controls. Legacy checkout.liquid and Additional Scripts work should be audited because unsupported customisations can break tracking, discounts or checkout behaviour.

How do I know if checkout is losing sales?

Look at checkout completion rate, payment errors, shipping-rate failures, device split, wallet usage, discount errors, address validation problems and support tickets. Session recordings can show friction that page-based funnels miss.

Can checkout changes affect analytics and ad tracking?

Yes. Moving scripts, pixels or order-status logic can change attribution, conversion reporting and remarketing audiences. Any checkout update should include GA4, ad platform, consent and Shopify customer event testing.

Which checkout apps or extensions are worth adding?

Only add extensions that reduce a real objection or operational issue: delivery-date clarity, gift messages, B2B purchase orders, trust messaging, shipping protection or compliant upsells. Extra fields that do not help the buyer usually reduce completion.

When should StoreBuilt review a Shopify checkout?

A review is useful before peak trading, after a migration, before replacing legacy scripts, when payment errors rise, or when checkout completion drops without a clear traffic-quality explanation.

StoreBuilt perspective

This article is part of a wider Shopify agency content system built around commercial next steps.
LondonShopify agency
11service areas
150+ecommerce projects
5.0client feedback

Commercial next steps

Connect this Shopify guide to a StoreBuilt service route.

If this article maps to an active store problem, start with the StoreBuilt homepage or move into the service route that fits the brief, audit, migration, SEO/GEO, Shopify Plus, or storefront build.

Keep exploring

Follow the next route that fits this topic.

Continue into a closely related Shopify guide or move straight to the service page that matches the problem this article is addressing.

Ready to build your next Shopify success?

Want StoreBuilt to review this problem against your live store?

Share the store URL and the issue you are trying to solve. We will recommend the right Shopify service path.

Contact StoreBuilt
  • Free discovery call
  • Tailored to your store goals
  • No obligation

Talk to a Shopify specialist

Tell us what your Shopify store needs to achieve next.

Share the store, commercial goal, and current blockers. StoreBuilt will review the brief and reply with the most sensible build, migration, CRO, or support route.

Senior response

A practical view of scope, priorities, and the right first engagement.

Best for

Brands planning a build, migration, CRO sprint, custom development, or ongoing support.

Reply route

Every request is routed to info@storebuilt.co.uk.

We use these details only to review the enquiry and reply with relevant next steps.