xMatix
Sign in Request demo
xMatix
PRODUCTS
SalesField SalesCRMRewardsClaimsInventoryProcurementWarehouse ManagementField ServiceServiceSupportTelephony & MessagingFinance & AccountingPayrollExpense ManagementCommercePortalsAnalytics & ReportingData StudioMobile AppSee all products →
PLATFORM
Platform overviewApp BuilderAutomationIntegrationsSecurity & GovernanceChange ManagementDevelopers
SENSE AI
Sense AI overviewSense AssistSense ControlSense VisionAI StudioTrust & governanceIn Claude & ChatGPTUse cases
SOLUTIONS
FMCG & DistributionManufacturing & Dealer NetworksAutomotive & DealershipsPharma & HealthcareConsumer DurablesAgri-InputsBuilding MaterialsService NetworksWarehousing & 3PLFinancial AccountingERP SoftwareIndia GST ComplianceUAE VAT & e-InvoicingSaudi ZATCA & VATAll solutions →
RESOURCES
Knowledge CenterDeveloper & CLIBlogGuidesWhat is xMatix?Company facts
COMPANY
AboutCareersPartnersEventsContactAuthorsLegal
Sign in Request demo
Home/Docs/Entity Reference/Salary Component — entity reference
REFERENCE · Last reviewed

Salary Component — entity reference

One line of a SalaryStructure: which component is paid, how its amount is derived, and in what order. Evaluation order is Sequence, and that order is semantically load-bearing — dependent Percentage components resolve their basis only from components already computed earlier in the sequence, and slab-based professional tax is matched against the gross accumulated so far, so re-ordering lines changes the numbers. This entity spans two generations of modelling: PayrollComponentId points at the reusable PayrollComponent master whose ComponentType, StatutoryType, Taxability, IsProratable, SortOrder and GL accounts take precedence, while the older self-describing fields (ComponentType, StatutoryFlag, Taxable, Prorata) apply only when no master is linked. CalculationType, Value, PercentageOf and IsPercentageofCTC drive the amount; MinAmount and MaxAmount clamp it after computation and before proration.

Fields

FieldLabelTypeRequiredWhat it does
CalculationTypeCalculation TypePickListHow 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.
ComponentNameComponent NameTextThe 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.
ComponentTypeComponent TypePickListWhich 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.
CreatedByIdCreated ByLookup → UserAccountYes
CreatedDateTimeCreated DateDateAndTimeYes
EffectiveFromEffective FromDateIntended 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.
EffectiveToEffective ToDateIntended 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.
EmployeeIdEmployeeLookup → Employee
FormulaFormulaTextFree-text expression for a formula-driven component. A populated Formula never changes a calculated amount.
IdIdGuidYes
IsActiveIs ActiveBooleanThe only gate the payroll run applies when loading a structure's lines besides deletion: a line set inactive is excluded from the calculation.
IsPercentageofCTCIs Percentage of CTCBoolean
MaxAmountMax AmountCurrency
MinAmountMin AmountCurrency
ModifiedByIdModified ByLookup → UserAccountYes
NameNameTextYes
OwnerIdOwnerLookup → UserAccountYes
PayrollComponentIdPayroll ComponentLookup → PayrollComponent
PercentageOfPercentage OfPickListFor 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.
ProrataPro-rataBooleanLegacy 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.
RecordTypeIdRecord TypeGuid, hidden
SalaryStructureIdSalary StructureLookup → SalaryStructureThe 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.
SequenceSequenceNumber
StatutoryFlagStatutory FlagPickListLegacy 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.
SubscriptionKeySubscription KeyGuid, hiddenYes
TaxableTaxableBooleanLegacy 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.
UpdatedDateTimeModified DateDateAndTimeYes
ValueValueNumberThe 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.

Actions

ActionLabelTypeWhat it does
CloneCloneServerAction (Clone)Create a copy of this record
DeleteDeleteDeleteDelete
EditEditEditInlineEdit
EditInRowEditEditEdit
NewNewNewNew
NewInlineNewNewInlineNew