Two halves of one question

"How are we doing?"
is two questions.

When a school owner asks how the school is doing, they are asking two things at once: are we teaching the right number of people, and is the money working. These feel like one question because they arrive together in the same worried moment, and they are answered in two completely different places — one in the platform that runs your classes, the other in the account that receives your payments.

This article takes the first half seriously, because it is the half most small schools under-read and the half where the fixes are cheapest. Then it is honest about the second half, including where SprintUp does not put the answer.

Capacity

The empty seat
costs what the full one costs.

A class that runs with four students in twelve seats costs the school a teacher, a room and an hour, exactly as it would with twelve. Capacity fill rate — seats that exist against seats that are filled — is the number that makes this visible, and in most small schools it is somewhere between surprising and alarming the first time anybody calculates it.

Read at school level it tells you whether you are running more classes than you have students for. Read class by class, which is where the action is, it tells you which classes. A worked illustration, with round numbers, of the most common shape:

Situation
Figure
What it means
Six classes of 12 seats
72 seats
Illustration only — use your own figures
Filled
47 seats
Fill rate 65%
Two classes at 4 of 12
8 of 24 seats
These two carry most of the empty space
Merged into one class of 8
Frees one teacher slot
Fill rate rises to 78% with no new students

Nothing in that example required a single new student. It required noticing that two classes were carrying most of the empty space, and being willing to have the slightly awkward conversation about merging them. That conversation is much easier to have in week two of a term than in week nine, which is an argument for looking at fill rate early rather than at the end.

⚠️Fill rate is not a target
Driving fill rate to 100% means turning families away and running every class at the edge of its room. Treat a low figure as a question about that class, not as a KPI to maximise across the school.
Placement

Enrolled, paying,
and in no class at all.

The quietest failure in a small school is the student who has enrolled, possibly paid, and is not in any class. It happens constantly and almost never deliberately: the child joined mid-term and was going to be placed "next week", the level test was inconclusive, the class they were meant to join filled, somebody was on leave. Nobody notices because the student does not complain until they do — usually by leaving.

The number to watch is simply how many enrolled students are placed in a class and how many are not. SprintUp reports both, so the unplaced count is a standing figure rather than something you would only find by cross-referencing two lists by hand. It should almost always be zero or close to it, and any figure above that has names attached to it and should be treated as a to-do rather than a statistic.

Sitting next to it is the count of pending join requests — people who asked to join a class and have not been answered. This is the cheapest enrolment in the building: they have already found you, already chosen a class, and already raised their hand. A school with unanswered requests and an active marketing budget is spending money to solve a problem it already has the answer to.

Growth, read honestly

New students is a gross figure.
Read it next to activity.

The new-students line for a period, set against the period before, is the closest thing a school has to a growth rate. It is also the easiest figure to misread, because it counts arrivals and says nothing about departures or about whether the arrivals stayed.

Read it beside the active-learners figure for the same window. Twenty new students and a flat active-learner count means roughly twenty other students went quiet, and the school is refilling a leaking bucket at considerable marketing expense. Twenty new students and an active-learner count up by eighteen is genuine growth. The two numbers are in the same response for the same date range specifically so that this comparison takes a moment rather than an afternoon.

The leaks worth having names for, all of them visible without a bespoke report:

The leak
Where it shows up
The action
Seats that exist but are empty
Capacity fill rate
Merge, close, or market that class specifically
Students enrolled but in no class
Unplaced students
Place them this week; they are paying and receiving nothing
Join requests nobody answered
Pending requests
Answer them. This is the cheapest enrolment you will ever do
Students who joined and went quiet
New students vs active learners
Call in the first fortnight, not at the first invoice
The honest part

There is no revenue chart
on your analytics page.

Stated plainly, because a demo is a bad place to discover it: a school's analytics in SprintUp does not include a revenue figure. Enrolment, capacity, placement, attendance, scores and grading are all there. Money is not.

This follows directly from how student payments work. Families pay the school through the school's own connected payment account, and SprintUp takes 0% of it. The money never passes through us, which is the entire point — and it also means the authoritative record of what came in, when, and whether it cleared lives in the school's payment provider and in the school's own order records. Reporting it back to you inside an analytics page would mean re-deriving a number that already exists somewhere more accurate, and being wrong about refunds, chargebacks and payouts while doing it.

Revenue reporting does exist inside SprintUp, but at the platform level — the operator's view of the business — not in the school's own analytics. If a single screen with enrolment and euros side by side is a hard requirement for you, that is a legitimate requirement, and you should ask every vendor you are evaluating to show you that screen populated with real data rather than described. Watch for the two usual answers: a roadmap, or a figure that turns out to be invoices issued rather than money received.

Joining the halves

One spreadsheet,
once a term.

You do not need a data project to answer the commercial question. Once a term, take four numbers: students enrolled at the start, students enrolled at the end, seats run, and total fees received from your payment account for the same window. That is enough to calculate the two figures that actually drive decisions in a small school — average revenue per enrolled student, and cost per seat run.

The second is the one that changes minds. Divide the teaching cost of a class by the seats actually filled and a half-empty class stops being an abstraction. Schools that do this once usually find one or two classes that have been quietly subsidised by the rest of the timetable for several terms, and the conversation about them becomes much easier when it is a number rather than a feeling.

Do it termly, not monthly. Monthly figures in a school are dominated by the calendar — enrolment surges, holiday gaps, instalment dates — and reading noise as signal is how schools end up making a structural change in response to December.

Before the term

The enrolment
checklist.

✅Seven items
Fill rate read per class, not just school-wide · unplaced students treated as a to-do list with names · pending join requests answered within days · new students read beside active learners · the merge conversation had in week two rather than week nine · money read from the payment account, not inferred · one termly spreadsheet joining the two halves, with cost per seat run.
Next: learning data without surveillance →← Back to A1