Try ERPNext Buy Support Partners Foundation Foundation Members

Education domain Fee module redesign

JayRam, I think you have nailed the requirements for schools with respect to the discounts, due dates, cash payments. These are exactly the things I was looking for when testing your system. 90% payments made in my school is through cash every month and as per the current setup adding this every month is cumbersome. Auto enrollment of the structure to student each month is a must have feature. I can discuss these exact cases and provide you data for almost all the cases JayRam mentioned.

Hopefully my first post was not too lengthy. :grinning:

That will enable discount on overall fee amount. How will you handle the discount given per category?

Any news about the discount feature?

Hi @zefanja,
Could you please explain in details exactly which workflow are you using for the fee management. Are you creating the fee separately for each student or just creating the fee schedule for creating the bulk fees records. If we make a new doctype for the discount, how can this be useful for you instead of the current workaround?

Hi @ManasSolanki,

currently we don’t use ERPNext, because of the lack of percentage discounts. I’ll try to explain, how our fees are structured.

Parents get discounts, if they have more than 1 child in our school. E.g. 10% for the first, 20% for the second, but not more than 30%. Same for employees, who get an additional discount (e.g. 90%, but only if they work 100% for us. If they have part-time job, the discount is less).

As far as I understand the fee structure I have to implement the following fees for e.g. Program A:

  • Program A - no discount
  • Program A - parents - 2. Child
  • Program A - parents - 3. Child
  • Program A - parents - 4. Child
  • Program A - parents - 5. Child
  • Program A - full employee - 2. Child
  • Program A - full employee - 3. Child
  • Program A - full employee - 4. Child
  • Program A - full employee - 5. Child
  • Program A - part-time 75% - 2. Child

We would have to create lot’s of fee structures to have every possible case per program.

Maybe I haven’t understand the fee module and maybe there is a much easier way, but this is what I think would be nice:

First Option:

have a seperate discount field, so you can select a general fee structure (let’s say Program A) and in addition apply a percentage discount after selecting the right discount. In this case you need to create the several percentage discounts just once and the actually absolute discount is calculated automatically.

Second Option

Let ERPNext calculate everything. There should be a way to set up discounts based on conditions, e.g. “Give 10% discount if this student is the second oldest sibling” or “Give X% discount, if the student’s guardian is an employee who has a 60% job”. I’m not sure if this is possible, but if you are able to create these kind of conditions with custom fields from different docTypes - that would be a huge thing!


Hi @zefanja
Thank you for your detailed explanation. If you try to implement the fees module, you will find that there can be two ways to process the fees.

  1. Create the fees records for each student individually. In this case, we can create the discount section in the Fees doctype in which discount can be applied on total amount (either flat or % based on your type)
  2. Fees record creation via the Fee Schedule. This is another approach in which bulk fee record can be created in one go for the given student groups. In this case, we have to make a separate doctype for Discount. In this doctype, we can determine for a particular student category and fee category how much discount should be applied while creating the fees records.

You can explore the Sales Order discount section (similar to the 1st solution) if you want to see how this will be in work.

If you are only stuck only because of the discount and want to accelerate the development process then I will suggest you can open a Bounty or Paid feature development.

I have actually no idea how much it would take to implement these options. What is a fair estimated price/bounty for this feature?

@zefanja I don’t have much idea about the costing related to the development of this feature but it won’t cost much as this is few hours work. However, you can create a Job post on the or can send an email to for the quotation.

We recently introduced ERPNext Education domain to a school - Fees late payment penalty (Fine) was a requirement. The fines are applied based on the time lapse between the due date and payment date. At present this doesn’t seem to be present, I thought I’ll share some info on the specifications we heard from the prospect. Thanks!

1 Like

That’s great. How are you planning to implement the late fees payment penalty? We have thought that as to create another fee records for the late fees.

For me I am planning to create a Fee Category (Late Payment Penalty) and a Fee will be created automatically after a defined date the amount being a % of ovedue amount

As Manas said, I guess the scheduler should create another Fees record but with a qualifier to identify late fees and possibly book it to a separate receivable account. Also, referencing to the original Fees record should help while making the payment entry.

We’ll sync when we get to work on this.

I think instead of creating the fee records via the scheduler and updating the value daily, we should create the fees record for the late fee just before payment entry. It will reduce a lot of work and that late fee record can also be booked against a particular account. We can create a simple report for the outstanding fees and can show the total late fee till that date in that report.

I thought so too, but it seems the books (Receivable Account) should reflect this on the date the fine becomes due.

Generally, the receivable should be updated if you have also booked some income and daily booking income for the late fees seems questionable to me. We can give a “Generate Late Fees” button in the fees doctype which will create the fees record and automatically calculate the late fee. This records will be submitted by the user and payment entry can be done with all the fees records including the late fee records.

1 Like

Hi @ManasSolanki,

Any updates on this. Any provision in the system for late fee payment collection.

I. Ability to map Student to customer, if no customer is selected, same student record is created as the customer.
a. Option to select a guardian as the customer on student record; hence, many bills can be accumulated into a guardian in case they have more than one child as student.

II. When creating fees from Fee Schedule, the system to create invoices, instead of general ledger entries directly. This will enable access of student bills on all receivables reports, e.g. accounts receivable for aging.

III. Fee Category should be an item, pre-created on the Stock module. Advantage, each Fee Category/Item can be mapped to respective income accounts, as well as be used as invoice items when creating fees.

Note: In no way, am I an expert in education systems design/implementations, and these are suggestions open for comments based on tests on the module.

I have simple question, a fee record is it considered as an invoice? accounting wise. at the end schools are selling a service, the same can be published on the web site along with pricing simulation, parents can get a quotation online then proceed to apply or not.

Just a thought, like any other sales process, where program is the product to sell.

what you say?