/settings/erp/finance/payroll-structures (list) — the old /payroll/setup/structures redirects here. Create at /payroll/setup/structures/new, edit at /payroll/setup/structures/:id.
📷 Screenshot: the Salary Structure Builder with earnings and deductions sections and the formula editor — to be added.
Multi-business: a structure belongs to the selected business. Confirm the business switcher first.
The structure lifecycle (docstatus)
Like most posting documents in Hitaji 360, a structure carries a docstatus:
You can only assign a structure that is Submitted and active. A draft can’t be assigned, and a submitted structure is locked — you must Cancel it (and build a new version) to change the lines.
Building a structure
From the list, choose New (or open an existing draft). The builder has:Header
- Name — e.g. “Teaching Staff 2026”
- Frequency —
Monthly,Bimonthly,Weekly,Daily, orHourly - Currency — ISO code (e.g.
UGX) - Attendance-based payment days — optional; derive paid days from attendance rather than the calendar
Earnings and deductions
Add component lines into the Earnings and Deductions sections. For each line you pick a component, then choose how its value is set:- Fixed amount — type a number, or
- Formula — write an expression (see below).
📷 Screenshot: adding an earning line and choosing fixed-amount vs formula — to be added.
The formula editor and code picker
When a line is formula-driven, the editor offers a code picker so you don’t have to memorise variables. The built-in codes are:
The picker also lists every non-statutory component’s abbreviation so you can reference, say,
BASIC * 0.4 or HRA + TRANSPORT. Statutory components are deliberately excluded from the picker — you can’t build a formula on top of PAYE/NSSF/LST because those are computed last.
Formulas support arithmetic, comparisons, &&/||/!, the ternary cond ? a : b, and min, max, abs, round, floor, ceil.
Statutory items appear as read-only “auto-calculated” pills
When you add a statutory component (PAYE, NSSF, LST) to a structure, it shows as a read-only pill labelled “Auto-calculated at run time” — there is no amount box and no formula box. The builder strips any value off the line, and the backend rejects any inline amount or formula on a statutory line. The statutory engine supplies the figure during the run using the income-tax slabs and configured rates. This is intentional and keeps statutory maths consistent for every employee.⚠️ Watch out — double pro-ration: if a line both depends on payment days and uses a formula that references another already-prorated component, the system blocks it, because the amount would be prorated twice and underpay the employee. Keep the formula referencing the full-value component and let pro-ration apply once.
Saving and submitting
Save keeps the structure as a Draft. When the lines are right, Submit moves it to Submitted so it can be assigned. To revise a submitted structure, Cancel it and build a fresh version.Assigning a structure to an employee
A structure does nothing until it is assigned to an employee’s contract. Assignment is where the per-employee numbers live — most importantly the base pay. You assign from the employee’s Compensation card (see Employee profile and Employment records & contracts), which opens the Salary Structure Assignment modal.
Submitting the assignment automatically closes any earlier overlapping assignment for that contract (it stamps an end date), so an employee always has exactly one active assignment on any given date. The active assignment as of the run date is what determines whether the employee appears in a run and how their pay is computed.
Permissions
Behind the scenes — how a slip is computed
During a run, for each employee the engine:- loads the active assignment (giving
base, currency, any tax-slab override), - evaluates each earning line (formula or fixed amount), accumulating
gross, - evaluates each deduction line,
- then asks the statutory engine for PAYE / NSSF / LST (which ignore any structure value), and
- produces the payslip: gross − total deductions = net pay, plus employer contributions.
Related
- Salary components — the building blocks
- Income-tax slabs — the PAYE bands a slab override points at
- Running payroll — where structures are turned into payslips
- Employment records & contracts — where assignments attach
- Payroll overview — the whole chain