Your dashboard shows marketplace revenue climbing, a website growing steadily and a stable B2B channel. Everything looks fine. Yet cash is not keeping pace. The cause is almost always the same confusion: revenue by channel measures volume, not profitability.
Between the price the customer pays and what actually stays in the business, there are commissions, payment fees, free shipping, refunded returns, advertising and picking time. Each channel absorbs a different share. This guide explains how to have your ERP calculate net margin by channel, with which data, and how to use it to make decisions.
Revenue by Channel Flatters You: Where Margin Disappears
A euro of revenue is not worth the same depending on the channel that generated it. Six cost lines explain most of the gap:
- Marketplace commissions: a percentage of the selling price, varying by product category, sometimes topped up with fixed per-order fees or a seller subscription. Each marketplace publishes its own fee schedule, and it changes over time: configure it with a validity date, never copy it from memory.
- Payment fees: the processor’s commission (card, wallet, buy-now-pay-later) and chargeback fees when a payment is disputed.
- Unrecovered shipping costs: free delivery above a threshold, or shipping charges capped by the marketplace, while the carrier bills the actual rate.
- Returns: customer refund, return shipping, inspection time, and products that sometimes cannot be resold or must be downgraded.
- Advertising: keywords, sponsored marketplace listings, website acquisition campaigns.
- Fulfilment: picking, packing, labelling, sometimes channel-specific cartons.
None of these costs appears in standard gross margin (selling price minus purchase cost). Worse, they are usually booked by nature (fees, freight, advertising) with no link to the channel that triggered them. It is the same logic as in our analysis of customer profitability: without an allocation dimension, the cost exists but is assigned to no one.
A 4-Level Margin Model
Instead of a single number, build a waterfall that the ERP calculates for every order and then aggregates by channel:
- Gross margin: selling price net of discounts, minus product cost.
- Margin after fulfilment: minus picking, packing, net shipping (paid minus re-invoiced) and allocated storage.
- Margin after channel costs: minus commission, payment fees, allocated subscription, and the net cost of returns.
- Contribution after marketing: minus advertising and acquisition costs attributable to the channel.
Level 4 contribution is the only figure that lets you compare channels with each other. Overheads (rent, fixed salaries, tools) stay outside this calculation: the goal is to see what margin is left to cover them, not to spread them around.
An Illustrative Example
The figures below are fictional and only show the mechanics. They do not reflect any real fee schedule. Assumption: a €100 order (excluding VAT) of the same product, with a cost of €55 (€62 in B2B, owing to volume discounts).
| Per €100 of net revenue | Own website | Marketplace | B2B |
|---|---|---|---|
| Gross margin | 45 | 45 | 38 |
| Net fulfilment | -10 | -10 | -6 |
| Margin after fulfilment | 35 | 35 | 32 |
| Payment, commission, subscription | -3 | -15 | -2 |
| Net cost of returns | -4 | -5 | 0 |
| Margin after channel costs | 28 | 15 | 30 |
| Marketing and acquisition | -14 | -8 | -3 |
| Final contribution | 14 | 7 | 27 |
In this case the marketplace shows the same revenue and the same gross margin as the website, yet keeps half the contribution. B2B, the least impressive on gross margin, turns out to be the most profitable per euro of revenue. The picture shifts again if you reason per order rather than per euro: an €800 B2B basket weighs far more than a €45 marketplace basket. This is exactly the insight that gross-margin-only reporting cannot give you.
The retail store channel follows the same grid, with lower channel costs (payment processing) but staff and premises costs that you treat as store overheads, outside the waterfall.
Capturing the Data in Your ERP
The model is only worth something if data flows up order by order. Three workstreams condition everything else.
Channel and Marketplace Analytical Dimensions
Every order must carry a channel dimension (website, marketplace, B2B, store) and a sub-dimension (which marketplace, which store) from the moment it is created. This dimension propagates to deliveries, invoices, credit notes and accounting entries. The classic trap: the marketplace connector creates orders with no dimension, or with a generic “Web” value. Enforce the value in the connector, not through manual fixes. If you are integrating Amazon or Mirakl-based marketplaces, our guide to marketplace integration and its ROI details the flows to secure.
Reconciling Marketplace Settlements
The marketplace does not pay you the price the customer paid. It pays a net amount, grouped by period, after commissions, refunds, miscellaneous fees and sometimes advertising. This settlement report is the source of truth for channel costs, far more reliable than a theoretical rate.
How the ERP should handle it:
- import each report (file or API) and break it down by line type: sale, commission, refund, service fee, advertising;
- link each line to its order when the identifier allows it, and allocate pro rata otherwise;
- post commissions and fees to dedicated accounts carrying the channel dimension;
- reconcile the net total with the bank payment received, and handle differences.
This reconciliation serves two purposes: accounting (correct cash receipts) and management (actual commission per order rather than an estimate).
The Cost of Returns and Customer Service
A return triggers several movements: credit note or refund, receipt into stock with inspection, a decision to resell, downgrade or scrap, and sometimes return shipping that you bear. Configure the ERP so that a credit note references the original order and carries the same channel dimension; otherwise the return lands on a generic channel. Add a return reason and a returned-item status: they let you distinguish a no-loss return (restocked as new) from one that destroys the margin. Customer service time is valued at the department’s hourly cost and allocated by channel according to the number of cases.
Fulfilment Costs per Order
Fulfilment is the cost line most often averaged out, and therefore the most misleading. Break it into building blocks:
- Picking: time per line and per order, valued at the warehouse hourly cost.
- Packing: carton, padding, labels, with channel variants (gift wrap, mandated cartons).
- Shipping: the carrier’s actual rate by weight, zone and service, minus the shipping charged to the customer.
- Storage: allocation based on space used and how long stock sits.
Best practice is to calculate a standard cost per order type (number of lines, weight, destination) in the ERP or WMS, then compare it with actuals every quarter. Avoid allocating by revenue: a small marketplace order costs almost as much to prepare as a large one, and revenue-based allocation mechanically burdens large baskets. If your warehouse runs on a WMS, the logic for reading these costs is close to the one described for gross margin by product line.
The CFO Dashboard: 8 Metrics
To steer without drowning leadership in numbers, keep eight metrics, all calculable by channel:
- Contribution margin (level 4), in value and as a percentage of revenue.
- Net margin per order: contribution divided by the number of orders.
- Return rate: by number of orders and by value.
- Net basket: average basket after discounts, credit notes and returns.
- Customer acquisition cost: marketing spend divided by new customers, per channel.
- Effective commission rate: commissions and fees actually deducted from revenue, taken from settlements.
- Fulfilment cost per order, actual versus standard.
- Cash collection delay: the gap between shipment and cash receipt, which weighs on working capital.
Display these metrics as monthly trends, with an alert threshold per channel agreed with the e-commerce director. A metric with no threshold and no owner triggers no decision.
The Decisions These Numbers Enable
Calculating for its own sake is pointless. These are the trade-offs that justify the project:
- Pricing by channel: a product with low contribution on a marketplace may justify a higher price there, provided you respect the marketplace’s price parity rules.
- Delisting products: a best-seller with a high return rate and low contribution ties up capital and time. The list of negative-contribution SKUs is often shorter than feared, and more expensive to keep.
- Renegotiating commissions and carrier rates: with the effective rate and the volume per category, you negotiate on facts.
- Channel-specific assortment: reserve bulky or high-return products for the website or B2B, where you control fulfilment and the customer relationship.
- Advertising budget: reallocate towards channels where acquisition cost is absorbed by contribution.
5 Mistakes to Avoid
- Arbitrary cost allocation. Spreading costs “by gut feel” discredits the model. Consequence: a channel’s margin is overstated or understated, sales leaders dispute the figure, and no pricing or assortment decision gets made. Countermeasure: document every allocation key and have it validated by the CFO and the e-commerce director.
- Mixing VAT-inclusive and VAT-exclusive figures. Commissions and revenue are only comparable excluding VAT. Consequence: comparing VAT-inclusive website figures with VAT-exclusive settlement figures distorts commission rates and margin, and one channel is wrongly judged less profitable than another. Countermeasure: convert everything to excluding VAT, and check with your accountant how cross-border sales and the EU One-Stop Shop (OSS) apply in your situation.
- Ignoring the timing of returns. A return often arrives several weeks after the sale, sometimes in a different month. Consequence: the current month looks better than it is, and the margin of a high-return channel is overstated until it is trued up. Countermeasure: calculate margin with a returns provision based on the historical rate, then true it up.
- Counting fulfilment twice. If the product cost already includes a share of fulfilment, it is deducted again with shipping costs. Consequence: contribution is understated, and you may drop or reprice a profitable product. Countermeasure: clarify what the standard cost contains before modelling fulfilment costs.
- Confusing channel and customer. A B2B customer may order through the website. Consequence: website margin is polluted by B2B terms, and pricing decisions rest on a blend of two different profiles. Countermeasure: the channel dimension describes the sales mode, not the customer’s identity, which remains a separate dimension to track on its own.
30-60-90 Day Action Plan
Days 1 to 30, scoping and data. List the channels and sub-channels, define the 4-level model with the CFO, audit the channel dimension on the last 12 months of orders and measure the share of orders with no channel. Collect settlement reports from each marketplace.
Days 31 to 60, configuration and pilot. Enforce the channel dimension in connectors and the checkout flow, set up settlement import and cost allocation, calculate the waterfall on a pilot channel (ideally your main marketplace), then compare the result with the accounts.
Days 61 to 90, rollout and governance. Extend to the other channels, publish the 8 metrics with alert thresholds, set up a monthly channel margin review and list the first three quantified decisions (pricing, SKUs, commissions).
To measure your starting point, a margin management audit can tell you within a few days which data is missing and which channel is most exposed. Contact us for a margin management audit. To go further, also read our guide to marketplace integration and its ROI and our analysis of customer margin.