TL;DR

We're building the "which parts of this video do people actually watch" chart from scratch: a client-side interval tracker (~80 lines, zero dependencies), a beacon endpoint with SQLite per-second counters, and a canvas renderer. No analytics vendor, no SDK, data stays yours.

Completion rate tells you how much of a video people watched. The heatmap tells you where: the intro everyone skips, the section a quarter of viewers rewatch, the cliff where they leave. Hosted platforms sell this chart as a premium analytics feature, but the mechanics are simple: watched intervals in, per-second counters out.

The one rule that makes it work: track segments of media time, not events. Events lie the moment someone seeks or rewatches. Intervals don't.

1. The interval tracker 🎯