Learn with Phoebe Β· Data & Analytics

Product Analytics: Events to Decisions

A product only knows what it wrote down. Every argument about activation, engagement or an AI feature comes back to the same few questions: which event, counted how, for which people, from which start. Six leader sessions teach those questions without code, from the tracking plan to the product review. Eight analyst sessions answer them in Python on real public GitHub activity from GH Archive, and end on a bench where eight activation definitions are tested on 8,348 real new repositories, live in your browser. Coming back on a second day in week one predicts later return at 5.44x. A busy first hour predicts nothing at all.

14sessions, two tracks
8,348real repositories on the bench
252hours of GH Archive streamed
8activation definitions tested
45min per session

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.

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.

🧾 Analyst session 1 · start here

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.

β–Ά Start here
🌊 Analyst session 2

Meet 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 3

Defining "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 4

Hunting 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 5

The 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 6

Adoption 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 7

AI feature metrics

A constructed code-assistant stream, labelled as constructed, where acceptance, persistence and characters kept point in different directions.

πŸŽ›οΈ Analyst session 8

The 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.

πŸ”’ the capstone
start here foundations hands-on advanced and capstone

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.

πŸ’Ό I own the product metrics L1 β†’ L2 β†’ L3 β†’ L6 the diary, activation, engagement, then the review
πŸ€– I am shipping an AI feature L1 β†’ L4 β†’ L5 β†’ A7 instrument it, tell adoption from value, pick the metric that fits the decision
πŸ”¬ I build the analysis A1 β†’ A2 β†’ A3 β†’ A4 β†’ A8 from a raw hour to a tested activation definition

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.

ClaimStatus
The event streamReal. 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 cohortReal. 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 benchComputed in your browser from those rows; an independent Python run agrees on every count
New repositories, not new peopleA 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 curvesReal, 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 streamConstructed 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 daysReported 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 rateRead 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.