When I got this, I first clarified scope: Netflix = global streaming across TV, mobile, desktop. We’re looking at overall daily viewership (not region/content/device-specific) and the metric = completed streams per day. No changes to measurement. The drop is ~15% over 6 months, global, cross-platform, and affects all user types.
I ruled out externals: no new regulations, no notable negative PR, no competitor price shocks; others aren’t seeing the same dip.
Then I walked the funnel with the interviewer:
Visits/opens stable (even growing)
Feed → title page CTR stable
Play starts stable
Drop appears mid-stream: lower completion rates
At that point I hypothesized three causes and checked fit:
Player bugs / buffering / crashes during playback
Recommendation mismatch (people bounce early)
Bandwidth/quality degradation (adaptive bitrate issues)
Signals pointed to (1) recent player update + user playback complaints, so I treated player instability as the root cause.
RCA (succinct): Daily viewership ↓ because completions ↓; completions ↓ because mid-stream exits ↑; exits ↑ due to player regressions (buffering/crashes/quality drops) introduced in a recent release.
Immediate actions (0–4 weeks):
Hotfix + rollback guardrails: Triage crash clusters, revert offending modules, ship canary builds with kill-switch flags.
Playback health SLOs: Block release if rebuffer ratio, join time, crash-free sessions fall below thresholds by device/OS.
Quality triage blitz: Dedicated incident cell across video, CDN, and player to drive MTTR to hours, not days.
User comms: In-app banner + email to heavy watchers acknowledging fixes; restore trust.
Follow-ups (1–3 months):
Experiment hardening: Pre-prod soak tests on top device/OS cohorts; synthetic “chaos network” lab for low-bandwidth, packet loss, and device thermal throttling.
Progressive ABR tuning: More conservative startup bitrate + faster down-shift on congestion; resume-from-stall smarter than restart.
Crash defense: Automatic feature flags per cohort; instant fallback to last-known-good player bundle.
Device-specific packs: Ship lean codecs/decoders and GPU paths per silicon family to reduce thermal and memory pressure.
Longer term (3–12 months):
Multi-CDN orchestration: Real-time CDN/bucket failover using QoE signals, not just availability.
Observability by default: Standardize “playback vitals” (time-to-first-frame, stall rate, stall minutes/hour, crash-free %, dropped frames) in every dashboard and PRD.
Quality-aware recommendations (lightweight): If a device/network shows frequent stalls, bias recs toward profiles/bitrates that start fast and play smoothly until stability recovers.
How I’d measure success:
North Star: Daily completed streams and total watch time (recover to baseline, then +X%).
Playback QoE: Rebuffering ratio ↓, average join time ↓, crash-free sessions ↑, stall minutes/hour ↓ (tracked by device/OS).
User signals: Post-fix complaint rate about buffering ↓, CSAT/NPS on playback ↑, 7-/28-day retention for previously affected cohorts ↑.
Leading indicators: Rollout-gate pass rates, canary stability, hotfix MTTR, percent traffic on last-known-good.
Summary I gave in the room: This isn’t a discovery/intent problem; it’s a mid-stream quality problem. Fix the player regressions first (hotfix + guardrails), harden release and ABR behavior next, then lift the ceiling with multi-CDN and device-targeted optimizations. Measure with completions/watch time as the North Star and QoE as the operational truth.

