payroll-rules-india 1.10.3 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,3 +3,4 @@ export declare const conveyanceGrossEarningsRule: Rule;
3
3
  export declare const conveyanceFixed1600Rule: Rule;
4
4
  export declare const conveyanceDaily23Rule: Rule;
5
5
  export declare const conveyanceDaily75Rule: Rule;
6
+ export declare const conveyanceDailyRateRule: Rule;
@@ -46,3 +46,14 @@ export const conveyanceDaily75Rule = {
46
46
  monthlyFormula: "round(payableDays * 75, 2)",
47
47
  annualFormula: "round(payableDays * 75 * 12, 2)",
48
48
  };
49
+ export const conveyanceDailyRateRule = {
50
+ ruleCode: "CONVEYANCE_DAILY_RATE",
51
+ name: "Conveyance – Daily Rate (₹31.26)",
52
+ category: "Earning",
53
+ type: "Custom",
54
+ version: "FY2024-2025",
55
+ description: "Conveyance allowance calculated at ₹31.255 per payable day",
56
+ condition: "payableDays > 0",
57
+ monthlyFormula: "round(payableDays * 31.255, 2)",
58
+ annualFormula: "round(payableDays * 31.255, 2)",
59
+ };
@@ -5,3 +5,4 @@ export declare const hraBasic10Rule: Rule;
5
5
  export declare const hraBasic8Rule: Rule;
6
6
  export declare const hraBasic30Rule: Rule;
7
7
  export declare const hraOthersRule: Rule;
8
+ export declare const hraDailyRateRule: Rule;
@@ -69,3 +69,14 @@ export const hraOthersRule = {
69
69
  monthlyFormula: "round(payableDays * 0.52963, 2)",
70
70
  annualFormula: "round(payableDays * 0.52963 * 12, 2)",
71
71
  };
72
+ export const hraDailyRateRule = {
73
+ ruleCode: "HRA_DAILY_RATE",
74
+ name: "HRA – Daily Rate (₹89.30)",
75
+ category: "Earning",
76
+ type: "Custom",
77
+ version: "FY2024-2025",
78
+ description: "House Rent Allowance calculated at ₹89.30 per payable day",
79
+ condition: "payableDays > 0",
80
+ monthlyFormula: "round(payableDays * 89.3, 2)",
81
+ annualFormula: "round(payableDays * 89.3, 2)",
82
+ };
@@ -32,3 +32,4 @@ export * from "./acChargesRule";
32
32
  export * from "./geyserAllowance";
33
33
  export * from "./quarterRentRules";
34
34
  export * from "./extraBasicRule";
35
+ export * from "./localAllowanceRule";
@@ -32,3 +32,4 @@ export * from "./acChargesRule";
32
32
  export * from "./geyserAllowance";
33
33
  export * from "./quarterRentRules";
34
34
  export * from "./extraBasicRule";
35
+ export * from "./localAllowanceRule";
@@ -0,0 +1,2 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const localAllowanceRule: Rule;
@@ -0,0 +1,10 @@
1
+ export const localAllowanceRule = {
2
+ ruleCode: "LOCAL_ALLOWANCE",
3
+ name: "Local Allowance",
4
+ category: "Earning",
5
+ type: "Custom",
6
+ version: "FY2024-2025",
7
+ description: "Local allowance calculated on a pro-rata basis at Rs.1800 per month divided by 26 working days.",
8
+ condition: "payableDays > 0",
9
+ monthlyFormula: "round((1800 / 26) * payableDays, 0)",
10
+ };
@@ -1,3 +1,5 @@
1
1
  import { Rule } from "../../utils/types";
2
2
  export declare const mobileAllowanceRule: Rule;
3
3
  export declare const mobileAllowance500Rule: Rule;
4
+ export declare const mobileAllowanceRuleTierB: Rule;
5
+ export declare const mobileAllowanceMonthlyProratedRule: Rule;
@@ -22,3 +22,25 @@ export const mobileAllowance500Rule = {
22
22
  monthlyFormula: "round((500 / workingDaysInMonth) * payableDays, 2)",
23
23
  annualFormula: "round(((500 / workingDaysInMonth) * payableDays) * 12, 2)",
24
24
  };
25
+ export const mobileAllowanceRuleTierB = {
26
+ ruleCode: "MOBILE_ALLOWANCE_TIER_B",
27
+ name: "Mobile Allowance - ₹19.23 per day",
28
+ category: "Earning",
29
+ type: "Custom",
30
+ version: "FY2024-2025",
31
+ description: "Mobile Allowance = 19.23 * payable days",
32
+ condition: "payableDays > 0",
33
+ monthlyFormula: "round(19.23 * payableDays, 2)",
34
+ annualFormula: "round(19.23 * payableDays, 2)",
35
+ };
36
+ export const mobileAllowanceMonthlyProratedRule = {
37
+ ruleCode: "MOBILE_ALLOWANCE_MONTHLY_PRORATED",
38
+ name: "Mobile Allowance – Monthly Prorated (₹1250)",
39
+ category: "Earning",
40
+ type: "Custom",
41
+ version: "FY2024-2025",
42
+ description: "Mobile allowance prorated based on payable days: (₹1250 / workingDaysInMonth) × payableDays",
43
+ condition: "payableDays > 0 && workingDaysInMonth > 0",
44
+ monthlyFormula: "round((1250 / workingDaysInMonth) * payableDays, 0)",
45
+ annualFormula: "round((1250 / workingDaysInMonth) * payableDays, 0)",
46
+ };
@@ -1,2 +1,3 @@
1
1
  import { Rule } from "../../utils/types";
2
2
  export declare const otherAllowanceRule: Rule;
3
+ export declare const otherDailyAllowanceRule: Rule;
@@ -10,3 +10,15 @@ export const otherAllowanceRule = {
10
10
  monthlyFormula: "round((basic + dailyWages) > 20 ? 2000 : ((2000 / 26) * (basic + dailyWages)), 0)",
11
11
  annualFormula: "round(((basic + dailyWages) > 20 ? 2000 : ((2000 / 26) * (basic + dailyWages))) * 12, 0)",
12
12
  };
13
+ export const otherDailyAllowanceRule = {
14
+ ruleCode: "OTHER_DAILY_ALLOWANCE",
15
+ name: "Other Allowance – Daily Rate (₹300)",
16
+ category: "Earning",
17
+ type: "Custom",
18
+ version: "FY2024-2025",
19
+ description: "Other allowance calculated at ₹300 per payable day",
20
+ condition: "payableDays > 0",
21
+ monthlyFormula: "round(payableDays * 300, 2)",
22
+ // Annual value should be derived by aggregating monthly payroll
23
+ annualFormula: "round(payableDays * 300, 2)",
24
+ };
@@ -3,3 +3,4 @@ export declare const rbBasic4_81Rule: Rule;
3
3
  export declare const rbEarningRule492: Rule;
4
4
  export declare const rbBasic5Rule: Rule;
5
5
  export declare const rbBasic10Rule: Rule;
6
+ export declare const rbBasic4_11Rule: Rule;
@@ -45,3 +45,14 @@ export const rbBasic10Rule = {
45
45
  monthlyFormula: "round(basic * 0.1, 2)",
46
46
  annualFormula: "round(basic * 0.1 * 12, 2)",
47
47
  };
48
+ export const rbBasic4_11Rule = {
49
+ ruleCode: "RB_BASIC_4_11",
50
+ name: "Retention Bonus - 4.11% of Basic",
51
+ category: "Earning",
52
+ type: "Custom",
53
+ version: "FY2024-2025",
54
+ description: "Retention Bonus = Basic * 4.11%",
55
+ condition: "basic > 0",
56
+ monthlyFormula: "round(basic * 0.0411, 2)",
57
+ annualFormula: "round(basic * 0.0411 * 12, 2)",
58
+ };
@@ -1,3 +1,4 @@
1
1
  import { Rule } from "../../utils/types";
2
2
  export declare const safetyEarningsRule: Rule;
3
3
  export declare const safetyEarningsRuleTwoPercent: Rule;
4
+ export declare const safetyOfficerSpecialAllowanceRule: Rule;
@@ -20,3 +20,13 @@ export const safetyEarningsRuleTwoPercent = {
20
20
  monthlyFormula: "round((basic * 0.02) * payableDays, 2)",
21
21
  annualFormula: "round((basic * 0.02) * payableDays * 12, 2)",
22
22
  };
23
+ export const safetyOfficerSpecialAllowanceRule = {
24
+ ruleCode: "SAFETY_OFFICER_SPECIAL_ALLOWANCE",
25
+ name: "Safety Officer Special Allowance",
26
+ category: "Earning",
27
+ type: "Custom",
28
+ version: "FY2024-2025",
29
+ description: "Safety Officer special allowance calculated on a pro-rata basis at Rs.4000 per month divided by 26 working days.",
30
+ condition: "payableDays > 0",
31
+ monthlyFormula: "round((4000 / workingDaysInMonth) * payableDays, 0)",
32
+ };
@@ -2,3 +2,4 @@ import { Rule } from "../../utils/types";
2
2
  export declare const shiftAllowanceRule: Rule;
3
3
  export declare const shiftAllowanceRuleNew: Rule;
4
4
  export declare const shiftAllowanceRuleTierA: Rule;
5
+ export declare const nightShiftAllowanceRuleTierB: Rule;
@@ -32,3 +32,13 @@ export const shiftAllowanceRuleTierA = {
32
32
  condition: "shiftDays > 0",
33
33
  monthlyFormula: "round((dailyWages * 0.075) * shiftDays, 0)",
34
34
  };
35
+ export const nightShiftAllowanceRuleTierB = {
36
+ ruleCode: "Night Shift Allowance",
37
+ name: "Night Shift Allowance",
38
+ category: "Earning",
39
+ type: "Custom",
40
+ version: "FY2024-2025",
41
+ description: "shift allowance calculated at Rs.6.15 per night shift day.",
42
+ condition: "shiftDays > 0",
43
+ monthlyFormula: "round(shiftDays * 6.15, 2)",
44
+ };
@@ -5,3 +5,6 @@ export declare const washingAllowanceTierC: Rule;
5
5
  export declare const washingAllowanceTierCRevised: Rule;
6
6
  export declare const washingAllowanceUSWRuleTierD: Rule;
7
7
  export declare const washingAllowanceUSWRuleTierE: Rule;
8
+ export declare const washingAllowanceUSWRuleTierF: Rule;
9
+ export declare const washingAllowanceUSWRuleTierG: Rule;
10
+ export declare const washingAllowanceTierH: Rule;
@@ -62,3 +62,34 @@ export const washingAllowanceUSWRuleTierE = {
62
62
  condition: "payableDays > 0",
63
63
  monthlyFormula: "round(payableDays * 35, 2)",
64
64
  };
65
+ export const washingAllowanceUSWRuleTierF = {
66
+ ruleCode: "WASHING_ALLOWANCE",
67
+ name: "Washing Allowance At ₹44",
68
+ category: "Earning",
69
+ type: "Custom",
70
+ version: "FY2024-2025",
71
+ description: "Washing allowance for SW category at Rs.44 per present day.",
72
+ condition: "payableDays > 0",
73
+ monthlyFormula: "round(payableDays * 44, 2)",
74
+ };
75
+ export const washingAllowanceUSWRuleTierG = {
76
+ ruleCode: "WASHING_ALLOWANCE_TIER_G",
77
+ name: "Washing Allowance At ₹5.44",
78
+ category: "Earning",
79
+ type: "Custom",
80
+ version: "FY2024-2025",
81
+ description: "Washing allowance for category at Rs.5.44 per present day.",
82
+ condition: "payableDays > 0",
83
+ monthlyFormula: "round(payableDays * 5.44, 2)",
84
+ };
85
+ export const washingAllowanceTierH = {
86
+ ruleCode: "WASHING_ALLOWANCE_TIER_H",
87
+ name: "Washing Allowance – Tier H",
88
+ category: "Earning",
89
+ type: "Custom",
90
+ version: "FY2024-2025",
91
+ description: "Washing Allowance = Rs. 10 * payable days",
92
+ condition: "payableDays > 0",
93
+ monthlyFormula: "round(10 * payableDays, 2)",
94
+ annualFormula: "round(10 * payableDays * 12, 2)",
95
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payroll-rules-india",
3
- "version": "1.10.3",
3
+ "version": "2.0.1",
4
4
  "description": "Custom and statutory payroll rules engine for India salary calculations.",
5
5
  "author": "Yogesh c",
6
6
  "license": "MIT",