Open ERP

Payroll Scheme Master

Combine ordered salary-component rules, attendance treatment and ledgers into a reusable payroll policy.

When to create more than one scheme

Create separate schemes when employee groups genuinely follow different calculation policies—for example Monthly Staff, Daily-rated Workers or Contract Staff. Do not create one scheme per employee; employee-specific amounts belong in Employee Salary Structure.

FieldWhat it controlsExample
Scheme CodeUnique stable code for the policy.MONTHLY_STAFF
Scheme NameReadable name displayed in Employee and Salary Structure lookups.Monthly Staff Payroll
Pay FrequencyDeclares the normal payroll cycle.MONTHLY
Attendance BasisDescribes the denominator/source used for attendance-sensitive salary.WORKING_DAYS
Proration MethodDeclares how attendance adjustment is intended to be evaluated.PAYABLE_DAYS
Standard Hours per DayNormal daily hours used by attendance/overtime policy.8
Overtime Method / RateStores the scheme's overtime policy. Add and verify an overtime salary component when overtime must affect payroll.HOURLY · ₹150
Rounding MethodDefault scheme rounding policy. Component-line rounding can be set separately and is used during component calculation.NEAREST
Salary Expense AccountDefault expense ledger for the scheme and fallback accounting design.Salary Expense
Net Salary Payable AccountLiability ledger credited with total employee Net Pay. Salary Payment later clears this account.Salary Payable
Effective From / ToDate range in which the scheme is valid. Leave Effective To blank for an open-ended active scheme.01-04-2026 onward
ActiveOnly active schemes are eligible during payroll generation.Checked

Pay Frequency

ValueBehaviourChoose it when
MONTHLYDeclares a monthly salary cycle and matches the current Year/Month Payroll Run workflow.Normal Indian monthly payroll.
WEEKLYStores a weekly policy classification.A weekly payroll design after its period workflow has been verified.
FORTNIGHTLYStores a fourteen-day/half-month policy classification.A fortnightly payroll design after its period workflow has been verified.
Current run is month-oriented

Payroll Run currently requires Payroll Year and Payroll Month and prevents duplicate runs by year, month and run type. Use MONTHLY for the initial production configuration unless the alternate cycle has been fully tested.

Attendance Basis

ValueBehaviourChoose it when
WORKING_DAYSIntended for salary based on scheduled working days. The monthly summary's Working Days and Final Payable Days provide the current ratio.Most attendance-controlled monthly payrolls.
CALENDAR_DAYSDeclares a calendar-day denominator policy.The company calculates salary over all days of the month.
FIXED_DAYSDeclares a fixed denominator such as 26 or 30 days.The employment policy always uses a fixed number of days.
NO_ATTENDANCEThe payroll engine ignores absence proration by setting payable days equal to working days for the calculation.Salary must not depend on attendance.

For WORKING_DAYS, CALENDAR_DAYS and FIXED_DAYS, the current V1 payroll calculator reads the actual Working Days and Final Payable Days stored in Monthly Attendance. Ensure the attendance summary already reflects the chosen policy.

Proration Method

ValueBehaviourChoose it when
PAYABLE_DAYSRepresents salary based on payable-days ÷ working-days; this is the ratio currently used by attendance-affected components.The prepared attendance summary contains authoritative Final Payable Days.
ABSENT_DAYSRepresents full salary minus absence-based deduction.The organisation's policy is absence-led and the attendance summary is prepared accordingly.
HOURSRepresents hour-based proration.Worked hours and standard hours are authoritative and the calculation has been verified.
What payroll V1 executes

The current calculation ratio is FinalPayableDays / WorkingDays. The selected Proration Method describes policy but does not switch to a separate absence/hour formula yet. Use PAYABLE_DAYS for the first live configuration.

Overtime and rounding

ValueBehaviourChoose it when
NONENo scheme-level overtime calculation is expected.Employees are not paid overtime or overtime is handled outside payroll.
HOURLYStores an hourly overtime policy and rate.Overtime Hours will feed a separately verified overtime component.
FIXEDStores a fixed overtime policy/rate.A fixed overtime amount is used after verification.
ValueBehaviourChoose it when
NONEKeeps component precision to two decimals.Paise must be retained.
NEARESTRounds the component amount to the nearest whole rupee.Standard whole-rupee payroll.
UPRounds upward to the next whole rupee.Policy explicitly requires upward rounding.
DOWNRounds downward to the previous whole rupee.Policy explicitly requires downward rounding.

Payroll Scheme Components

Add one child row for every component applicable to this scheme. These rows are evaluated by Calculation Sequence; the scheme row normally overrides the component master’s defaults.

FieldWhat it controlsExample
Salary ComponentSelects the reusable component definition.DA
Component StageScheme-level stage. Keep it aligned with the master unless this scheme intentionally classifies it differently.GROSS_EARNING
Calculation SequenceExecution order. All codes used in the base/formula must have smaller sequence values.20
Calculation MethodMethod applied for this scheme: Fixed, Manual, Percentage, Formula, Attendance Prorated or Slab.PERCENTAGE
Calculation BaseEarlier component codes added to form the calculation base.BASIC+DA
Formula MetadataStructured JSON calculation tree for FORMULA rules. Do not paste JavaScript or PHP.See examples below
Default AmountFallback fixed amount when the employee structure has no non-zero monthly/fixed value.1000
Default PercentagePercentage applied to Calculation Base.12
Minimum / Maximum AmountLower/upper limit applied after calculation when greater than zero.Maximum 1800
Wage CeilingStores the statutory/policy ceiling for the rule. Payroll V1 does not yet apply this field automatically; use a verified max/formula design.15000
Rounding MethodRounding executed for this component after limits are applied.NEAREST
Attendance AffectedProrates a non-ATTENDANCE_PRORATED result by payable days ÷ working days.Yes for Basic
Allow Manual OverridePolicy flag indicating that the calculated amount may be changed with a reason. Review overrides before approval.Yes for variable incentive
Posting Account / SideScheme-specific accounting ledger and debit/credit side; overrides the component default.PF Payable · CREDIT
Effective From / ToOptional validity range for this rule inside the scheme.01-04-2026 onward
ActiveOnly active, date-eligible rules are calculated.Checked

Structured Formula Metadata

FORMULA uses JSON nodes. A node can reference a component, contain a numeric value, or apply an operator to nested operands. Supported operators are ADD, SUBTRACT, MULTIPLY and DIVIDE.

Example: 40% of BASIC

{"operator":"MULTIPLY","operands":[{"component":"BASIC"},{"value":0.40}]}

Example: BASIC + DA − ₹500

{"operator":"SUBTRACT","operands":[{"operator":"ADD","operands":[{"component":"BASIC"},{"component":"DA"}]},{"value":500}]}

Safe formula rules

Only structured JSON is evaluated—never code. Referenced components must be calculated earlier. Division by zero returns zero. Always test a sample employee and compare the calculated component lines before using the scheme.

Complete monthly-staff example

FieldWhat it controlsExample
10 BASICFIXED ₹20,000 · Attendance Affected Yes · Salary Expense debit.At 27/30 days: ₹18,000
20 DAPERCENTAGE 10 · Base BASIC · Attendance Affected Yes.Calculated after BASIC
30 HRAPERCENTAGE 20 · Base BASIC+DA · Attendance Affected Yes.Calculated after DA
40 MILKFIXED ₹1,000 · ADDITION · Attendance Affected No.₹1,000
50 PF_EMPLOYEEPERCENTAGE 12 · Base BASIC+DA · EMPLOYEE_DEDUCTION · PF Payable credit.Verify statutory cap/policy
60 ADVANCE_RECOVERYMANUAL/FIXED placeholder; eligible loan instalments are loaded by the recovery component code.Outstanding/instalment controlled

Pre-live checklist

  • Use MONTHLY + PAYABLE_DAYS for the first month unless another cycle is fully tested.
  • Check every component dependency against Calculation Sequence.
  • Make sure employee structures use this scheme and are ACTIVE for the payroll period.
  • Confirm the Salary Payable account and each component posting ledger/side.
  • Generate one month with two or three employees first and reconcile every line manually.
  • Do not post until the generated payroll posting lines are balanced and approved.
Next guideEmployee Compensation