Everything a payroll run computes traces back to three records: the Employee (who is on payroll, for which company, and under what terms), the Resource Compensation record (their cost-to-company and which salary structure applies), and the Salary Structure (the component lines that turn that figure into earnings, deductions and contributions). Get these three right and the run is arithmetic; get them wrong and the run tells you — an employee with no usable compensation record or structure is counted as skipped, not silently paid zero.
Where the records live
In the Payroll app (App Launcher → search Payroll), Resources on the top bar lists the people; Employees is under More where your administrator has added it, otherwise search Employees in the App Launcher. Salary Structures, Salary Components, Payroll Components and Resource Compensations are reached the same way — type the name into the App Launcher search box. All of them are ordinary records: New opens the form, the name opens the detail page, and access follows your security profile.
The employee record
- 1
Employees is reached under More in this app's bar (or by searching the App Launcher); the rest of the Payroll bar holds runs, adjustments, loans, payslips and periods.
- 2
The record name opens the employee detail page with its organisation, dates, pay terms and statutory flags.
- 3
Resource is the person the payroll record extends; bank account, IFSC, PAN and UAN live on that Resource, and payslips and open items are keyed on it.
- 4
Date Of Joining and Employment Type are descriptive HR data; the run does not filter or prorate on them.
- 5
Date Of Exit is stamped by a posted full-and-final settlement; an employee whose status is Exited is left out of every new run.
- 6
New opens the employee form — create the Resource first, because the form's Resource field is required.
Begin on the All Employee list. Each row is one Employee keyed to one Resource, with the employee code and the HR dates. Open a name for the detail page; use New only after confirming the person has no Employee record yet.
- 1
Resource (required) — the person record; create it first, because payslips, open items and the payment batch's bank details all key on it.
- 2
Employee Code (required) — the organisation's own staff number, shown on the list beside the name.
- 3
Partner Account (required) and Branch — the legal employer and branch dimension carried onto payroll postings.
- 4
Payroll Company — the run selects employees whose Payroll Company or Partner Account equals the run's company; leave it blank only if Partner Account already is that company.
- 5
Salary Payment Mode defaults to BankTransfer; the payment batch still reads the account number and IFSC from the Resource.
- 6
Employment Status defaults to Active; only Exited excludes a person from runs. Pay Type is descriptive — proration is always by calendar days of the period.
The form's required fields are Name, Employee Code, Resource, Partner Account, Branch, Employment Type and Date Of Joining. The Details group also carries Payroll Company, Salary Payment Mode (defaults to BankTransfer), Department, Grade, Employment Status (defaults to Active) and Pay Type (defaults to Monthly).
- 1
Header badges summarise code, employment status, type, pay type and joining date; Active here means the employee is eligible for runs.
- 2
TDS Calculation Sheet opens the read-only salary-tax worksheet for this employee — a preview, it changes no projection.
- 3
Resource links the person record that carries bank account, IFSC, PAN and UAN; postings and payslips are keyed on it.
- 4
Partner Account and Payroll Company: the run selects employees whose Payroll Company or Partner Account equals the run's company.
- 5
Employment dates and Settlement Status: posting a full-and-final settlement sets Settled, Exited and the Date Of Exit.
- 6
Tax Regime drives the salary-TDS projection (New is the default); the PF, ESI, PT and LWF applicability boxes are recorded but not read by the calculation — only Tds Applicable is.
After saving, the detail page groups everything payroll will consult:
| Group | Fields | How payroll uses them |
|---|---|---|
| Basic details | Resource, Employee Code, Department, Grade, Employment Type (Full Time, Contract, Consultant, Intern, Permanent), Employment Status (Active, On Notice, Exited), Pay Type (Monthly, Hourly, Daily, Piece Rate), Salary Payment Mode (Bank Transfer, Cash, Cheque) | Resource keys every posting, payslip and open item. Only Employment Status = Exited changes the calculation — it excludes the person from new runs. Employment Type, Pay Type and Payment Mode are recorded for HR and reporting; the calculation prorates by calendar days regardless of pay type, and the salary payment batch always reads bank details from the Resource. |
| Organization details | Partner Account, Payroll Company, Business Unit, Branch, Cost Center | A run includes employees whose Payroll Company or Partner Account equals the run's company. Branch and Business Unit are dimensions carried onto postings. Department and Cost Center are declared as lookups without a backing entity, so they may offer no values. |
| Employment dates & status | Date Of Joining, Confirmation Date, Probation End Date, Date Of Exit, Settlement Status (Active, Exit In Process, Settled) | Informational until exit: posting a full and final settlement sets Settlement Status to Settled, Employment Status to Exited and fills Date Of Exit from the last working day. |
| Statutory & tax details | Tax Regime (Old Regime / New Regime), PF Wage Cap Override, Pf / Esi / Pt / Tds / Lwf Applicable | Tax Regime selects the regime the salary-TDS projection applies (New when blank) and Tds Applicable unticked skips the projection. The PF, ESI, PT and LWF boxes and the PF wage-cap override are stored as configuration of record but not read by the calculation — whether a person pays PF or ESI is decided solely by the components on their salary structure. |
The detail page also has a TDS Calculation Sheet tab — a read-only worksheet that previews the employee's salary-tax computation without writing a projection (see Income tax on salary).
The payment and filing identity — bank account number, IFSC, PAN, UAN, Aadhaar, designation — lives on the linked Resource, not on the Employee. That is deliberate: payroll postings, loans, expense claims and open items are all keyed on the Resource, so one identity reconciles across modules.
Resource compensation records
A Resource Compensation ties a Resource to a Salary Structure with a CTC amount, an Effective From date (optionally Effective To), an Is Active flag and a Revision Reason. When a run calculates, it takes the employee's active compensation record with the latest Effective From that names a salary structure — so a raise is a new record with a later Effective From, and history is preserved rather than overwritten. Effective To is not consulted: deactivate a record (Is Active off) if it must stop applying before a newer one exists. An employee with no such record is skipped and counted on the run header.
The CTC figure is the basis for any component whose calculation is a percentage of CTC, and it is what the salary-TDS projection uses as the monthly earning for a brand-new employee who has no calculated months yet — so enter it in the same unit your structures assume.
Salary structures and their lines
A Salary Structure is a reusable template — "Field staff", "Managers", "Contract" — holding an ordered list of Salary Component lines. The structure header carries Structure Name, Effective From, Pay Frequency (Monthly) and Is Active; of these, only the lines matter to the run — the header's dates and frequency are descriptive.
Each line has a Sequence, a Component Name, a Calculation Type, a Value, optional Min Amount / Max Amount, an Is Active flag and a link to a Payroll Component master. The run loads a structure's active lines in sequence order and computes each:
- Fixed — the entered Value.
- Percentage — Value per cent of the compensation record's CTC when Is Percentage of CTC is ticked, otherwise Value per cent of the component named in Percentage Of, which must appear earlier in the sequence (basic pay first, then the allowances that reference it). A basis that cannot be resolved yields zero.
- Slab on a component whose statutory type is PT — resolved against the professional-tax slab table for the gross accumulated by the lines before it in the sequence (so place PT after the earnings), with the February amount when the period ends in February. See Statutory deductions.
- A component whose statutory type is TDS takes the month's persisted tax projection instead of a formula. See Income tax on salary.
- Formula and Manual (and Slab on anything other than PT) fall back to the stored Value — the Formula text is not evaluated.
After the amount is computed, Min/Max clamps apply and it is rounded to two decimals. Components flagged proratable are then scaled by payable days over calendar days when the employee has loss-of-pay days in the period; the shortfall on earnings and reimbursements is recorded as the employee's loss-of-pay amount. Percentage components that depend on another component always use its full, un-prorated amount as the basis, so proration does not compound through the chain.
Two things the line stores but the run ignores: the line's Effective From / Effective To window (all active lines apply in every period — deactivate a line to retire it) and, when a Payroll Component master is linked, the legacy per-line Component Type, Statutory Flag, Taxable and Pro-rata fields, which the master overrides.
The payroll component catalog
Structure lines do not define ledger behaviour themselves — they reference a Payroll Component master, and the master owns what the component is:
| On the component master | Why it matters |
|---|---|
| Component Code, Component Type: Earning, Deduction, Employer Contribution, Reimbursement | Decides which side of the run's totals the amount lands on — earnings and reimbursements raise gross, deductions raise total deductions, employer contributions cost the employer without touching net — and which side of the accrual journal |
| Statutory Type: PF, ESI, PT, TDS, LWF, Gratuity | PT and TDS switch the calculation rule described above; PF, ESI and TDS also roll the amount into the run detail's PF / ESI / TDS totals that the register and challans read |
| Taxability: Taxable, Non Taxable, Partially Taxable | Carried onto every calculated line for reporting |
| GL Account and Payable GL Account (both required) | The expense account debited and the liability account credited at posting — a missing mapping fails the post by name rather than guessing |
| Is Proratable, Sort Order | Whether loss-of-pay days scale the amount; the order of lines on the payslip and register |
| Display On Payslip, Is Part Of Gross / CTC / Net Pay, Is Arrear Eligible, Formula Expression, Based On Component Codes | Classification flags. None of these changes the calculation today: totals follow Component Type, and no formula is evaluated |
Because the catalog is shared, "Basic", "HRA" or "PF employee contribution" is defined once — its accounts included — and every structure that uses it stays consistent.
Common questions
Why was an employee skipped by the run?
Because the run could not price them: they have no active Resource Compensation record naming a salary structure, or the structure has no active component lines. The run header shows total, processed and skipped counts, so a skip is visible immediately. Fix the compensation record or the structure and recalculate — recalculation replaces the earlier pass.
How do I give someone a raise mid-year?
Create a new Resource Compensation record for the person with the new CTC and the new Effective From date, leaving the old one in place. The run always picks the active record with the latest Effective From, and the old record remains as history. If the raise also changes the pay mix, point the new record at a different salary structure.
Where do bank details for salary payment come from?
From the Resource record — bank account number and IFSC — read at the moment the payment batch is generated, and shown masked (last four digits) on the payslip. If they are missing, the batch line is still created without them, so keep the Resource current before pay day.
Can two companies in one tenant have different structures?
Yes. Employees carry a Payroll Company, and runs are per company — each legal entity has its own components, structures, professional-tax slabs and control accounts. Salary tax rule tables can be shipped once as shared rows and overridden per company only where they genuinely differ.
I ticked "Pf Applicable" — why is no PF deducted?
Because applicability flags are not consulted by the calculation. PF is deducted only when the employee's salary structure contains a component with statutory type PF — normally a Percentage line based on the basic component, clamped with Max Amount to the wage ceiling. The same applies to ESI and LWF; see Statutory deductions and challans.
