Salary Structure
A Salary Structure is a reusable template that defines how an employee's pay is calculated — listing earnings, deductions, and formulas that produce each line on a Salary Slip. Structures are assigned to employees via Salary Structure Assignment and are the single source of truth for compensation logic in Smooth HR Payroll.
Help URL: smoothhiring.com/help/hrms/payroll/salary-structure
Table of Contents
- Overview
- Where to find it
- Salary Components first
- Creating a Salary Structure
- Structure rows explained
- Formulas and conditions
- Assigning to employees
- Key fields reference
- Common structure patterns
- Tips
- Troubleshooting
- Related guides
Overview
| Aspect | Detail |
|---|---|
| DocType | Salary Structure |
| Desk path | /app/salary-structure |
| Related | Salary Component, Salary Structure Assignment, Salary Slip |
| Purpose | Template of pay components with amounts or formulas |
Think of Salary Structure as a recipe: Salary Components are ingredients; the structure defines how much of each goes into every payslip for employees assigned to it.
Where to find it
| Location | Path |
|---|---|
| Payroll sidebar → Setup → Salary Structure | /app/salary-structure |
| Payroll workspace → Masters card | Salary Structure link |
| Search bar | Type "Salary Structure" |
Related paths:
| record | Path |
|---|---|
| Salary Component | /app/salary-component |
| Salary Structure Assignment | /app/salary-structure-assignment |
| Bulk Salary Structure Assignment | /app/bulk-salary-structure-assignment |
Salary Components first
Before creating a structure, ensure Salary Components exist at /app/salary-component:
| Component setting | Why it matters |
|---|---|
| Type (Earning / Deduction) | Determines slip section |
| Depends on Payment Days | Prorates for partial months |
| Is Tax Applicable | Included in taxable income |
| Variable Based On Taxable Salary | Affects TDS calculation |
| Account | GL mapping for journal entries |
| Do Not Include in Total | Statistical components (e.g., employer PF) |
Create components for every distinct line on your payslip: Basic, HRA, Special Allowance, Employee PF, Professional Tax, TDS, etc.
Creating a Salary Structure
Step 1: New structure
- Salary Structure → Add Salary Structure.
- Enter Name — e.g., "Staff Grade A – Monthly" or "Hourly Warehouse".
- Select Company.
- Choose Payroll Frequency — must match how you run Payroll Entry (Monthly, etc.).
- Set Currency.
- Enable Is Active (or Is Default if one structure applies broadly).
Step 2: Add earnings rows
In the Earnings table, click Add Row for each earning component:
- Select Salary Component (e.g., Basic).
- Enter Amount (fixed) OR check Formula Based and enter Formula.
- Set Depends on Payment Days if amount should prorate (almost always yes for Basic).
Repeat for HRA, conveyance, and other allowances.
Step 3: Add deductions rows
In the Deductions table, add PF, PT, TDS, loan recovery, etc. Deductions can also be formula-based (e.g., 12% of Basic for PF).
Step 4: Save and validate
- Save the structure.
- Optionally use Preview Salary Slip (if available) with a test employee assignment to validate amounts.
Structure rows explained
| Column | Description |
|---|---|
| Salary Component | Link to master component |
| Abbr | Short code used in formulas (e.g., B for Basic) |
| Amount | Fixed value when not formula-based |
| Formula Based | Use expression instead of fixed amount |
| Formula | e.g., B * 0.40 for HRA at 40% of Basic |
| Condition | Optional — row applies only if expression is true |
| Depends on Payment Days | Prorate by payment days / total working days |
Order matters for formulas — components referenced in formulas must appear above the row that references them, or use abbreviations of already-defined rows.
Formulas and conditions
Smooth HR supports safe formula expressions on structure rows:
| Example formula | Meaning |
|---|---|
base |
Reference fixed amount in Amount column |
B * 0.50 |
50% of Basic (B) |
min(B * 0.40, 20000) |
HRA capped at 20,000 |
payment_days / total_working_days * base |
Manual proration (if Depends on Payment Days off) |
Condition examples:
| Condition | Effect |
|---|---|
employment_type == "Intern" |
Row only for interns |
branch == "Mumbai" |
Location-specific allowance |
Use Condition sparingly — prefer separate structures when rules diverge significantly.
Assigning to employees
A structure alone does not pay anyone. Create Salary Structure Assignment:
- Go to
/app/salary-structure-assignment. - Select Employee, Salary Structure, From Date.
- Optional To Date for temporary assignments.
- Enter Base if structure uses variable base (some formulas reference
base). - Submit the assignment.
For bulk onboarding, use Bulk Salary Structure Assignment at /app/bulk-salary-structure-assignment.
| Rule | Detail |
|---|---|
| One active assignment | Typically one open assignment per employee per company |
| Effective dating | From Date must be ≤ payroll period start for inclusion |
| Changes mid-period | New assignment with later From Date; payroll may need split runs |
Key fields reference
Header:
| Field | Description | Required |
|---|---|---|
| Name | Unique structure name | Yes |
| Company | Company scope | Yes |
| Payroll Frequency | Monthly / Weekly / etc. | Yes |
| Currency | Pay currency | Yes |
| Is Active | Available for assignment | Recommended |
| Letter Head | For printed payslip | No |
| Mode of Payment | Default payment mode | No |
Per row (Earnings / Deductions):
| Field | Description | Required |
|---|---|---|
| Salary Component | Component link | Yes |
| Amount or Formula | Value logic | One required |
| Depends on Payment Days | Proration flag | Per component |
Common structure patterns
Standard salaried (India example)
| Row | Component | Amount / Formula |
|---|---|---|
| 1 | Basic | Fixed 50% of CTC |
| 2 | HRA | B * 0.40 |
| 3 | Special Allowance | Balance to CTC |
| 4 | Employee PF | B * 0.12 |
| 5 | Professional Tax | Fixed per state |
| 6 | TDS | Auto from tax engine |
Hourly worker
| Row | Component | Formula |
|---|---|---|
| 1 | Hourly Wage | hourly_rate * payment_days * hours_per_day |
Link hourly rate via Additional Salary or custom field on assignment.
Executive with variable pay
Base structure + Additional Salary for quarterly bonus — keeps structure stable, variable pay separate.
Tips
- Use abbreviations consistently — document
B,HRA,SAin an internal wiki. - Minimize structures — one per grade/role, not one per employee.
- Mark statistical components — employer PF should not inflate net pay display incorrectly.
- Test with edge cases — join mid-month, exit mid-month, full LWP month.
- Version by name — "Grade A v2026" when changing formulas mid-year with care.
- Map accounts early — finance needs GL mapping before first payroll post.
Troubleshooting
| Issue | What to do |
|---|---|
| Formula error on slip | Check abbreviation exists; row order; syntax |
| HRA / allowance zero | Condition failed; or referenced component zero |
| Duplicate component on slip | Component appears twice in structure — remove row |
| Assignment not picking structure | Frequency mismatch; inactive structure; wrong company |
| PF / TDS wrong | Verify component flags (tax applicable, variable); check declaration |
| Proration incorrect | Enable Depends on Payment Days; verify attendance |
| Cannot delete structure | Cancel assignments first; structure may be linked to submitted slips |
Related guides
Last updated: May 2026