Leader track π§ Β· six sessions, no code
For product managers and whoever signs off on the metrics. What the diary records, which moment predicts staying, engagement you can defend, adoption that means value, how to measure an AI feature, and how to run a product review.
Events are the product's diary
What one event contains, Object Action names, the tracking plan as a contract, and the blank pages no diary records. One real GitHub hour, 279,130 events, taken apart.
β¨ Leader session 2The moment that predicts staying
Activation and the aha moment, Facebook's reported "7 friends in 10 days" and Slack's "2,000 messages" traced to their earliest sources, and why a strong correlation is not a lever.
π Leader session 3Engagement you can defend
DAU/MAU and what one ratio hides, the power-user curve, and why the same accounts give three different monthly actives under three definitions of "active".
π§© Leader session 4Adopted is not valued
Breadth, depth and time to adopt. The most widely adopted feature on the bench is a setup artefact with the weakest signal; one used by half a percent has the strongest.
π€ Leader session 5Measuring an AI feature
Acceptance rate, kept versus edited output, and what Ziegler and colleagues actually found about acceptance and perceived productivity, read at the source.
ποΈ Leader session 6The product review
Reading a product dashboard the way a skeptic would: six questions about definition, cohort, denominator, blind spots, bots and cause, asked of real numbers.
Analyst track π¬ Β· eight sessions, one real event stream
Python and the browser on GH Archive, the hourly record of GitHub's public activity. From one raw hour to a bench that scores your activation definition on 8,348 real repositories.
The tracking plan as code
A five-event plan as a Python dict, a validator run on a real hour, typed and meaning checks, and identity keyed on an id that never changes.
π Analyst session 2Meet the event stream
One real hour in pandas: who produced it, how much of it bots wrote, how to cut it into sessions, and why a timestamp alone cannot order it.
π’ Analyst session 3Defining "active"
The same 79,555 accounts under three definitions give three monthly actives. DAU, WAU and MAU computed from rows, and the definition written into code.
π Analyst session 4Hunting the activation moment
Sweep candidate first-week behaviours against later return, read lift beside coverage, and stop at correlation until an experiment says more.
π Analyst session 5The power-user curve from real rows
An L28 histogram built from a month of GH Archive, what sampling does to its shape, and where automation hides in the right tail.
πͺ Analyst session 6Adoption funnels and time to adopt
Per-feature breadth, depth and hours to first use on the bench cohort, and the gradient from zero features to four.
π§ Analyst session 7AI feature metrics
A constructed code-assistant stream, labelled as constructed, where acceptance, persistence and characters kept point in different directions.
ποΈ Analyst session 8The activation bench
8,348 real repositories, eight definitions and yours, a break button that shuffles the behaviour. Lifts from 0.88x to 5.45x, all counted live.
Choose your path πΊοΈ
Three doors into the same practice. Each track starts at its own session 1, because the vocabulary is what makes the rest arguable.
Your passport π«
Clear all three quiz questions in a session and it gets stamped. Fourteen stamps across both tracks, and they live in this browser only.
What is real here π§Ύ
A course about honest product numbers should be exact about which of its own numbers are measured.
| Claim | Status |
|---|---|
| The event stream | Real. GH Archive's hourly files of public GitHub activity, streamed directly: one full hour for the analyst build-alongs, 252 sampled hours for the bench, 56 for the engagement curves |
| The bench cohort | Real. 8,348 public repositories born between 15:00 and 15:59 UTC on 4 March 2024, one per account, bot accounts excluded, followed every second hour through week one and through days 28 to 41 |
| Every lift, rate and count on the bench | Computed in your browser from those rows; an independent Python run agrees on every count |
| New repositories, not new people | A deliberate choice. The public stream never records a signup, so "first seen" would mostly find old accounts; a repository's birth is recorded exactly once |
| The engagement curves | Real, and sampled: a fixed 5 percent of accounts, seen in two hours a day for 28 days. The shape says as much about the sampling as about GitHub, and the pages say so |
| The code-assistant event stream | Constructed from a fixed seed. No public AI-feature event stream exists; every page and chart that uses it says so |
| Facebook's 7 friends in 10 days | Reported only, through transcripts of a 2012 talk; taught as contested folklore, never as law |
| Slack's 2,000 messages, and Ziegler and colleagues on acceptance rate | Read at the source: the 2015 interview and the 2022 paper |
The knowledge map π§
Both tracks at a glance - hover a session to spotlight its concepts, click any node to jump in.