Revenue streams

Net revenue split by stream, source platform, conversion type and channel, with MER and ROAS on the same totals.

Luxury home textiles and fragrance · FR, DE, NL, UK, US · Stack: Shopify Plus, Amazon, bol, Klaviyo, Impact, Meta, Google Ads, Pinterest, Amazon Ads, Recharge, Okendo, GA4

Stream filter
Applies to KPIs, charts, matrix, source platforms, gross to net and new vs returning.

RV1Net revenue

Up18.2%

€444,878

All streams

RV2MER

Up0.5%

4.28x

Net revenue / total marketing spend

RV3Blended ROAS

Up0.3%

4.51x

Net revenue / ad spend

RV4nc-ROAS / aMER

Down2.0%

1.87x

44% of revenue is new customers

RV5Marketing spend

Up17.6%

€103,854

Ads €98,698 · Affiliate €3,901

RV6Contribution margin

Up17.8%

€91,253

20.5% of net revenue

RV7Revenue per purchase

Up1.7%

€124

Lead form €400 per lead

RV8Orders

Up14.3%

3,266

AOV €136

Streams

Where the revenue comes from, what it costs and what is left.

RV9Revenue by stream over time

Daily buckets

Source: normalised orders layer (net = gross - discounts - cancellations - refunds) · channel: Shopify customerJourneySummary.lastVisit.utmParameters (can be empty, GA4 as fallback)

Margin = contribution margin. Showing: All streams.

RV10Revenue streams

Click a header to sort, click a stream to filter the page

Source: orders.net_revenue, orders.count, marketplace_fees, affiliate_commission, payment_fees, ad_spend_daily · MER = net / spend, ROAS = net / ad spend

€203,985Up13.9%2.92x€26,097 (13%)
€97,162Up15.8%4.86x€16,827 (17%)
€69,602Up40.2%11.92x€20,638 (30%)
€41,426Up16.9%9.65x€16,223 (39%)
€32,703Up16.0%8.38x€11,468 (35%)
Total€444,87818.2%4.28x€91,253 (21%)

Affiliate commission is part of marketing spend, so it is not deducted a second time in contribution margin. ROAS uses paid-media ad spend only; streams without paid media show a dash.

Sources and conversion types

Which system the number comes from, and what kind of conversion produced it.

RV11Revenue by source platform

Net revenue per connected system, normalised to ex-tax, after refunds

Source fields: Shopify Plus currentTotalPriceSet · Recharge total_price · Amazon orderedProductSales · bol unitPrice x quantity

Shopify Plus€306,29068.8%
Amazon€60,24013.5%
Recharge€41,4269.3%
bol€36,9228.3%
Total€444,878100%

Reconciles to total net revenue. Hover a platform for the API endpoint and normalisation rule. Raw platform values differ (tax inclusive, ordered vs shipped, GMV with cancellations), so every source is normalised to net, ex-tax.

RV12Conversion type split

Purchase vs Lead form: counts, value, CPA and conversion rate

Source: GA4 keyEvents (purchase, generate_lead) · HubSpot deals (amount, dealstage) · shop order count

TypeConversionsConv. rateNet revenueCPAvs previous
Purchase3,2364.01%€402,038€30.98Up14.4%Up2.1%
Lead formTrade account enquiries (HubSpot)1074.49%€42,840expected, from won leads€33.60Down2.7%Up46.0%
All conversion types3,343€444,878

Net revenue per type adds up to total net revenue. Lead form value = pipeline (leads x average deal value); expected revenue = pipeline x lead-to-won rate (won / leads; the hotel's Mews/SevenRooms data uses won / (won + lost)) (28.0% this period). CPA = spend allocated to the type / conversions; for lead forms this is cost per lead. Conversion rate = conversions / sessions (purchases and bookings) or form views (leads).

RV13Conversion trend per type

One chart per type, each on its own scale

PurchasePurchases

Lead formLeads

Channels and efficiency

Revenue and return per channel, and how much the platforms over-claim.

RV14Stream x channel matrix

All streams: darker means higher. Organic and direct have no spend

Source: channel credit from Shopify customerJourneySummary.lastVisit.utmParameters (can be empty, GA4 as fallback) · marketplace ads reports · ad_spend_daily

StreamMetaGooglePinterestAmazon AdsEmailAffiliateOrganicDirectTotal
DTC webshop€42,788€47,459€10,861-€35,321-€34,707€32,849€203,985
Marketplaces---€36,492--€60,670-€97,162
Affiliate-----€30,077€984€1,642€32,703
Wholesale / B2B-€13,876--€12,549-€15,469€27,708€69,602
Subscriptions€3,337€1,660--€16,639-€4,141€15,649€41,426
Total€46,125€62,995€10,861€36,492€64,509€30,077€115,971€77,848€444,878

Revenue per cell is net revenue credited to the channel by the attribution source above (a modelled allocation, not a platform claim); every row adds up to the stream total. ROAS = cell revenue / cell spend; the total column is MER because it includes organic and direct revenue.

RV15MER trend

Net revenue / total marketing spend

RV16Blended ROAS trend

Net revenue / paid-media ad spend

RV17Platform-reported ROAS vs allocated ROAS

Platforms each claim the same order, so their numbers do not add up

Source: Meta action_values[omni_purchase], Google Ads metrics.conversions_value, TikTok total_purchase_value [?], Amazon Ads sales14d · allocated = de-duplicated attribution

ChannelSpendPlatform-reported revenueAllocated revenueClaimed / allocated
Meta€37,966€70,848€46,1251.54x
Google€33,588€84,665€62,9951.34x
Pinterest€7,139€15,640€10,8611.44x
Amazon Ads€20,005€42,039€36,4921.15x
Email€1,255€92,893€64,5091.44x
Affiliate€3,901€33,205€30,0771.10x
All platforms€103,854€339,290€251,0591.35x

Sum of platform-reported revenue

€339,290

Actual net revenue (All streams)

€444,878

Overlap ratio 0.76x = sum of platform revenue / actual net revenue.

Platforms over-claim by 35%
The same order is counted by Meta, Google and email at once, so adding platform ROAS overstates return. The de-duplicated allocation credits these channels with €251,059; platforms claim €339,290. Use MER (4.28x) for the total picture and platform ROAS only to compare campaigns within one platform.

Quality of revenue

From gross to net, new versus returning, and what sells.

RV18Gross to net revenue

All streams: what is lost between sale and net

Source: Shopify totalDiscountsSet, totalRefundedSet · Magento base_discount_amount, base_total_refunded · Woo discount_total, refunds[].total

RV19Gross to net per stream

Percentages are of gross sales

StreamGrossDiscountsCancellationsRefundsNet revenue
DTC webshop€242,422€21,538 8.9%€3,745 1.5%€13,154 5.4%€203,985
Marketplaces€115,255€5,804 5.0%€2,329 2.0%€9,960 8.6%€97,162
Affiliate€39,899€4,331 10.9%€486 1.2%€2,379 6.0%€32,703
Wholesale / B2B€75,714€4,469 5.9%€736 1.0%€907 1.2%€69,602
Subscriptions€49,982€6,024 12.1%€1,508 3.0%€1,024 2.0%€41,426
Total€523,272€42,166€8,804€27,424€444,878

Net = gross - discounts - cancellations - refunds. Fees = marketplace fees and payment fees; affiliate commission sits in marketing spend.

RV20New vs returning revenue

All streams: daily net revenue

Source: first_order flag derived from order history over all channels (email hash for guests), not from platform fields

RV21New vs returning per stream

Share of net revenue from new customers

  • DTC webshop€93,700 new · €110,285 returning

    45.9% new (-1.2 pts vs previous)

  • Marketplaces€58,385 new · €38,777 returning

    60.1% new (-0.4 pts vs previous)

  • Affiliate€21,177 new · €11,526 returning

    64.8% new (+1.8 pts vs previous)

  • Wholesale / B2B€13,966 new · €55,636 returning

    20.1% new (+0.2 pts vs previous)

  • Subscriptions€7,119 new · €34,307 returning

    17.2% new (+0.3 pts vs previous)

RV22Top 10 products and packages

DTC webshop: €159,108 of €203,985 net revenue (78%)

Source: order_lines (sku, quantity, discountedTotalSet / row_total / total)

#ProductNet revenue
1Velours linen duvet set€46,989
2Cashmere-blend throw€26,069
3Figuier candle 220 g€18,469
4Santal room spray€14,463
5Velvet cushion 50x50€11,964
6Linen sheet set€10,246
7Diffuser Maison No. 3€8,988
8Merino bed blanket€8,024
9Gift set Soiree€7,259
10Natural linen tablecloth€6,637

RV23Health checks

4 to review, 7 within threshold (all streams, last 30 days)

Affiliate cost of sale 11.9% is 19% above the 10% target
Commission and network fees were €3,901 on €32,703 net affiliate revenue (previous period 11.9%). Review coupon-site payouts and tiered commission rates in Impact.
Marketplace TACoS 20.6% (rising from 20.4%)
Ad spend / total marketplace net revenue; target 12%. TACoS = Ads cost / orderedProductSales for Amazon, the same idea applies to bol and TikTok Shop GMV Max.
nc-ROAS 1.87x is below the 2.0x floor
New-customer revenue is €194,347 on €103,854 marketing spend. Acquisition leans on repeat revenue to pay back.
Lead-to-won rate 28.0% is below the 30% target
30 of 107 leads won; expected revenue €42,840 from €154,911 pipeline.
7 checks within threshold
  • Marketplace fees 17.0% of net revenue, within 18%
  • Marketplace refund and return rate 8.6%, within 9%
  • Webshop refund rate 5.4%, within 6.5%
  • MER 4.28x, stable or up vs 4.26x previous
  • Platforms claim 76% of actual net revenue, overlap within 1.25x
  • Contribution margin 20.5% (-0.1 pts vs previous), within tolerance
  • DTC webshop is 46% of net revenue, no stream above 60%

Thresholds: affiliate cost of sale 10%, marketplace TACoS 12% and not rising, marketplace fees 18%, marketplace refunds 9%, webshop refunds 6.5%, booking cancellations 5%, nc-ROAS 2.0x, platform overlap 1.25x, lead win rate 30%, margin drop 1.5 pts, stream concentration 60%.