Key takeaways
- Twelve questions decide whether a school management system will still be working for you in year three: where the data lives, whether restores are actually tested, what the price becomes on one line, how it behaves at your real headcount, and how you leave.
- Convert every quote to cost per child per year before comparing anything. KSh 1 per child per day is KSh 365 per child per year per module, or about KSh 122 per child per term.
- For a 400-child school, the break-even between a per-child price and a flat licence is a formula, not a feeling: break-even headcount = flat annual fee divided by (modules x 365).
- Under CBE the report card must carry strands, sub-strands and CBA bands, and every score must be traceable to a task. A system that only prints percentages is not finished.
- Opero, the worked example in this guide, is Kenya-hosted with tested nightly restores and no recurring fee beyond KSh 1 per child per day per module. It does not yet take M-PESA payments, send SMS, or offer self-service sign-up.
Choosing a school management system in Kenya used to be a question for large private schools with an IT budget. In 2026 it is a question for almost every head teacher and bursar, because the record-keeping load has grown: CBA scores that must be traceable, KNEC portal uploads, parents who expect a printed statement rather than a verbal balance, and a Data Protection Act that applies to a 200-child academy as much as it applies to a bank. The market has responded with dozens of systems, priced in ways that are hard to compare and demonstrated with tidy sample data that never looks like your own.
This guide gives you twelve questions to put to any vendor, in the order a demo should follow, with the arithmetic laid out so that you can compare a per-child price with a flat licence on the same sheet of paper. Throughout, we use Opero, a Kenya-hosted system priced at KSh 1 per child per day per module, as the worked example. One disclosure before anything else: Opero is built by the team behind CBC Edu Kenya, so we know its answers well, and we state its gaps as plainly as its strengths. Information current as of September 2026.
How to choose a school management system in Kenya: the twelve questions
Ask these in order. The first four are about the vendor and the money; the middle six are about whether the system fits how a Kenyan school actually runs; the last two are about the day the internet fails and the day you leave. For each, we give the reason it matters, what a good answer sounds like, and Opero's real answer as of September 2026.
1. Where does our data physically live?
Many systems sold in Kenya sit on a default cloud region in Europe or the United States because that is where the vendor's developer first clicked "create". That is not automatically illegal, but it makes your school a data controller transferring children's personal data outside Kenya, which the Data Protection Act 2019 treats as a specific act with its own conditions. Children's data has additional protection under the Act, and the school, not the vendor, is the party a parent will complain about to the Office of the Data Protection Commissioner.
What a good answer sounds like: a named country and a named data centre or hosting provider, written into the contract, with a statement that backups are held in the same jurisdiction.
Opero's answer: Kenya-hosted in every module, at no extra charge. The site's own wording is that "your children's records never leave the country", which, as it puts it, "removes the cross-border question under the Data Protection Act". Data is also isolated between schools, so one school's records are never in another school's database.
2. How often is it backed up, and when did you last restore one?
Every vendor says "we back up". The question that separates them is the second half: when did you last take a backup, load it onto a fresh server, and check that the fee ledger balanced? A backup that has never been restored is a hope, not a plan. Ask two plain-language numbers: if the server died at 2 p.m., how much of that day's data would be lost, and how many hours until teachers could log in again?
What a good answer sounds like: a frequency (nightly at minimum), a last-tested date, and both numbers above without hesitation.
Opero's answer: nightly backups in every module, and "the restore is tested". Ask for the date of the most recent test anyway; a good vendor will be pleased you asked.
3. Per child, per term, or per year: what does the price become on one line?
The single most useful thing a bursar can do in a demo is refuse to compare two quotes until both are expressed as cost per child per year, including every recurring item. Per-child-per-day becomes per-year by multiplying by 365. Per-term becomes per-year by multiplying by three. A flat licence becomes per-child by dividing by your headcount. Then list every extra that recurs: support tiers, SMS bundles, per-teacher or per-parent user fees, "premium" modules, annual "upgrade" fees.
What a good answer sounds like: one recurring figure, one setup figure, and a written "nothing else" for the rest.
Opero's answer: KSh 20,000 once to set the school up, the same whatever its size, then KSh 1 per child per day for each module you run, and "nothing else recurs". Converted: KSh 365 per child per year per module, or roughly KSh 122 per child per term per module. Note what is absent from that price because it does not exist yet: there is no SMS gateway, so if you want SMS reminders you will be paying a separate provider for them.
4. What happens at 300 learners, and at 1,500?
Two things change with headcount: the bill and the software. On the bill, per-child models scale in a straight line while flat licences usually have tiers with cliffs (the "up to 500 learners" plan that becomes a different, larger plan at learner number 501). On the software, a system that is quick with 40 sample learners can crawl when a class teacher opens a register for a stream of 60 in a school of 1,500. Ask to see the demo running on a database the size of your school.
| Learners | Core only, per month (x 1 x 30 days) | Core only, per year (x 1 x 365 days) | All four modules, per year (x 4 x 365) |
|---|---|---|---|
| 300 | KSh 9,000 | KSh 109,500 | KSh 438,000 |
| 400 | KSh 12,000 | KSh 146,000 | KSh 584,000 |
| 1,500 | KSh 45,000 | KSh 547,500 | KSh 2,190,000 |
Opero's answer: the setup fee is KSh 20,000 whatever the size, and the recurring cost is learners x modules x days, so the table above is Opero's real pricing at three headcounts. Note that the monthly column follows the site's own convention of a 30-day month, while the annual column uses 365 days; the difference is about 1.4 per cent and you should use whichever your board budgets in.
5. Can the office, the teacher and the parent each see only what is theirs?
Role separation is the difference between a system and a shared spreadsheet. A class teacher should not see fee balances. A parent should not be able to browse another family's child. A bursar should not be able to edit a mark. Ask for three logins in the demo, one for each role, and try to reach something you should not be able to reach from each. This is also where a teacher's assessor records either become easier or stay on paper: if the teacher console cannot show a learner's progress per strand, the teacher will keep a parallel file, and you will have paid for a system nobody uses.
Opero's answer: three consoles, office, teacher and parent, "each showing one person only what belongs to them". Admissions run through a public application page, so a prospective parent never needs a login to apply.
6. What is the attendance flow, minute by minute?
Do not accept "it has attendance". Ask: who marks the register, on what device, and how long does a class of 50 take? When a child is marked absent, who is told, and when? Can a mark be changed after the fact, and is that change logged with the name of the person who made it? Can the office see the whole school's absence for today on one screen? For a boarding school the flow is different again, because roll calls happen at dormitory level and at night; our boarding versus day school guide sets out how differently the two kinds of school actually run.
Opero's answer: attendance is part of Core, and Core is always included. Ask to see it on a teacher's phone rather than the vendor's laptop.
7. Can it produce a CBE report card with strands, sub-strands and CBA bands?
This is the question that catches systems written for other countries or for the old percentage-only world. A CBE report card reports competency per strand, using the four bands, with a teacher comment, and for Grades 7 to 9 the school-based assessment scores behind it feed the KJSEA composite that KNEC collects. That means the system needs, at minimum: a place to record a band or score per learner per sub-strand; a rubric or descriptor behind the band; a history of changes; and an export that lines up with what you upload on the KNEC CBA portal. If the demo report card shows "Mathematics 68%" and nothing else, the vendor has not met CBE yet. Our guide to reading a CBC report card shows what parents now expect to see on the page.
Opero's answer: assessments, marks and report cards are part of Core. The public site describes this at module level rather than field by field, so in the demo ask specifically to watch a strand-level band being captured and then appearing on the report card. That is the detail you need to see with your own eyes from any vendor, Opero included.
8. Can every shilling be traced from fee structure to receipt to statement?
The bursar's whole year lives in this chain: a fee structure per level and per term; an invoice per learner; payments, often partial, allocated against the right invoice; a numbered receipt; a running statement a parent can read; and adjustments (bursaries, waivers, sibling discounts) that carry a reason and an approver. The test of an audit trail is simple: try to delete a receipt in the demo. In a well-built system you cannot; you can only reverse it, and the reversal is itself recorded. Parents are increasingly informed about what they are entitled to see, as our Term 3 2026 fees guide for parents makes clear, and a statement that does not reconcile is now a complaint, not a shrug.
Opero's answer: the optional Finance module covers fee structures, invoices, receipts, statements, payments, allocations and adjustments, plus projects, budgets and financial reporting. What it does not do yet is take the money: there is no M-PESA checkout, so payments are recorded in the system rather than collected through it. In practice the bursar keys each payment from the M-PESA or bank statement. If a vendor tells you their system "integrates with M-PESA", ask to see a real paybill transaction land in the ledger during the demo.
9. What does the transport module actually flag?
A school bus is the highest-risk hour of the school day, and the failure that matters most is quiet: a child who boarded in the morning and was never signed off at a stop. A transport module earns its place only if it records boarding and drop-off as separate events, flags the gap between them, and tells the guardian. Anything less is a route list. The wider frame here is that school safety is a process with named responsibilities rather than a piece of equipment, which is the thread running through our summary of the Ministry's 2026 school fire-safety guidelines, written after the Utumishi fire; it is worth reading alongside any transport demo.
Opero's answer: the optional Transport module records routes, stops, vehicles and trips; boarding and drop-off are recorded; "a child who boarded and was never signed off is flagged, not forgotten"; and guardians receive notifications and confirm. Two honest limits: the site does not promise any GPS hardware, so do not expect a live map, and there is no SMS gateway, so ask how a notification reaches a guardian who is not looking at the parent console at that moment.
10. Whose tax rates does payroll use?
Payroll software that ships with "the Kenyan rates built in" sounds convenient until the rates change and the vendor's update is late, or wrong, and the school, which is the employer, is the party answerable to the Kenya Revenue Authority. The safer design is a system where the school enters its own PAYE bands, NSSF, SHIF and housing levy rates, dates them, and can show which rate applied to which month. Ask also for salary history (so a pay rise does not overwrite the old figure), payslips per month, leave types with balances, and an approval step on leave requests.
Opero's answer: the optional HR and Payroll module keeps worker records, leave types, requests, approvals and balances, salaries kept as a history, and monthly payroll runs. The school supplies its own tax rates: PAYE, NSSF, SHIF and the housing levy are configurable, not pre-loaded. That is a duty as well as a feature, so put the KRA page in the bursar's bookmarks.
11. What happens when the internet drops halfway through a register?
Most demos happen on the vendor's laptop on the vendor's connection. Your teachers will use a phone on whatever signal reaches the staffroom. Three tests, in the demo: open the register on a phone with mobile data set to 3G or slower and time it; switch the phone to flight mode halfway through marking, switch back, and see whether the half-finished register survives; and ask which tasks can be done with no connection at all. Ask also about page weight, because a system that loads two megabytes per screen will quietly eat a teacher's data bundle.
Opero's answer: the public site does not describe an offline mode or a low-bandwidth mode, so we cannot tell you it has one. Ask in the demo and test it on your own phone, exactly as you would with any other vendor.
12. How do we leave?
You are choosing a system for three to five years, so ask about the last day before the first. What format is the export (Excel or CSV is fine, a proprietary file is not)? Does it include the full fee ledger, attendance history and every mark, or only current balances? How long after the contract ends is the data kept, and then how is it deleted? What is the notice period, and is there a charge for the export (it should be nil)? The Data Protection Act gives parents rights over their children's data whichever system holds it, so a school that cannot get its own records out has a compliance problem as well as a practical one.
Opero's answer: the public site does not set out export terms, and there is no self-service sign-up (Opero sets each school up after the enquiry form). Put the export question in the notes field of that form and ask for the answer in writing before you sign anything. That advice applies to every vendor on your shortlist.
What a school management system in Kenya costs: the pricing models, with the arithmetic
Every quote you receive will fit one of the six models below. The table works the annual cost for a 400-learner school. Opero's row uses its published prices. Every other row uses a figure we have assumed purely so the arithmetic can be shown; those figures are not quotes from any vendor, and you should replace them with the numbers in front of you.
| Pricing model | Formula for one year | Worked for 400 learners | What to watch |
|---|---|---|---|
| Per child per day (Opero, real prices) | Setup once + learners x modules x 365 | Core only: 20,000 + 400 x 1 x 365 = KSh 166,000 in year 1, KSh 146,000 a year after. All four modules: 20,000 + 400 x 4 x 365 = KSh 604,000 in year 1, KSh 584,000 a year after. | Modules multiply the rate. Enrolment changes the bill month by month. |
| Per child per term (assumed KSh 150 per child per term) | Learners x rate x 3 terms | 400 x 150 x 3 = KSh 180,000 | Ask whether the rate is per module or all-in, and whether a learner who joins mid-term is charged a full term. |
| Per child per year (assumed KSh 400 per child) | Learners x rate | 400 x 400 = KSh 160,000 | Usually billed in advance on projected enrolment; ask what happens if numbers fall. |
| Flat annual licence (assumed KSh 200,000 a year + KSh 40,000 setup) | Setup once + flat fee | 40,000 + 200,000 = KSh 240,000 in year 1, KSh 200,000 a year after (KSh 500 per child at 400 learners) | Tier cliffs: the "up to 500" plan becomes a larger plan at learner 501. Get the cap in writing. |
| One-off licence + maintenance (assumed KSh 350,000 once + 15 per cent a year) | Licence once + (licence x 15 per cent) each year | 350,000 + 52,500 = KSh 402,500 in year 1, KSh 52,500 a year after | Who hosts it, who backs it up, and what "maintenance" excludes. Cheap in year three, expensive if the vendor disappears. |
| "Free" or self-hosted open source | Hosting + a person + backup discipline (assumed hosting KSh 5,000 a month) | 5,000 x 12 = KSh 60,000 for hosting alone, before anyone's time | You become the vendor. Data residency, backups and restores are your problem, and the Data Protection Act obligations are entirely yours. |
Two things the table makes visible. First, per-child models reward small schools and flat licences reward large ones, which is why question 4 matters. Second, a per-term quote of KSh 150 per child sits between Opero's Core only (about KSh 122 per child per term) and Opero's Core plus one more module (about KSh 243 per child per term), so the right comparison is not "which is cheaper" but "which modules is the KSh 150 actually buying". The wider context of what a school spends on everything else is in our guide to the cost of running a CBC school in Kenya; a management system is normally a small line against salaries and the bus.
Three-year cost for a 400-child school: per-child versus flat licence
Boards tend to approve software for a year and live with it for five, so the fair comparison is cumulative. The formula for a per-child model is setup + (learners x modules x 365 x years). The formula for a flat licence is setup + (annual fee x years). The chart below plots both for 400 learners over three years. The Opero lines use its published prices; the flat-licence line uses the same assumed KSh 200,000 a year plus KSh 40,000 setup as the table above, and it is an assumption for illustration only.
| Cumulative to end of | Opero, Core only 20,000 + 146,000 x years |
Opero, all four modules 20,000 + 584,000 x years |
Flat licence (assumed) 40,000 + 200,000 x years |
|---|---|---|---|
| Year 1 | KSh 166,000 | KSh 604,000 | KSh 240,000 |
| Year 2 | KSh 312,000 | KSh 1,188,000 | KSh 440,000 |
| Year 3 | KSh 458,000 | KSh 1,772,000 | KSh 640,000 |
The honest reading is that neither model "wins". At 400 learners on Core only, the per-child price is well under the assumed flat licence; on all four modules it is well over, because the flat licence in this illustration is assumed to cover the office and the classroom but not fees, payroll or transport, and a like-for-like flat quote covering all four would be higher than KSh 200,000. What the chart does is force the right question: which modules are you actually buying, and at what headcount does the arithmetic flip?
That flip point is easy to compute. Set the two annual costs equal: learners x modules x 365 = flat annual fee, so break-even learners = flat annual fee divided by (modules x 365). Against an assumed KSh 200,000 flat fee, the break-even is 548 learners on one module, 274 on two, 183 on three and 137 on four. Below the break-even, per-child is cheaper; above it, the flat licence is. Put your own quote into that formula and the decision stops being a matter of who gave the better presentation.
Opero's answers to the twelve questions, in one table
For readers who want the worked example on a single page, here is the honest scorecard, including the items where the answer is "not yet" or "ask".
| # | Question | Opero, September 2026 | Status |
|---|---|---|---|
| 1 | Data residency | Kenya-hosted in every module, data isolated between schools, no extra charge | Included |
| 2 | Backups and tested restores | Nightly backups, restore tested, every module | Included |
| 3 | Price on one line | KSh 20,000 once; KSh 1 per child per day per module; nothing else recurs | Included |
| 4 | 300 versus 1,500 learners | Same setup fee whatever the size; recurring cost is learners x modules x days | Included, ask to see a database your size |
| 5 | Role separation | Office, teacher and parent consoles, each showing one person only what belongs to them | Included |
| 6 | Attendance flow | Attendance in Core | Included, test on a teacher's phone |
| 7 | CBE report cards | Assessments, marks and report cards in Core | Included, ask to see strand-level bands captured |
| 8 | Fees audit trail | Finance module: fee structures, invoices, receipts, statements, payments, allocations, adjustments, projects, budgets, reporting | Optional module. No M-PESA checkout yet; payments recorded, not collected |
| 9 | Transport safety flow | Routes, stops, vehicles, trips; boarding and drop-off recorded; unsigned child flagged; guardian notifications and confirmation | Optional module. No GPS hardware promised, no SMS gateway yet |
| 10 | Payroll and statutory rates | Worker records, leave, salary history, monthly runs; school supplies its own PAYE, NSSF, SHIF and housing levy rates | Optional module. Rates not pre-loaded |
| 11 | Offline and low bandwidth | Not described on the public site | Ask and test on your own phone |
| 12 | Exit and data export | Not described on the public site; no self-service sign-up, Opero sets the school up | Ask, in writing, before signing |
Case study: Mwangaza Academy, Kitengela (hypothetical)
Mwangaza Academy is a hypothetical 400-learner day school in Kitengela, Kajiado County, running PP1 to Grade 9, with two buses and a bursar, Mr Otieno, who has kept fees on a spreadsheet for six years. The head teacher, Mrs Wanjiru, has been asked by the board to bring a recommendation for Term 1 2027. She has two proposals on her desk: an assumed flat licence at KSh 200,000 a year plus KSh 40,000 setup covering enrolment, attendance and report cards, and Opero.
She works the twelve questions in order. On residency, the flat-licence vendor cannot name the country in writing; Opero can. On backups, both say nightly; she asks both for the last restore date and writes down the answers. On price, she converts everything to per child per year: the flat licence is KSh 500 per child at 400 learners, Opero Core only is KSh 365, and Opero Core plus Finance is KSh 730. On the demo, she insists on a database of 400 learners and three logins, and asks Mr Otieno to try to delete a receipt.
The arithmetic she takes to the board is this. Core plus Finance at Opero is 400 x 2 x 365 = KSh 292,000 a year, or KSh 312,000 in year 1 with setup; on the site's monthly convention that is 400 x 2 x 30 = KSh 24,000 a month. That is KSh 92,000 a year more than the flat licence, but the flat licence does not touch fees at all, and the fee spreadsheet is the thing the board has been complaining about. She notes the "not yet" items honestly: no M-PESA checkout, so Mr Otieno will key payments from the paybill statement each morning; no SMS, so fee reminders will go through the parent console and the school's existing WhatsApp class groups; and she puts the export question in the notes field of the enquiry form and asks for a written answer. Transport, she decides, stays on the paper manifest for one term while the office settles in, with the module to be reviewed at KSh 12,000 a month (400 x 1 x 30) once the first term's report cards have gone out cleanly. No outcome is promised in her paper; what is promised is that every figure in it can be checked.
Running the demo so it tells the truth
- Bring your own data. Thirty real learners with names changed, one real fee structure, one term's real marks for one class. Ask the vendor to load them before the demo, not to show you theirs.
- Ask for three logins. Office, teacher, parent. Try to cross the lines.
- Time three tasks. Marking a register for 50, issuing one receipt against a part-payment, producing one report card with strand-level bands.
- Use a phone. Yours, in your staffroom, on your network.
- Try to delete a receipt and change a mark. Then look for the record of what you just did.
- Write down every "not yet". Vendors who say "not yet" plainly are the ones whose "yes" you can trust. Vendors who say "yes" to everything are describing the roadmap.
The teaching side of the school will still need its planning documents whichever system you choose; a management system stores marks, it does not write the scheme. Our editable lesson plan packs and schemes of work are the paper end of the same chain, and Somo is there when a teacher wants the curriculum's own wording for a rubric descriptor at 9 p.m.
Common mistakes to avoid
- Comparing a per-child quote to a flat quote without converting both to cost per child per year. This is how a school ends up paying KSh 500 per child for a system it believed was cheap.
- Buying all the modules at once. A bursar learning Finance while teachers learn report cards while drivers learn the transport app is three change programmes in one term. Start with the office and the classroom, add the rest once the first term has run cleanly.
- Accepting "we integrate with M-PESA" without seeing a transaction land. Opero says plainly that it does not take payments yet. Some vendors say the opposite and mean a manual upload of the statement.
- Never asking where the server is. The Data Protection Act does not care that you did not know.
- Trusting built-in statutory rates. The employer is the school. Check the rates against KRA whichever system holds them.
- Judging report cards by the print layout. The question is whether a band per sub-strand is captured and traceable, not whether the crest is in the corner.
- Signing without the exit terms. The export format, the retention period and the price of leaving, in writing, before the first term.
- Demoing on the vendor's connection. Your teachers do not have it.
Frequently asked questions
What is a school management system, and does a small school need one?
It is one database that holds enrolment, attendance, assessment, fees and, where relevant, staff and transport, with each person seeing only their part of it. A school of 150 learners can run on paper and a spreadsheet, and many do it well. The point at which a system pays for itself is usually the point at which two people need the same record at the same time: the bursar and the class teacher, or the office and the parent.
How much does a school management system cost in Kenya?
Anywhere from a hosting bill for a self-managed open-source system to several hundred thousand shillings a year for a large school on a flat licence. The only fair comparison is cost per child per year including every recurring item. As a real reference point, Opero charges KSh 20,000 once and then KSh 1 per child per day per module, which is KSh 365 per child per year per module, with nothing else recurring.
Is it legal to keep learner data on servers outside Kenya?
The Data Protection Act 2019 permits transfer outside Kenya only under specific conditions, and the school as data controller has to be able to show those conditions are met. Children's data carries extra protection. Kenya hosting removes the question rather than answering it, which is why it is question 1 in this guide. For the Act itself and current guidance, go to the Office of the Data Protection Commissioner rather than relying on a vendor's summary.
Does Opero collect fees through M-PESA?
Not yet. The Finance module records fee structures, invoices, payments, receipts, statements and adjustments, but there is no M-PESA checkout, so the bursar records payments that arrived through the school's paybill or bank rather than collecting them inside the system. There is also no SMS gateway and no self-service sign-up; Opero sets each school up after you fill in the enquiry form.
Can a school management system produce CBE report cards with CBA bands?
It should, and in 2026 that is a minimum. Check for a band or score per learner per sub-strand, a descriptor behind the band, a history of who changed what, and an export that matches what you upload to the KNEC CBA portal for Grades 7 to 9. Opero's Core includes assessments, marks and report cards; ask to watch a strand-level band being captured in the demo, as you would with any vendor.
How long does it take to set a system up?
The software part is usually days. The slow part is your data: learner records with missing admission numbers, fee balances that never reconciled, class lists with the same child spelt three ways. Budget a term of parallel running for fees in particular. With Opero there is no self-service sign-up; you fill in the "Ask about your school" form with the school name, your name, email, telephone, town or county, number of learners, the modules you are interested in and any notes, and Opero sets the school up.
In summary
A school management system in Kenya is a five-year decision made in a two-hour demo, so the twelve questions above are there to make the two hours count. Where the data lives, whether restores are tested, what the price is on one line, how it behaves at your headcount, whether the roles are separated, how attendance and report cards and fees and the bus and payroll actually flow, what happens when the signal drops, and how you leave. Convert every quote to cost per child per year, use the break-even formula, and write down every "not yet" you hear.
If Opero's answers in this guide match what your school needs, the next step is the enquiry form: ask Opero about your school, and put your export and offline questions in the notes field so the answers come back in writing. And if your school is also thinking about how teachers should use AI tools this year, our AI training for Kenyan schools runs alongside any system you choose.
Further reading
August Complete Bundle: Every Grade
All subjects plus the Holiday Revision Pack in one download, PP1 to Grade 12. Built for the August holiday, the longest revision window before October.
⏳ Only 46 days to the national assessments on 26 October. Start now.
from KSH 300 · Get it now → 📱 M-Pesa, instant download · join parents preparing nowHave a CBC question this article didn't answer?
Ask Somo, Kenya's first AI tutor. CBC-grounded, Kenyan examples, instant feedback. Five free questions a day with no signup, or start a 7-day free trial for 30 questions a day.
Try Somo Free →