Case study · Student Leadership Network
An entire leadership layer was pulling its own numbers out of Salesforce, one person at a time. I replaced that with an individualized report that lands in their inbox every Monday morning.
If a director wanted to know how a school was doing, they logged into Salesforce and built the view themselves. So did the associate directors. So did everyone above them.
That produced three problems at once. There was no single source of truth — two people could pull the same question and get different answers depending on how they filtered. There was no cadence, so the numbers got looked at when someone remembered to look. And there was no individualized view: nobody could see just their own schools, or just their own portfolio, without assembling it by hand every time.
The reporting existed. Getting to it was the problem.
A Python notebook in Google Colab reads a Salesforce-synced Google Sheet that refreshes every few hours. It computes progress against four program goals, sorts every item into a four-tier urgency system, and generates two things from that same computation: a PDF via WeasyPrint and the HTML body of an email. A bound Apps Script drafts the Monday morning sends.
Generating both formats from one data source was deliberate. It's the only way to guarantee that the PDF and the email can never disagree with each other — which is the failure that quietly destroys trust in a reporting system.
The whole thing is config-driven. Goals, recipients, callout columns, and health scorecards are all spreadsheet edits. Adding a school or changing a threshold doesn't require touching code, which means it doesn't require me.
I had a weighted priority score that ranked what needed attention. I threw it out and replaced it with counting overdue items.
The score was more sophisticated and it was worse. When a director looked at a number and asked "why is this school flagged?", the honest answer involved explaining a formula. Nobody trusts a number they can't reason about, and a report people don't trust is a report they stop opening. Counting overdue items is dumber and it's legible on sight.
In production since May 2026 and running every week since. A program director, four associate directors, and counselors across 26 schools now get an individualized view of their own schools without opening Salesforce at all.
It's also become infrastructure rather than a deliverable: two of my goals for the coming year — a data warehouse migration and a student outcome projection model — are both built on top of this pipeline.