Annual Leave Carry Forward Balance Not Included in Total Leave Balance

We are implementing ERPNext in 2026 and migrating employee leave data from our previous HR system.

Current Scenario

  • We went live with ERPNext in 2026.

  • Employees joined in different years (2010, 2015, 2020, etc.).

  • Each employee already has an accumulated unused annual leave balance from previous years.

  • These previous balances vary from employee to employee, for example:

    • Employee A: 250 days

    • Employee B: 200 days

    • Employee C: 50 days

    • Employee D: 20 days

These balances are historical balances that must remain available to the employees.

Expected Behavior

For each employee, we expect ERPNext to show:

Total Leave Balance = Previous Carry Forward Balance + Current Year’s Leave Allocation

For example:

  • Previous Carry Forward: 250 days

  • 2026 Annual Leave Allocation: 30 days

  • Expected Total Balance: 280 days

Another example:

  • Previous Carry Forward: 50 days

  • 2026 Allocation: 24 days

  • Expected Total Balance: 74 days

What We Tried

We tried entering the historical balances using:

  • Unused Leaves

  • Carry Forwarded Leaves

during Leave Allocation.

Problem

ERPNext only shows the current year’s allocated leave.

For example:

  • Previous Balance: 250

  • Current Allocation: 30

  • ERPNext Total Balance: 30

Instead of:

  • 280

It appears that the previous carry-forward balance is not being added to the total leave balance.

Our Requirement

Since this is a fresh ERPNext implementation, we need to migrate historical leave balances.

We want:

  1. Historical unused leave balance to be stored permanently.

  2. Current year’s leave allocation to be calculated normally based on employee joining date and leave policy.

  3. The employee’s total available leave to include both:

    • Historical carry-forward balance

    • Current year’s allocated leave

  4. Employees should be able to consume leave from the combined balance.

Questions

  1. What is the recommended ERPNext approach for migrating historical leave balances during implementation?

  2. How can we ensure that the historical balance is included in the employee’s total leave balance?

Any guidance or best practice for this migration scenario would be greatly appreciated.

hi there,

the cleanest and most supported way to handle this is to create a dedicated “Opening Balance” Leave Allocation for each employee for a backdated period (e.g., 01-01-2025 to 31-12-2025, or whatever makes sense as your “pre-go-live” period), and use the “New Leaves Allocated” field to represent the historical balance…

first go to the Leave Type that you have historical data and wanted to have open balance in the ERPNext, and check the option (Is Carry Forward) as true and then below set Maximum Carry Forwarded Leaves and Expire Carry Forwarded Leaves (Days) = 0 as the leave balance can be different for each employee so we wil leave taht empty as of know…

then after that here is what you need to do, I will be using Annual Leave Type as an example…

  1. use your existing Annual Leave type. Using the same leave type is usually cleaner for reporting.
  2. Create a New Leave Allocation for each employee:
Leave Type: Annual Leave (or your equivalent)
From Date / To Date: Use a prior period (e.g., 01-01-2025 to 31-12-2025)
New Leaves Allocated: Enter the historical balance here (e.g., 250 for Employee A)
Carry Forward: Enable this on the Leave Type if you haven’t already
Submit these allocation records.
  1. Now create your 2026 Leave Allocation for each employee normally through Leave Policy Assignment or manual allocation.

since you have enabled “Carry Forward” on the Leave Type (Annual), ERPNext will automatically pick up the unused balance from the 2025 allocation and push them into 2026… the system will then correctly compute:

Balance For Employe A = Carry Forwarded (250) + 2026 Allocation (30) = 280

hope this helps!

1 Like