Skip to content

Family fees

Fee balances are kept per learner, which is right for billing and awkward for everything else. A parent with three children rings once, pays once, and asks one question: what do we owe? Answering it used to mean opening three statements side by side and adding up.

Finance → Parents is the same register Admissions uses, with two extra tabs for anyone holding a finance role: Fees and Transactions.

Finance → Parents is new. It reaches the parent register and profile under the finance menu, and adds:

  • a Fees tab with every child’s balance, a family total, and what the family was billed for by votehead;
  • a Transactions tab — one ledger across all the children, searchable by the parent’s own M-Pesa code;
  • a combined family statement as a single PDF;
  • a Family Fee Burden report, ranking families by what they owe;
  • one fee-balance message covering every child, replacing one message per child;
  • add this family to a billing group in one action.

Finance → Students and Finance → Balances by class both gained a By parent toggle that switches to the same arrears seen per household.

Go to Finance → Parents.

The period, and why it is always on screen

Section titled “The period, and why it is always on screen”

The tab opens on today, the current academic year, the current term. The period is printed at the top and on every PDF made from it.

That is deliberate. A printed fee sheet for term 2 and one for term 3 look identical once they are on paper, and this is a document that goes home with a parent. Whatever period you choose travels with the numbers.

You can change:

Control What it does
Year Read the family at a different academic year. Blank uses the current one.
As at Count payments received up to this date and no later. Blank means today.
Lifetime to date Drops the date limit and adds Since this family joined below the table.
Today Clears everything back to the default.

One row per child, then a subtotal, then the family total:

Column What it is
B/F Brought forward — everything owed from earlier terms and years.
Term billing What this term’s fee structure billed them.
Paid Payments received in the period.
Credit notes Write-offs and bursaries applied.
Balance What is still owed.
% settled How much of the bill has been covered.

The same engine that produces Balances by class. Every figure on this tab, on the statement and in the burden report is read from it, so a family total and a class total over the same learner cannot disagree.

If you are checking a figure, compare a branch’s subtotal against that branch’s own class fee balances report for the same term. They will match.

Below the table, every votehead the family was billed for, largest first, with how many of the children carry it and its share of the bill. This is what a director actually negotiates over — seeing that transport and lunch are two thirds of a family’s bill changes the conversation.

With Lifetime to date ticked, a second panel shows everything ever billed to the family, everything they have ever paid, and the dates of their first and last payment.

These sit beside the table rather than inside it, because the table’s columns have to add up and lifetime figures do not belong in them.

Every payment across all of the family’s children, newest first — not grouped by child, because the point is to see the family’s payment history as one sequence.

Each row shows the date, receipt number, child, method, bank, both references, amount, status and who posted it. Filter by child, date range, method or ledger.

Where a bank collects a paybill payment for you, there are two references: the bank’s own (FT26244G5PLS) and the M-Pesa code the parent sees on their phone (UI1CB4SNQP).

Both are shown, and the search box matches either. When a parent rings to say a payment has not appeared, the code they read out is the second one — searching for it finds the payment straight away.

Voided payments are shown, and never totalled

Section titled “Voided payments are shown, and never totalled”

Total received counts valid payments only. Voided payments, and payments a cashier has asked to reverse, are listed struck through and excluded, with the excluded amount shown separately.

Combined family statement (PDF) on the Fees tab produces one sheet covering every child: the same table, the votehead breakdown, and the family’s payments — voided ones struck through.

It carries the period you had selected, so a sheet printed in term 2 cannot be mistaken for term 3’s.

One message for the whole family composes a single fee-balance message listing each child and the family total, and shows it to you before anything is sent.

The preview tells you how many segments it will use, how many numbers it goes to, and what it costs. Messaging is billed per phone number, so a three-child family previously cost three messages to the same handset saying nearly the same thing; the preview shows you what the single message replaced.

Send by SMS or WhatsApp. A WhatsApp message reaches a parent free-form only inside the 24-hour window after they last wrote to you; outside it, WhatsApp requires an approved template and the screen will tell you so — send by SMS in that case.

Families ranked by what they owe, with every child listed under the parent, as PDF or Excel. This is the sheet to take into a meeting about arrears: it shows households rather than learners, so a family with three children appears once with their whole debt rather than three times with a third of it each.

Filter to families with a minimum number of learners if you only want the multi-child ones. The Excel version puts one row per child so you can pivot it; the PDF nests the children under the family so you can read it.

The Fees tab states whether a family qualifies — “4 learners — this family qualifies under a sibling policy” — and is marked coming soon.

There is no discount engine, and this is a decision rather than an omission. No school has written a sibling-discount policy down: not which child it starts from, not how they are ranked, not the amount, not which voteheads it touches, not whether it re-applies each term. Building an engine against a policy nobody has written would mean us inventing your policy and you living with it.

What works today is a billing group. Attach a discounted fee structure to a billing group, then use Add this family on the Fees tab to put every child in it at once. That is a fully supported route, not a workaround — it is how a sibling discount is operated in ShuleOne.

If your school does have a written policy, send it to us with those five answers and we will build against it.

For schools that run several branches under one group, a parent has one profile covering the whole group. Their learners are all listed, whichever branch they attend.

Money is not. The Fees and Transactions tabs show figures only for branches where you hold a finance role. Other branches appear as “2 learners at New Gideon Grace” with the figures withheld, and the family total covers only the branches shown, with a warning saying so.

Each branch keeps its own subtotal, and each subtotal still reconciles to that branch’s own class fee balances report — branches have their own chart of accounts, fee structures and terms, and are never merged into one calculation.

Surface Role needed
Fees tab, Transactions tab, combined statement, burden report finance_admin, View_Financial_reports or Access_Accounts_dashboard
One message for the whole family Send_Fee_balances or Send_Custom_sms
Add a family to a billing group finance_admin or Approve_Fee_Changes

Without a finance role the two tabs do not appear at all. Balance columns are never shown as zero to somebody who may not see them — a zero reads as “this family owes nothing”, and it would be quoted that way.

  • Parents — the register and profile these tabs sit in.
  • Family actions — one payment for the whole family, moving a credit between siblings, payment plans.
  • Balances and statements — the per-learner and per-class view these figures agree with.