Skip to content
Toss ERP user manual
Sign in

Chapter 19 — School Management

Module code: SCHOOL Features: school_dashboard, school_config, school_students, school_admissions, school_attendance, school_calendar, school_timetable, school_academics, school_diary, school_fees, school_promotion, school_reports, school_welfare Home: /school/

The school module is large. Use this table to go straight to your area.

Area Section
Setting the school up 19.3
Students and admissions 19.4–19.6
Attendance 19.7
Timetable and teacher workspace 19.8–19.10
Exams, marks and report cards 19.11
Fees 19.12
Promotion to the next year 19.13
Parent access 19.14
Welfare and sponsorship 19.15
Reports 19.16

19.1 What the module is for

The school module runs an education institution: enrolling students, taking the register, building the timetable, recording marks, issuing report cards and collecting fees. Fees post to the same accounting ledger as everything else, so the school's finances are not a separate system that has to be reconciled by hand.


19.2 Concepts

Concept Meaning
Institution The school. A group can run several.
Campus A physical site of an institution
Academic year The session — 2026-27
Grade A class level — Grade 5
Section A class group within a grade — Grade 5-B. Attendance and timetables are per section.
Subject A taught subject
Class–subject assignment Which teacher teaches which subject to which section. Required before assessments or diary entries can exist.
Period A slot in the school day
Timetable slot A period on a day, filled by a class–subject assignment
Exam term A reporting period — First Term, Mid Year
Assessment One assessed piece — a test, an assignment, an exam
Fee voucher One student's fees for one period
Guardian A parent or carer. One guardian record can cover several siblings.

19.3 Setting the school up

Do this in order. Each step needs the one above.

/school/config/schools/           institutions
/school/config/campuses/          campuses
/school/config/years/             academic years
/school/config/grades/            grades
/school/config/sections/          sections
/school/config/subjects/          subjects
/school/config/periods/           periods in the school day
/school/config/calendar/          the academic calendar
/school/config/exam-terms/        exam terms
/school/config/grading-weights/   how assessment kinds are weighted
/school/config/letter-grades/     the letter grade scale

1. Institution and campuses

Create the institution with its name, address and contact details. Add a campus for each site. Everything else belongs to an institution.

2. Academic year

Create the year with its start and end dates, and mark the current one active.

3. Grades and sections

Create each grade, then the sections within it. Set each section's capacity and its class teacher.

4. Subjects

Create the subjects taught, with their codes.

5. Class–subject assignments

Screen: /school/config/class-assignments/

Record which teacher teaches which subject to which section. This is the step most often missed, and almost everything downstream depends on it — the timetable is built from assignments, assessments belong to one, and the teacher's own screens are scoped by them.

6. Periods

Screen: /school/config/periods/

Define the school day: period 1 from 08:00 to 08:40, and so on, including breaks.

7. The academic calendar

Screen: /school/config/calendar/

Term dates, holidays and events. Attendance and fees both read it.

8. Document requirements

Define which documents a student must supply at admission — birth certificate, previous school record, photographs — so an incomplete file is visible rather than discovered later.


19.4 Admissions

/school/admissions/                    application list
/school/admissions/<id>/admit/         admit an applicant
  1. An application is recorded with the student's details, the grade applied for and the guardian's details.
  2. Review the application and the documents supplied.
  3. Select Admit. The applicant becomes a student and is enrolled into a section.

19.5 Students

/school/students/                              list
/school/students/new/                          add a student
/school/students/<id>/                         detail
/school/students/<id>/edit/                    edit
/school/students/<id>/documents/upload/        upload a document
/school/students/<id>/photo/upload/            upload a photograph
/school/students/<id>/id-card/                 print an identity card

Adding a student

  1. Select New student.
  2. Personal — name, date of birth, gender, place of birth, nationality, and the identity number where one is used.
  3. Guardian — the parent or carer, their relationship, phone, email and address. Where siblings share a guardian, use the same guardian record; that is what lets one parent login cover all their children.
  4. Enrolment — the academic year, grade and section, the admission date, and the admission number.
  5. Medical and other — allergies, conditions, emergency contact.
  6. Save.
  7. Upload the photograph and the required documents.

Print the identity card from /school/students/<id>/id-card/.


19.6 Enrolment

A student is enrolled into a section for an academic year. Moving a student between sections mid-year is an enrolment change, not an edit of history — the register for past dates stays with the section they were actually in.


19.7 Attendance

/school/attendance/                        attendance list
/school/attendance/mark/<section-id>/      take the register for a section
/school/attendance/report/                 attendance report

Taking the register

  1. Open /school/attendance/ and choose your section, or go straight to the marking screen.
  2. The roster is shown with a status control against each student.
  3. Mark each student present, absent, late or on leave.
  4. Save.

Attendance is taken once a day per section, not per period.

Absence notifications

When a student is newly marked absent, a notification is queued to the guardian. Every notification is recorded at /school/notifications/, with its status, so you can see what was sent and what was not.

Check what your installation actually sends. In a default installation the WhatsApp provider is a stub: the message is recorded but not delivered. A live provider has to be configured before parents genuinely receive anything. The notification log shows the difference.

Reports

/school/attendance/report/ gives attendance by student, section, grade or date range, with percentages. Use it to find chronic absence early, which is the point of taking a register at all.


19.8 Timetable

/school/timetable/                                the grid
/school/timetable/teacher/<id>/                   one teacher's week
/school/timetable/workload/                       teaching load per teacher
/school/timetable/substitutions/                  cover arrangements
/school/timetable/substitutions/new/              arrange cover

Building it

  1. Confirm periods and class–subject assignments exist.
  2. Open /school/timetable/ and choose a section.
  3. Fill each period on each day with a class–subject assignment.
  4. Save.

Clashes are checked as you go. A teacher cannot be in two places at once, and a room cannot hold two classes. The system refuses the clash rather than accepting it and letting you find out on Monday.

Workload

/school/timetable/workload/ shows periods per week per teacher. Use it to balance allocation before the term starts.

Substitutions

Screen: /school/timetable/substitutions/new/

When a teacher is away:

  1. Choose the date and the slots to cover.
  2. Choose the covering teacher. The system offers teachers who are free in that period — and it excludes anyone on approved leave in the HR module, so you are not offered somebody who is not in the building.
  3. Save.

The covering teacher's own screens then include the covered class for that day: they can take its register and write its diary. The arrangement is day-scoped, so it does not linger.


19.9 The teacher workspace

Screen: /school/my-classes/

A teacher's own home page.

Panel Shows
Today Today's periods, in order, with quick links to take the register and write the diary
Needs attention Registers not taken, assessments with marks missing, assessments coming up
My classes Every class–subject assignment held
Covering today Any classes being covered today

If a teacher's account is not linked to an employee record, the page says so plainly rather than showing them somebody else's classes. Fix it by linking the account (Chapter 4).


19.10 Lesson diary and homework

/school/diary/            diary list
/school/diary/new/        new entry
/school/diary/<id>/       edit

A diary entry records what was taught and what was set as homework for one class on one day.

  1. From the teacher workspace, select Add diary on a period — the class, subject and date are filled in.
  2. Enter what was covered and the homework.
  3. Attach worksheets or reference material.
  4. Save as draft, or publish.

Teachers may edit their own entries, and entries for classes they are covering today. Staff with school-wide rights may edit any.

Draft against published is a real distinction: a draft is a plan, a published entry is the record parents may see.


19.11 Exams, marks and report cards

Home: /school/academics/

Setting up grading

1. Exam terms/school/config/exam-terms/ — First Term, Mid Year, Final, with their dates.

2. Assessment weights/school/config/grading-weights/ — how much each kind of assessment counts towards the term grade, per grade and year. A common split is 70% exam, 20% test, 10% assignment.

3. Weight templates — reusable weighting patterns that can be applied to a grade and term in one action instead of being retyped for each. Seeded defaults are provided.

4. Letter grade bands/school/config/letter-grades/ — the percentage ranges for A, B, C and so on. The scale belongs to the institution, so a school with its own scale sets it here rather than living with a default.

Creating an assessment

  1. Open /school/academics/ and choose the section and term.
  2. Select New assessment.
  3. Enter the subject, the kind (test, assignment, exam), the name, the date and the maximum mark.
  4. Save.

An assessment belongs to a class–subject assignment, which is why those must exist first.

Entering marks

  1. From the academics hub, open the assessment and choose Mark entry.
  2. The class roster is shown as a grid.
  3. Enter each student's mark. Marks above the maximum are refused.
  4. Save.

Report cards

  1. From the academics hub, open Report card for a student.
  2. The card shows each subject's assessments, the weighted term result, and the letter grade from the institution's bands.
  3. Print it from the printable version.

Gradebook export

Export marks to CSV or Excel — either a whole section and term, or a single assessment. Available from the academics hub and from the mark entry screen.

Notifying results

Notify results on the mark entry screen or the report card queues a message to guardians. Like absence notifications, delivery depends on a live provider being configured; the notification log records what was queued either way, and can be filtered to results messages.


19.12 Fees

Home: /school/fees/

/school/fees/                                       outstanding fees hub
/school/fees/types/                                 fee types
/school/fees/structures/                            fee structures
/school/fees/generate/                              generate vouchers
/school/fees/vouchers/<id>/                         voucher detail
/school/fees/vouchers/<id>/post/                    post it to the ledger
/school/fees/vouchers/<id>/pay/                     register a payment
/school/fees/vouchers/<id>/refresh-waiver/          refresh a campaign waiver
/school/fees/vouchers/<id>/apply-contributions/     apply sponsor contributions
/school/fees/import-payments/                       import payments from a file
/school/fees/payment-claims/<id>/confirm/           confirm a parent's payment claim
/school/fees/payment-claims/<id>/reject/            reject one

Before you start

Fees post to the accounting ledger, so Chapter 12 must be set up: a chart of accounts, a sales journal, and a receivable account.

1. Fee types

/school/fees/types/ — tuition, transport, examination, laboratory, uniform. One type per genuinely separate charge, because the type is how income is reported.

2. Fee structures

/school/fees/structures/

A structure states what a grade pays in a year.

  1. Select New structure.
  2. Choose the institution, grade and academic year.
  3. Add a line for each fee type with its amount.
  4. Add instalments if fees are paid in parts — monthly, termly. The generator then produces one voucher per instalment per student.
  5. Save.

3. Generating vouchers

/school/fees/generate/

  1. Choose a section, or a grade and year to cover everyone.
  2. Choose the period.
  3. Generate.

A voucher is created for each student: the gross amount from the structure, any waiver, and the net payable. Vouchers are created as drafts.

Where a fundraising campaign covers a student's costs (Chapter 20), the waiver is pre-filled from it. Refresh it later with Refresh waiver if the campaign has raised more since.

4. Waivers

On a draft voucher, enter a manual waiver — a scholarship, a sibling discount, a hardship reduction. The net payable reduces accordingly.

Waivers can only be changed while the voucher is a draft. That is the control: once posted, a change means a credit note, which leaves a trail.

5. Posting

Post turns the voucher into a customer invoice in the ledger. The family owes the money from that moment, and the fee appears in the accounting reports.

6. Taking payment

Route Screen
At the office /school/fees/vouchers/<id>/pay/ — record the amount, method and reference
Bulk from a bank file /school/fees/import-payments/ — upload the file; matched payments are registered and unmatched ones reported for follow-up
Parent claims a payment online The parent submits a reference through the portal; staff confirm it at /school/fees/payment-claims/<id>/confirm/
Sponsor contributions Apply contributions on a draft voucher, drawing on posted contributions for that student

Payment claims

A parent paying by bank transfer submits the reference through the portal. It arrives in the pending queue on the fees hub.

Confirming a claim registers a real payment. Check it against the bank before confirming — the claim is the parent's assertion, not proof.

The fees hub

/school/fees/ shows outstanding fees and the pending claims queue. It is the daily work list for the fees office.


19.13 Promotion to the next year

/school/promotion/                     choose a section
/school/promotion/<section-id>/        preview and apply

At the end of the year:

  1. Open /school/promotion/ and choose a section.
  2. Preview. Each student is listed with the section they would move into. Adjust anyone being held back or moved elsewhere.
  3. Check the whole list.
  4. Apply.

Preview properly. Promotion moves a whole section of children in one action, and unpicking it is slow. Read the list before applying, not after.


19.14 Guardian access

/school/guardian-access/                    list of guardians and their access
/school/guardian-access/<id>/grant/         create a login
/school/guardian-access/<id>/revoke/        withdraw it
/school/guardian-access/<id>/reset/         reset the password
  1. Find the guardian in the list.
  2. Select Grant. A login is created and the credentials are shown once — copy them before leaving the page.
  3. Give the credentials to the parent.

One login covers every child on that guardian record, which is what makes siblings work properly.

Parents use the mobile app at /m/ — see Chapter 22 — where they can see attendance, the diary, results and fees for each of their children.

Parents see only their own children. A parent who reaches another student's record by changing a number in the address receives "not found", not a permission error — telling them the record exists would leak the roll.

Granting, revoking and resetting all require edit rights, not just view. A read-only school account cannot create parent logins.


19.15 Welfare and sponsorship

/school/welfare/                    welfare dashboard
/school/welfare/students/           welfare student list

Flags students who are orphans, eligible for zakat, or fee-sponsored, so the welfare office has a working list.

Donors and fundraising live in the Partners module, not here — see Chapter 20. A donor is a partner like any other, and a contribution posts to the ledger. This screen links across to campaigns.


19.16 Reports

/school/reports/teacher-activity/    what teachers have recorded
/school/reports/compliance/          what has not been done
/school/notifications/               notification log

Teacher activity

Per teacher: registers taken and how promptly, marks entered, assessments created, diary entries drafted and published, and the proportion of timetabled slots with a diary entry.

It is derived entirely from work already recorded, so nobody has to fill in a form about filling in forms.

Read it as a workload and support tool. A teacher with low diary coverage may be struggling with the system rather than with teaching.

Compliance

The gaps, today:

  • Registers not taken today.
  • Assessments past their date with marks missing.
  • Timetabled slots in the review window with no diary entry.

Teachers with report rights see their own row and their own classes' gaps. School-wide staff see everything.


19.17 Routine

Daily
  [ ] Every section's register taken by mid-morning — check the compliance report
  [ ] Diary entries published for today's lessons
  [ ] Arrange cover for absent teachers
  [ ] Process fee payments received; confirm parent payment claims against the bank

Weekly
  [ ] Review the compliance report and follow up the gaps
  [ ] Review attendance for chronic absence
  [ ] Review outstanding fees on the fees hub

Per term
  [ ] Create assessments for the term
  [ ] Enter marks by the deadline
  [ ] Generate and check report cards
  [ ] Generate the next period's fee vouchers

Per year
  [ ] Create the new academic year, grades and sections
  [ ] Run promotion, previewing every section
  [ ] Create fee structures for the new year
  [ ] Rebuild the timetable

19.18 Troubleshooting

Symptom Cause Fix
A teacher's screens are empty No class–subject assignments, or the account is not linked to an employee Create the assignments; link the account
An assessment cannot be created No class–subject assignment for that section and subject Create it
The timetable refuses a slot The teacher or room is already booked in that period The clash message names the conflict
No teachers offered for cover They are all teaching, or on approved leave in HR The list deliberately excludes both
A register cannot be taken The section has no enrolled students, or the date is outside the calendar Check the enrolment and the calendar
Marks will not save A mark exceeds the assessment maximum Correct it
A report card shows no grade No assessment weights for that grade and term, or no letter grade bands Configure both
Vouchers are not generated No fee structure for that grade and year Create the structure
A voucher cannot be posted Accounting is not set up, or the period is locked See Chapter 12
A waiver cannot be changed The voucher is posted Issue a credit note instead
A parent cannot sign in No guardian access granted, or the password was never given Grant or reset it
A parent sees only one child The children are on different guardian records Put siblings on one guardian record
Granting access is refused View-only school rights Edit rights are required
Notifications are recorded but never arrive The provider is a stub in a default installation Configure a live provider
A student appears in the wrong class The enrolment was not changed Change the enrolment, not the history