Why Revenue Growth Can Hide Margin Deterioration
A store can sell more, retain more revenue and still have less money left to support the business. The warning appears when the cost of generating the next order rises faster than the value that order retains.
Is revenue increasing because the business is creating more economic value, or because it is buying more activity on weaker terms?
Revenue and economic capacity are moving apart.
The apparent success is real: 300 additional orders generate €18,000 more net revenue. The deterioration is also real: the business retains €6,600 less contribution. A single revenue chart cannot distinguish those outcomes.
| Measure | Baseline | Growth month |
|---|---|---|
| Orders | 1,000 | 1,300 |
| Gross product sales | 100,000 | 130,000 |
| Discounts | (5,000) | (13,000) |
| Refunds | (3,000) | (7,000) |
| Net revenue | 92,000 | 110,000 |
| COGS, net of recovered inventory | (40,000) | (52,000) |
| Fulfillment | (8,000) | (11,700) |
| Payment fees | (3,000) | (3,900) |
| Acquisition spend | (18,000) | (26,000) |
| Contribution | 23,000 | 16,400 |
The €100 gross selling value per order has not changed. Net realization has: €92.00 becomes €84.62. Refunds here belong to the same order cohorts, after enough time has passed for reversals to mature.
Separate revenue realization from cost escalation.
Do not subtract discounts twice by starting with already-discounted sales and then applying another discount expense. Build one consistent path from list-value sales to the amount retained.
Revenue realization
Discounts and refunds reduce gross sales by €8 per order initially and €15.38 during growth. Their combined effect is larger than the visible fulfillment increase.
Variable burden
Fulfillment rises from €8 to €9 per order. Acquisition spend per order rises from €18 to €20. Payment fees remain €3 in this simplified model.
Shopify distinguishes gross sales, discounts and sales reversals in its sales reporting definitions. Reconcile those definitions before comparing a dashboard total with this model.
Volume should have created €6,900 more contribution.
Holding the original economics constant, 1,300 orders at €23 contribution would produce €29,900. That is the correct reference point for asking what growth could have delivered.
The deductions are weaker net realization, higher fulfillment per order and higher acquisition spend per order, respectively.
The €13,500 deterioration against constant unit economics more than consumes the €6,900 benefit of additional volume. Treating the final €6,600 decline as a volume problem would miss the mechanism.
A mix shift can create a second, independent warning.
The monthly bridge holds product cost per order constant. In a real assortment, mix can deteriorate at the same time. Test this separately instead of assigning the unexplained balance to a vague mix effect.
| Order mix | €25 contribution product | €10 contribution product | Weighted contribution |
|---|---|---|---|
| Original | 80% | 20% | €22.00/order |
| New | 50% | 50% | €17.50/order |
Locate the deterioration at transaction level.
An aggregate decline tells you where to look, but not which intervention to choose. Decompose the €9,600 realization gap before negotiating shipping rates or cutting every campaign.
- Split discount exposure from depth
Compare the share of orders discounted and the average discount among those orders. A wider eligibility rule can matter more than a changed coupon rate.
- Age the refund cohorts
Compare completed return windows by channel and SKU. A new growth cohort with unresolved returns can look healthier than it will become.
- Match acquisition and fulfillment
Separate new-customer campaigns, repeat demand, remote zones and multi-package baskets. Use causal tests before treating allocated acquisition cost as avoidable.
Recover unit economics without assuming all demand survives.
Suppose narrower promotions recover €4 net revenue per retained order, while revised targeting reduces acquisition spend by €1 per order. At 1,200 orders, these assumptions produce about €21,138 contribution.
That is about €4,738 above the growth month, but still below the €23,000 baseline. It is a modeled test, not an observed result.
The retained-order threshold against €16,400 is 932 whole orders at approximately €17.6154 contribution each. Confirm whether the €1 acquisition saving is actually cash-avoidable; a bookkeeping reallocation does not create profit.
Validate the retained euros and the assumptions behind them.
Evaluate the next cohort after its refund window, using the same cost boundary. A recovering margin percentage is insufficient if contribution falls because too many healthy orders disappear.
Primary result
Compare total contribution and contribution per order with the original €16,400 and €12.62 growth-month values.
Guardrails
Track conversion, mature refunds, shipping-zone mix and cash spend. A stronger short-term result may still sacrifice profitable repeat customers.
Use the contribution margin framework to keep the analytical boundary explicit. Record which assumptions changed so the next comparison does not mistake a reporting change for an operating improvement.
Growth earns its place when incremental contribution survives.
The correct response to this signal is a transaction-level investigation. Revenue growth remains useful, but only after its discounts, returns, acquisition burden and operating demands have been reconciled.
Ask what the added orders would have contributed at the old economics, then explain every material difference.
If the answer changes when returns catch up, the original scaling decision relied on incomplete economics.