CalculationType | Calculation Type | PickList | | How this line's amount is derived. Fixed uses Value directly. Percentage uses Value as a percentage of CTC (when IsPercentageofCTC) or of another component named by PercentageOf. Slab is meaningful only for professional tax, where it makes the engine resolve the amount from the state slab table instead of the line. The seeded picklist offers Fixed, Percentage and Formula only — so the unimplemented option is offered while Slab, the one that changes behaviour, has to be entered outside the list. Values: Fixed, Formula, Percentage, Slab, Manual. |
ComponentName | Component Name | Text | | The line's own name, and more than a label: it is the key other lines reference through PercentageOf, matched case-insensitively. When blank the line's Label, and failing that its id, is used as the key instead. |
ComponentType | Component Type | PickList | | Which bucket the amount lands in: Earning and Reimbursement add to gross, Deduction reduces net, EmployerContribution accumulates separately and does not affect net pay. Used only when no PayrollComponent master is linked — the master's ComponentType wins. The seeded picklist offers only Earning and Deduction, so EmployerContribution and Reimbursement, both of which the calculation handles, cannot be chosen from the standard list. Values: Earning, Deduction, EmployerContribution, Reimbursement. |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
EffectiveFrom | Effective From | Date | | Intended start of this line's validity, but the payroll calculation does not filter lines by date — it takes every active line of the structure regardless of effective dating. Treat it as documentation of intent rather than as a control that keeps a line out of a run. |
EffectiveTo | Effective To | Date | | Intended end of this line's validity. As with EffectiveFrom, the payroll calculation ignores it: an expired line still contributes to the payslip until it is set inactive or deleted. |
EmployeeId | Employee | Lookup → Employee | | |
Formula | Formula | Text | | Free-text expression for a formula-driven component. A populated Formula never changes a calculated amount. |
Id | Id | Guid | Yes | |
IsActive | Is Active | Boolean | | The only gate the payroll run applies when loading a structure's lines besides deletion: a line set inactive is excluded from the calculation. |
IsPercentageofCTC | Is Percentage of CTC | Boolean | | |
MaxAmount | Max Amount | Currency | | |
MinAmount | Min Amount | Currency | | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text | Yes | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PayrollComponentId | Payroll Component | Lookup → PayrollComponent | | |
PercentageOf | Percentage Of | PickList | | For a Percentage line not based on CTC, the NAME of the component supplying the basis, matched case-insensitively against components already computed earlier in the structure's Sequence. Two silent failure modes: a name that matches nothing yields zero rather than an error, and a component appearing later in the sequence is not yet available so it also yields zero. The basis used is the full un-prorated amount. The seeded picklist offers Basic, CTC and Taxable Income, but only values that are literally the name of another component in the same structure resolve — percentage-of-CTC is driven by the separate IsPercentageofCTC flag, not by choosing CTC here. Values: Basic, CTC, Taxable Income. |
Prorata | Pro-rata | Boolean | | Legacy per-line proration flag, used only when no PayrollComponent master is linked (the master's IsProratable wins). When set and the period has loss-of-pay days, the amount is scaled by payable days over total calendar days; the shortfall on Earning and Reimbursement lines accumulates as the payslip's loss-of-pay amount. Proration happens AFTER the min/max clamp, and dependent percentage lines still use the full un-prorated basis. |
RecordTypeId | Record Type | Guid, hidden | | |
SalaryStructureId | Salary Structure | Lookup → SalaryStructure | | The structure this line belongs to. The payroll run loads lines by this key filtered only on not-deleted and IsActive, ordered by Sequence — so a line belongs to exactly one structure and is picked up by every employee assigned that structure. |
Sequence | Sequence | Number | | |
StatutoryFlag | Statutory Flag | PickList | | Legacy per-line statutory nature, used only when no PayrollComponent master is linked — the master's StatutoryType wins otherwise. Two behaviours depend on it exactly: PT combined with CalculationType Slab makes the engine resolve professional tax from the state slab table, and TDS makes the line take its amount from the month's TDS projection. The seeded picklist offers None, PF, ESI and TDS, which omits PT and LWF and offers None; PT is the value that actually changes the calculation, and any non-blank value here — None included — marks the resulting line as statutory. Values: None, PF, ESI, TDS, PT, LWF, Gratuity. |
SubscriptionKey | Subscription Key | Guid, hidden | Yes | |
Taxable | Taxable | Boolean | | Legacy per-line taxability, copied onto the calculated component line only when no PayrollComponent master is linked; with a master, taxability is derived from its Taxability value being Taxable. It records the flag on the payslip line and does not itself feed the TDS projection, which works from projected gross rather than from per-component taxability. |
UpdatedDateTime | Modified Date | DateAndTime | Yes | |
Value | Value | Number | | The line's numeric input, read differently depending on CalculationType: an absolute amount for Fixed (and for the unevaluated Formula and Manual), or a percentage figure for Percentage. It is not the computed amount — the result after basis, floor, ceiling and proration lands on the run's component line, not here. |