Demo · rebuilt on synthetic data

Who is actually going to show up in the fall?

Students who are accepted to college in the spring and never enrol in the fall are said to have “melted.” Programs track a handful of milestones over the summer to catch it early. This is the tool staff opened to see where a group stood — one row per group, one column per milestone.

Every number here is invented

520 fictional students at eight fictional schools. I rebuilt this from scratch to show how it works; the original runs on real student records and stays where it belongs.

Scroll the table sideways for all five milestones

Why it exists

The reporting built into the records system could show these rates, but not honestly. Any milestone can be marked not applicable for an individual student, so each milestone needs its own denominator — and a report filter applies to the whole report rather than row by row. The only truthful way to do it there was a separate report per milestone, which consumed almost the entire dashboard and left no room for anything else.

Worse, none of it could be re-cut. “Show me the same rates by where students ended up instead of by school” meant building another full set of reports, so in practice people asked me and waited a day. Every control on this page exists to remove one of those waits.

Built with Google Apps Script and a single page, reading from a sheet. No student names or record identifiers ever reach the browser — the server sends counts, so a forwarded link cannot leak anything about a student. This rebuild uses invented data and no server at all.