Payroll Setup
Go to: HR → Setup → Payroll Setup
Payroll Setup creates the building blocks of pay. Operational payroll (assignments, payroll entry, salary slips) is under Payroll & Salaries.
1. Salary Component
Go to: HR → Setup → Payroll Setup → Salary Component
A Salary Component is one line on a payslip — Basic, HRA, Medical, Provident Fund, Income Tax, and so on.
| Field | What it means |
|---|---|
| Name / Abbreviation | Full name and short code on slips |
| Type | Earning or Deduction |
| Amount Type | Fixed, Percentage or Per-hour based |
| Calculation Basis | Working days, overtime, short hours, monthly or one-time |
| Formula | Optional expression for the payslip line or benefit entitlement |
| Taxable | Whether included in tax calculation |
| Pay against Benefit Claim | Claimable benefit earning (with yearly max / pro-rate options) |
| Account | Ledger account for accounting posts |
Status: Draft → Approved → Cancel
Benefit Claims apply to earnings only. Benefit claims later pay against that flexible component.
Amount formula
Go to: HR → Setup → Payroll Setup → Salary Component → Calculation
Turn on Use formula for an ordinary earning or deduction. The expression replaces the fixed amount or percentage. Payroll does not prorate that result again.
A flexible benefit that pays against a claim uses a benefit entitlement formula instead. That result is the full HR Period entitlement. Pro-rate and accrual still apply after it.
Formulas are unavailable on system components, statistical components, employer contributions and per-hour components. Enabling Use formula clears any existing calculation basis and hours-adjustment rate basis. Turning it off clears the formula; review the amount and calculation settings before saving.
| Variable | What it is |
|---|---|
base | Payslip base after joining-date proration. On a benefit this is the full assignment base. |
full_base | Assignment base before joining-date proration. On a benefit this matches base. |
present_days | Days present on the slip. Present counts as 1 and Half Day as 0.5. Zero is valid. Payroll only. |
working_days | Full-period payroll working-day denominator, following the shift’s custom working days or the organization’s Default Working Days where configured, with existing payroll fallbacks. This is not necessarily a count of calendar working days. Must be greater than zero. Payroll only. |
expected_hours | Full-period expected hours. With a shift this is working days times net shift hours after breaks. With no shift it equals Default Working Days. Payroll only. |
hourly_rate | Full assignment base divided by expected hours. Payroll only. |
Use +, -, * and / with parentheses. Multiplication and division run before addition and subtraction.
Variable and function names are case-sensitive: use base, not Base. Enter numbers without thousands separators, such as 100000 or 1000.50. Scientific notation and comments are unsupported. A formula can contain up to 512 characters and 32 levels of expression nesting.
| Function | Purpose | Example |
|---|---|---|
min(value, limit) | Smaller value. Use it as a cap. | min(base * 10 / 100, 5000) |
max(value, limit) | Larger value. Use it as a floor. | max(base * 10 / 100, 2000) |
round(value, precision) | Round to 0–6 decimal places. Enter the precision directly as an integer from 0 to 6, not a variable or expression. | round(base * 10 / 100, 2) |
The saved amount is rounded to 3 decimal places and must be zero or positive.
| Situation | Expression | Result |
|---|---|---|
| 10% of a 100000 base | base * 10 / 100 | 10000 |
| Same base joined 16 May in a 31-day month | base * 10 / 100 | 5161.29 |
| Full salary for that partial month | full_base * 10 / 100 | 10000 |
| 1 present day and 1 half day capped at 6000 | min(300 * present_days, 6000) | 450 |
A 22-day period on an 8 hour shift with no break has 176 expected hours. With no shift and Default Working Days of 20, expected hours are 20 and a 100000 base has an hourly rate of 5000.
Preview a formula:
- Enter the expression, or use Insert variable, Insert function or an example to build it.
- Enter Sample base salary. Additional sample fields appear for other variables referenced by a valid formula; fill those in too. Samples must be non-negative, and
working_daysandexpected_hoursmust be greater than zero. - Click Preview calculation and review the result or error.
Preview uses hypothetical numbers only. It does not load an employee’s salary or attendance, or save the component. Payroll supplies the actual assignment, shift and attendance values when generating slips. Syntax valid checks the expression’s syntax; division by zero, a negative result or unavailable values can still cause calculation to fail. For example, base / present_days cannot calculate when present_days is zero.
A new salary structure line copies the component formula. Changing the component later does not automatically update existing structure lines. See Salary Structure to adopt the latest formula or switch a line back to an amount or percentage.
Benefit entitlement example: With an effective assignment base of 100000, base * 10 / 100 sets a full HR Period entitlement of 10000 and replaces the yearly maximum amount or percentage calculation. If pro-rate reduces entitlement to 50%, that becomes 5000. If accrual then releases 50% of that entitlement, 2500 is available before accounting for claims. These percentages illustrate the order of calculation; actual factors follow the employee’s dates and working-day rules.
For a benefit claim, base and full_base come from the employee’s latest active salary structure assignment effective on the claim date. Its structure must include the benefit component. A later salary increase does not raise the entitlement for an earlier claim.
Write a percentage as base * 10 / 100. The % sign, component abbreviations
and conditions are not allowed. Benefit formulas can use only base and
full_base. A missing day or hour value stops slip generation for that
employee. Zero present days is allowed when attendance exists.
2. Salary Structure
Go to: HR → Setup → Payroll Setup → Salary Structure
A Salary Structure is a named pay package: which components apply, and how often payroll runs for that package.
| Field | What it means |
|---|---|
| Name | e.g. Staff Monthly, Worker Monthly |
| Payroll Frequency | How often this structure is paid |
| Salary Details | Component lines with an amount, a percentage or a formula |
Status: Draft → Approved → Cancelled
Employees are not paid from the structure alone — you must later create a Salary Structure Assignment with a base salary.
For a component line with a formula, Use component formula copies the component’s current formula into that line. Use this to update an existing line after changing the component; editing an unrelated field does not refresh the copy. Use fixed / percentage removes the line’s formula and restores the component’s amount and applicable percentage setting. Review the line and save the structure after either action. Benefit entitlement formulas are copied into structure lines in the same way.
3. Income Tax Slab
Go to: HR → Setup → Payroll Setup → Income Tax Slab
Income Tax Slabs define tax brackets used when calculating payroll tax.
| Field | What it means |
|---|---|
| Name | e.g. Standard Tax Slab 2026 |
| Is Default | Default slab when assignment does not override |
| Brackets | Min/Max income, rate %, fixed tax, sort order |
Status: Draft → Approved → Inactive
Bracket ranges must not overlap. On an employee’s salary structure assignment you can pick a slab or bypass tax slab calculation when required.
After Payroll Setup
Continue in Payroll & Salaries:
- Assign salary structures to employees (single or bulk)
- Create a Payroll Entry for the period
- Generate, approve, and pay salary slips
- Use Additional Salary, Benefit Claims, or Retention Bonus when needed