I'm the volunteer treasurer of a church that runs a PreK–8 school. Last fall we worked out, for the first time in anyone’s memory, what it actually costs us to educate one child for one year.
We had been collecting about 62% of it.
Nobody made a bad decision to get there. Nobody made a decision at all. And the reason it went unnoticed for so long is the most worrisome, because it has nothing to do with our school and everything to do with how nonprofit budgets age.
Our books balanced the entire time.
Offsetting errors are self-concealing
A budget that balances feels like a budget that is correct. But it might be a budget with errors that just happen to cancel.
Ours canceled in at least four directions. We had a hot lunch program on the books as a five-figure annual loss; it was actually running a five-figure surplus. We collected athletic fees worth roughly one additional student's tuition, and they appeared nowhere in any planning conversation. Tuition hadn't moved in about ten years. Neither had teacher compensation.
And the church carried a line item called "Congregational Subsidy," budgeted at a number that nobody set. Literally. The figure was a plug: whatever amount made the full budget balance on paper. It was never tied to a policy, a formula, or an actual obligation, and it was never checked against what the church was really spending.
What kept it invisible is that it looked like it meant something. When I took over the role, the eyeball test said it was tied to teachers’ insurance and pensions. The church has always paid those bills directly, and they map cleanly enough as a cross-budget line item. But the plug only happened to land near that number, and no one ever explained or asked what it really meant. A placeholder that resembles a policy is far more durable than an obvious placeholder, because it survives every casual glance.
The real subsidy, once we calculated it, was about 2.3 times the budgeted figure.
None of it ever showed up because the misses pointed in opposite directions and the bottom line kept landing about right. When your errors cancel, your budget stops being a measurement and starts being a reassurance. Nobody audits a reassurance.
It takes two different forces
Systems like this don't fail gradually. They fail when the offsets stop offsetting. But that alone doesn't fix anything, because a budget can be visibly strained and still go unexamined. Someone also has to need the answer.
Both happened to us in the same year, and they did different jobs.
The concealment ended first. We hired a full-time math and science teacher - a real and necessary expense. And we lost our international students, whose additional fees had been quietly covering the tuition gap in the years they enrolled, to changes in federal visa policy. Both landed after tuition was already set. The hole got considerably bigger, and nothing in the budget was built to show it.
The demand came from the other direction. We started an expansion project that needed revenue we did not have. That created something the school's finances had never faced before: a reason for someone to require an answer, on a schedule, with consequences for not producing one.
I want to be precise about how much that second force mattered, because it's easy to tell this story as though careful analysis was the cause. Without the expansion, I don't believe we would have raised tuition at all. We would have kept drifting and kept asking the church to absorb the difference, because there was no trackable school budget to make the drift visible to anyone. And without the year that removed the cover, the expansion would have run straight into a plug that still looked like a policy.
Either shock alone buys you another year of the same. It took both for us to act.
What we actually did
The first move was cheap and took about an hour: what does everyone else charge?
Benchmarking against comparable schools in our area put us 35–40% below market for K–8 and more than 50% below for PreK. We also learned we were one of fewer than ten schools in a national association of several hundred still offering a 100% tuition discount to member families.
I won’t say that analysis alone unlocked everything. A benchmark doesn’t tell us what to charge, or what running the school actually costs. What it told us was that we almost certainly had room, and what that bought was nerve. Our school has been around for a while, and everyone has seen the ups and downs: what if raising tuition hurt our enrollment again, just as we were seeing full classrooms again? The benchmarking exercise turned that fear from something heavy enough to stop us into something specific enough to test.
The real work was the cost side. Direct school expenses were easy. The harder part was the shared building: utilities, maintenance, custodial, repairs, all of it budgeted centrally and none of it allocated. I sat down with the principal and we divided each shared line by simple, defensible formulas. Not perfect ones. Defensible ones. The precision available to a volunteer treasurer with a spreadsheet is enough to change a decision, and changing the decision was the point.
That produced the per-seat cost, and against it, the 62%.
It also produced the number that actually reframed the whole conversation for our council: discounts. Between the full member discount, sibling breaks, and financial aid, we were forgoing tuition equal to roughly a quarter of everything the school collected. That had never appeared as a decision, a policy, or a line anyone reviewed. That doesn’t make it bad - there are very good reasons to offer affordable education in our area - but the point is that no one ever made that call definitively. It was just part of the air we breathed.
What happened
We raised full tuition 14% for K–8 and 20% for PreK. We moved the member rate from free to 25% of full tuition, on a path to 50%.
We announced in November. We were above 90% of capacity by mid-December. We opened this year at full capacity with a waitlist for PreK.
That is not evidence that families are insensitive to price. We moved from far below market to still below market, on headroom we had never checked for. It's evidence we were badly mispriced. That narrower one is the only conclusion I’m drawing right now.
Roughly 30% of the increase went straight to teacher compensation, which had been frozen just as long as tuition had. Frozen prices and frozen wages are the same issue. We had simply never noticed we were looking at two halves of one problem.
This year, the school will cover about 90% of its own costs. The church's support is a defined grant, built from the budget and approved by the Congregation, rather than a plug sized by whatever hole appeared. We renamed it, which sounds cosmetic and wasn't: a subsidy is what you discover, a grant is what you decide.
The number I chose not to chase
Here's the part I'd argue about with another finance person.
Our member families received free tuition for years. The obvious next analysis is whether their household giving covered the value of what they received. I have not run it at the household level and I don't intend to.
Not because it's uncomfortable. Because measuring it that way would harm the relationships that actually matter. The moment a gift is tied to a benefit, it stops being a gift and becomes an invoice. Gifts are freely offered, but invoices get paid. Trading one for the other for the sake of financial certainty is not worth it.
So we used a different instrument. The tuition ramp — free, then 25%, then 50% — is a lever on the institution's side of the ledger. The council can pull it, review it, and adjust it, and it fixes the economics without asking a single family to justify anything. If we need the giving question as a planning input, we can look at it holistically, without touching any individual family’s numbers.
It’s tempting to reduce every decision to a number. But numbers aren’t free, and they can change the behaviors they’re supposed to be passively measuring. So the discipline is narrower than simply finding the number and naming it. It’s knowing which numbers actually matter, and identifying the right levers to move them.
What I'd ask you
Not whether your budget balances. It probably does.
Ask when someone last looked at the assumptions behind it. Ask whether the person who set them still works there. Ask what your equivalent of the hot lunch program is — the line everyone quotes and nobody has opened in years.
Ours had been right once, around the time we migrated accounting systems. Then it got copied forward, annually, for a decade, by careful people doing their jobs.
I had the subsidy line flagged from early in my first year as treasurer. It stayed flagged. What finally moved it wasn't persistence on my part. It was an expansion project that needed revenue we didn't have, arriving in the same year that the cover disappeared.
Assumptions like this one don't get examined because somebody finally asks the right question. People asked all the time, but no one had an answer, and it always got dropped. They get examined when something makes the answer expensive to keep avoiding.
If nothing in your organization is currently forcing the question, that is not evidence your numbers are fine.
