Open ERP ↗

Salary Component Master

Define the meaning, calculation defaults, statutory classification and accounting destination of every salary amount.

What one component represents

Create one record for each separately calculated amount: Basic Salary, DA, HRA, Milk Allowance, Employee PF, Employer PF, Advance Recovery, Expense Reimbursement and so on. Use a short stable component code because later calculations refer to that code.

FieldWhat it controlsExample
Component CodeUnique calculation identifier. Use uppercase letters, numbers and underscores. Do not rename it after other formulas refer to it.BASIC, DA, PF_EMPLOYEE
Component NameUser-facing name shown in salary structures, payroll lines and reports.Basic Salary
Component StageClassifies the amount in payroll totals and determines whether it is an earning, deduction, contribution, reimbursement or information only.GROSS_EARNING
Occurrence TypeDescribes whether the component normally repeats or is supplied only for selected payroll periods.RECURRING
Calculation MethodDefault method used when a scheme or employee structure does not override it.PERCENTAGE
Base Component CodesOne or more earlier component codes used by Component Sum or Percentage. Separate codes with +; Jhapu reads their already-calculated values.BASIC+DA
Need Voucher Posting?Enable only when this component must create an accounting line. The component can still calculate and appear in payroll reports when disabled.No for display-only Basic; Yes for Total Salary or PF Payable
Calculation Source / RoleIdentifies where the amount comes from and explicitly identifies the single final Net Pay component. Jhapu never recognises Net Pay from its typed name or code.CALCULATED_NET_PAY for Net Salary
Posting ScopeChoose whether the voucher line is consolidated by ledger, retained per employee, or retained for every source record.PER_SOURCE_RECORD for employee advances
Posting Account SourceSelect the component/scheme ledger or the Recovery Account stored against each Employee Loan.EMPLOYEE_LOAN_RECOVERY_ACCOUNT
Default Posting AccountLedger used when Need Voucher Posting is enabled and Posting Account Source is Component Account.Salary Expense / PF Payable / Net Salary Payable
Posting SideWhether the component adds a debit or credit posting line.DEBIT for expense; CREDIT for liability
Calculation OrderDefault ordering hint. In an active payroll scheme, Calculation Sequence is authoritative. Dependencies must come first.BASIC 10, DA 20, HRA 30
ActiveOnly active components are available to the payroll calculator. Deactivate obsolete components instead of reusing their codes for a different meaning.Checked

Calculation Source / Role—and how Net Amount is recognised

ValueBehaviourChoose it when
EMPLOYEE_SALARYReads the amount, percentage, rate and applicable employee-level settings from Employee Salary.Basic, DA, HRA, fixed allowances and ordinary deductions.
ATTENDANCE_OVERTIMECalculates Overtime Rate from Employee Salary × Overtime Hours from Monthly Attendance.Employee-specific overtime.
EMPLOYEE_LOAN_RECOVERYReads eligible instalments from active Employee Loans and retains the source loan for balance recovery and accounting.Advance or loan recovery.
CALCULATED_NET_PAYJhapu calculates Gross Earnings + Additions + Reimbursements − Employee Deductions, writes that amount into this component and uses its ledger for Salary Payable.Exactly one Net Salary/Net Amount component in each Payroll Scheme.
Net Pay is an explicit role

The component may be named Net Salary, Net Amount or anything appropriate. Recognition depends only on Calculation Source / Role = CALCULATED_NET_PAY. The selected scheme must contain exactly one active component with that role. It must enable voucher posting, use Component Account, post Credit and select the Salary Payable ledger.

Component Stage—every value

ValueBehaviourChoose it when
GROSS_EARNINGAdded to Adjusted Gross. When attendance affected, it is prorated before the adjusted gross is calculated. It contributes positively to Net Pay.Basic, DA, regular HRA or another earning considered part of salary gross.
ADDITIONShown separately under Additions and added to Net Pay after adjusted gross.Milk allowance, electricity allowance, incentive or a company-specific addition kept outside gross.
EMPLOYEE_DEDUCTIONShown under Employee Deductions and subtracted from Net Pay.Employee PF, employee ESI, professional tax, TDS or advance recovery.
EMPLOYER_CONTRIBUTIONShown separately for employer cost. It does not increase the employee's Net Pay.Employer PF, employer ESI, gratuity provision or another employer-borne cost.
REIMBURSEMENTShown under Reimbursements and added to Net Pay without becoming Adjusted Gross.Approved travel, telephone or expense reimbursements.
INFORMATIONALCalculated and retained as a component line but excluded from the current Net Pay equation.A display-only value, notional amount or base used for reporting/other formulas.
Stage drives the current payroll total

The engine calculates Net Pay as Gross Earnings + Additions + Reimbursements − Employee Deductions. Employer Contributions and Informational components are recorded but not included in that equation.

Occurrence Type

ValueBehaviourChoose it when
RECURRINGMarks the component as normally applicable in every eligible payroll period.Basic, DA, HRA, fixed allowance, PF or another regular item.
VARIABLEMarks the component as period-dependent and normally subject to entry, import or review for a particular month.Bonus, overtime, incentive, reimbursement or an occasional recovery.
Classification, not automatic inclusion

In the current payroll engine, inclusion comes from the active Payroll Scheme Components and Employee Salary Structure Lines. Occurrence Type explains the intended behaviour; it does not by itself remove a component from a month.

Calculation Method—every value

ValueBehaviourChoose it when
FIXEDUses Monthly Amount from the employee structure; if zero, uses Fixed Amount or the scheme's Default Amount.Basic ₹20,000 or a fixed allowance ₹1,000.
MANUALCurrently resolves from the same configured amount fields as FIXED. It indicates that a permitted user may provide/override the period amount.Variable bonus, incentive or recovery reviewed before finalisation.
COMPONENT_SUMAdds the already-calculated components entered in Base Component Codes.Gross Salary = BASIC + DA, or another visible/posting total that must not be typed again.
PERCENTAGEAdds the Base Component Codes and multiplies that total by Percentage ÷ 100.DA 10% of BASIC; HRA 20% of BASIC+DA.
ATTENDANCE_PRORATEDMultiplies the configured fixed amount by Final Payable Days ÷ Working Days.A fixed monthly earning that must reduce for unpaid absence.
Avoid double-counting totals

When BASIC and DA are Gross Earnings, create GROSS_SALARY as an Informational Component Sum of BASIC+DA. It can appear in the chart and create the consolidated Salary Expense posting without being added to Net Pay a second time.

What to enter in Base Component Codes

Enter the component codes that must already have been calculated. Jhapu reads the expression, extracts each code and adds its current calculated amount. For this reason, calculation sequence is essential.

FieldWhat it controlsExample
BASICUses the calculated value of BASIC as the base.DA = BASIC × 10%
BASIC+DAAdds the calculated BASIC and DA values.HRA = (BASIC + DA) × 20%
BASIC,DA,HRANon-alphanumeric separators are treated as separators; the three component values are added.A percentage of gross components
BlankComponent Sum and Percentage have no base and therefore calculate zero. Fixed, Manual and Attendance Prorated do not require component codes.Leave blank for a fixed/manual amount
Order example

If HRA uses BASIC+DA, BASIC and DA must have smaller Calculation Sequence values than HRA. A code that has not yet been calculated contributes zero.

Toggle behaviour

FieldWhat it controlsExample
Attendance AffectedWhen checked, any non-ATTENDANCE_PRORATED method is also multiplied by payable-days ÷ working-days. ATTENDANCE_PRORATED already applies that ratio directly.Basic and DA: Yes; reimbursement: usually No
Included in WagesClassifies the component as part of wages for policy/statutory reporting and future rule use. It does not independently alter payroll V1 arithmetic.Basic: Yes
Included in PF BaseMarks the amount as part of the PF wage base. The current percentage calculation still needs explicit Base Component Codes such as BASIC+DA.Basic and eligible DA: Yes
Included in ESI BaseMarks the amount as part of ESI wages. Use explicit component codes in the ESI calculation rule.Eligible gross components: Yes
Included in Gratuity BaseClassifies the component for gratuity-base reporting/calculation design.Basic and eligible DA: Yes
TaxableMarks the component as taxable for payroll/tax reporting. It does not calculate income tax by itself.Basic/HRA: according to policy
Affects GrossBusiness classification for gross reporting. Component Stage currently determines the payroll V1 gross total.Gross earnings: Yes
Affects Net PayBusiness classification for net-pay reporting. The current engine's Net Pay equation is driven by Component Stage.Earnings/deductions/reimbursements: Yes
Affects CTCMarks employee cost components, including employer contributions, for CTC design and reports.Basic and employer PF: Yes
Flags do not replace formulas

For example, checking Included in PF Base does not make PF calculate automatically. Add the PF component to a scheme, select Percentage, enter the applicable base component codes and percentage, then verify the result.

Posting account and side

A component contributes an accounting line only when Need Voucher Posting? is enabled. Net Pay is credited through the one component whose Calculation Source / Role is Calculated Net Pay; its Default Posting Account is the Salary Payable ledger.

ValueBehaviourChoose it when
CONSOLIDATEDCombines the component amount across employees when ledger and posting side are the same.Salary Expense, PF Payable, ESI Payable and most monthly payroll totals.
PER_EMPLOYEEKeeps a separate posting row for every employee and component.An employee-wise ledger or audit trail is required even when the ledger is shared.
PER_SOURCE_RECORDKeeps one posting row for each source record, such as every active Employee Loan.Advance/loan recovery where each loan may carry a different recovery ledger.
Calculation and accounting are independent

Basic, DA and HRA may all appear in the salary chart while only a Total Salary component posts the consolidated salary expense. Leaving voucher posting disabled does not remove a component from employee salary or payroll calculation.

Illustrative monthly payroll journal

DR Salary Expense — gross earnings and eligible additions

DR Employer PF Expense — employer contribution

CR PF Payable — employee/employer PF liabilities as designed

CR ESI Payable — ESI liabilities

CR Advance Recovery — recovered employee advance

CR Net Salary Payable — total amount payable to employees

The exact entries depend on company accounting policy. The calculator refuses to prepare posting lines when total debit and total credit differ by more than ₹0.01.

Worked component examples

FieldWhat it controlsExample
BASICGROSS_EARNING · RECURRING · FIXED or ATTENDANCE_PRORATED · attendance affected · debit Salary Expense.₹20,000
DAGROSS_EARNING · RECURRING · PERCENTAGE · base BASIC · attendance affected · debit Salary Expense.10% = ₹2,000
GROSS_SALARYINFORMATIONAL · RECURRING · COMPONENT_SUM · base BASIC+DA · voucher posting enabled · CONSOLIDATED · DEBIT Salary Expense.₹22,000 without double-counting Net Pay
HRAGROSS_EARNING or ADDITION according to company policy · PERCENTAGE · base BASIC+DA.20% = ₹4,400
MILKADDITION · RECURRING · FIXED · usually not attendance affected · debit selected expense ledger.₹1,000
PF_EMPLOYEEEMPLOYEE_DEDUCTION · RECURRING · PERCENTAGE · base BASIC+DA · credit PF Payable.12% = ₹2,640
PF_EMPLOYEREMPLOYER_CONTRIBUTION · RECURRING · PERCENTAGE · base BASIC+DA · appropriate expense/liability design.12% = ₹2,640
ADVANCE_RECOVERYEMPLOYEE_DEDUCTION · VARIABLE · Calculation Source EMPLOYEE_LOAN_RECOVERY · voucher posting enabled · PER_SOURCE_RECORD · account source EMPLOYEE_LOAN_RECOVERY_ACCOUNT · CREDIT.Each eligible loan instalment credits that loan’s Recovery Account
NET_PAYINFORMATIONAL · Calculation Source CALCULATED_NET_PAY · voucher posting enabled · CONSOLIDATED · Component Account · CREDIT Net Salary Payable.Final amount calculated by Jhapu; do not enter an employee amount
TRAVEL_REIMBREIMBURSEMENT · VARIABLE · MANUAL/FIXED · not attendance affected.₹3,500 approved claim

Before saving

  • Use one meaning per Component Code and never reuse an old code for a new purpose.
  • Confirm the stage because it determines the current gross/net equation.
  • Confirm every base code is calculated earlier in the scheme.
  • Enable Need Voucher Posting only for components that should create an accounting line; then select an active ledger and correct debit/credit side.
  • For Advance Recovery, select Employee Loan Recovery for both calculation and account source, and use Per Source Record posting.
  • Include exactly one Calculated Net Pay component in every scheme and configure its Salary Payable ledger on the Credit side.
  • Verify PF, ESI, gratuity and tax rules with the organisation’s payroll/accounting adviser.
Next guidePayroll Scheme Master →