Retention, one day at a time
The Growth page now charts day-N retention. It shows the share of each day's sign-ups who returned exactly 1, 3, 7, 14, or 30 days later, week by week. Striped bars and hollow dots mark the numbers that are only a floor.

Open the Growth page and scroll past the funnel. Two new panels wait there. A bar per signup day shows how many of that day's people came back exactly one day later. A line sits at the range's average, and below it a grid of weeks against days darkens as the number climbs, with a curve pooling every cohort out to day 30.
Credit goes to mnapoli, who taught the page bounded retention, active on day N rather than ever again. The grid spans days 1, 3, 7, 14 and 30. The bars flip between day 1 and day 7. A signup counts only once its day N has passed, in UTC, bots are left out, and each cell holds only the people who reached that day. Twelve thousand signups take about 150 milliseconds.
Days before October 30 were backfilled from what people did, posting, starring, following, which recovered 72 to 82 percent of each day's active people but misses anyone who only read. Those bars wear stripes, cells read "≥", and the curve's points go hollow. Read them as floors.
One catch. Weeks start on Monday, and the first row keeps its Monday label even when your range begins later that week, so it counts only the sign-ups inside the range. Judge it against the rows below and you are comparing a part week with whole ones.
Part of a larger story
Key files · #1337
- app/
Queries/ RetentionByDayQuery.php - app/
Queries/ RetentionCohortsQuery.php - app/
Http/ ProductMetricsController.phpControllers/ - resources/
js/ metrics.tsxpages/ operations/ - resources/
js/ operations.tstypes/ - PRODUCT_METRICS.md
- tests/
Unit/ RetentionByDayQueryTest.phpQueries/ - tests/
Unit/ RetentionCohortsQueryTest.phpQueries/