1. Digital payments without a second ledger
Provider credentials belong in Settings, not on the counter screen. The counter uses Transactions → Digital Payments; the keys are configured once under Settings → Digital Payment Settings.
- Configure one provider at a timeEnter the live credentials and save. Test the connection before importing a term's worth of collections.
- Confirm the learner code is uniqueMatching depends on a stable payment code per learner. If two learners share a code, stop and fix the master data first.
- Retrieve and reviewMatched payments post against the learner. Unmatched references — missing code, duplicate code, unfamiliar amount — wait in a review list with date, reference and amount.
- Decide the unmatched onesAttach a reference to the right learner, or leave it for the bursar. Do not create a learner to make an import disappear.
| Status | Meaning | What to do |
|---|---|---|
| Matched | The learner code is unique and the amount is recorded. | Nothing; it is in the ledger. |
| Unmatched | No learner code or a duplicate code. | Resolve in the review list while the parent still remembers paying. |
| Pending / initiated | The payer has not completed the provider checkout. | Do not receipt it. Ask the parent to finish or try again. |
| Failed / cancelled | The checkout did not complete. | No fee receipt. It is not an API fault; the parent can retry. |
2. Bank reconciliation
Reconciliation proves the ledger's bank balance against the statement. It is not a place to “fix” a missing receipt.
- Enter the statement closing balance and dateUse the date the statement was issued.
- Tick each statement line against a ledger entryMatched items disappear from the reconciling list.
- Investigate what remainsAn unpresented cheque is normal; an unknown debit is not. Post the bank charges and interest as vouchers.
- Finish with zero unreconciled differencePrint or save the reconciliation with the term's accounts.
Reconcile monthly, not at year end. A month of unmatched lines is a morning's work; a year is a week of arguments.
3. Fixed assets and depreciation
- Add each assetName, category, purchase date, cost, useful life and location. A vehicle and a laptop do not share a life.
- Choose the depreciation methodStraight line is usual for school furniture and buildings; confirm the method your auditor expects.
- Read both columnsThe register shows book depreciation and a URA-style tax depreciation column. They can differ; that is the point.
- Post the period chargeGenerate the depreciation voucher for the period and post it so the ledger agrees with the register.
4. Payroll
Payroll is optional and switched on per school in Features (F1). Keep it off until the employee data is correct.
- Complete payroll mastersEmployee number, TIN, NSSF number, gross pay and the earnings that make it up.
- Enter period inputsOvertime hours, leave taken and any paid-in-lieu days for the month.
- Review deductionsPAYE, Local Service Tax and NSSF. Confirm the current bands with URA or your accountant — the system's figures are calculation aids.
- Post the payroll voucherThe wage cost and statutory liabilities post to the ledger. Payslips print from the same record.
5. Budgets and variance
- Set the budget by ledger and periodTerm or month, depending on how the board reviews spending.
- Compare with actualThe variance report shows posted transactions against the budget, not against a separate spreadsheet.
- Explain large variancesWrite the reason in the board pack. A variance you cannot explain is a control problem, not a reporting problem.
- Revise deliberatelyIf the board approves a revised budget, record it as a revision — not by editing history.
6. Multi-school groups
Each school keeps its own database. The administrator switches between schools; the director reads a consolidated view.
- Create each school under Settings → SchoolsOne database per school, even if they share an owner.
- Keep school-specific settings separateFee structures, report card crests and bank details belong to the school, not the group.
- Give the director report-only accessGroup views are for reading. Posting stays with each school's bursar.
- Back up every databaseA group backup routine that copies only one school is not a backup.
7. SMS routing
The Message Centre sends the same notice through whichever route the school has configured: Ego, Yoola, Genius, Africa's Talking, an Android handset bridge, or a GSM modem.
- Configure the provider onceAccount credentials and sender ID in Settings. Send a test to your own phone before a class broadcast.
- Choose the audience carefullyA class, a stream, guardians with a balance, or selected learners. Confirm the count before sending.
- Keep messages shortOne action and one deadline. Report cards are not sent as SMS; send the portal link.
- Record what was sentDelivery reports depend on the provider. The system records recipients; it does not promise a delivery time.
8. Timetable
- Create periods and days firstAgree the period times with the director of studies before entering lessons.
- Assign teacher, subject, class and roomThe system checks teacher and room conflicts as you build.
- Print the views you needPer class for the notice board, per teacher for the staffroom, and a wall sheet for the office.
- Change one period at a timeA bulk reshuffle hides the clash that caused it. Move, re-check, then print.
The timetable is built inside Books-pro. It does not import a file from aSc Timetables.
9. Report-card season
The same week every term, with the same failure points. Put the dates in the school calendar and assign each row an owner.
| When | Task | Owner | Done when |
|---|---|---|---|
| D-10 | Confirm assessments and subject weights | DoS | Every subject has an assessment record for the term |
| D-7 | Enter or import all marks | Class teachers | Class summary shows no missing marks |
| D-5 | Moderate a sample of scores | Heads of department | Sample checked and signed |
| D-3 | Calculate positions and totals | DoS | Position rule is consistent across streams |
| D-2 | Write remarks | Class teachers | Every learner has a class-teacher remark |
| D-1 | Print a proof batch | Office | One card checked against the marksheet |
| D-day | Batch print and approve | Head teacher | Term locked after approval |
| D+1 | Publish the portal | Office | Parent access tested on one phone |
10. Roles and security
Screen-level rights protect the school and the staff. Start from the smallest access that lets a person do the job.
| Role | Can | Must not |
|---|---|---|
| Bursar | Receipt, vouchers, payment imports, fee reports, statements | Change company settings or payroll rights |
| Accountant | Journals, reconciliation, assets, payroll if appointed | Approve results or publish the portal |
| Class teacher | Mark entry for assigned classes | See fee balances, payroll or other streams' marks |
| DoS | Classes, subjects, mark oversight, timetable | Post finance vouchers |
| Head teacher | Reports, result approval, publishing | Routine posting (keep it separate) |
| Director | Report-only across the school or group | Edit masters, post, or change rights |
| IT administrator | Install, backup, restore, user creation | Approve financial adjustments |
When someone leaves, disable the account the same day, change any shared provider passwords, and review the rights list. Export the audit trail for the period they worked if there is a dispute.
11. Backup and restore
A backup is only real when you have restored it. Test the procedure once a term, into a folder — never over live data.
- Copy the whole data folderThat includes the database and any provider key file stored beside it. A database without its key cannot read encrypted settings.
- Keep a copy off the serverExternal drive in another room, or a secure account controlled by the school.
- Restore into a test locationStop the service, copy the backup into a separate directory, point a test instance at it, and open the day book.
- Record the testDate, backup name, who restored it, what document was checked. This is the evidence an auditor asks for.
12. Remote access
Remote access is optional. It lets a director read reports or lets support help from outside, but it exposes the school server to the internet and must be set up deliberately.
- Use the school's own domain or a managed tunnelTraffic must be HTTPS. An open HTTP port on a school router is not acceptable.
- Restrict who can reach itNamed accounts, strong passwords and the smallest rights that do the job.
- Verify after every changeLoad the public address from a phone on mobile data, not from inside the school network.
- Know how to switch it offIf the tunnel or certificate fails, the school must still be able to work on the LAN.
We set this up with the school using its own domain and credentials. Support never needs your payment provider keys.