payroll-rules-india 2.10.1 → 2.11.0

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.
Files changed (89) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.js +6 -0
  3. package/dist/rules/fy2024_2025/acChargesRules.d.ts +2 -0
  4. package/dist/rules/fy2024_2025/acChargesRules.js +10 -0
  5. package/dist/rules/fy2024_2025/additionalAllowanceRules.d.ts +2 -0
  6. package/dist/rules/fy2024_2025/additionalAllowanceRules.js +12 -0
  7. package/dist/rules/fy2024_2025/basicRules.d.ts +5 -0
  8. package/dist/rules/fy2024_2025/basicRules.js +65 -0
  9. package/dist/rules/fy2024_2025/bonusRules.d.ts +3 -0
  10. package/dist/rules/fy2024_2025/bonusRules.js +23 -0
  11. package/dist/rules/fy2024_2025/conveyanceAllowanceRules.d.ts +6 -0
  12. package/dist/rules/fy2024_2025/conveyanceAllowanceRules.js +59 -0
  13. package/dist/rules/fy2024_2025/dearnessAllowanceRules.d.ts +2 -0
  14. package/dist/rules/fy2024_2025/dearnessAllowanceRules.js +11 -0
  15. package/dist/rules/fy2024_2025/earnedleaveRules.d.ts +3 -0
  16. package/dist/rules/fy2024_2025/earnedleaveRules.js +23 -0
  17. package/dist/rules/fy2024_2025/emergencyAllowanceRules.d.ts +2 -0
  18. package/dist/rules/fy2024_2025/emergencyAllowanceRules.js +12 -0
  19. package/dist/rules/fy2024_2025/esiRules.d.ts +6 -0
  20. package/dist/rules/fy2024_2025/esiRules.js +54 -0
  21. package/dist/rules/fy2024_2025/extraBasicRules.d.ts +2 -0
  22. package/dist/rules/fy2024_2025/extraBasicRules.js +11 -0
  23. package/dist/rules/fy2024_2025/fuelAllowanceRules.d.ts +2 -0
  24. package/dist/rules/fy2024_2025/fuelAllowanceRules.js +12 -0
  25. package/dist/rules/fy2024_2025/generalAllowanceRules.d.ts +2 -0
  26. package/dist/rules/fy2024_2025/generalAllowanceRules.js +12 -0
  27. package/dist/rules/fy2024_2025/geyserAllowanceRules.d.ts +2 -0
  28. package/dist/rules/fy2024_2025/geyserAllowanceRules.js +11 -0
  29. package/dist/rules/fy2024_2025/hraRules.d.ts +8 -0
  30. package/dist/rules/fy2024_2025/hraRules.js +82 -0
  31. package/dist/rules/fy2024_2025/incomeTaxRules.d.ts +2 -0
  32. package/dist/rules/fy2024_2025/incomeTaxRules.js +15 -0
  33. package/dist/rules/fy2024_2025/index.d.ts +38 -0
  34. package/dist/rules/fy2024_2025/index.js +38 -0
  35. package/dist/rules/fy2024_2025/jaggeryAllowanceRule.d.ts +2 -0
  36. package/dist/rules/fy2024_2025/jaggeryAllowanceRule.js +10 -0
  37. package/dist/rules/fy2024_2025/leaveAllowanceRules.d.ts +3 -0
  38. package/dist/rules/fy2024_2025/leaveAllowanceRules.js +24 -0
  39. package/dist/rules/fy2024_2025/localAllowanceRules.d.ts +2 -0
  40. package/dist/rules/fy2024_2025/localAllowanceRules.js +11 -0
  41. package/dist/rules/fy2024_2025/medicalAllowanceRules.d.ts +3 -0
  42. package/dist/rules/fy2024_2025/medicalAllowanceRules.js +24 -0
  43. package/dist/rules/fy2024_2025/mobileAllowanceRules.d.ts +7 -0
  44. package/dist/rules/fy2024_2025/mobileAllowanceRules.js +68 -0
  45. package/dist/rules/fy2024_2025/nationalHolidayRules.d.ts +6 -0
  46. package/dist/rules/fy2024_2025/nationalHolidayRules.js +60 -0
  47. package/dist/rules/fy2024_2025/optionalHolidayRules.d.ts +2 -0
  48. package/dist/rules/fy2024_2025/optionalHolidayRules.js +12 -0
  49. package/dist/rules/fy2024_2025/otherAllowanceRules.d.ts +4 -0
  50. package/dist/rules/fy2024_2025/otherAllowanceRules.js +35 -0
  51. package/dist/rules/fy2024_2025/otherDeductionsRule.d.ts +2 -0
  52. package/dist/rules/fy2024_2025/otherDeductionsRule.js +11 -0
  53. package/dist/rules/fy2024_2025/otherPaidHolidayRules.d.ts +2 -0
  54. package/dist/rules/fy2024_2025/otherPaidHolidayRules.js +12 -0
  55. package/dist/rules/fy2024_2025/overTimesRules.d.ts +3 -0
  56. package/dist/rules/fy2024_2025/overTimesRules.js +20 -0
  57. package/dist/rules/fy2024_2025/pfRules.d.ts +3 -0
  58. package/dist/rules/fy2024_2025/pfRules.js +23 -0
  59. package/dist/rules/fy2024_2025/profTaxRules.d.ts +2 -0
  60. package/dist/rules/fy2024_2025/profTaxRules.js +11 -0
  61. package/dist/rules/fy2024_2025/professionTaxrules.d.ts +2 -0
  62. package/dist/rules/fy2024_2025/professionTaxrules.js +10 -0
  63. package/dist/rules/fy2024_2025/quarterRentRules.d.ts +2 -0
  64. package/dist/rules/fy2024_2025/quarterRentRules.js +10 -0
  65. package/dist/rules/fy2024_2025/retentionBonusRules.d.ts +7 -0
  66. package/dist/rules/fy2024_2025/retentionBonusRules.js +69 -0
  67. package/dist/rules/fy2024_2025/retrenchmentRules.d.ts +2 -0
  68. package/dist/rules/fy2024_2025/retrenchmentRules.js +12 -0
  69. package/dist/rules/fy2024_2025/rfbRules.d.ts +2 -0
  70. package/dist/rules/fy2024_2025/rfbRules.js +11 -0
  71. package/dist/rules/fy2024_2025/safetyAllowanceRules.d.ts +4 -0
  72. package/dist/rules/fy2024_2025/safetyAllowanceRules.js +32 -0
  73. package/dist/rules/fy2024_2025/shiftAllowanceRules.d.ts +5 -0
  74. package/dist/rules/fy2024_2025/shiftAllowanceRules.js +44 -0
  75. package/dist/rules/fy2024_2025/specialAllowanceRules.d.ts +3 -0
  76. package/dist/rules/fy2024_2025/specialAllowanceRules.js +22 -0
  77. package/dist/rules/fy2024_2025/teaAllowanceRules.d.ts +2 -0
  78. package/dist/rules/fy2024_2025/teaAllowanceRules.js +12 -0
  79. package/dist/rules/fy2024_2025/uniformAllowanceRules.d.ts +6 -0
  80. package/dist/rules/fy2024_2025/uniformAllowanceRules.js +58 -0
  81. package/dist/rules/fy2024_2025/washingAllowanceRules.d.ts +11 -0
  82. package/dist/rules/fy2024_2025/washingAllowanceRules.js +105 -0
  83. package/dist/rules/index.d.ts +5 -0
  84. package/dist/rules/index.js +4 -0
  85. package/dist/utils/ruleEvaluator.d.ts +2 -0
  86. package/dist/utils/ruleEvaluator.js +32 -0
  87. package/dist/utils/types.d.ts +44 -0
  88. package/dist/utils/types.js +1 -0
  89. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const localAllowanceRule: Rule;
@@ -0,0 +1,11 @@
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
+ annualFormula: "round(((1800 / 26) * payableDays) * 12, 0)",
11
+ };
@@ -0,0 +1,3 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const medicalFixed1250Rule: Rule;
3
+ export declare const medicalGrossEarningsRule: Rule;
@@ -0,0 +1,24 @@
1
+ // Medical Allowance: (1250 / no of working days in month) * payable days
2
+ export const medicalFixed1250Rule = {
3
+ ruleCode: "MEDICAL_FIXED_1250",
4
+ name: "Medical Allowance - Fixed ₹1250",
5
+ category: "Earning",
6
+ type: "Custom",
7
+ version: "FY2024-2025",
8
+ description: "Medical Allowance = (1250 / no of working days in month) * payable days",
9
+ condition: "workingDaysInMonth > 0 && payableDays > 0",
10
+ monthlyFormula: "round((1250 / workingDaysInMonth) * payableDays, 2)",
11
+ annualFormula: "round(((1250 / workingDaysInMonth) * payableDays) * 12, 2)",
12
+ };
13
+ // Medical Allowance: grossEarnings * 6.67%
14
+ export const medicalGrossEarningsRule = {
15
+ ruleCode: "MEDICAL_GROSS_6_67",
16
+ name: "Medical Allowance - 6.67% of Gross Earnings",
17
+ category: "Earning",
18
+ type: "Custom",
19
+ version: "FY2024-2025",
20
+ description: "Medical Allowance = grossEarnings * 6.67%",
21
+ condition: "grossEarnings > 0",
22
+ monthlyFormula: "round(grossEarnings * 0.0667, 2)",
23
+ annualFormula: "round(grossEarnings * 0.0667 * 12, 2)",
24
+ };
@@ -0,0 +1,7 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const mobileAllowanceRule: Rule;
3
+ export declare const mobileAllowance500Rule: Rule;
4
+ export declare const mobileAllowanceRuleTierB: Rule;
5
+ export declare const mobileAllowanceMonthlyProratedRule: Rule;
6
+ export declare const mobileAllowaceTierC: Rule;
7
+ export declare const mobileAllowaceTierD: Rule;
@@ -0,0 +1,68 @@
1
+ // Mobile Allowance: 10 rupee per day * worked days
2
+ export const mobileAllowanceRule = {
3
+ ruleCode: "MOBILE_ALLOWANCE",
4
+ name: "Mobile Allowance",
5
+ category: "Earning",
6
+ type: "Custom",
7
+ version: "FY2024-2025",
8
+ description: "Mobile Allowance = 10 rupee per day * worked days",
9
+ condition: "payableDays > 0",
10
+ monthlyFormula: "round(10 * payableDays, 2)",
11
+ annualFormula: "round(10 * payableDays * 12, 2)",
12
+ };
13
+ // Mobile Allowance: 500 / no. of working days * worked days
14
+ export const mobileAllowance500Rule = {
15
+ ruleCode: "MOBILE_ALLOWANCE_500",
16
+ name: "Mobile Allowance - ₹500 P.M",
17
+ category: "Earning",
18
+ type: "Custom",
19
+ version: "FY2024-2025",
20
+ description: "Mobile Allowance @ 500/- P.M = 500 / no. of working days * worked days",
21
+ condition: "workingDaysInMonth > 0 && payableDays > 0",
22
+ monthlyFormula: "round((500 / workingDaysInMonth) * payableDays, 2)",
23
+ annualFormula: "round(((500 / workingDaysInMonth) * payableDays) * 12, 2)",
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
+ };
47
+ export const mobileAllowaceTierC = {
48
+ ruleCode: "MOBILE_Allowance_TIER_C",
49
+ name: "Mobile Allowance (MB) - ₹8.93 per day",
50
+ category: "Earning",
51
+ type: "Custom",
52
+ version: "FY2024-2025",
53
+ description: "Mobile Allowance = 8.93 * payable days",
54
+ condition: "payableDays > 0",
55
+ monthlyFormula: "round(8.93 * payableDays, 2)",
56
+ annualFormula: "round(8.93 * payableDays, 2)",
57
+ };
58
+ export const mobileAllowaceTierD = {
59
+ ruleCode: "MOBILE_Allowance_TIER_D",
60
+ name: "Mobile Allowance (MB) - ₹56.94 per day",
61
+ category: "Earning",
62
+ type: "Custom",
63
+ version: "FY2024-2025",
64
+ description: "Mobile Allowance = 56.94 * payable days",
65
+ condition: "payableDays > 0",
66
+ monthlyFormula: "round(56.94 * payableDays, 2)",
67
+ annualFormula: "round(56.94 * payableDays, 2)",
68
+ };
@@ -0,0 +1,6 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const nhBasic2_62Rule: Rule;
3
+ export declare const nhBasic0_961Rule: Rule;
4
+ export declare const nhBasic2_2Rule: Rule;
5
+ export declare const nhBasic0_0262Rule: Rule;
6
+ export declare const nhHolidaysDailyWagesRule: Rule;
@@ -0,0 +1,60 @@
1
+ // NH: 2.62% * Basic
2
+ export const nhBasic2_62Rule = {
3
+ ruleCode: "NH_BASIC_2_62",
4
+ name: "National Holiday Allowance - 2.62% of Basic",
5
+ category: "Earning",
6
+ type: "Custom",
7
+ version: "FY2024-2025",
8
+ description: "National Holiday Allowance = 2.62% * Basic",
9
+ condition: "basic > 0",
10
+ monthlyFormula: "round(basic * 0.0262, 2)",
11
+ annualFormula: "round(basic * 0.0262 * 12, 2)",
12
+ };
13
+ // NH: Basic * 0.961%
14
+ export const nhBasic0_961Rule = {
15
+ ruleCode: "NH_BASIC_0_961",
16
+ name: "National Holiday Allowance - 0.961% of Basic",
17
+ category: "Earning",
18
+ type: "Custom",
19
+ version: "FY2024-2025",
20
+ description: "National Holiday Allowance = Basic * 0.961%",
21
+ condition: "basic > 0",
22
+ monthlyFormula: "round(basic * 0.00961, 2)",
23
+ annualFormula: "round(basic * 0.00961 * 12, 2)",
24
+ };
25
+ // NH: Basic * 2.2%
26
+ export const nhBasic2_2Rule = {
27
+ ruleCode: "NH_BASIC_2_2",
28
+ name: "National Holiday Allowance - 2.2% of Basic",
29
+ category: "Earning",
30
+ type: "Custom",
31
+ version: "FY2024-2025",
32
+ description: "National Holiday Allowance = Basic * 2.2%",
33
+ condition: "basic > 0",
34
+ monthlyFormula: "round(basic * 0.022, 2)",
35
+ annualFormula: "round(basic * 0.022 * 12, 2)",
36
+ };
37
+ // NH: Basic * 0.0262
38
+ export const nhBasic0_0262Rule = {
39
+ ruleCode: "NH_BASIC_0_0262",
40
+ name: "National Holiday Allowance - 0.0262 of Basic",
41
+ category: "Earning",
42
+ type: "Custom",
43
+ version: "FY2024-2025",
44
+ description: "National Holiday Allowance = Basic * 0.0262",
45
+ condition: "basic > 0",
46
+ monthlyFormula: "round(basic * 0.0262, 2)",
47
+ annualFormula: "round(basic * 0.0262 * 12, 2)",
48
+ };
49
+ // NH: no of holidays * Daily wages
50
+ export const nhHolidaysDailyWagesRule = {
51
+ ruleCode: "NH_HOLIDAYS_DAILY",
52
+ name: "National Holiday Allowance - Holidays * Daily Wages",
53
+ category: "Earning",
54
+ type: "Custom",
55
+ version: "FY2024-2025",
56
+ description: "National Holiday Allowance = no of holidays * Daily wages",
57
+ condition: "noOfHolidays > 0 && dailyWages > 0",
58
+ monthlyFormula: "round(noOfHolidays * dailyWages, 2)",
59
+ annualFormula: "round(noOfHolidays * dailyWages * 12, 2)",
60
+ };
@@ -0,0 +1,2 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const optionalHolidayRule: Rule;
@@ -0,0 +1,12 @@
1
+ // HO: Basic * 0.96%
2
+ export const optionalHolidayRule = {
3
+ ruleCode: "OPTIONAL_HOLIDAY",
4
+ name: "Optional Holiday Allowance",
5
+ category: "Earning",
6
+ type: "Custom",
7
+ version: "FY2024-2025",
8
+ description: "Optional Holiday Allowance = Basic * 0.96%",
9
+ condition: "basic > 0",
10
+ monthlyFormula: "round(basic * 0.0096, 2)",
11
+ annualFormula: "round(basic * 0.0096 * 12, 2)",
12
+ };
@@ -0,0 +1,4 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const otherAllowanceRule: Rule;
3
+ export declare const otherDailyAllowanceRule: Rule;
4
+ export declare const otherEarningsRule: Rule;
@@ -0,0 +1,35 @@
1
+ // Other Allowances: IF((Basic Wage+Daily wage)>20,2000,ROUND((2000/26)*(Basic Wage+Daily wage),0))
2
+ export const otherAllowanceRule = {
3
+ ruleCode: "OTHER_ALLOWANCE",
4
+ name: "Other Allowances",
5
+ category: "Earning",
6
+ type: "Custom",
7
+ version: "FY2024-2025",
8
+ description: "Other Allowances = IF((Basic Wage+Daily wage)>20,2000,ROUND((2000/26)*(Basic Wage+Daily wage),0))",
9
+ condition: "basic > 0 || dailyWages > 0",
10
+ monthlyFormula: "round((basic + dailyWages) > 20 ? 2000 : ((2000 / 26) * (basic + dailyWages)), 0)",
11
+ annualFormula: "round(((basic + dailyWages) > 20 ? 2000 : ((2000 / 26) * (basic + dailyWages))) * 12, 0)",
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
+ };
25
+ export const otherEarningsRule = {
26
+ ruleCode: "OTHER_EARNINGS",
27
+ name: "Other Earnings",
28
+ category: "Earning",
29
+ type: "Custom",
30
+ version: "FY2024-2025",
31
+ description: "Other Earnings (manual or fixed amount)",
32
+ condition: "true",
33
+ monthlyFormula: "0",
34
+ annualFormula: "0",
35
+ };
@@ -0,0 +1,2 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const otherDeductionsRule: Rule;
@@ -0,0 +1,11 @@
1
+ export const otherDeductionsRule = {
2
+ ruleCode: "OTHER_DEDUCTIONS",
3
+ name: "Other Deductions",
4
+ category: "Deduction",
5
+ type: "Custom",
6
+ version: "FY2024-2025",
7
+ description: "Other Deductions (manual or fixed amount)",
8
+ condition: "true",
9
+ monthlyFormula: "0",
10
+ annualFormula: "0",
11
+ };
@@ -0,0 +1,2 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const otherPaidHolidayRule: Rule;
@@ -0,0 +1,12 @@
1
+ // Other PH: Basic * 0.96%
2
+ export const otherPaidHolidayRule = {
3
+ ruleCode: "OTHER_PAID_HOLIDAY",
4
+ name: "Other Paid Holidays",
5
+ category: "Earning",
6
+ type: "Custom",
7
+ version: "FY2024-2025",
8
+ description: "Other Paid Holidays = Basic * 0.96%",
9
+ condition: "basic > 0",
10
+ monthlyFormula: "round(basic * 0.0096, 2)",
11
+ annualFormula: "round(basic * 0.0096 * 12, 2)",
12
+ };
@@ -0,0 +1,3 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const overtimeHoursFixedRateRule: Rule;
3
+ export declare const overtimeHoursDailyWageRule: Rule;
@@ -0,0 +1,20 @@
1
+ export const overtimeHoursFixedRateRule = {
2
+ ruleCode: "OT_HOURS_FIXED",
3
+ name: "Overtime Hours Allowance",
4
+ category: "Earning",
5
+ type: "Custom",
6
+ version: "FY2024-2025",
7
+ description: "Overtime allowance calculated at Rs.223.25 per overtime hour.",
8
+ condition: "overtimeHours > 0",
9
+ monthlyFormula: "round(overtimeHours * 223.25, 2)",
10
+ };
11
+ export const overtimeHoursDailyWageRule = {
12
+ ruleCode: "OT_HOURS_DAILY_WAGE",
13
+ name: "Overtime Hours Allowance",
14
+ category: "Earning",
15
+ type: "Custom",
16
+ version: "FY2024-2025",
17
+ description: "Overtime allowance calculated as (overtimeHours / 4) multiplied by daily wages.",
18
+ condition: "overtimeHours > 0 && dailyWages > 0",
19
+ monthlyFormula: "round((overtimeHours / 4) * dailyWages, 0)",
20
+ };
@@ -0,0 +1,3 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const pfBasicRule: Rule;
3
+ export declare const employeePfRule: Rule;
@@ -0,0 +1,23 @@
1
+ // PF: min(Basic, 15000) * 0.12
2
+ export const pfBasicRule = {
3
+ ruleCode: "PF_BASIC",
4
+ name: "Provident Fund (Employee) - Basic Only",
5
+ category: "Deduction",
6
+ type: "Statutory",
7
+ version: "FY2024-2025",
8
+ description: "Employee contribution to Provident Fund — 12% of Basic (capped at ₹15,000).",
9
+ condition: "isPfApplicable == true && basic > 0",
10
+ monthlyFormula: "round(min(basic, 15000) * 0.12, 2)",
11
+ annualFormula: "round(min(basic, 15000) * 0.12 * 12, 2)",
12
+ };
13
+ export const employeePfRule = {
14
+ ruleCode: "PF_EMPLOYEE",
15
+ name: "Provident Fund (Employee)",
16
+ category: "Deduction",
17
+ type: "Statutory",
18
+ version: "FY2024-2025",
19
+ description: "PF = 12% of (Basic + DA), capped at ₹1,800 (₹15,000 wage ceiling)",
20
+ condition: "isPfApplicable && basicPlusDA > 0",
21
+ monthlyFormula: "round(min(basicPlusDA, 15000) * 0.12, 0)",
22
+ annualFormula: "round(min(basicPlusDA, 15000) * 0.12, 0) * 12",
23
+ };
@@ -0,0 +1,2 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const profTaxRule: Rule;
@@ -0,0 +1,11 @@
1
+ export const profTaxRule = {
2
+ ruleCode: "PT",
3
+ name: "Professional Tax",
4
+ category: "Deduction",
5
+ version: "FY2024-2025",
6
+ type: "Statutory",
7
+ description: "₹200 per month if gross > ₹15,000",
8
+ condition: "gross > 15000",
9
+ monthlyFormula: "200",
10
+ annualFormula: "2400",
11
+ };
@@ -0,0 +1,2 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const ProfessionTaxFixed: Rule;
@@ -0,0 +1,10 @@
1
+ export const ProfessionTaxFixed = {
2
+ ruleCode: "PT_FIXED",
3
+ name: "Fixed_PT",
4
+ category: "Deduction",
5
+ version: "FY2024-2025",
6
+ description: "Fixed Profession Tax of 200 ₹",
7
+ condition: "true",
8
+ monthlyFormula: "200",
9
+ annualFormula: `200 * 12`,
10
+ };
@@ -0,0 +1,2 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const quarterRentRule: Rule;
@@ -0,0 +1,10 @@
1
+ export const quarterRentRule = {
2
+ ruleCode: "QUARTER_RENT",
3
+ name: "Quarter Rent",
4
+ category: "Deduction",
5
+ type: "Fixed",
6
+ version: "FY2024-2025",
7
+ description: "Flat quarter rent deduction applicable to all employee categories.",
8
+ condition: "true",
9
+ monthlyFormula: "498",
10
+ };
@@ -0,0 +1,7 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const rbBasic4_81Rule: Rule;
3
+ export declare const rbEarningRule492: Rule;
4
+ export declare const rbBasic5Rule: Rule;
5
+ export declare const rbBasic10Rule: Rule;
6
+ export declare const rbBasic4_11Rule: Rule;
7
+ export declare const rbBasicPlusDA4_11Rule: Rule;
@@ -0,0 +1,69 @@
1
+ // RB: Basic * 4.81%
2
+ export const rbBasic4_81Rule = {
3
+ ruleCode: "RB_BASIC_4_81",
4
+ name: "Retention Bonus - 4.81% of Basic",
5
+ category: "Earning",
6
+ type: "Custom",
7
+ version: "FY2024-2025",
8
+ description: "Retention Bonus = Basic * 4.81%",
9
+ condition: "basic > 0",
10
+ monthlyFormula: "round(basic * 0.0481, 2)",
11
+ annualFormula: "round(basic * 0.0481 * 12, 2)",
12
+ };
13
+ export const rbEarningRule492 = {
14
+ ruleCode: "RB_4_92_PERCENT",
15
+ name: "RB Allowance",
16
+ category: "Earning",
17
+ type: "Custom",
18
+ version: "FY2024-2025",
19
+ description: "Retention Bonus = Basic * 4.92%",
20
+ condition: "basic > 0",
21
+ monthlyFormula: "round(basic * 0.0492, 2)",
22
+ annualFormula: "round(basic * 0.0492 * 12, 2)",
23
+ };
24
+ // RB: Basic * 5%
25
+ export const rbBasic5Rule = {
26
+ ruleCode: "RB_BASIC_5",
27
+ name: "Retention Bonus - 5% of Basic",
28
+ category: "Earning",
29
+ type: "Custom",
30
+ version: "FY2024-2025",
31
+ description: "Retention Bonus = Basic * 5%",
32
+ condition: "basic > 0",
33
+ monthlyFormula: "round(basic * 0.05, 2)",
34
+ annualFormula: "round(basic * 0.05 * 12, 2)",
35
+ };
36
+ // RB: Basic * 10%
37
+ export const rbBasic10Rule = {
38
+ ruleCode: "RB_BASIC_10",
39
+ name: "Retention Bonus - 10% of Basic",
40
+ category: "Earning",
41
+ type: "Custom",
42
+ version: "FY2024-2025",
43
+ description: "Retention Bonus = Basic * 10%",
44
+ condition: "basic > 0",
45
+ monthlyFormula: "round(basic * 0.1, 2)",
46
+ annualFormula: "round(basic * 0.1 * 12, 2)",
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
+ };
59
+ export const rbBasicPlusDA4_11Rule = {
60
+ ruleCode: "RB_BASIC_DA_4_11",
61
+ name: "Retention Bonus - 4.11% of Basic + DA",
62
+ category: "Earning",
63
+ type: "Custom",
64
+ version: "FY2024-2025",
65
+ description: "Retention Bonus = (Basic + DA) × 4.11%",
66
+ condition: "basicPlusDA > 0",
67
+ monthlyFormula: "round(basicPlusDA * 0.0411, 2)",
68
+ annualFormula: "round(basicPlusDA * 0.0411 * 12, 2)",
69
+ };
@@ -0,0 +1,2 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const retrenchmentRule: Rule;
@@ -0,0 +1,12 @@
1
+ // RETURCH: basic * 4.11%
2
+ export const retrenchmentRule = {
3
+ ruleCode: "RETRENCHMENT",
4
+ name: "Retrenchment Charges",
5
+ category: "Earning",
6
+ type: "Custom",
7
+ version: "FY2024-2025",
8
+ description: "Retrenchment Charges = basic * 4.11%",
9
+ condition: "basic > 0",
10
+ monthlyFormula: "round(basic * 0.0411, 2)",
11
+ annualFormula: "round(basic * 0.0411 * 12, 2)",
12
+ };
@@ -0,0 +1,2 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const rfbRule: Rule;
@@ -0,0 +1,11 @@
1
+ export const rfbRule = {
2
+ ruleCode: "RFB_COMPONENT",
3
+ name: "Remaining Flexible Benefit (RFB)",
4
+ category: "Earning",
5
+ type: "Statutory",
6
+ version: "FY2024-2025",
7
+ description: "RFB = CTC − (Basic + HRA + PF + ESI + PT + Other Deductions). Used to balance total CTC.",
8
+ condition: "ctc > 0 && basic >= 0 && hra >= 0",
9
+ monthlyFormula: "round(ctc - (basic + hra + pf + esi + pt + otherDeductions || 0), 2)",
10
+ annualFormula: "round((ctc * 12) - ((basic + hra + pf + esi + pt + otherDeductions || 0) * 12), 2)",
11
+ };
@@ -0,0 +1,4 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const safetyEarningsRule: Rule;
3
+ export declare const safetyEarningsRuleTwoPercent: Rule;
4
+ export declare const safetyOfficerSpecialAllowanceRule: Rule;
@@ -0,0 +1,32 @@
1
+ export const safetyEarningsRule = {
2
+ ruleCode: "SAFETY_EARNINGS_TIER_ONE",
3
+ name: "Safety Earnings-Tier-One",
4
+ category: "Earning",
5
+ type: "Custom",
6
+ version: "FY2024-2025",
7
+ description: "Safety Earnings = (674 * 1%) * payableDays. Calculated based on payable days.",
8
+ condition: "payableDays > 0",
9
+ monthlyFormula: "round((674 * 0.01) * payableDays, 2)",
10
+ annualFormula: "round((674 * 0.01) * payableDays * 12, 2)",
11
+ };
12
+ export const safetyEarningsRuleTwoPercent = {
13
+ ruleCode: "SAFETY_EARNINGS_TIER_TWO",
14
+ name: "Safety Earnings – Tier Two",
15
+ category: "Earning",
16
+ type: "Custom",
17
+ version: "FY2024-2025",
18
+ description: "Safety Earnings calculated at 2% of Basic pay per payable day. Formula: (Basic × 2%) × Payable Days.",
19
+ condition: "payableDays > 0",
20
+ monthlyFormula: "round((basic * 0.02) * payableDays, 2)",
21
+ annualFormula: "round((basic * 0.02) * payableDays * 12, 2)",
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
+ };
@@ -0,0 +1,5 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const shiftAllowanceRule: Rule;
3
+ export declare const shiftAllowanceRuleNew: Rule;
4
+ export declare const shiftAllowanceRuleTierA: Rule;
5
+ export declare const nightShiftAllowanceRuleTierB: Rule;
@@ -0,0 +1,44 @@
1
+ // Shift Allowance: payable days * 17.16 rupee per day
2
+ export const shiftAllowanceRule = {
3
+ ruleCode: "SHIFT_ALLOWANCE",
4
+ name: "Shift Allowance",
5
+ category: "Earning",
6
+ type: "Custom",
7
+ version: "FY2024-2025",
8
+ description: "Shift Allowance = payable days * 17.16 rupee per day",
9
+ condition: "payableDays > 0",
10
+ monthlyFormula: "round(payableDays * 17.16, 2)",
11
+ annualFormula: "round(payableDays * 17.16 * 12, 2)",
12
+ };
13
+ // Shift Allowance: payable days * 11.50 rupee per day
14
+ export const shiftAllowanceRuleNew = {
15
+ ruleCode: "SHIFT_ALLOWANCE_NEW",
16
+ name: "Shift Allowance -new ",
17
+ category: "Earning",
18
+ type: "Custom",
19
+ version: "FY2024-2025",
20
+ description: "Shift Allowance = payable days * 11.50 rupee per day",
21
+ condition: "payableDays > 0",
22
+ monthlyFormula: "round(payableDays * 11.50, 2)",
23
+ annualFormula: "round(payableDays * 11.50 * 12, 2)",
24
+ };
25
+ export const shiftAllowanceRuleTierA = {
26
+ ruleCode: "SHIFT_ALLOWANCE_TIER_A",
27
+ name: "Shift Allowance",
28
+ category: "Earning",
29
+ type: "Custom",
30
+ version: "FY2024-2025",
31
+ description: "Shift Allowance calculated as 7.5% of wage rate multiplied by shift days.",
32
+ condition: "shiftDays > 0",
33
+ monthlyFormula: "round((dailyWages * 0.075) * shiftDays, 0)",
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
+ };
@@ -0,0 +1,3 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const specialAllowanceRule: Rule;
3
+ export declare const specialAllowanceDailyRule: Rule;
@@ -0,0 +1,22 @@
1
+ export const specialAllowanceRule = {
2
+ ruleCode: "SPECIAL_ALLOWANCE",
3
+ name: "Special Allowance",
4
+ category: "Earning",
5
+ version: "FY2024-2025",
6
+ description: "Residual component after mandatory allocations",
7
+ condition: "ctc > 0",
8
+ monthlyFormula: "round((ctc / 12) - (basic + hra + conveyance + da + gratuity + pf + esi), 2)",
9
+ annualFormula: "round(ctc - ((basic + hra + conveyance + da + gratuity + pf + esi) * 12), 2)",
10
+ };
11
+ // Special Allowance: 22 rupees per day * worked days
12
+ export const specialAllowanceDailyRule = {
13
+ ruleCode: "SPECIAL_ALLOWANCE_DAILY",
14
+ name: "Special Allowance - Daily Rate",
15
+ category: "Earning",
16
+ type: "Custom",
17
+ version: "FY2024-2025",
18
+ description: "Special Allowance = 22 rupees per day * worked days (payable days)",
19
+ condition: "payableDays > 0",
20
+ monthlyFormula: "round(22 * payableDays, 2)",
21
+ annualFormula: "round(22 * payableDays * 12, 2)",
22
+ };
@@ -0,0 +1,2 @@
1
+ import { Rule } from "../../utils/types";
2
+ export declare const teaAllowanceRule: Rule;
@@ -0,0 +1,12 @@
1
+ // Tea Allowance: 544 * No of payable days
2
+ export const teaAllowanceRule = {
3
+ ruleCode: "TEA_ALLOWANCE",
4
+ name: "Tea Allowance",
5
+ category: "Earning",
6
+ type: "Custom",
7
+ version: "FY2024-2025",
8
+ description: "Tea Allowance = 5.44 * No of payable days",
9
+ condition: "payableDays > 0",
10
+ monthlyFormula: "round(5.44 * payableDays, 2)",
11
+ annualFormula: "round(5.44 * payableDays * 12, 2)",
12
+ };