IdukkiIdukki
Strategy

Measuring live shopping ROI beyond concurrent viewers

Peak concurrent viewers is the easiest live shopping number to report and one of the least useful for deciding whether to run another stream. The metric stack to use instead, how to track it with UTMs and Shopify reports, a worked ROI example, and a report template.

The post-stream report led with peak concurrent viewers, a genuinely impressive number, and buried the conversion rate three slides later, where it quietly told a much less flattering story.

In this article

Every live shopping platform leads its dashboard with concurrent viewers, and it is easy to see why: it is a big number, available the moment the stream ends. It is also a poor basis for deciding whether to run the next one. A giveaway can fill a stream with people who never meant to buy, while a small stream for existing customers can sell out a restock with a fraction of the audience. This piece sets out the metrics that answer "was it worth it", and how to capture them without a data team. It assumes the stream itself is planned; if not, start with how to run a live shopping event.

Why concurrent viewers misleads

It is a peak, not a total. Peak concurrency tells you how many people were watching at the busiest moment. It says nothing about how many different people saw the stream or how long they stayed. Two streams with the same peak can have very different unique audiences.

It rewards the wrong tactics. Anything that spikes attention (a giveaway, a celebrity cameo, paid promotion to a cold audience) lifts the peak. Whether any of that attention becomes orders is a separate question, and the one that pays for the stream.

It is not comparable across formats. A 20-minute product drop and a 90-minute variety stream will produce different peaks for reasons unrelated to how well they sold. McKinsey's guidance on live commerce recommends tracking views alongside conversion rates and best-selling products, and that combination is the minimum.

The metric stack that decides the next stream

MetricHow to calculate itWhat it tells you
Unique viewersDistinct viewers across the whole stream (from the streaming platform)Real reach. Use as the denominator for rates.
Average watch timeTotal minutes watched divided by unique viewersWhether the content held people or they bounced.
Product click-throughProduct link clicks divided by unique viewersWhether the host and products created intent.
Live conversionStream-attributed orders divided by unique viewersThe headline efficiency number.
Revenue per viewer-minuteStream revenue divided by total minutes watchedCompares streams of different lengths fairly.
Stream AOV vs store AOVStream revenue divided by stream orders, next to your normal AOVWhether bundles and offers raised basket size or only discounted it.
New-customer shareStream orders from first-time customers divided by stream ordersAcquisition value versus selling to people who would have bought anyway.
Net revenue after returnsStream revenue minus refunds on stream orders at 30 daysCatches impulse purchases that come back.
Replay revenueOrders from the recording and clips at 14 and 30 daysThe second revenue line a same-day report misses.
ContributionNet revenue x gross margin, minus host, production, discount and promotion costsWhether the stream made money.
Define these once and keep them identical across streams.

Tracking it without a data team

One UTM campaign per stream. Every link shown or pinned in the stream should carry utm_source for the platform, utm_medium set to something consistent such as live, and utm_campaign unique to that stream (live-2026-10-03-autumn-edit, for example). Google Analytics lists utm_content as the parameter for differentiating creatives, which makes it a good place for the product or segment. Google's URL builder documentation covers the full parameter set.

Shopify's marketing reports read those tags. The sales attributed to marketing and sessions attributed to marketing reports in Shopify group orders and sessions by UTM campaign, so a consistently tagged stream shows up as its own line. Check which attribution model you are reading. Shopify's marketing reports can show last click, first click or last non-direct click, and last click undercounts anyone who watched, left, and came back later through email or search.

A stream-only discount code as a backstop. Codes catch buyers who type the URL or come back through search. They overlap with UTM attribution, so count each order once. If the stream sells through a platform's native checkout (TikTok Shop, for instance), take orders from that platform's report and do not add them twice.

Replays need their own tags. When the recording or clips from it go onto product pages, measure them as a separate source so replay revenue is not confused with the live window. A post-level attribution setup, or distinct UTMs on each clip's links, does the job.

A worked example

The numbers below are a hypothetical 45-minute stream for a homeware brand, invented to show the arithmetic. They are not a benchmark.

LineValueWorking
Peak concurrent viewers310From the platform. Reported, not used for decisions.
Unique viewers1,200From the platform
Average watch time6 minutes7,200 viewer-minutes / 1,200
Product click-through18%216 clicks / 1,200
Live conversion3.5%42 orders / 1,200
Stream revenue£2,73042 orders x £65 AOV
Revenue per viewer-minute£0.38£2,730 / 7,200
Returns at 30 days£3255 orders refunded
Replay revenue at 30 days£1,23519 orders from clips on PDPs
Net revenue£3,640£2,730 - £325 + £1,235
Contribution at 60% gross margin£1,184£3,640 x 0.6 = £2,184, minus £1,000 host and production
Illustrative only. Replace every figure with your own.

Three things fall out of the example. The replay added almost half as much again as the live window, so a same-day report would have understated the stream. Returns took out more than a tenth of live revenue, which is why the 30-day pass matters. And the peak of 310 does not appear in any calculation that decides whether the stream paid for itself.

Separate the lift from sales you would have made anyway

Stream-attributed orders are not all incremental. Loyal customers who would have bought the restock anyway will happily buy it during the stream. The simplest check is a baseline: sales of the featured products over the same days and hours in a comparable previous period, compared with the stream period. Better still, hold back promotion to a random part of your email list and compare purchase rates. The method is the same one used for holdout testing UGC.

The three-pass report

When to report what

  1. 01

    Day after

    Unique viewers, watch time, click-through, live conversion, revenue per viewer-minute, stream AOV. Note what the host did at the moments clicks spiked.

    Efficiency

  2. 02

    Day 14

    Replay and clip revenue, new-customer share, baseline comparison for featured products.

    Reach and lift

  3. 03

    Day 30

    Returns on stream orders, net revenue, contribution after all costs. Decide: repeat, change the format, or stop.

    Profit

One stream, three looks. Keep the template the same every time.

Keep the decision rule written down before the stream: for example, repeat the format if contribution is positive at 30 days and live conversion is at or above the previous stream. The broader framework for looking back on any campaign is in the post-campaign teardown template, and the case for building replays into the plan is in live shopping vs on-demand shoppable video.

Frequently asked questions

  • What is a good conversion rate for live shopping?

    There is no reliable public benchmark for Western brand-run streams. Widely quoted figures such as McKinsey's "approaching 30 percent" are company-reported and come mostly from Chinese platforms in 2020 and 2021. Benchmark against your own previous streams and your normal site conversion.

  • How do you calculate revenue per viewer-minute?

    Divide the revenue attributed to the stream by total minutes watched across all viewers. Total minutes watched is unique viewers multiplied by average watch time, and most streaming platforms report it directly.

  • How do I track sales from a live stream in Shopify?

    Give every link in the stream a UTM campaign unique to that stream, then read Shopify's sales attributed to marketing report. Add a stream-only discount code as a backup and count each order once.

  • Should replay sales count towards live shopping ROI?

    Yes, but report them separately. The replay and clips are a product of the stream and often keep selling for weeks, so leaving them out understates the return. Tag them distinctly so they are not mixed with the live window.

  • Why does peak concurrent viewers matter at all?

    It is useful for operations (did the stream hold up under its busiest moment?) and for spotting which segment of the show drew people in. It is not a measure of commercial success.

Sources

  1. 1McKinsey & Company: It's showtime! How live commerce is transforming the shopping experience (July 2021) · Recommends KPIs for views, conversion rates and best-selling products; company-reported conversion rates approaching 30 percent.
  2. 2Google Analytics Help: URL builders, collect campaign data with custom URLs · UTM parameters, including utm_content for differentiating creatives.
  3. 3Shopify Help Center: Marketing reports · Sales and sessions attributed to marketing, grouped by UTM campaign.
  4. 4Shopify Help Center: Measuring marketing performance · Last click, first click and last non-direct click views; reports combine UTM-tagged traffic with integrated marketing apps.
  5. 5Idukki: Incrementality testing for UGC with holdouts
#live-shopping#roi#analytics#attribution

Continue reading

1 piece in this cluster

These long-form pieces on the Idukki blog link back to this article, go deeper on the cluster.

More from Rohin Aggarwal

We use cookies

We use essential cookies to run this site and optional analytics cookies to understand how it’s used. You can change your choice anytime in our privacy policy.