Skip to main content

Salary Structures

Payroll → Masters → Salary Structures (/structures) — reusable CTC blueprints made of Pay Components. Requires payroll:read / payroll:master.

Salary Structures pageSalary Structures page
Salary Structures — list with CTC and component count

Concept​

A salary structure is a named set of components that defines how CTC is split. Example: SDE-II — ₹18L with BASIC 40%, HRA 40% of BASIC, Special Allowance balancing, PF via calculator, PT via slab. Creating a revision ([Salary Assignment](salary-assignment)) picks a structure, an effective date and a CTC — the structure costs it.

List view​

ColumnMeaning
Code / NameStable code and display name, e.g. SDE-II
CurrencyISO code, e.g. INR
CTCAnnual CTC the structure is costed at (may be empty for a template)
ComponentsNumber of component lines in the structure
ActiveInactive structures are kept for history
  • Export CSV — all structures in one file.
  • Import CSV — template + example row overlay; shows created/updated/rejected stats.
  • Row actions: Edit, Duplicate (/structures/:id/duplicate clones all lines for a variant) and Delete (blocked if referenced).

The form​

The form lists the structure header (code, name, currency, CTC, active) and its component lines. Each line is a Pay Component plus its amount/rule (flat, % of base, formula, etc.). Validation is topological:

  • A PERCENT_OF component must point at a base that exists earlier in the composition — a cycle is rejected.
  • Formulas are checked (checkFormula) against the vocabulary of component codes.
  • Statutory components with a calculatorKey read live rates from Statutory (PF/ESI/PT/TDS), not a stored amount.

Changing a structure does not rewrite history. Existing revisions keep the breakdown they were costed with; only new revisions cost against the new definition. To re-cost old revisions after a fix, use the Recalculate job on Salary Assignment.

:::note CTC vs Gross Deductions and employer contributions are not stored on a revision — runs recompute them each period. The server injects the statutory lines when you view a revision, which is why earnings alone add to less than CTC when the structure counts employer PF inside CTC. :::