Every example and amount on this page is illustrative. It shows the method and is not a benchmark, a quote or advice.
What the Measurement Is Really Telling You
Ecommerce analytics should answer a commercial question: did the business create profitable growth, or did it only create more activity? Order volume and channel sales show where transactions happened. They do not show whether the sales produced enough economic value after the costs required to make and acquire them.
A useful measurement starts with sales the business can keep. A cancelled order is not revenue, and a returned order should not be treated as a completed sale. From there, the analysis needs to connect realized revenue with product cost, advertising and other relevant costs. The result is a view of gross profit, contribution after advertising and, ultimately, whether the period strengthened or weakened the business financially.
This changes how you interpret channel performance. Suppose paid social generated 500 orders and email generated 200. Paid social may look stronger on orders, but that conclusion is incomplete if its customers bought heavily discounted products, returned more units or cost more to acquire. Email may produce fewer orders while leaving more contribution per order. The right comparison is not simply “which channel sold more?” It is “which sales created usable profit, and at what cost?”
The same question applies below the channel level. A product or collection can generate substantial revenue while losing money; another can look modest in sales but fund growth because its margins are stronger. Customer-level profitability and repeat behaviour add context, especially when an initial order is expensive to acquire. Ecommerce profit analytics is therefore about tracing revenue to the profit it leaves behind, rather than collecting every available metric. For Shopify merchants, Shopify profit analytics applies that reasoning to the store’s own orders, products and customers.
The Formula, Stated Plainly
Start with gross sales: the listed selling price multiplied by the units ordered. Then remove discounts and refunds. The result is realized revenue, not the original order value:
Realized revenue = gross sales − discounts − refunds. For a clean revenue figure, count only delivered orders. Cancelled orders create no sale, and returned orders should not remain in revenue after the refund is recorded.
From realized revenue, subtract the costs that vary with each sale. Contribution profit is the amount left after fulfilling and acquiring those sales:
Contribution profit = realized revenue − product cost − shipping cost − payment fees − ad spend − other variable costs. Contribution margin is contribution profit divided by realized revenue, expressed as a percentage.
This is narrower than accounting net profit. Fixed salaries, rent, software subscriptions, and other overhead may belong in a fuller profit calculation, but they are not part of contribution profit unless you have deliberately defined them as variable. The important requirement is consistency: each cost must be included once, against the same order or period as its revenue. Ecommerce profit analytics can keep product cost, gross profit, net profit, and contribution after advertising in separate views.
| Line | Calculation treatment | What it represents |
|---|---|---|
| Gross sales | Price × units sold | Value before reductions |
| Discounts | Subtract discounts applied at checkout | Revenue given up to win the order |
| Refunds | Subtract refunded value | Revenue reversed after a return or adjustment |
| Realized revenue | Gross sales − discounts − refunds | Revenue retained from delivered orders |
| Product cost | Subtract unit cost × units sold | Cost of the goods sold |
| Shipping | Subtract fulfilment or delivery cost | Cost to get the order to the customer |
| Payment fees | Subtract processor and transaction fees | Cost of collecting payment |
| Ad spend | Subtract spend assigned to the sale or period | Cost of acquiring demand |
| Other variable costs | Subtract costs that rise with sales volume | Remaining per-sale or volume-linked costs |
| Contribution profit | Realized revenue − all listed variable costs | Amount left before fixed overhead |
A Worked Example From Order to Contribution Profit
Consider a merchant selling one product at £60. During the month, customers placed 100 orders, producing £6,000 in listed sales. The store issued £300 in discounts and refunded £200. After removing those reductions, realized revenue is £5,500. This is the amount earned from delivered orders, not the larger figure shown by the storefront before discounts and refunds.
The product cost model assigns £22 of product cost to each delivered unit: 100 × £22 = £2,200. Gross profit is therefore £5,500 − £2,200 = £3,300, or 60% of realized revenue. That still does not represent the money available after selling the orders. Fulfillment costs £650, including pick, pack and delivery, while payment processing costs £165. Contribution before advertising is £3,300 − £650 − £165 = £2,485.
The merchant spent £1,400 on acquisition during the same period. Contribution profit after advertising is £2,485 − £1,400 = £1,085. Its margin is £1,085 ÷ £5,500 = 19.7%. The original £6,000 sales figure made the month look stronger; the final figure shows what remained after the costs required to make and sell the product.
The same calculation can change materially by product or collection. One product may generate revenue while consuming most of its margin in fulfillment or advertising; another may produce less revenue but more contribution. A profit analytics view should therefore show realized revenue, gross profit and contribution after advertising at product and collection level, rather than ranking performance by sales alone.
| Step | Arithmetic | Amount |
|---|---|---|
| Listed sales | 100 × £60 | £6,000 |
| Realized revenue | £6,000 − £300 discounts − £200 refunds | £5,500 |
| Gross profit | £5,500 − £2,200 product cost | £3,300 |
| Contribution before advertising | £3,300 − £650 fulfillment − £165 transaction fees | £2,485 |
| Contribution profit | £2,485 − £1,400 acquisition cost | £1,085 |
| Contribution margin | £1,085 ÷ £5,500 | 19.7% |
Where Ecommerce Numbers Go Wrong
The first error is using a sales number that does not represent cash-generating trade. Gross sales can include cancelled orders, returned items, discounts not yet deducted, and tax collected on behalf of the tax authority. Net or realized revenue should reflect what the customer ultimately kept and what belongs to the merchant. A £100 order with a £10 discount, £8 tax and a full refund is not £100 of revenue. If the refund is missing from the report, profit and margin are overstated even though the order still appears in the order count.
Timing creates a separate distortion. Shopify may record an order on 31 March, an ad platform may report the click on 28 March, and the refund may be issued in April. Comparing March store revenue with April refunds or a different advertising window makes a profitable period look worse and a later period look better. Channel windows also differ: one platform may use a seven-day click window while another uses last-click attribution. Their attributed orders cannot be added as if they used the same rules.
Costs create similar problems. A blended product cost applied to every SKU hides the difference between a £12 item and a £35 item. Shipping, transaction fees, fulfilment, discounts and advertising can also be omitted or allocated inconsistently. A store can therefore report a healthy blended margin while a collection or product loses money. Duplicate orders have the opposite effect: importing the same order from Shopify and a sales channel twice inflates revenue, units and apparent demand without adding a customer or a payment.
A reliable check reconciles order IDs, order status, refund value, tax treatment, product cost and reporting dates before interpreting the result. ORVX calculates realized revenue from delivered orders only and reports return rate by units and refund value against revenue. It computes product-cost-based gross and net profit and shows profitability by product and collection. It also keeps the merchant’s trading currency separate and tracks MER alongside attributed ROAS, so total advertising efficiency is not confused with a platform’s attribution window. See ecommerce financial analytics for the broader control view and ecommerce profit analytics for profit reporting beyond revenue.
| Distortion | What it changes | Control |
|---|---|---|
| Missing refunds or cancellations | Inflates revenue, orders and margin | Exclude non-delivered orders and reconcile refund value |
| Different dates or attribution windows | Misaligns revenue and advertising performance | Compare matching reporting periods and attribution rules |
| Blended costs | Hides unprofitable products or collections | Use product-level costs and consistent allocations |
| Duplicate orders or mixed tax treatment | Inflates sales or treats tax as merchant revenue | Deduplicate order IDs and define tax treatment |
How to Build a Number You Can Trust
Start with a field definition, not a dashboard. Write down which orders count, when an order belongs to a period, and how discounts, refunds, shipping, tax, payment fees, product cost and advertising spend are treated. For example, define revenue as delivered orders less discounts and refunds; exclude cancelled orders and do not treat an order as complete merely because it was placed. Define COGS using the current product cost model, then keep that definition unchanged while comparing periods.
Choose a reporting period that matches the decision. A completed calendar month is usually easier to reconcile than a partial week because late deliveries, refunds and ad invoices can arrive after the sale. Use the same timezone, currency and date rule throughout. If the store trades in multiple currencies, convert according to a documented accounting rule rather than adding figures from different currencies into one total. ORVX keeps each merchant's trading currency and does not mix currencies in one figure.
Reconcile the result against source records before relying on it. Compare order count and realized revenue with Shopify, then compare refunds, payment fees, advertising spend and inventory costs with finance or advertising-account records. A £250 difference is not automatically an error: it may be a timing difference, a tax treatment difference or a missing transaction. Label the reason and decide which source controls each field. Shopify profit analytics can connect store orders, products and customers, while ecommerce financial analytics provides the wider financial view.
Test the calculation using a small, known sample. Take one delivered order, one cancelled order and one refunded order, calculate the expected inclusion manually, and verify that the report produces the same result. Then tie the sample's product cost and ad spend to the relevant profit line. Run the calculation for a completed month, compare its totals with the ledger, and investigate every variance before using the number to allocate budget or change a product decision. Product- and collection-level checks are available in ecommerce profit analytics.
What to Do With the Answer
Contribution profit is a decision signal, not a decision by itself. If a product contributes £8 per order after variable costs and advertising costs £10, acquiring another order loses £2. Reduce bids, pause the campaign, or fix the product economics before scaling it. If contribution remains positive after a controlled bid increase, scaling may be reasonable—but compare the result with total advertising efficiency, not attributed channel reporting alone. MER measures total ad spend against store revenue; attributed ROAS assigns revenue to particular campaigns. They answer different questions.
Use the same result to separate the commercial levers. A product with healthy contribution before discount but weak contribution after discount needs a promotion or pricing review. A profitable product may deserve more visibility, while a high-revenue product with poor contribution should not automatically receive more stock or ad budget. For a price test, choose products where the current margin makes a change worth testing; contribution data can identify the opportunity, but cannot estimate price elasticity or predict how demand will respond.
Pair contribution profit with customer-level analysis when first orders are deliberately unprofitable. Check whether those customers repeat, what later orders contribute, and whether retention differs by acquisition source before cutting the channel. Pair it with cash-flow analysis when payment timing, supplier bills, tax, refunds, or inventory purchases could leave a profitable period short of cash. Inventory also changes the action: use inventory analytics to distinguish a profitable fast seller from stock tied up in dead stock. Product, collection, and customer views in ecommerce profit analytics keep those decisions connected to the underlying trade.
- Bids: reduce or stop spend when incremental orders remain contribution-negative; compare MER with attributed ROAS.
- Pricing and promotions: test changes where contribution is being compressed, without treating a test as a demand forecast.
- Product mix and inventory: prioritise profitable sellers with adequate stock, and investigate revenue-heavy products with weak contribution or dead stock.
- Retention: use customer-level profitability and repeat behaviour before judging an acquisition source on first-order contribution alone.
Reliable ecommerce analytics is less about collecting more dashboards than connecting one commercial question to consistent revenue, cost, and attribution rules. Once the calculation reconciles, its value is practical: it shows which growth is worth funding, which assumptions need fixing, and where the next operating decision should be made.