在一個人資(HR)系統中,薪資結算與保費扣除是最核心的功能之一,扣員工的錢不能多算,該給政府的的也不能少算…。
不管是接手舊系統,還是開發新系統,只要隨著時間推移,每年勞健保的投保級距與費率都可能調整,這對程式碼的維護與擴充都是挑戰。特別是從 2024 年(民國 113 年)到 2025 年(114 年)的轉換,不只基本工資由 27,470 元上調到 28,590 元,勞保費率也從 12% 提升至 12.5%。這些「可動變數」將直接影響程式中的計算邏輯。
首先,在台灣的人資薪資計算中,公司與員工負擔保費項目如下:
在邏輯計算時,我們必須區分上述項目,並按照年度參數套用正確的費率與級距。
接下來,讓我們透過幾個步驟分析,並呈現 PHP 程式撰寫該如何反映這些變動。
2024 年時:
2025 年起:
對開發人員來說,這代表計算勞健保費用的「基準值」和「費率」產生變化,意即計算公式中的常數(constants)需要更新,或透過設定檔與資料庫來讀取動態數值。若人資系統在 2024 年就已經在線,現在 在 2025 年必須確保計算邏輯在新年度正確運作。
對於負責後端或人資系統的開發者來說,「勞健保計算」並非只是表格查詢,實務上須根據投保級距、費率、負擔比例來計算每月雇主、員工的保費分攤。2025年起,勞保及健保都有不同程度的調整,以下是幾個關鍵重點:
2025年起調整基本工資、勞保級距、費率
2024年與2025年的主要差異
公司與員工各負擔哪些項目?
勞保費率(2025年):12.5%(含就業保險)
負擔比例:雇主70%、員工20%、政府10%
員工負擔勞保 = 投保薪資 × 12.5% × 20%
雇主負擔勞保 = 投保薪資 × 12.5% × 70%
(2024年的費率為12%,2025年改12.5%時,你在程式中就必須將費率變數更新)
健保費率(2024、2025年維持不變):5.17%
負擔比例:雇主60%、員工30%、政府10%
員工負擔健保 = 投保薪資 × 5.17% × 30% × (本人+眷屬人數上限3)
雇主負擔健保 = 投保薪資 × 5.17% × 60% × 1.57(1+平均眷口數0.57)
注意:投保薪資等級(級距)在2025年會隨著基本工資調整,因此若程式碼中有對應等級與區間的常數陣列,需要更新。
在程式中,我們往往會將「費率」、「級距」、「負擔比例」與「年度上下限金額」作為可調整變數,以方便每年更新。以下是你需要關注的可動變數:
將這些變數寫成設定檔(如 config檔)或程式常數,使得未來年度更替時只需調整配置檔,即可套用到計算邏輯中。
PHP程式碼實作範例
以下程式碼僅為示意
,假設你有一個 InsuranceCalculator 類別來計算勞健保,並透過設置年度、投保薪資和眷屬數後,執行計算。
<?php
class InsuranceCalculator
{
protected $year;
protected $salary;
protected $dependents; // 員工眷屬人數(上限3)
// 可動變數統一在此設定或從config引入
protected $insuranceParams = [
'2024' => [
'labor_insurance_rate' => 0.12, // 12%
'labor_employer_ratio' => 0.70,
'labor_employee_ratio' => 0.20,
'health_insurance_rate' => 0.0517, // 5.17%
'health_employer_ratio' => 0.60,
'health_employee_ratio' => 0.30,
'health_gov_ratio' => 0.10,
'avg_dependent_factor' => 1.57, // 雇主計算時使用
'min_wage_level' => 27470, // 2024年最低投保薪資
// ...其他級距、上限設定...
],
'2025' => [
'labor_insurance_rate' => 0.125, // 12.5%
'labor_employer_ratio' => 0.70,
'labor_employee_ratio' => 0.20,
'health_insurance_rate' => 0.0517, // 5.17%不變
'health_employer_ratio' => 0.60,
'health_employee_ratio' => 0.30,
'health_gov_ratio' => 0.10,
'avg_dependent_factor' => 1.57, // 假設不變
'min_wage_level' => 28590, // 2025年最低投保薪資
// ...其他級距、上限設定...
],
];
public function __construct($year, $salary, $dependents = 0)
{
$this->year = (string)$year;
$this->salary = $salary;
$this->dependents = min($dependents, 3); // 眷屬上限3
}
public function calculateAll()
{
// 根據年度取得設定值
$params = $this->insuranceParams[$this->year];
// 投保薪資級距邏輯(示意:若實際上需根據薪資對照表調整salary)
$adjustedSalary = $this->getAdjustedSalary($this->salary, $params);
// 計算勞保員工、雇主負擔
$laborEmployee = $adjustedSalary * $params['labor_insurance_rate'] * $params['labor_employee_ratio'];
$laborEmployer = $adjustedSalary * $params['labor_insurance_rate'] * $params['labor_employer_ratio'];
// 計算健保員工、雇主負擔
// 員工健保負擔: 投保薪資 × 健保費率 × 30% × (本人+眷屬人數)
$healthEmployee = $adjustedSalary * $params['health_insurance_rate'] * $params['health_employee_ratio'] * (1 + $this->dependents);
// 雇主健保負擔: 投保薪資 × 健保費率 × 60% × 平均眷口數因子(1.57)
$healthEmployer = $adjustedSalary * $params['health_insurance_rate'] * $params['health_employer_ratio'] * $params['avg_dependent_factor'];
// 職災保險費率可另外加入,如職災僅雇主負擔
// 假設職災費率為 dynamic_rate 例如0.005,則:
$occupationalInjuryRate = 0.005; // 範例費率
$occupationalInsurance = $adjustedSalary * $occupationalInjuryRate; // 全由雇主負擔
// 勞退 6% 全由雇主負擔
$pension = $adjustedSalary * 0.06;
return [
'employee' => [
'labor' => round($laborEmployee),
'health' => round($healthEmployee),
],
'employer' => [
'labor' => round($laborEmployer),
'health' => round($healthEmployer),
'occupational' => round($occupationalInsurance),
'pension' => round($pension),
],
];
}
protected function getAdjustedSalary($salary, $params)
{
// 此處可根據勞保投保級距表,將實際月薪對應到最近的級距
// 簡化示範:若月薪小於最低投保薪資則以最低投保薪資計算
if ($salary < $params['min_wage_level']) {
return $params['min_wage_level'];
}
// 若超過最高級距(45800)則以45800為上限
if ($salary > 45800) {
return 45800;
}
// 實務上應用「投保薪資級距表」尋找對應級距,
// 這裡簡化僅示意直接回傳salary
return $salary;
}
}
// 範例呼叫:
$calculator2025 = new InsuranceCalculator(2025, 30300, 2);
$result = $calculator2025->calculateAll();
print_r($result);
面對 2025 年勞健保新規,開發人員不只要瞭解勞保、健保的計算方式,更需將「可動變數」抽離程式碼邏輯,讓系統能夠靈活應對政策改變。
從 2024 到 2025 年的關鍵轉換點包括:基本工資提升、勞保最低級距提升以及勞保費率增加。這些變動皆可透過程式中的設定檔或資料庫參數化完成,搭配單元測試與分層設計,整個人資系統即可在每年更新時,快速、準確地為使用者提供正確的勞健保扣繳數據與計算結果。
透過這樣的設計,無論是人資人員需要計算 2025 年(114 年)的勞健保扣款,或是開發者想快速因應未來年度調整,都能確保程式碼維護效率與準確性,並讓整個人資系統在面臨每年政策改變時,輕鬆應對!
參考資料:
114年1月1日起適用之勞保、災保投保薪資分級表及保險費分攤金額表...