26 modules across five areas. Each one reads the same learner and staff records — no re-typing, no second copies, no drift.
Rubric mark entry for every learning area, with strands and per-strand rubrics. Four-level (EE/ME/AE/BE) and eight-level (KJSEA) scales selectable per school, SBA scores captured 0–100 and blended with the term exam into a weighted composite level.
Learn more: CBC assessments & rubricsNumeric exam marks with auto-save and absent handling, admin-configured grading scales, and one-click locking that computes dense stream and grade positions in a single transaction.
School-branded PDF report cards with strand detail, competencies and values, teacher comments and a composite Overall. Bulk generation as durable background jobs with email + SMS notification to guardians.
Learn more: Report cardsPer-stream weekly grid editor with auto-save. Teacher double-booking is rejected at write time — the conflicting class is named — and one-click auto-generation fills the term from your learning areas and assignments.
Class and subject teachers post homework with due dates; the marking grid records done/late/excused with feedback. Guardians see an outstanding/marked split in their portal.
Fee lines per grade per year, billed per term or annually. Invoice discounts (waivers, sibling, staff) applied at ledger level with a mandatory audited reason.
Learn more: Fee structures & invoicingSTK Push from the bursar screen and the parent portal, Paybill collection with an unmatched-queue reconciler, and B2C payouts for refunds and salaries. Per-school credentials, sandbox-verified.
Learn more: M-Pesa Daraja — nativeSequential persisted receipt numbers with duplicate reprint marking, a daily cash-up grouped by settlement, and card payments via Paystack — every posting idempotent and lock-guarded.
Learn more: Receipts & reconciliationInvoices queue automatically for KRA e-invoicing with a durable retry worker, the fiscal QR prints on receipts and statements, and a fiscalised invoice can be reversed with a credit note.
Learn more: eTIMS fiscalisation (KRA)Per-learner statements with carried-forward balances, collection and arrears reports, bursary cheque tracking, and CSV exports for everything.
Learn more: Fee statements & reportsCatalogue with copy counts, issue/return with availability enforcement, class-set bulk issue, daily overdue SMS sweeps and lost/damaged charges posted to the fee ledger.
Routes with vehicle, driver and monthly charge; seat-capacity warnings and one active route per learner, enforced.
A clinic daybook for complaints, treatment and outcomes — recovered, observed, referred home or to hospital — with temperature and notes.
Incident and commendation logs with validated categories. Minor incidents stay portal-visible; severe incidents immediately SMS the guardians.
A daily staff register with month-to-date rates, and seven leave types where the person who recorded a request can never be the one who approves it.
Complete learner profiles with guardians, biodata and UPI discipline, bulk CSV import with per-row validation, transfers, withdrawals and end-of-year promotion.
Learn more: Student records & admissionsGuardians request a one-time 6-digit code from the parent portal — SMSed to them, stored only as a hash, single-use, expiring at 18:00 the same day — verified at the gate with the learner's card on screen.
Learn more: Secure pickup codesPer-learner release taps and a school-wide "School dismissed" broadcast, each SMSing guardians the release time — plus a visitor log with check-in/out and CSV export.
Learn more: Dismissal & visitorsOffice deposits (cash or M-Pesa) and tuck-shop spends on a never-negative ledger with a stamped running balance. Guardians see the statement in their portal and get a low-balance SMS at a threshold the school sets.
Learn more: Pocket-money custody bookNumbered beds with one learner per bed, morning/evening roll calls whose unexplained absences alert guardians, and exeat passes from guardian request to gate exit/return — with a daily 17:00 overdue sweep.
Learn more: Boarding: beds, roll calls & exeatsPAYE, SHIF, NSSF and Housing Levy as effective-dated, editable rate sets — a KRA gazette notice is data entry, never a deploy. Payslip PDFs, bank files, NSSF contributions, salary advances and M-Pesa B2C salary disbursement.
Learn more: Payroll — zero hardcoded ratesNine roles — from Super Admin down to single-purpose Gate and Tuck Shop accounts — enforced by a permission matrix on every server action, with full audit logging.
Fee statements and M-Pesa payments, results and report cards, homework, the school diary with acknowledgements, pickup codes and pocket money — one OTP login for all their children.
Learn more: Parent portalBranded sender IDs with per-message cost tracking, merge-field templates, a WhatsApp Business channel, and every notification on durable background jobs with retries.
Any number of schools on one platform, each fully tenant-scoped, with a Super-Admin console, per-school branding and safe impersonation for support.
Ministry-readiness reporting, the learner-register export, consent capture with enforcement, per-learner data export and leaver anonymisation — aligned to the Data Protection Act, 2019.
Learn more: KEMIS & DPA tooling14 days, full features, no card required — create your school and explore every module in minutes. Big school? Book a guided walkthrough instead.