What we have seen is this: channel reports often answer where payment was captured, then get presented as if they answer which channel created profit. A customer may discover in a store, order online, collect locally and return by post. The sales label is useful; it is not the whole economic story.
Contact StoreBuilt if channel growth is being judged on revenue without comparable costs.
Table of contents
- Keyword decision
- Choose the decision
- Build a contribution ladder
- Handle omnichannel journeys
- Turn reporting into action
- StoreBuilt point of view
Keyword decision
Primary keyword: ecommerce channel profitability. Secondary intents include Shopify channel profitability UK, Shopify POS profitability and omnichannel profit analysis. Intent is strategic and mid-funnel. Charle and UK agency competitors publish platform and growth comparisons, but merchants also need a decision model for channels already in operation. The article supports StoreBuilt’s integration and optimisation services without competing with the homepage’s Shopify-agency query.
Choose the decision
Define whether the model will decide campaign allocation, marketplace participation, store expansion, fulfilment design or customer acquisition. Each requires a different cost horizon. Do not load every fixed cost into a campaign decision or exclude fixed costs from a location strategy.
Use a consistent period, currency, tax treatment and product-cost basis. Separate gross demand from cancellations and returns. Preserve original channel, fulfilment location and return channel as different fields.
| Layer | Include | Decision value |
|---|---|---|
| net sales | sales less discounts and returns | customer revenue retained |
| product contribution | net sales less product cost | range economics |
| order contribution | payment, pick, pack, delivery, returns | transaction economics |
| acquired contribution | attributable marketing and commission | channel acquisition efficiency |
| operating result | transparent shared and fixed costs | strategic sustainability |
Build a contribution ladder
Shopify’s retail reports can segment POS activity by product, variant, vendor, location and staff, while online and Shop channel analytics add other views. Bring those commerce facts together with marketplace commission, paid media, packaging, carrier, labour and return-disposition data.
Avoid fake precision. If pick cost is sampled rather than recorded, label the assumption and show sensitivity. If rent is allocated by sales, also show contribution before rent. A decision-maker should see which conclusion depends on an allocation choice.
An anonymous UK retailer believed click-and-collect was its cheapest digital route because delivery cost was zero. Store labour, failed collections and inter-location transfers were absent. Adding those drivers did not make collection unattractive; it made the operating improvement visible. No fabricated result is attached.
Explore Shopify Plus and omnichannel support when channel data needs enterprise-grade governance.
Handle omnichannel journeys
Maintain three views rather than forcing one attribution answer:
- Transaction view: where the order and payment occurred.
- Service view: which location fulfilled, supported and accepted the return.
- Customer view: which touchpoints influenced acquisition and repeat purchase.
For click-and-collect, attribute the online order consistently and assign store service cost separately. For endless-aisle POS orders, preserve the assisting location and ship-from location. For a marketplace customer who later buys direct, keep both acquisition histories rather than rewriting the first order.
Returns need their own bridge. Record original channel, return channel, carrier or store cost, product disposition and recovered value. Otherwise a channel that creates high returns can export its cost to a different team.
Turn reporting into action
Build a monthly matrix by channel, category and customer cohort. Flag changes in discount rate, return rate, fulfilment cost, paid acquisition and repeat behaviour. Require commentary for material movement and link each issue to an owner.
| Signal | Possible cause | Test next |
|---|---|---|
| sales up, contribution down | discounts or acquisition inflation | campaign and cohort split |
| POS contribution varies | location mix or custom items | SKU and location detail |
| marketplace returns rise | expectation or fulfilment gap | listing and reason review |
| collection cost rises | transfers or failed pickup | location eligibility rules |
Use the model to change decisions: assortment by channel, free-delivery thresholds, marketplace range, store stock depth and campaign allocation. Archive assumption versions so finance and ecommerce can reproduce why a decision was made.
Request a Shopify audit to map channel, fulfilment and cost data into one useful decision model.
StoreBuilt point of view
Validate the model with operational reality
Before leadership uses the dashboard, select a small sample of orders from each channel and rebuild their economics manually. Include a normal online order, paid-social order, marketplace sale, POS purchase, click-and-collect order, split shipment and a cross-channel return. Follow each through discount, tax, payment, fulfilment, support and disposition records.
This exercise reveals false joins quickly. Product titles change, marketplace SKUs differ, fulfilment systems split lines and returns reference a replacement order rather than the original. Define durable identifiers and a hierarchy for missing data. Never allocate an unexplained balance merely to make every row look complete.
Set a refresh and sign-off cadence. Commerce can own channel definitions and trading commentary; finance should own cost policy and reconciliation; operations should validate fulfilment and return assumptions. Record who approves new cost rates and when they take effect. A carrier price change should not silently rewrite historical months.
Use confidence labels where data quality differs. Direct marketplace commission can be exact, while store labour per collection may be sampled. Show the sensitivity of the conclusion to estimated inputs. If a channel appears profitable only under one fragile allocation, leadership needs to see that dependency.
Pair short-term contribution with customer value carefully. A first marketplace order may have lower contribution but create later direct demand; a heavily discounted direct order may look owned while attracting a low-retention cohort. Compare repeat behaviour without assigning every future purchase to one initial touchpoint.
Finally, turn one insight into a bounded operational test: change a free-delivery threshold, restrict a marketplace range, improve collection eligibility or reduce a costly return cause. Set the expected driver and review date before launch. Profitability reporting earns its place when it changes a decision and the result is measured back into the model.
Document channel entry and exit criteria as well. A new marketplace might require minimum contribution, acceptable return exposure, reliable stock synchronisation and a route to customer support before launch. An existing channel should trigger review when contribution stays below its floor, operational exceptions grow or the range no longer fits the audience. Avoid keeping a channel merely because last year’s revenue target included it.
Use a quarterly decision pack that combines the financial view with capacity and strategic constraints. Include channel dependency, customer-data access, brand presentation, payment risk, fulfilment resilience and the cost of change. Some advantages will not fit neatly into one order-level calculation, but they should still be named and evidenced rather than hidden inside an unexplained allocation.
Give every approved action an owner, baseline and next review date. If the decision is to keep a lower-contribution channel for acquisition or market learning, state that hypothesis and the evidence required to renew it. This prevents a temporary strategic exception from becoming a permanent unmeasured subsidy.
StoreBuilt believes omnichannel reporting should preserve complexity without becoming unusable. Start with direct contribution, expose allocations and keep transaction, service and customer views distinct. The best channel is not always the one with the highest revenue—or the neatest attribution label.