Leave Balance Calculation

This guide explains how ShootApp calculates leave balances, including pro-rata adjustments for mid-year joiners and monthly accrual mechanics.

Fiscal Year Concept

ShootApp uses a fiscal year system for leave calculations:

Fiscal Year: April 1 to March 31

All leave entitlements, balances, and calculations are based on this fiscal year. Balances typically reset at the start of each new fiscal year.

Balance Components

Component Description Formula
Total Allocated Annual entitlement from package From package configuration
Pro-rata Entitlement Adjusted for join date Total × (Remaining Months ÷ 12)
Earned to Date For accrual types, days earned so far Monthly Rate × Completed Months
Used Days already taken Sum of approved leave days
Pending Days in pending requests Sum of pending request days
Available Days that can be used Earned to Date - Used - Pending

Pro-rata Calculation

For employees joining mid-year, leave entitlement is calculated proportionally:

Pro-rata Factor = Remaining Months in Fiscal Year ÷ 12 Pro-rata Entitlement = Annual Allocation × Pro-rata Factor

Example: Employee joins July 1st

Fiscal Year: April 1, 2025 - March 31, 2026

Join Date: July 1, 2025

Remaining Months: 9 (July to March)

Annual Medical Leave: 12 days


Calculation:
Pro-rata Factor = 9 ÷ 12 = 0.75
Pro-rata Entitlement = 12 × 0.75 = 9 days

Monthly Accrual Calculation

For leave types configured as "Monthly Accrual," leave is earned progressively:

Monthly Accrual Rate = Annual Allocation ÷ 12 Earned to Date = Monthly Rate × Completed Months (capped at Pro-rata Entitlement)

Example: Casual Leave with Monthly Accrual

Annual Allocation: 12 days

Monthly Rate: 12 ÷ 12 = 1 day/month

Employee joined: July 1, 2025

Current Date: October 15, 2025

Completed Months: 3 (July, August, September)


Earned to Date: 1 × 3 = 3 days
Next Accrual: November 1, 2025 (will earn 4th day)

Accrual Schedule

When Accruals Happen

Monthly accruals are credited on the 1st of each month. The system tracks the next accrual date for each balance.

Running Monthly Accrual

Administrators can manually trigger accrual calculations:

python manage.py run_monthly_accrual --org ORG_CODE

Or for a specific date:

python manage.py run_monthly_accrual --org ORG_CODE --date 2025-11-01

Given Upfront vs. Monthly Accrual

Given Upfront
  • Full pro-rata entitlement available immediately
  • Employee can use all days from day one
  • No monthly tracking needed
  • Good for: Medical, maternity leave
Monthly Accrual
  • Days earned progressively each month
  • Can only use earned days
  • Prevents using all leave early in year
  • Good for: Casual, earned leave

Employee Join Date

The system determines join date from:

  1. Coach Profile Created Date (if applicable)
  2. User Account Created Date (fallback)
Important

Ensure employee records have accurate creation dates for correct pro-rata calculations. If dates are incorrect, contact your system administrator.

Re-initializing Balances

If balances need to be recalculated (e.g., after package changes):

python manage.py initialize_leave_balances --org ORG_CODE --force

This command:

  • Recalculates pro-rata entitlements
  • Updates accrual rates
  • Preserves existing used and pending leave
Last updated: June 25, 2026