Checkpoint
One last thing before we move on. Same surface as a write step — but the lesson doesn't complete until this passes.
Checkpoint. Build the labeled dataset: dataset(db, cutoff) returns (user, pre_cutoff_actions, label) per user, where the label is 1 if the user's actions IN the cutoff month were 0 (went quiet = churned). Keep every user (left-join thinking), sorted by user.