HR compliance calendar
Needs Python 3 and internet: runs scripts/fortax.py (the Fortax engine on ai.fortax.in; your file is processed and not stored).
Registration ends and obligation begins. fortax-payroll-registrations gets the codes; this skill turns
each code into a live calendar, and keeps the registers and records the labour laws require to exist
whether or not anyone asks for them. Every due date, frequency, rate, fee, penalty and retention
period here is looked up, per period, per state. Run
python3 scripts/fortax.py kb "ESI half-yearly return due date" --topics pf,esi first and quote its
source and captured date; where the reply is weak or none, or the fact is stale, read the portal or
the state notification, and say the age of the data before the CA acts on it. The obligations below are
real and their sequence is stable; their dates are not, and several are state law.
Step 1 — scope the client
From the client's own records take the PF code, ESI code, TAN, PT registration and enrolment numbers,
the shops or factory licence, the states and cities with employees, and the headcount. One calendar per
registration, not per client: employees in three states means three PT lines and possibly three shops
and establishment lines. Confirm what is actually applicable — some Acts bite only above a headcount,
some only on a scheduled employment, some not at all in a given state — so look up each trigger and
never assume. Confirm too whether a contractor's workers are on site: contract labour brings its own
registration, registers and returns onto the principal employer.
Step 2 — the recurring filings
| Head |
Cycle |
What is filed |
Payment |
| PF |
Monthly |
ECR from the salary register on the EPFO unified portal |
Challan from the ECR |
| PF |
Event-driven, annual |
UAN and KYC for joiners, exit marking for leavers, transfer claims; the annual position as currently prescribed |
— |
| ESI |
Monthly |
Contribution file on the ESIC portal |
Challan |
| ESI |
Event-driven, half-yearly |
IP registration and e-Pehchan card for each new coverable employee; the return of contributions where it still applies |
— |
| PT |
State frequency, annual |
State return per state; enrolment certificate renewal where that state requires it |
State challan |
| TDS on salary |
Monthly, quarterly, annual |
24Q with annexures each quarter; Form 16 to each employee after year end |
Monthly challan against the client's TAN |
| Bonus |
Annual |
Annual return under the Payment of Bonus Act |
Paid within the statutory window |
| Shops or factory |
State cycle |
Renewal or annual intimation, plus the annual return where prescribed |
Fee |
| Contract labour, maternity, gratuity, minimum wages |
As prescribed |
Principal employer's return where contract workers are engaged; the notices, nominations and returns each Act requires |
— |
The cycle column is the usual pattern, to be confirmed for the period and the state. And where the
Labour Codes have been brought into force for a state or a subject, they replace or restate several of
these — check the commencement position before rebuilding a calendar on the old Acts, and record it.
Step 3 — registers and records
These exist to be produced on an inspection. A register not maintained is a default even if every
challan was paid on time. Confirm the prescribed form and retention period for the state before
naming either.
| Register or record |
Arises under |
| Register of employees, and of wages with the wage slips issued each period |
The state shops and establishment Act or the Factories Act; Minimum Wages and Payment of Wages |
| Attendance and overtime register, and the leave-with-wages register |
State Act, Factories Act |
| Register of fines, deductions and damage or loss, and the muster roll |
Payment of Wages Act; Contract Labour Act, Factories Act |
| Register of bonus, allocable surplus, set-on and set-off |
Payment of Bonus Act |
| Gratuity nominations and notice of opening; maternity benefit register; accident register |
Payment of Gratuity Act; Maternity Benefit Act; ESI Act and Factories Act |
| PF nominations, member declarations, contribution card |
EPF Act and Schemes |
| POSH complaints record and annual report to the district officer |
POSH Act, where its trigger is met |
Many states now permit combined registers and electronic maintenance under simplification rules; where
the client wants that, read that state's notification before agreeing it covers a register.
Step 4 — display and standing duties
Distinct from filing — these must be visible or in place continuously, and inspectors look for them.
The registration and licence certificates displayed at the premises; abstracts of the applicable Acts
and the notice of wage period, wage rates, working hours, weekly holiday and the inspector's name, in
the language the state prescribes; the PF and ESI code numbers where the rules require them, with the
ESI dispensary details; an internal committee constituted and named where the POSH Act's trigger is
met; nominations collected for PF, gratuity and ESI dependants, since a missing one surfaces at the
worst possible moment; and notices of the weekly closing and of leave where the state prescribes.
Step 5 — build the calendar and keep it alive
- Write
<date>_HR_compliance_calendar_<client>_<FY>.xlsx in the client's payroll folder: one row per
obligation, with the registration it belongs to, the state, the cycle, the form, the portal, the
owner at the firm, the due date, days left (a formula), and a source and date-checked column on
every date. No date without a source.
- If the firm keeps a compliance tracker, calendar app or practice-management tool, prepare the rows in
the format it imports (CSV is usually safest) and show the CA exactly what will be created. The CA
adds them, or tells you to, after a clear yes. Anything not in the firm's tracker will not be chased.
- Where the firm's tracker and this calendar disagree, that is a defect: find which is stale before
anyone messages a client.
- Re-verify at the start of each FY and whenever a notification lands. Use
fortax-deep-research for
what changed, then update the calendar, say what moved, and minute the annual registers-and-displays
audit in the same file with what was seen and what is missing.
- The annual sweep, in one pass: 24Q Q4 filed and Form 16 issued; the PF annual position closed
and all exits marked; the ESI half-yearly return where applicable; the PT annual return and
enrolment renewal per state; bonus paid and its annual return filed; the shops or factory renewal
done; gratuity, bonus and leave provisions from
fortax-gratuity-bonus-leave tied into the accounts;
the POSH annual report where due; every register written up to the last day.
Hand over
Calendar and audit notes to the client's payroll folder for the FY (for example
<Client>/<FY 2026-27>/Payroll/), dated. Registers and raw client records stay where the client keeps
them and are never renamed or deleted. Employee-level data stays in the client folder — a reminder
message (drafted for the CA to send, see fortax-client-comms) carries the obligation, the period and
the file name, never a name, a salary or a bank detail.
- Which registrations are live, which Acts apply, and the calendar rows created for each.
- What is missing today — registers not maintained, nominations not collected, displays absent,
returns not filed for past periods — and the exposure on each.
- Check before filing: every date carries a source and a date checked; state obligations read for
each state separately, this session; the Labour Codes commencement position checked; registers and
nominations verified as existing, not assumed; rows ready for the firm's tracker; nothing submitted,
paid or sent without the CA's explicit yes.
1---2name: fortax-hr-compliance-calendar3description: HR compliance calendar4---56# HR compliance calendar78Needs Python 3 and internet: runs `scripts/fortax.py` (the Fortax engine on ai.fortax.in; your file is processed and not stored).910Registration ends and obligation begins. `fortax-payroll-registrations` gets the codes; this skill turns11each code into a live calendar, and keeps the registers and records the labour laws require to exist12whether or not anyone asks for them. **Every due date, frequency, rate, fee, penalty and retention13period here is looked up, per period, per state.** Run14`python3 scripts/fortax.py kb "ESI half-yearly return due date" --topics pf,esi` first and quote its15source and captured date; where the reply is `weak` or `none`, or the fact is stale, read the portal or16the state notification, and say the age of the data before the CA acts on it. The obligations below are17real and their sequence is stable; their dates are not, and several are state law.1819## Step 1 — scope the client2021From the client's own records take the PF code, ESI code, TAN, PT registration and enrolment numbers,22the shops or factory licence, the states and cities with employees, and the headcount. One calendar per23registration, not per client: employees in three states means three PT lines and possibly three shops24and establishment lines. Confirm what is actually applicable — some Acts bite only above a headcount,25some only on a scheduled employment, some not at all in a given state — so look up each trigger and26never assume. Confirm too whether a contractor's workers are on site: contract labour brings its own27registration, registers and returns onto the principal employer.2829## Step 2 — the recurring filings3031| Head | Cycle | What is filed | Payment |32|---|---|---|---|33| PF | Monthly | ECR from the salary register on the EPFO unified portal | Challan from the ECR |34| PF | Event-driven, annual | UAN and KYC for joiners, exit marking for leavers, transfer claims; the annual position as currently prescribed | — |35| ESI | Monthly | Contribution file on the ESIC portal | Challan |36| ESI | Event-driven, half-yearly | IP registration and e-Pehchan card for each new coverable employee; the return of contributions where it still applies | — |37| PT | State frequency, annual | State return per state; enrolment certificate renewal where that state requires it | State challan |38| TDS on salary | Monthly, quarterly, annual | 24Q with annexures each quarter; Form 16 to each employee after year end | Monthly challan against the client's TAN |39| Bonus | Annual | Annual return under the Payment of Bonus Act | Paid within the statutory window |40| Shops or factory | State cycle | Renewal or annual intimation, plus the annual return where prescribed | Fee |41| Contract labour, maternity, gratuity, minimum wages | As prescribed | Principal employer's return where contract workers are engaged; the notices, nominations and returns each Act requires | — |4243The cycle column is the usual pattern, to be confirmed for the period and the state. And where the44Labour Codes have been brought into force for a state or a subject, they replace or restate several of45these — check the commencement position before rebuilding a calendar on the old Acts, and record it.4647## Step 3 — registers and records4849These exist to be produced on an inspection. A register not maintained is a default even if every50challan was paid on time. Confirm the prescribed form and retention period for the state before51naming either.5253| Register or record | Arises under |54|---|---|55| Register of employees, and of wages with the wage slips issued each period | The state shops and establishment Act or the Factories Act; Minimum Wages and Payment of Wages |56| Attendance and overtime register, and the leave-with-wages register | State Act, Factories Act |57| Register of fines, deductions and damage or loss, and the muster roll | Payment of Wages Act; Contract Labour Act, Factories Act |58| Register of bonus, allocable surplus, set-on and set-off | Payment of Bonus Act |59| Gratuity nominations and notice of opening; maternity benefit register; accident register | Payment of Gratuity Act; Maternity Benefit Act; ESI Act and Factories Act |60| PF nominations, member declarations, contribution card | EPF Act and Schemes |61| POSH complaints record and annual report to the district officer | POSH Act, where its trigger is met |6263Many states now permit combined registers and electronic maintenance under simplification rules; where64the client wants that, read that state's notification before agreeing it covers a register.6566## Step 4 — display and standing duties6768Distinct from filing — these must be visible or in place continuously, and inspectors look for them.69The registration and licence certificates displayed at the premises; abstracts of the applicable Acts70and the notice of wage period, wage rates, working hours, weekly holiday and the inspector's name, in71the language the state prescribes; the PF and ESI code numbers where the rules require them, with the72ESI dispensary details; an internal committee constituted and named where the POSH Act's trigger is73met; nominations collected for PF, gratuity and ESI dependants, since a missing one surfaces at the74worst possible moment; and notices of the weekly closing and of leave where the state prescribes.7576## Step 5 — build the calendar and keep it alive77781. Write `<date>_HR_compliance_calendar_<client>_<FY>.xlsx` in the client's payroll folder: one row per79 obligation, with the registration it belongs to, the state, the cycle, the form, the portal, the80 owner at the firm, the due date, days left (a formula), and a **source and date-checked column on81 every date**. No date without a source.822. If the firm keeps a compliance tracker, calendar app or practice-management tool, prepare the rows in83 the format it imports (CSV is usually safest) and show the CA exactly what will be created. The CA84 adds them, or tells you to, after a clear yes. Anything not in the firm's tracker will not be chased.853. Where the firm's tracker and this calendar disagree, that is a defect: find which is stale before86 anyone messages a client.874. Re-verify at the start of each FY and whenever a notification lands. Use `fortax-deep-research` for88 what changed, then update the calendar, say what moved, and minute the annual registers-and-displays89 audit in the same file with what was seen and what is missing.905. **The annual sweep**, in one pass: 24Q Q4 filed and Form 16 issued; the PF annual position closed91 and all exits marked; the ESI half-yearly return where applicable; the PT annual return and92 enrolment renewal per state; bonus paid and its annual return filed; the shops or factory renewal93 done; gratuity, bonus and leave provisions from `fortax-gratuity-bonus-leave` tied into the accounts;94 the POSH annual report where due; every register written up to the last day.9596## Hand over9798Calendar and audit notes to the client's payroll folder for the FY (for example99`<Client>/<FY 2026-27>/Payroll/`), dated. Registers and raw client records stay where the client keeps100them and are never renamed or deleted. Employee-level data stays in the client folder — a reminder101message (drafted for the CA to send, see `fortax-client-comms`) carries the obligation, the period and102the file name, never a name, a salary or a bank detail.103104- Which registrations are live, which Acts apply, and the calendar rows created for each.105- What is missing today — registers not maintained, nominations not collected, displays absent,106 returns not filed for past periods — and the exposure on each.107- **Check before filing**: every date carries a source and a date checked; state obligations read for108 each state separately, this session; the Labour Codes commencement position checked; registers and109 nominations verified as existing, not assumed; rows ready for the firm's tracker; nothing submitted,110 paid or sent without the CA's explicit yes.