Lag Lens

A milestone with a lag can't be judged the day someone starts. Paste cohort milestone rows, then scrub the observation date to see who is eligible to be judged, who was observed hitting the milestone, and who is still immature.

No data loaded

1 · Data

Comma, tab or semicolon separated. Nothing leaves this tab.

Local only: no network, no storage, no uploads. Reset clears the text and chart from this page.

Format

One row per member (or per group of members) per milestone. A header row is required; column order doesn't matter.

cohort,entered,milestone,lag_days,reached,count
Spring,2026-03-02,first_return,14,2026-03-09,1
Spring,2026-03-02,first_return,14,,1
  • cohort — group label (required)
  • entered — start date, YYYY-MM-DD (required)
  • lag_days — days allowed to reach the milestone (required, whole number)
  • reached — date the milestone happened; blank if not yet
  • milestone — optional name; several milestones become tabs
  • count — optional weight for grouped rows (default 1)

On an observation date T, a row is immature while T < entered + lag_days. Once mature it is eligible: observed if reached within the lag, otherwise not observed. Bad rows are skipped and listed — the rest still draw.

2 · Scrub the observation date

Load the demo or paste rows to begin.
No rows yet. Choose Load fictional demo to explore invented sample data, or paste your own CSV above.