Skip to content
Retail

Margin by SKU, store and channel, on a model that treats returns and promotions consistently.

Retail analytics looks simple and is full of traps. Returns, promotions, loyalty discounts, marketplace fees, carriage and VAT treatment all sit between gross sales and the margin a buyer can act on, and each one is handled slightly differently in the source systems.
  • One trading number used by commercial, finance and operations
  • Channel profitability comparable after costs to serve
  • Markdown decisions taken on sell-through rather than instinct
  • Forecast accuracy measurably better than the previous process

We build the model that resolves it: one sales fact with consistent treatment of returns and allowances, a margin ladder from gross to contribution that finance recognises, and inventory joined at the right grain so availability and sell-through can be read together.

We work with grocery and convenience, fashion and general merchandise, pure-play and omnichannel ecommerce, wholesale and consumer brands, and hospitality groups where the same questions appear under different names.

What goes wrong

Recurring failure modes in retail

Returns that distort everything downstream

Returns posted in a different period, against a different channel or with no link to the original order, so margin by week and by channel both become unreliable.

Channel comparison that is not like for like

Marketplace fees, delivery cost and payment charges treated inconsistently, which flatters online or stores depending on who built the report.

Inventory accuracy nobody trusts

Stock figures differ between the warehouse system, the ERP and the webshop, so availability promises and replenishment decisions are made on the most convenient number.

Promotional effectiveness measured post hoc

Uplift calculated against a weak baseline with no cannibalisation or pull-forward view, so promotions that destroy margin keep being repeated.

Metrics

Metrics and their definition errors

Each metric with its definition and the error that most often distorts it. If our reading is wrong for your business, that disagreement is a productive starting point.
MetricDefinitionThe trap
Net salesGross sales less returns, discounts and allowances, excluding VAT.Return period alignment: a return booked in the following week must either be matched to the original sale or clearly reported on a separate basis, consistently.
Gross margin after costs to serveNet sales less cost of goods, fulfilment, payment and marketplace fees.Allocating fulfilment and payment cost to the order line is what makes channel comparison legitimate, and it is the step most often skipped.
Sell-through rateUnits sold over units received, for a defined season or period.Must be defined against intake rather than current stock, otherwise markdown decisions are taken on a moving denominator.
Availability / on-shelf availabilityShare of measured occasions when a line was available to buy.Measurement frequency and the treatment of discontinued lines change the number dramatically; both have to be fixed in the definition.
Customer lifetime valueExpected contribution from a customer over a defined horizon, discounted.An unbounded horizon makes the figure meaningless. Pick a horizon, state it on the report, and keep it stable.
Use cases

What we typically build

Trading dashboard

Daily sales, margin and basket metrics by channel, region, store and category, with like-for-like handled correctly through a store-status dimension.

Margin ladder analysis

Gross to contribution margin by SKU, supplier and channel with every deduction visible, so commercial negotiation uses the same numbers as finance.

Inventory and replenishment

Stock cover, availability, ageing and markdown exposure, reconciled across warehouse, ERP and channel systems with the differences explained.

Promotional and pricing analytics

Uplift against a modelled baseline, with cannibalisation, pull-forward and margin impact, reported per mechanic so the next plan is informed.

Customer and loyalty analytics

Segmentation, repeat rate, cohort retention and loyalty programme contribution, built on a consent-aware customer model.

Demand forecasting

SKU and location level forecasting with promotional and seasonal effects, backtested and compared with the planner's existing accuracy.

Integration

Source systems we connect to

  • EPOS / till systems
  • Ecommerce platforms (Shopify, Magento, commercetools)
  • Marketplaces (Amazon, eBay, Zalando)
  • ERP (SAP, Dynamics 365, NetSuite)
  • Warehouse management systems
  • Loyalty and CRM platforms
  • Payment service providers
  • Google Analytics 4 and advertising platforms
Regulatory context

Regulatory context by market

  • UK and EU GDPR consent management for loyalty and marketing analytics
  • EU: Digital Services Act transparency obligations for larger marketplaces, EPR and packaging reporting
  • UK: Digital Markets, Competition and Consumers Act pricing and subscription transparency
  • Switzerland: revised Federal Act on Data Protection for customer data processing
  • Cross-border VAT and OSS reporting for ecommerce across EU markets
  • Payment data: PCI DSS scope limitation in analytics environments
Questions

Retail: common questions

With a store status dimension carrying open, close, refit and relocation dates, so like-for-like is a measure filtered on comparable status rather than a manually maintained store list. That also makes the basis auditable, which matters when the figure appears in investor reporting.

Yes, and the work is in the definitions rather than the plumbing. Channel attribution for click-and-collect and ship-from-store, consistent treatment of returns across channels, and allocation of fulfilment cost all need agreed rules. We run those decisions as a workshop with commercial and finance and record each one in the measure dictionary.

Regularly. Marketplace settlement files are the only reliable source of true net revenue once fees, returns and promotions are applied, so we land settlement data rather than order data for margin reporting, and reconcile the two. That reconciliation surprises most clients the first time they see it.

It depends on history length, promotional volatility and SKU lifecycle. Instead of promising a number we backtest against your own history and report accuracy by category against your current process. Where the gain is marginal, as it often is on short-lifecycle fashion lines, we say so, and focus on availability and markdown analytics instead.

Next step

Analytics work in retail

A 45-minute working session with an engineer rather than a sales call. You describe the problem; we set out what we would build, in what order, and what it is likely to cost.

Answered within one working day, by the engineer who would do the work