search_ads_recsys / 34 · Short-video metrics lesson 34 / 39

Short-video metrics - from swipe behavior to durable value

The book repeatedly frames short-video recommendation around per-user watch time, completion, interaction, retention, negative feedback, freshness, and ecosystem health. This lesson linearizes those ideas into a metric ladder so you can reason from one impression to one session to long-term platform quality.

Book anchors
Based on 1.1.2 short-video recommendation goals, 1.1.4 short-video evaluation indicators, 1.3.3-1.3.4 CTR/watch-time/retention trade-offs, 1.5.2-1.5.3 multi-task objectives for per-user time, 5.2.5 viewing-experience metrics, and 22.4.3/22.5.1/22.9.3 A/B diagnosis for short-video metrics.
How to read with lesson 33
A/B testing and metrics depend on each other. Lesson 33 teaches the experiment container; this lesson teaches the short-video metric vocabulary that goes inside that container. If the metric names in lesson 33 felt too compressed, read this lesson and then revisit the A/B launch-rule section.

1 · A short-video feed is not a click list

In search, the user expresses intent with a query and often clicks a result. In a short-video feed, the item is pushed into attention. Preference is expressed through micro-behavior: first-frame survival, swipe speed, watch depth, rewatch, like, comment, share, follow, hide, report, and return the next day.

one recommendation impression │ ▼ exposure logged │ ▼ first seconds: hook / fast swipe │ ▼ watch depth: completion / dwell / rewatch │ ▼ active feedback: like / comment / share / follow / hide │ ▼ session effect: continue / fatigue / leave │ ▼ lifecycle effect: retention / trust / creator ecosystem

The book's main point is that short-video metrics must match the product surface. CTR is still useful, but it is not enough: autoplay means a "view" is not the same as a deliberate click, and watch time can be raised in ways that harm long-term satisfaction.

2 · Build the metric ladder from local to global

LevelMetric examplesWhat it measuresMain trap
ExposureImpressions, valid exposure, VTR/valid-play rateWhether the item was actually served and playableCounting invalid or unviewable exposures
Immediate responseCTR, first-3-second survival, fast-swipe rateHook and initial relevanceRewarding clickbait or autoplay artifacts
Consumption depthWatch time, completion, average play progress, rewatchFit between user and contentRaw duration bias and short-video inflation
InteractionLike, comment, share, follow, favoriteActive engagement and social valueSparse, culture-biased, or creator-biased labels
Negative feedbackSkip, not interested, report, dislike, blockCost paid by the userIgnoring negatives when watch time rises
LifecycleD1/D7/D30 retention, return frequency, churn riskDurable satisfactionReading only same-day metrics
EcosystemCoverage, long-tail exposure, creator fairness, diversityWhether the feed remains healthyLetting head content crowd out everything else

A mature metrics answer does not list every metric with equal weight. It tells the interviewer which level is the launch decision and which levels are explanatory or veto metrics.

Define VTR before using it because teams overload the acronym. In this lesson, VTR means a video-specific valid-play or play-through rate: valid plays divided by exposures, sometimes with a duration threshold. It is not the same thing as CTR × watch_time, although teams may build separate value scores that multiply click probability by expected watch depth.

3 · Per-user watch time is central but dangerous

The book often uses per-user viewing time as the top business metric. It is powerful because it connects feed quality to retention and growth. It is dangerous because it can be gamed by addictive loops, outrage content, or overly narrow personalization.

The book also frames recommender goals as user satisfaction, platform value, content ecology, and system efficiency. So even a user-value-heavy feed should still watch commercial and operational metrics: ad CTR/revenue, creator supply health, compute cost per request, feature latency, and model-serving stability. These are usually secondary or guardrail metrics, but they belong in the metric map.

Watch-time is not satisfaction by itself
A model can increase watch time by making the feed more repetitive, emotionally extreme, or harder to leave. Pair watch time with retention, negative feedback, diversity, report rate, and user-satisfaction proxies.

Use per-user metrics rather than raw totals when evaluating algorithm quality. Raw total watch time can rise because traffic rose, not because the ranker improved. Per-user watch time, capped user-level watch time, and segment-specific watch time give a cleaner signal.

3.1 · Whales distort the per-user mean - winsorize before you test

Per-user daily watch time is heavily right-skewed: it follows roughly a power law, not a bell curve. A small group of super-heavy users ("whales") may each watch many hours a day, while the median user watches a few minutes. The arithmetic mean is not robust to this shape. A handful of whales can dominate the average and, worse, can swing the treatment-vs-control delta in an A/B test purely through where they happen to land - not because the ranker changed for the typical user. This is the short-video face of the heavy-tail problem; the general "which test statistic" machinery (Mann-Whitney, delta-method, bootstrap) lives in lesson 08.

Worked example. Take a tiny control cell of 10 users with daily watch-minutes:

[2, 3, 4, 5, 6, 7, 8, 9, 10, 600]

Nine ordinary users plus one whale at 600 minutes (10 hours). The naive mean is

mean = (2+3+4+5+6+7+8+9+10+600) / 10 = 654 / 10 = 65.4 min

That 65.4 is a fiction: 9 of 10 users sit below 11 minutes, and the one whale contributes 600 of the 654 total minutes - about 92% of the metric comes from 10% of the users. Now suppose a neutral ranking change merely re-shuffles which cell the whale lands in, pushing that single user to control and a 5-minute user to treatment. Control's mean jumps by ~59 minutes while treatment's drops, and a flat experiment reads as a huge, "significant" win - a pure artifact of one account.

The fix is winsorization (a.k.a. capping): clip each user's value at a high percentile before averaging - in production typically the 99th or 99.9th, though with only ten users in this toy set that lands at the 90th, = 10 minutes. The whale is counted as 10, not 600:

winsorized mean = (2+3+4+5+6+7+8+9+10+10) / 10 = 64 / 10 = 6.4 min

StatisticValueReads as
Naive mean65.4 minDominated by one whale; not the typical user
Winsorized mean (cap at the top percentile = 10)6.4 minReflects the body of the distribution; whale still counts, just bounded
Median6.5 minRobust but discards real heavy-tail value the business cares about

Why winsorize rather than just drop the whale or always report the median? Three reasons. (1) Variance. The metric's variance scales with the largest values; capping the tail shrinks σ, which directly tightens the confidence interval and lifts statistical power for the same N (the MDE formula in lesson 08 has σ in the numerator). (2) Keep the user. Whales are real, valuable users - deleting them biases the population; capping keeps their presence while bounding their leverage. (3) Alternatives. A log(1 + watch_time) transform compresses the tail smoothly, and quantile regression or a trimmed mean targets the typical user directly. Pick the cap from the data (a fixed percentile such as p99) and freeze it before the experiment, so the threshold itself is not a knob you tune to get the result you want.

The metric-gaming failure mode
An uncapped per-user watch-time metric is also a gaming target: a ranker that wins by deepening the addiction loop of a few already-heavy users can move the mean a lot while the median, retention, and report rate quietly worsen. Capping plus a median (or quantile) read makes the metric describe the typical user, so the model cannot "win" by squeezing the whales harder. Always pair the capped mean with a robust statistic and the guardrails from section 6.

4 · Normalize duration-sensitive metrics

Completion rate is useful but biased by video length. A 7-second video can reach 100% completion with weak satisfaction; a 90-second tutorial may be valuable at 45% completion. The book suggests watch-time decay and completion-style indicators; the production move is to normalize by duration and surface.

ProblemBad metricBetter version
Short videos inflate completionGlobal completion rateCompletion by duration bucket; normalized watch ratio
Very long videos dominate secondsRaw watch secondsLog transform, cap, or duration-adjusted dwell
Rewatch may mean delight or confusionRewatch count aloneRewatch plus interaction, comment sentiment, and follow-up behavior
Fast swipe may be relevance or latencySwipe-before-3s aloneFast-swipe slice by network, device, app version, and content type

A simple ranking score such as CTR × watch_timealpha can be useful, but alpha is a product decision. Increasing alpha says: "we are willing to trade some click attraction for deeper consumption." That trade must be validated online.

5 · Multi-objective metrics mirror the user journey

The book decomposes per-user time into sub-objectives such as CTR, effective play or VTR, dwell time, completion, and interaction. Treat that as a journey model:

see item -> decide not to swipe immediately -> continue watching -> finish or rewatch -> interact or follow -> keep watching the session -> return tomorrow
ObjectiveHelpful model signalPotential conflict
CTR / initial acceptanceCover, title, creator, user-category affinityCan favor clickbait
Effective play / completionDuration, content quality, sequence fitCan favor short or familiar content
Dwell timeDepth of match, user state, topic interestCan reduce diversity or freshness
InteractionCreator affinity, social intent, topic identityCan bias toward polarizing content
RetentionSession satisfaction, fatigue, novelty, trustDelayed and noisy

This is why MMoE, PLE, ESMM-style thinking appears throughout the book: different objectives share information, but each target has its own label quality, sparsity, and business meaning.

6 · Composite metrics need guardrails first

The book gives normalized and weighted composite-score patterns. They are useful for dashboards and model training, but a composite score can hide harm. Use a guardrail-first design:

  1. Define non-negotiable guardrails: crash rate, latency, report rate, negative feedback, retention, policy safety.
  2. Normalize each metric: min-max, z-score, quantile transform, or business baseline ratio.
  3. Choose weights from product priorities, not from convenience.
  4. Report components alongside the composite.
  5. Validate the composite with A/B tests and long-term holdouts.

CS = CTR'w1 × WatchTime'w2 × Retention'w3 × Diversity'w4 / NegativeFeedback'w5

A geometric form punishes any component that collapses. A weighted sum is easier to explain. Neither is objectively correct; both encode product judgment.

Mini-scenario: suppose watch time rises 1.2%, but report rate rises 8% and long-tail creator exposure falls 6%. A single composite score may still look positive if watch time has a large weight. A guardrail-first decision says "hold or segment the launch," because the score is hiding user-safety and ecosystem damage.

7 · Segment metrics prevent Simpson's paradox

The book repeatedly asks candidates to split by user groups. For short video, segment reads are not optional because the global average can hide product harm.

SegmentWhy to read itExample failure
New usersOnboarding and cold start dominateGlobal watch time up, new-user retention down
High-active usersThey dominate total watch timeModel overfits heavy users and ignores casual users
Device/network tierLatency changes swipe behaviorLow-end devices show more fast swipes
Content verticalDuration and interaction norms differEducation punished by completion, comedy over-promoted
Creator cohortMarketplace/ecosystem effectHead creators gain all exposure

8 · Diagnose common metric conflicts

Observed resultLikely explanationNext read
CTR up, watch time downAttractive surface, weak consumptionFast exits, completion by duration, content type, title/cover slice
Watch time up, retention downShort-term immersion but fatigue or trust lossD7/D30 holdout, report rate, negative feedback, topic entropy
Completion up, diversity downModel repeats safe short-form interestsTopic entropy, novel-category exposure, long-tail coverage
Interaction up, reports upPolarizing content boostedSentiment, safety categories, creator cohorts, comment quality
Offline AUC up, A/B flatMetric mismatch or feature freshness gapGAUC, online feature coverage, recent-hot content, segment metrics

9 · Ecosystem-health and fairness metrics for short video

The ecosystem row of the ladder is the one teams under-instrument because it does not move next-swipe watch time. But a feed is a two-sided market: if creator-side exposure collapses into a few head accounts, supply dries up and watch time falls later. Short video makes this acute because the Matthew effect is fast - a video that gets a few extra impressions in its first hour can snowball, so the ranker's small biases compound into a winner-take-all distribution within a day. The general fairness/diversity machinery (group-fairness definitions, debiasing) lives in lesson 20 and lesson 08; here are the short-video-specific instruments.

MetricDefinition (short-video framing)Healthy direction
Creator-exposure GiniGini coefficient of impressions across creators (0 = perfectly even, 1 = one creator takes all)Target ≤ 0.3; rising Gini = head concentration
Long-tail exposure shareFraction of total impressions going to tail / new creatorsFloor such as ≥ 15%
Content coverageShare of the catalog (or of a category) that receives any meaningful exposure in a windowHigher; a falling coverage = catalog collapse
Group-exposure KLDKL(group's exposure share ‖ group's population/supply share) - how far a group's slice of impressions departs from its fair shareNear 0; large KL = systematic under- or over-exposure
Group-CTR disparity(CTRmax − CTRmin) / CTRavg across user/creator groupsSmall; large gap = one group is served systematically worse content

Two definitions worth separating in an interview: demographic parity asks that exposure shares match population shares (an outcome test), while counterfactual fairness asks whether a creator or user would have been treated the same had a sensitive attribute (e.g. region) been different (a causal test). Short-video systems usually monitor the parity-style metrics above as guardrails and reserve counterfactual analysis for audits - see lesson 20.

9.1 · Worked case: the rural-content collapse and the fairness-cost ratio

A real pattern: a platform over-optimized per-user watch time, and rural/agricultural ("三农") content - which has a smaller but loyal audience - lost the early-hour exposure race and its user coverage cratered. The fix was not a model rewrite but an exposure-smoothing guardrail: cap any content category's 24-hour exposure growth at ≤ 200%, so a category cannot be starved (or runaway-boosted) in a single day. Result:

Rural-content user coverage
+32%
Per-user watch time
−1.2%

Read that as a fairness-cost ratio — business metric spent per unit of health metric gained (so lower is cheaper; this matches the convention in 08 · evaluation):

fairness-cost ratio = (−1.2% watch‑time) / (+32% coverage) ≈ 0.04

i.e. you give up about 0.04 percentage points of watch-time per 1% of coverage gained — a cheap trade most orgs take. A ratio of, say, 0.6 (lose 0.6% engagement per 1% fairness) would be a leadership call, not an automatic one.

A 27-to-1 trade is an easy yes - the watch-time loss is a rounding error against a large ecosystem recovery, and the recovered supply usually pays the 1.2% back over weeks. This is the Pareto framing the book pushes: do not treat fairness as a binary constraint, quantify what each point of it costs and decide deliberately. In China the Internet algorithm-recommendation regulation also makes a fairness floor a compliance guardrail, not an optional nicety.

Fairness metrics get gamed too ("metric inflation")
Once a fairness rule guarantees tail creators exposure, some creators farm the rule - they mass-produce low-quality clips just to claim the protected slots, so coverage and Gini look healthy while the content the slots deliver is junk. The fix mirrors the watch-time case: pair the exposure-fairness metric with a quality gate (completion, report rate, downstream retention) so you cannot satisfy fairness with garbage. A metric that can be satisfied without the outcome it stands for is a target, not a measure.

10 · Cold-start metric sensitivity for short video

For a brand-new user or creator, CTR is a noisy, low-confidence signal - the sample is tiny and high-variance, so a CTR-driven launch read can swing on a handful of impressions. Short video gives you faster, denser early signals to lean on instead. The layered cold-start evaluation ladder (content-match → behavior-quality → exploration/Gini → cohort retention-gap, with a 14-30 day window) is built out in lesson 38; here are the short-video-flavored metrics that matter on this surface.

Cold-start metricWhy it beats CTR hereTrap
First-3s completion / survivalDense per-impression signal of hook fit; no click needed and immune to mis-tapsOver-optimizing it breeds "opening-shock" clickbait - balance with full completion
Valid-play rate (VTR, play > 3s)Filters accidental taps and autoplay artifacts that inflate raw CTR for new usersA high VTR with low completion still signals a misleading hook
New-creator penetrationShare of users who watch at least one new-creator video - measures whether exploration actually reaches peopleCan be faked by spraying new content; pair with completion on those impressions
Cohort retention-gapD7 gap between cold-start users and the warm pool; should converge over the windowReading it at D1 only - the signal is in the convergence trend, not one point

Worked sensitivity. Suppose 200 new users each see 5 impressions of a candidate creator (1000 impressions). With a 4% baseline CTR the standard error on that rate is roughly √(0.04 · 0.96 / 1000) ≈ 0.6%, so a one-point CTR "lift" is only ~1.6 SE — borderline, and easily lost once you remember it rests on ~40 clicks. Switch the read to first-3s survival: at perhaps a 55% rate the SE is actually larger, √(0.55 · 0.45 / 1000) ≈ 1.6% — but the true movements are larger too, because early-watch behavior shifts far more than click does for fresh content, so a 3-4 point change is ~2-3 SE and clears the bar. The win is not a smaller error bar — survival's is bigger — it is a better effect-to-noise ratio from a denser signal. (These SEs treat impressions as independent; with 5 correlated impressions per user the honest test is on the 200 per-user rates, which inflates the SE further and only sharpens the preference for the denser signal — see the per-user-unit warning in 33.) This is why short-video cold-start eval reaches for survival and VTR before CTR.

Interview prompts you should be ready for

  1. "What short-video metrics matter beyond CTR?" Use the ladder: valid exposure, fast-swipe, completion, duration-normalized watch, interaction, negative feedback, session depth, retention, diversity, creator coverage.
  2. "How do you balance CTR and watch time?" Treat CTR as an early-stage signal, watch time as deeper consumption, retention as durability, then combine them with normalized weights and guardrails.
  3. "How do you design a composite metric?" Normalize components, choose product weights, prefer geometric penalties for collapsed metrics, keep guardrails outside the score, and validate in A/B.
  4. "Watch time improved but user retention fell. What do you do?" Do not ship blindly. Investigate fatigue, repetition, negative feedback, safety, topic entropy, and long-term holdout results.
  5. "Your per-user watch-time delta is +10% but the median is flat. What is happening and what do you report?" A few whales (or where they landed across cells) are moving the mean; the body of users did not change. Winsorize/cap at a frozen high percentile, report the capped mean plus a robust statistic, and re-test - the capped read also lowers variance and tightens the CI.
  6. "A fairness rule lifts tail-creator coverage +30% but costs 1% watch time, and now low-quality clips are flooding the protected slots. Ship it?" The fairness-cost ratio (~0.03 watch-time spent per 1% coverage) is a clear win on its own, but the metric is being gamed - guard it with a quality gate (completion, report rate, retention) so coverage cannot be satisfied with junk; then ship behind that gate.
Takeaway
Short-video metrics should be linearized by time scale: impression acceptance, consumption depth, active interaction, session continuity, lifecycle retention, and ecosystem health. Optimizing one layer without reading the next is how a feed wins the next swipe and loses the user.