Creovia
A student analytics platform built out of three systems nobody had put next to each other. Co-founded in 2021; six states and nineteen districts within two years.
What I noticed
I'd been at a charter school management organization about five months when I went digging through the data out of curiosity, not because anyone had asked me to.
There were three systems that had nothing to do with each other. One held how students were performing. One held behavior incidents. One held how teachers were doing in their own duties. Nobody had put them side by side, because there was no particular reason to — three separate systems answering three separate questions for three separate audiences: teachers, school administrators, and district administrators.
So I lined them up. The first thing that fell out was backwards from what I expected: behavior incidents correlated with student outcomes far more weakly than the teacher data did. Once I'd seen that, I went further and mapped the whole thing against state test scores and grades.
That was the entire idea. Not a technology — an observation that the signal was already sitting there, in three places, in a form nobody could see all at once.
Why it became a company
The obvious move was to build it where I was. We didn't, and the reason is the only part of this I'd call a real decision: nothing I'd found had anything to do with charter schools specifically. It was true of schools. Building it as an internal tool would have capped it at the size of the organization that owned it.
So we went and said so. The Director of I.T. — my future business partner — and I took it to the owners of Charter One, told them this needed to be pursued properly, and left with their blessing to go build it for every kind of school instead of one kind. We started talking in May 2021, had a plan by July, and formed the company in September.
Learning to run a school
Before much of anything got built, I went to schools. Hours upon hours sitting with teachers, school administrators, and district staff, asking how you actually run a school — not what data they had, but what their year looked like and which decisions were load-bearing.
To build a tool that helps run a school, I had to be able to run a school.
That's also what made the data tractable. Every district recorded things differently, and not in the tidy way where you write one mapping table and move on. Differently in the sense that two districts could use the same field name for genuinely different things, and the only way to find out was to go ask a person what they had meant by it.
What we built
Django and Postgres, with a whole lot of SQL. React on the front end. Flutter once we started building mobile.
The constraint that shaped everything was timing. People who knew the space told us that reconciling data across sources three or four times a school year was about as fast as anyone could reasonably expect to go — and that number was the problem. By the time the data landed in any useful form, the window to act on it that year had already closed. So schools would guess, and fix it for next year, which is too late for exactly the students who had already fallen behind.
So we built for real-time instead. Reconciliation had to run continuously rather than as a batch job somebody kicked off each quarter, which is most of what made the engineering hard. What came out the other side was a dashboard that was current every morning rather than every quarter, and that difference is the whole product.
What the data actually said
Some of it was genuinely surprising:
- Behavior mattered less than we assumed. Behavior incidents had a much weaker correlation with student success than the teacher performance data did.
- Time of day showed up. Certain students got better grades in certain subjects when the class sat in an afternoon period rather than a morning one.
- The struggle was visible years early. Looking at how a student had performed over time, you could see which subjects they were going to have trouble with two or three years before they got there — far earlier than I expected. Sometimes their grades looked fine; it was the state testing and the grades in certain other classes that carried the signal.
And with enough of that assembled, we could predict state test scores accurately. Not directionally — accurately, to a degree that surprised me.
What came of it
- An initial round of $800,000. Revenue neutral within two years, profitable after three.
- Six states in the first two years, and from one school district to nineteen over the same period.
- A little over 100,000 current students' worth of data, plus historical data on close to a million.
- I scaled the engineering team from just me to seventeen engineers, myself included, as Principal Software Architect.
It's still operating and still doing well. I left in December 2025, and the moment it became obvious was an ordinary one: my business partner and I were working through the next year's org chart and plan, and I looked at it and realized I wasn't needed anymore. I'd spent the preceding stretch training two of my engineers to run the place, and they could. That's the correct thing to be able to say about a system you built, even if it's an odd thing to hear from your own org chart. It opened room for them to move up, and room for me to go do something else.
What I'd revisit
I'd have slowed down earlier to bring the team with me.
There were stretches where I was moving fast enough that I ended up owning things nobody else knew how to touch. That isn't a compliment to me — it's a description of a single point of failure I created personally, and every hour it saved in the moment got charged back later in explanation, or in work that sat waiting on me. I did fix it eventually; the two people running it now are the proof. I just wish I'd worked out four years sooner that getting the team caught up is the work, not the thing you do once the work is done.