# School ERP that gets the fees right before it tries anything clever

Canonical: https://erpfly.com/industries/education/
Last updated: August 17, 2026

You run a school or a small group of them. Admissions happen in a form builder, fees in the accounts package, and attendance on paper registers someone types up on Friday. Parents ring the office to ask what they owe. Most school ERP projects start from exactly this point.

### Where standard ERP gets awkward in education

- **Concessions calculated by hand.** Sibling discounts, staff children, scholarships and hardship cases all stack differently. The bursar keeps the rules in her head and a spreadsheet only she can follow.
- **Fee reminders that feel random.** Some parents get three chasers, others none. There's no link between what's overdue and who gets contacted, so the office sounds disorganised.
- **Transport fees out of step with routes.** A family moves house, switches bus route mid-term, and the transport charge stays on the old stop for months.
- **Admissions waitlists in a shared inbox.** Applications, sibling priority, entrance assessments and offers are tracked by email. When a place opens up in Year 4, the office has to dig through old emails to find who's next.

Modules education teams start with: https://erpfly.com/modules/school-management/, https://erpfly.com/modules/invoice-management/, https://erpfly.com/modules/attendance-management/, https://erpfly.com/modules/hr-payroll/, https://erpfly.com/modules/fleet-management/

### Fees first, everything else later

Ask a school what they want from an ERP and you'll get a long list: timetables, homework, parent apps, library, hostel, canteen. Ask the bursar what keeps her up at night and it's always fees.

We'd start there. When fees are wrong, parents lose trust quickly, the office drowns in phone calls, and cash flow suffers in a sector where it's often tight. Get invoicing, concessions, instalments and reminders working properly, and the rest of the project has goodwill to spend.

### Frappe Education, Odoo and the gap between them

On ERPNext, the Frappe Education app gives you a genuine head start. Students, Program Enrollment, Student Groups, Course Schedules, Student Attendance, Assessment Plans and Fee Structures with Fee Schedules that generate invoices. It's aimed more at colleges than primary schools in places, but the bones are sound.

On Odoo, there's no official app, so you're choosing between a third-party addon and a module generated for you. Odoo's portal, website forms and email templates are good, which helps with admissions and parent communication.

Neither handles the fee rules most schools actually have. Sibling discounts that depend on who else is enrolled, concessions that stack in a particular order, report card holds and mid-term changes to transport all need custom logic. Most of the [school management module](https://erpfly.com/modules/school-management/) work we're asked for is exactly this.

### Three children, three instalments, worked through

Take a family with three children, all enrolled for the autumn term. The term fee is $2,400 per child, payable in three equal instalments.

- First child pays the full $2,400.
- Second child gets 10% off, so $2,160.
- Third child gets 15% off, so $2,040.

That's $6,600 for the term, so $2,200 per instalment. Instalment one is due 1 September, two on 1 October, three on 1 November.

Instalment two goes unpaid. On 31 October the module emails the parent with the balance and a payment link. Report cards are due out on 20 November, and those for all three children are marked "held" until it clears. The principal, Mr Okafor, can override that for a family he knows is going through a hard time, and the override is logged with his name.

Then the eldest child leaves at Christmas. Does the middle child become the "first child" and lose their discount from January? Schools answer this differently, and we'd rather you decide before the module is generated than discover it when a parent complains. We'll ask. The rule goes into one Python function with a test, so the bursar's next policy change is a small edit, not a rewrite.

### Admissions season is its own project

Admissions has a different rhythm from the rest of the year. Enquiries, applications, assessments, sibling and staff priority, offers, deposits and waitlists all happen in a few intense months. It's worth treating as a separate module with its own statuses, not a handful of extra fields on Student.

A good admissions flow ends by creating the Student, the Program Enrollment and the first fee invoice in one step, so the office doesn't retype a family's details in September.

### Buses and registers come next

Once fees are stable, transport and attendance are usually the next two requests, and they're linked more than people expect. A transport module holds routes, stops and the students assigned to each. When a family changes address, the office moves the child to a new stop with an effective date, and the transport charge on the next instalment changes to match. No more old-stop billing until someone complains.

Attendance is simpler than vendors make it look. Teachers mark a register on a tablet at the start of each period or day. Anyone absent without a note triggers a text to the parent by 10am. Patterns (say, five unexplained absences in a half term) go to the pastoral lead. Keep the register screen to one tap per student, or teachers will go back to paper within a month.

### Please don't rebuild the LMS inside your ERP

Homework, lesson plans and online quizzes are well served by tools teachers already know. Rebuilding those in ERPNext or Odoo is expensive, and teachers will resent it. Keep the ERP for students, fees, [attendance](https://erpfly.com/modules/attendance-management/), staff [payroll](https://erpfly.com/modules/hr-payroll/) and school bus [fleet management](https://erpfly.com/modules/fleet-management/), and sync class lists outward. For how the generated code is structured, see [ERPNext custom module development](https://erpfly.com/erpnext-custom-module-development/) or [Odoo module development](https://erpfly.com/odoo-module-development/).

### FAQ

### Is there an education app for ERPNext already?

Yes. Frappe Education is a separate open-source app covering students, programs, courses, student groups, fee structures, fee schedules, attendance and assessments. We generally build on it and add the rules your school has that it doesn't.

### Does Odoo have a school management app?

Not an official one. There are community and third-party education addons, some good and some abandoned. We can extend one you already use or generate a school module designed for your version of Odoo.

### Can parents log in to see fees and attendance?

Both platforms have a portal. We usually generate a parent view that shows each child's invoices, payments, attendance and report cards, with parents only able to see their own children.

### Can it take online fee payments?

Yes, through a payment gateway both platforms support. The gateway handles card data, so card numbers never touch your ERP. We generate the reconciliation that marks instalments paid when the gateway confirms.

### Will it replace our learning management system?

We'd advise against it. Keep Google Classroom, Moodle or whatever teachers already use for lessons and homework. The ERP should hold enrolments, fees, attendance and staff, and sync class lists across.