---
title: "Cost Per Viewer: The Streaming Metric Hidden for a Decade, and How to Calculate It"
url: https://ireplay.tv/blog/cost-per-viewer-streaming-operations/
markdown_url: https://ireplay.tv/blog/cost-per-viewer-streaming-operations.md
description: "Ask a streaming operator what one viewer-hour costs them. You will get four answers, from four people, in four units that cannot be added together. Engineering knows what the transcoders cost, because they signed the..."
type: article
site: iReplay.tv
author: "Sylvain Corvaisier"
date_published: 2026-08-26T09:00:00+02:00
date_modified: 2026-08-26T09:00:00+02:00
language: en
image: https://ireplay.tv/blog/thumbnails/cost-per-viewer-streaming-operations.jpg
keywords:
  - "cost per viewer"
  - "cost per viewer streaming"
  - "cost per viewer hour"
  - "cost per viewing hour"
  - "streaming cost per viewer"
  - "cpv streaming"
  - "streaming unit economics"
  - "cdn cost per gb"
  - "drm cost per device"
  - "cost per active viewer"
translations:
  ar: https://ireplay.tv/blog/taklifat-almushahid-fi-tashghil-albath.md
  da: https://ireplay.tv/blog/omkostning-per-seer-streamingdrift.md
  de: https://ireplay.tv/blog/kosten-pro-zuschauer-streaming-betrieb.md
  es: https://ireplay.tv/blog/coste-por-espectador-operaciones-streaming.md
  fr: https://ireplay.tv/blog/cout-par-spectateur-exploitation-streaming.md
  is: https://ireplay.tv/blog/kostnadur-a-ahorfanda-i-streymisrekstri.md
  it: https://ireplay.tv/blog/costo-per-spettatore-operazioni-streaming.md
  ja: https://ireplay.tv/blog/shichosha-atari-kosuto-haishin.md
  ko: https://ireplay.tv/blog/sicheongja-dang-biyong-streaming.md
  nl: https://ireplay.tv/blog/kosten-per-kijker-streamingoperaties.md
  no: https://ireplay.tv/blog/kostnad-per-seer-streamingdrift.md
  pt: https://ireplay.tv/blog/custo-por-espectador-operacoes-streaming.md
  ru: https://ireplay.tv/blog/stoimost-na-zritelya-streaming.md
  sv: https://ireplay.tv/blog/kostnad-per-tittare-streamingdrift.md
  zh: https://ireplay.tv/blog/mei-guanzhong-chengben-liumeiti.md
---

# Cost Per Viewer: The Streaming Metric Hidden for a Decade, and How to Calculate It

![Four streaming invoices billed in four different units, CAPEX per box, OPEX per year, licences per device and CDN per gigabyte, none of which divides into a single viewer-hour](https://ireplay.tv/blog/img/cost-per-viewer-streaming-operations.jpg)

Ask a streaming operator what one viewer-hour costs them. You will get four answers, from four people, in four units that cannot be added together.

Engineering knows what the transcoders cost, because they signed the purchase order. Operations knows what the racks, the power and the support contracts cost, because they renew them every year. Product knows what DRM and the smart TV apps cost, because those licence lines sit in their budget. Procurement knows the CDN rate per gigabyte, because they negotiated it. Four numbers, four owners, four denominators, and not one of them is a viewer.

That gap has a name. Cost per viewer is the only figure in streaming operations that tells you whether what you built gets cheaper or more expensive as your audience moves. For most of the last decade it was the one number no invoice would give you.

## What cost per viewer means, scoped to streaming operations

Cost per viewer, in the scope of streaming operations, is the total cost of getting video onto screens divided by the viewer-hours you actually delivered.

**CPV = (amortised CAPEX + OPEX + software licences + delivery) ÷ viewer-hours delivered**

The scoping matters more than the formula. This definition deliberately leaves out content rights, marketing and subscriber acquisition. Those are real costs and on most platforms they are the largest ones, which is exactly why they should stay out of this number. A rights bill is a commissioning decision. An acquisition cost is a marketing decision. Neither moves because an engineer changed a ladder or an operations lead renegotiated an edge contract. What remains, once you take them out, is the part a technical organisation can actually change this quarter. A metric nobody can act on is a reporting line, not a metric.

Two denominators are worth keeping side by side:

- **Cost per viewer-hour.** Delivery and operating efficiency against real consumption. This is the number that tells you whether more watching is good news or bad news.
- **Cost per active viewer per month.** What it costs to keep one person served, whatever they watch. This is the number to hold against ARPU or against the ad revenue that viewer generates.

Both come from the same inputs. If you can produce one honestly, you can produce the other.

## The four invoices, and the four units that hide the viewer

Here is the whole problem in one table. Every line is a real cost of running a streaming service. Every line is billed in a unit that has nothing to do with how many people are watching.

| Bucket | What you are buying | How the vendor bills it |
| --- | --- | --- |
| **CAPEX** | Transcoders, packagers, streaming and origin servers | Per box, per channel, per output, once |
| **OPEX** | Maintenance of all of the above: support contracts, colo, power, the people who keep it running | Per year, or as a percentage of the CAPEX |
| **Licences** | DRM, player SDKs, set-top box software, smart TV software | Per device, per licence request, per active user, per platform |
| **Delivery** | CDN and cache | Per gigabyte, per region, commit plus overage |

None of those units is "one person watching for one hour". A transcoder is priced per simultaneous output. A support contract is priced per year. A DRM licence is priced per key request, or per device, or per monthly active user depending on which contract you signed. Bandwidth is priced per gigabyte. To reach cost per viewer you have to convert all four into a unit that appears on none of them, which means someone has to sit down with four contracts and a spreadsheet, on purpose, with no bill forcing them to.

This is not a conspiracy. A vendor prices in the unit that reflects their own cost structure, and no vendor's cost structure is shaped like a viewer. But the effect has a direction, and the direction is not neutral. Each of those units is also the unit in which that vendor's line looks smallest. Half a cent per DRM licence request sounds like a rounding error. Eight tenths of a cent per gigabyte sounds like nothing. A transcoder is a one-time purchase you already made. Every line is cheap by its own ruler. Converted to a common denominator and stacked, they stop being cheap.

## What we tried to do about it, 2014 to 2018

iReplay.TV spent those four years as a VOD2Live company. The idea, which [had been demonstrated as early as late 2012](https://ireplay.tv/blog/hls-streaming-apple-http-live-streaming-protocol-standard-when-how-to-use-it-hls-ingest-akamai-msl4/), is straightforward: a 24/7 linear channel does not need a live encoder if the content is already encoded. You take assets that were transcoded and packaged for on-demand, and you write a rolling live manifest that points at those existing segments in a scheduled order. No live encode chain per channel. No playout server per channel. No second copy on disk.

Strip out the encode chain and the per-channel fixed cost of a linear channel collapses towards zero. What is left is delivery, which scales with audience. That was the pitch: your channel count stops driving your costs, and your audience starts driving them instead.

The trouble is that this claim is invisible in all four of the units above. Against a per-channel playout price it reads as "our playout is cheaper than their playout", which puts you in a feature comparison with playout vendors, on their turf, in their unit, arguing about graphics and SCTE-35 support. The actual argument, that the shape of the cost curve has changed, only exists if the buyer is holding a per-viewer number. So we built the slide. Cost per viewer against channel count. Cost per viewer against audience size. The crossover points where a conventional chain never pays back for a channel with a small audience.

We took that to trade shows, into RFP responses and into a lot of meeting rooms between 2014 and 2018. It did not land. Not because anyone argued the arithmetic was wrong, which would at least have been a conversation, but because it was answering a question nobody in the room had been asked to answer.

## Why we failed

Six reasons, in roughly the order they mattered.

- **The number had no owner.** CAPEX sat with engineering, OPEX with operations, licences with product or legal, gigabytes with procurement. Cost per viewer is the only metric in the building that requires all four to agree on a shared denominator before it can be computed once. Metrics that need four departments to cooperate before they produce their first value get produced zero times.
- **The denominator did not exist.** Viewer-hours lived in analytics, which usually reported to editorial or marketing and counted plays, uniques and completion rates rather than concurrent hours delivered. When we asked for viewer-hours, we often got a figure that nobody in the room would defend, and that disagreed with the CDN logs by a wide margin. You cannot build a serious cost metric on a denominator the organisation does not trust.
- **Optimising any single invoice moved cost per viewer the wrong way.** The classic case: cut the CDN bill by trimming the top rung off the ABR ladder. The per-gigabyte line falls, the procurement lead reports a win, and the quality drop pushes viewers to abandon earlier, so viewer-hours fall faster than the bill does. Cost per viewer goes up. Everyone was measured on their own line, so everyone kept doing the locally correct thing.
- **We were selling a margin instrument into a growth market.** The 2014 to 2018 mandate was land grab: launch the apps, get onto the platforms, count the subscribers. Cost per viewer is what you reach for when the job is to make money from an audience you already have. Almost nobody was being paid to do that yet.
- **The unit itself was unwelcome.** Broadcasters came from a distribution model where the marginal viewer is free. Once the transmitter is on or the transponder is lit, the millionth viewer costs nothing at all. Telling a broadcaster that on IP every extra viewer carries a price was telling them that their new distribution channel was economically worse than the one they already had. It was true, and it was not a slide people wanted in their board pack.
- **We asked for two decisions instead of one.** To evaluate VOD2Live properly a buyer first had to adopt a metric they did not currently produce. That is two sales in sequence, and we usually did not get past the first. The lesson we took, years later, is that you do not persuade an industry to adopt a unit. You sell something priced in it.

## The industry is saying it out loud now

The term has resurfaced in the last couple of years, and for a straightforward reason: the mandate changed. Disney and Paramount each posted their first quarter of streaming profit in 2024, and Netflix's operating income passed ten billion dollars the same year. Once the question stops being "how many subscribers" and starts being "what is the margin", a per-viewer cost becomes interesting to people who had no use for it before.

Viaccess-Orca has been the most visible advocate, with a blog piece on cost per viewer and a contributed article, ["The efficiency imperative"](https://www.streamingmediaglobal.com/Articles/Post/Blog/The-efficiency-imperative-why-streaming-platforms-must-optimise-cost-per-viewer-175879.aspx), in Streaming Media in July 2026. It is worth reading, and it is worth noticing what it does with the definition: it folds content licensing and viewer acquisition spend into the total. That produces a number a CFO can put in a deck and almost nobody can move, because the two biggest terms belong to commissioning and marketing. Kept in the scope of streaming operations, the same metric belongs to the people who can actually change it.

That is the difference between a metric and a headline. We got the scope right in 2015 and everything else wrong. The current wave has the attention and, so far, a definition too broad to act on.

## How to calculate it, with a worked example

Take a regional broadcaster running six linear channels and a VOD catalogue, with 40,000 monthly active viewers watching an average of 12 hours each. That is **480,000 viewer-hours a month**, which is the denominator for everything below. Figures are illustrative, but the ratios are typical.

| Bucket | Detail | Per month | Share |
| --- | --- | --- | --- |
| **CAPEX, amortised** | 3 transcoder nodes at $24,000 and 2 packager/origin servers at $12,000, straight line over 5 years | $1,600 | 7% |
| **OPEX** | Support and software maintenance at 18% of CAPEX per year ($1,440), two racks of colo, power and cross-connect ($1,400), half an FTE of engineering time at $120,000 loaded ($5,000) | $7,840 | 32% |
| **Licences** | Multi-DRM at an $800 platform fee plus 900,000 licence requests at $0.004 ($3,600), player SDK and playback analytics ($1,500), smart TV and STB app maintenance and certification across Tizen, webOS, Android TV, Fire TV, Roku and tvOS ($4,000) | $9,900 | 41% |
| **Delivery** | 2.8 Mbps average delivered bitrate, so 1.26 GB per viewer-hour, 605 TB a month at $0.008/GB on a committed contract | $4,838 | 20% |
| **Total** |   | **$24,178** | 100% |

**Cost per viewer-hour: $0.050. Cost per active viewer per month: $0.60.**

Look at the shares before anything else. Delivery, the only bucket billed in a unit that moves every month with viewing, is a fifth of the total. Licences, billed per device and per request, are twice that. The industry spent a decade running cost-reduction programmes against the smallest of the four lines, because it was the only one that showed up in a monthly bill and produced a graph.

## What happens when the audience moves

The reason cost per viewer matters over a long run is that the four buckets respond to audience change at completely different rates. Hold the same six channels and the same apps, and vary only how much gets watched.

| Scenario | Viewer-hours | Total monthly cost | Cost per viewer-hour |
| --- | --- | --- | --- |
| Audience halves | 240,000 | $19,959 | **$0.083** |
| Baseline | 480,000 | $24,178 | **$0.050** |
| Audience doubles | 960,000 | $32,617 | **$0.034** |

Read the top row again, because it is the whole argument. The audience halves. Every single invoice either falls or stays flat. The CDN bill drops by more than half. The DRM licence line drops with it. Finance sees costs coming down across the board. And the cost of serving one viewer for one hour has risen by 65%, because two thirds of the stack does not care how many people are watching.

That is the failure mode that quietly kills a broadcaster's streaming business. It never arrives as a bad invoice. It arrives as a set of good ones, while the economics underneath invert. In the other direction it works just as hard for you: doubling consumption cuts cost per viewer-hour by a third with no negotiation, no migration and no new contract. If you do not compute cost per viewer, neither of those movements is visible to anyone in the building.

## What actually moves the number

Ranked by how much they tend to shift cost per viewer, not by how easy they are to put in a slide.

- **Delete fixed cost per channel where the content does not need it.** A channel assembled from assets you have already transcoded carries almost no encode chain. This is the largest single lever available to anyone running more than a handful of linear channels, and it is invisible in every unit except this one.
- **Renegotiate licences on the right denominator.** Per licence request, per device and per monthly active user produce wildly different bills for the same service. Work out which one your viewing pattern favours before the renewal, not after. On a service with short sessions, per-request pricing is punishing.
- **Right-size the ABR ladder to what devices actually request.** The ladder multiplies storage, encode time and gigabytes at once, so it appears in three of the four buckets. Check the bits per pixel of each rung and the real request distribution rather than the theoretical one, and be careful of the trap above: cutting quality to cut the bill can raise cost per viewer.
- **Put delivery on a unit you can predict.** Per-gigabyte billing is a number you learn after the event. For anything with a peak, that is the wrong way round.
- **Fix the denominator first.** If analytics and CDN logs disagree about viewer-hours by 20%, your cost per viewer is fiction and every decision you take from it is guesswork. This is unglamorous and it comes before all of the above.
- **On managed networks, consider multicast.** [Multicast ABR](https://ireplay.tv/blog/multicast-abr-mabr-explained/) restores the broadcast property of a marginal viewer costing nothing, which is the single most direct attack on this metric that exists. It only applies if you control the network.

## The same denominator gives you the carbon number

Once viewer-hours are trustworthy, the environmental figure comes almost free, because it uses the same denominator. The Carbon Trust, working with the DIMPACT consortium, [put an hour of European video streaming at roughly 55 gCO2e in 2020](https://www.carbontrust.com/news-and-insights/news/updated-calculation-released-on-the-carbon-impact-of-online-video-streaming), with the viewing device rather than the network accounting for most of it. The IEA's estimate is nearer 36 g. Whichever you use, grams of CO2 equivalent per viewer-hour behaves like cost per viewer-hour: it falls with scale, it rises when your audience shrinks, and it responds to the same ladder and delivery decisions. Operators who already compute one get the other for the price of a multiplication.

## Where we ended up: selling the unit instead of arguing for it

We stopped trying to persuade the industry to adopt cost per viewer around 2018. What we did instead, years later, was build a tool priced in it.

The [CDN Cost Optimizer](https://ireplay.tv/tools/cdn-optimizer) duplicates your existing edge and serves viewers from ours in parallel, using HLS redundant stream failover so players fall back to your own edge if ours has a problem. It is metered at **$0.001 per viewer-minute**, which is $0.06 per viewer-hour, falling to $0.05 at the largest bundle. Not per gigabyte. The meter advances only while viewers are actually present on the edges: pre-warming the cache with nobody watching costs nothing, and a channel on air with no audience costs nothing. The dashboard shows the running per-viewer cost while the stream is live, which is a sentence we could not have written about any product we sold in 2016.

Two honest caveats, because this article is about not hiding numbers. First, that price covers one of the four buckets. It does nothing about your transcoders, your support contracts or your DRM licences. Second, $0.06 per viewer-hour is not universally cheap. It sits well under list-price hyperscaler egress, where CloudFront and Azure CDN at around $0.085 to $0.087 per gigabyte work out near $0.11 per viewer-hour at 2.8 Mbps, and it lands exactly level with Cloudflare Stream's $1 per 1,000 delivered minutes. It is more than a large operator pays on a negotiated per-gigabyte commit. The point was never that the rate is always the lowest. The point is that it is quoted in the unit you need, so you know the number before the event instead of reconstructing it afterwards.

When two products arrive independently at per-delivered-minute pricing, it is reasonable to conclude the unit was right all along. It only took the industry about ten years.

## Questions

**What is cost per viewer in streaming?**
The total cost of running the streaming operation, meaning amortised CAPEX, OPEX, software licences and delivery, divided by the viewer-hours delivered over the same period. It is usually expressed per viewer-hour or per active viewer per month.

**Is cost per viewer the same as CPV in advertising?**
No, and the collision causes real confusion. In advertising, CPV means cost per view and measures what an advertiser pays for a video ad view. In streaming operations, cost per viewer measures what it costs the operator to deliver video to one person. Same initials, opposite side of the transaction.

**How do you calculate cost per viewer?**
Convert every operating cost into a monthly figure, amortising hardware over its useful life, then divide by viewer-hours delivered in that month. The hard part is not the division, it is getting four departments to agree on the inputs and getting a viewer-hour figure that billing and analytics both accept.

**What is a good cost per viewer-hour?**
There is no universal benchmark, because channel count, device coverage and DRM posture change it by an order of magnitude. Between three and eight cents per viewer-hour is a common range for a mid-sized operator running its own encode chain. What matters more than the absolute figure is the direction it moves as your audience changes.

**Should content rights and marketing be included?**
Not in this metric. They dominate the total and belong to teams who make decisions on completely different grounds. Track them separately as cost per subscriber. Keeping cost per viewer scoped to operations is what makes it actionable.

**Why do vendors not quote a cost per viewer?**
Because none of their own costs is shaped like a viewer. A transcoder vendor's cost is per simultaneous output, a DRM vendor's is per key request, a CDN's is per gigabyte moved. Each prices in the unit that matches its own economics, which is also, conveniently, the unit in which its line looks smallest.

## Where to start

Compute the number once, for one month, for one service. It will take an afternoon and four contracts. Almost everyone who does it is surprised by which of the four buckets is largest, and it is very rarely the one they have been running cost-reduction meetings about.

If you want to see a per-viewer meter running against a real stream, the [CDN Cost Optimizer](https://ireplay.tv/tools/cdn-optimizer) gives 60 free viewer-minutes without an account and 600 after signing in. If you want to check the stream itself before putting edges in front of it, the [Streaming Analyzer](https://ireplay.tv/tools/stream-analyzer) scores it against best practice. For the pay-per-view case, where cost per viewer sets the ticket price directly, see [cost per viewer in pay-per-view live streaming](https://ireplay.tv/blog/maximum-cost-per-viewer-for-pay-per-view-live-streaming-optimize-roi-return-on-investment-for-better-margins/), and for how the per-gigabyte model behaves as an audience spreads geographically, see [navigating CloudFront pricing for video streaming](https://ireplay.tv/blog/cloudfront-costs-aws-reduce-cloudfront-costs-affects-amazon-cloudfront-costs-aws-cdn/).

iReplay.tv is run by a collective of streaming and broadcast engineers. If you would rather have someone work the four buckets with you, you can [hire streaming and broadcast specialists](https://ireplay.tv/media-streaming-broadcast-talents) directly.

---

Source: [Cost Per Viewer: The Streaming Metric Hidden for a Decade, and How to Calculate It](https://ireplay.tv/blog/cost-per-viewer-streaming-operations/) on iReplay.tv. Free to quote and cite with attribution and a link to the source URL.
Full index of iReplay.tv content in Markdown: https://ireplay.tv/blog/llms.txt
