The per-employee summary line of a PayrollRun: one row per Resource processed, carrying rolled-up gross, deductions and net, employer contributions, reimbursements, the day breakdown, and the statutory subtotals TDS, PF and ESI. It is a rollup, not the calculation source — the authoritative per-component amounts live in PayrollRunComponentLine, and a Payslip is generated from this row. Keyed on ResourceId, never on Employee; posting stamps PayrollPayableOpenTransactionId with the Resource-keyed Payroll-Payable open item raised for this employee's net pay, and that open item (not this row) is what the salary payment batch actually settles. Two generations of columns coexist here: the payroll engine writes PayableDays, TotalPayableDays, LossOfPayDays and LossOfPayAmount, while PaidDays, LWPDays, Component1, Component2 and OvertimeAmount are legacy and are written by no first-party code path.
Fields
| Field | Label | Type | Required | What it does |
Component1 | Component 1 | Currency | | A legacy generic amount slot from the pre-component payroll model, explicitly deprecated when per-component lines were introduced. No first-party service writes or reads it; the real breakdown is in PayrollRunComponentLine. |
Component2 | Component 2 | Currency | | The second legacy generic amount slot from the pre-component payroll model. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
EmployerContribTotal | Employer Contrib Total | Currency | | |
ESI | ESI | Currency | | The employee-side employee state insurance withheld this period, summed only from deduction components flagged with the ESI statutory nature. The employer's ESI contribution is excluded and is carried as an employer-contribution component instead. |
GrossEarnings | Gross Earnings | Currency | | |
Id | Id | Guid | Yes | |
LossOfPayAmount | Loss Of Pay Amount | Currency | | |
LossOfPayDays | Loss Of Pay Days | Currency | | |
LWPDays | LWP Days | Number | | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text | Yes | |
NetPay | Net Pay | Currency | | |
OvertimeAmount | Overtime Amount | Currency | | Intended to hold the period's overtime pay, but the calculation engine never writes it — overtime is not an implemented input. It is nevertheless read by profitability reporting, which adds it to gross and reimbursements when costing a resource, so it will simply contribute zero unless a tenant populates it by hand. |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PaidDays | Pa Days | Number | | |
PartnerAccountId | Partner Account | Lookup | | |
PayableDays | Payable Days | Currency | | |
PayrollPayableOpenTransactionId | Payroll Payable Open Transaction | Lookup | | The Resource-keyed Payroll-Payable open item raised for this employee's net pay when the run was posted. That open item, not this row's NetPay, is the amount the salary payment batch settles, so the two can diverge if the open item was partly settled elsewhere. |
PayrollPeriodId | Payroll Period | Lookup | | The pay cycle this line belongs to, copied from the parent run at calculation time. It is the field the year-to-date payslip rollup and the period's TDS challan filter on, so a detail whose period is empty is invisible to both even though it belongs to the run. |
PayrollPostingStatus | Payroll Posting Status | PickList | | Whether this employee's line reached the ledger — it flips to Posted only for employees whose net pay was positive and therefore raised an open item. An employee with zero or negative net stays NotPosted even on a fully posted run, and the period's TDS challan totals only over details marked Posted. Values: Not Posted, Posted, Reversed, Failed. |
PayrollRunId | Payroll Run | Lookup → PayrollRun | | |
PF | PF | Currency | | The employee-side provident fund withheld this period. It sums only deduction components whose statutory nature is PF, so the employer's matching contribution is not included here — that sits in EmployerContribTotal and on its own component lines. |
RecordTypeId | Record Type | Guid, hidden | | |
ReimbursementAmount | Reimbursement Amount | Currency | | |
ResourceId | Resource | Lookup → Resource | | The person this line pays, held as a Resource — the platform's person master — not as an Employee. Every payroll join, the payslip, the Payroll-Payable open item and the payment batch line all key on this same value, so filter payroll by ResourceId and reach the Employee record from there when employment attributes are needed. |
SubscriptionKey | Subscription Key | Guid, hidden | Yes | |
TDS | TDS | Currency | | |
TotalDeductions | Total Deductions | Currency | | Everything subtracted from gross to reach net: statutory withholding, structure deductions, approved deduction adjustments, and any loan or advance installment recovered in this run. Employer contributions are not part of it — they are a cost to the company, not a withholding from the employee. |
TotalPayableDays | Total Payable Days | Currency | | |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
Actions
| Action | Label | Type | What it does |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Delete |
Edit | Edit | Edit | edit |
EditRow | Edit | Edit | Edit |
LatestPayslip | Latest Payslip | ServerAction | Opens a payslip layout view over this employee's run line. It is registered as a server action but carries no server action name, so nothing is computed, generated or saved by invoking it — it neither creates a Payslip record nor publishes an existing one. |
NewInLine | New | NewInline | New |