← All playbooks·Inventory pricing
Playbooks · Inventory pricing
Price video inventory against completed views
This job converts a seller's CPM video rate into a cost-per-completed-view and tests it against the buyer's target CPV, producing a negotiated CPM (or a documented gap) plus a completed-view forecast for the insertion order. It feeds the buy/no-buy and negotiation-floor decision whenever a seller quotes on impressions but the buyer wants to pay on outcomes.
What you need first
- Seller's CPM rate card for the specific placement (pre-roll/outstream, duration, skip setting) — from the seller media kit or programmatic seat rate card
- Video completion rate (VCR) for that placement — from the seller's ad server reporting or third-party verification (IAS, DV, MOAT)
- Buyer's target CPV benchmark — from prior campaign performance or the client KPI brief
- Campaign budget — from the client insertion order
- Agency discount grid or rate floor, if one applies — from the trading desk
The procedure
- Pull the placement's CPM rate card and its reported VCR, producing the two figures needed for conversion
- Convert CPM to effective CPV using CPV = CPM ÷ (1000 × VCR), producing a per-view price comparable to the target
- Compare effective CPV to the buyer's target CPV, producing a gap in € and %
- Back-solve the CPM the seller must offer to hit the target CPV, producing a negotiation ask
- Negotiate the rate down to that CPM or document the residual gap against budget, producing a locked rate
- Convert the campaign budget into projected completed views at the locked CPM and VCR, producing the number that goes into the buy
- Write a VCR floor and post-campaign reconciliation clause into the IO, producing protection against under-delivery
Worked through with numbers
Seller quotes CPM €25 on a 15s non-skippable pre-roll placement, reported VCR 70%. Effective CPV = 25 ÷ (1000 × 0.70) = €0.0357. Buyer's target CPV from the last quarter's campaigns is €0.030, so the gap is (0.0357 − 0.030) ÷ 0.030 = 19% over target. Back-solving: target CPM = 0.030 × 1000 × 0.70 = €21.00, a 16% cut from the €25 rate card. Buyer negotiates the seller down to CPM €21. Campaign budget is €50,000, so impressions = 50,000 ÷ 21 × 1000 = 2,380,952, and completed views = 2,380,952 × 0.70 = 1,666,667 — which matches budget ÷ target CPV (50,000 ÷ 0.030 = 1,666,667), confirming the conversion is internally consistent. Read it as: at the negotiated rate the buyer clears its CPV target exactly, and 1.67M completed views is the number to write into the IO, not the 2.38M impressions.
Where it goes wrong
- Confirm the VCR's measurement source before applying it, not just the seller's dashboard figure — a platform's own player can report VCR 5-10 points higher than third-party verification, which understates effective CPV
- Build a post-campaign reconciliation on delivered VCR into the IO, not a one-time historical figure — VCR moves with creative length, device mix and season, so paying CPM against a stale VCR overpays if actual completion comes in lower
- Compare CPV only within the same skippability and duration, not across formats — non-skippable inventory posts a structurally higher VCR than skippable outstream, so an unadjusted comparison makes it look cheaper per view than it is
- Match the seller's definition of 'completed view' to the buyer's KPI before comparing prices, not just the label — a 3-second or 15-second completion standard produces a different CPV than a true 100%-complete standard on identical delivery
How to know it is right
Recompute completed views two ways — impressions × VCR and budget ÷ target CPV — and confirm they land within rounding of each other before the number goes into the IO.
Terms used