人資系統關鍵功能,2025/114年勞健保扣多少?人資與開發都該關心的事

人資系統關鍵功能,2025/114年勞健保扣多少?人資與開發都該關心的事

更新於 發佈於 閱讀時間約 17 分鐘

在一個人資(HR)系統中,薪資結算與保費扣除是最核心的功能之一,扣員工的錢不能多算,該給政府的的也不能少算…。

不管是接手舊系統,還是開發新系統,只要隨著時間推移,每年勞健保的投保級距與費率都可能調整,這對程式碼的維護與擴充都是挑戰。特別是從 2024 年(民國 113 年)到 2025 年(114 年)的轉換,不只基本工資由 27,470 元上調到 28,590 元,勞保費率也從 12% 提升至 12.5%。這些「可動變數」將直接影響程式中的計算邏輯。


公司與員工負擔項目一覽

首先,在台灣的人資薪資計算中,公司與員工負擔保費項目如下:

公司負擔的有四項:

  1. 勞工保險(普通事故 + 就業保險部分的公司比例)
  2. 健康保險(公司負擔比例)
  3. 職業保險(職保) - 屬職災保險,由雇主全額負擔
  4. 勞工退休金提撥(勞退)


員工要負擔的有兩項:

  1. 勞工保險(普通事故 + 就業保險部分的員工比例)
  2. 健康保險(員工自付比例)

在邏輯計算時,我們必須區分上述項目,並按照年度參數套用正確的費率與級距。


接下來,讓我們透過幾個步驟分析,並呈現 PHP 程式撰寫該如何反映這些變動。

為何要在程式中考量2024與2025的差異?

2024 年時:

  • 勞保費率:12%
  • 全職員工勞保最低投保薪資(假設門檻級距):27,470 元(對應第一級)
  • 勞保最高投保級距:45,800 元不變

2025 年起:

  • 勞保費率:12.5%
  • 全職員工勞保最低投保薪資門檻提高至:28,590 元(第一級門檻上升)
  • 最高投保級距仍為 45,800 元

對開發人員來說,這代表計算勞健保費用的「基準值」和「費率」產生變化,意即計算公式中的常數(constants)需要更新,或透過設定檔與資料庫來讀取動態數值。若人資系統在 2024 年就已經在線,現在 在 2025 年必須確保計算邏輯在新年度正確運作。

從系統設計談起:勞健保計算的核心邏輯

對於負責後端或人資系統的開發者來說,「勞健保計算」並非只是表格查詢,實務上須根據投保級距、費率、負擔比例來計算每月雇主、員工的保費分攤。2025年起,勞保及健保都有不同程度的調整,以下是幾個關鍵重點:

2025年起調整基本工資、勞保級距、費率

    • 勞保基本工資將調整至 28,590元(第一級)。
    • 勞保最高投保級距(第12級)仍維持在 45,800元 上限,但第一級門檻提高。
    • 勞保費率從12%調升至12.5%,意味著勞工與雇主繳納比例數字會有所調整。

2024年與2025年的主要差異

    • 2024年最低級距為27,470元(第一級),2025年則提升至28,590元。
    • 健保費率維持5.17%,但平均眷口數、基本工資調整後計算方式不變,須重新校正投保金額區間。
    • 勞退(雇主提繳6%,員工自願提繳0~6%)本身規則不變,但因為投保基礎工資變動,實際提繳金額也會跟著調整。

公司與員工各負擔哪些項目?

    • 公司負擔項目:勞保、健保、職災保險(職保)以及勞退(6%)
    • 員工負擔項目:勞保、健保(20%勞保、30%健保的比例)

勞健保公式怎麼算?

勞保計算範例:

勞保費率(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年會隨著基本工資調整,因此若程式碼中有對應等級與區間的常數陣列,需要更新。


哪些是可動變數?

在程式中,我們往往會將「費率」、「級距」、「負擔比例」與「年度上下限金額」作為可調整變數,以方便每年更新。以下是你需要關注的可動變數:

  • 年度(2024或2025)
  • 勞保費率(2024:12%,2025:12.5%)
  • 投保薪資級距表(2025年最低投保薪資從27,470調高到28,590)
  • 健保平均眷口數(若有變動需調整,目前 2025年 使用 0.57)
  • 勞退基本工資(隨基本工資調整,計算6%提撥額度時需更新)

將這些變數寫成設定檔(如 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);


人資系統關鍵功能與程式實務建議

  1. 動態年度設定: 將年度相關的保費率與級距參數存放在設定檔或資料庫表格中。程式碼透過當前年份動態選擇對應參數,減少發生錯誤的機會。
  2. 抽離計算邏輯: 將勞健保計算封裝為專門的 Service 或 Utility 類別,透過傳入員工薪資、年度、眷屬數量等參數,回傳各項費用。 這樣若未來勞保、健保再度調整,只需修改該服務類別中的參數讀取邏輯或設定檔。
  3. 驗證邏輯與單元測試: 隨著年度變更,建議加入自動化測試(Unit Test),在不同年度測試同樣的薪資數據,以確保公式與變數更新後仍計算正確。
  4. 前後端溝通: 若人資系統附有後端 API,則可在前端提供年度選擇器或自動偵測年份來取得最新計算結果,確保使用者(人資人員或主管)在面對年度切換時不會誤用舊資料。

最後

面對 2025 年勞健保新規,開發人員不只要瞭解勞保、健保的計算方式,更需將「可動變數」抽離程式碼邏輯,讓系統能夠靈活應對政策改變。

從 2024 到 2025 年的關鍵轉換點包括:基本工資提升、勞保最低級距提升以及勞保費率增加。這些變動皆可透過程式中的設定檔或資料庫參數化完成,搭配單元測試與分層設計,整個人資系統即可在每年更新時,快速、準確地為使用者提供正確的勞健保扣繳數據與計算結果。

透過這樣的設計,無論是人資人員需要計算 2025 年(114 年)的勞健保扣款,或是開發者想快速因應未來年度調整,都能確保程式碼維護效率與準確性,並讓整個人資系統在面臨每年政策改變時,輕鬆應對!


參考資料:

114年1月1日起適用之勞保、災保投保薪資分級表及保險費分攤金額表...

投保薪資分級表

衛福部健保署-公、民營事業、機構及有一定雇主之受僱者(114.1.1生效)

商周-114(2025年)勞保投保薪資級距表&勞保、健保、勞退保費對照表

avatar-img
詹姆士的軟體易開罐
24會員
74內容數
這是一系列以軟體開發為主題的輕鬆分享,內容涵蓋了技術選擇、開發經驗、實戰應用等多方面的議題。無論是如何在眾多框架中做出選擇,還是如何應對技術轉移的挑戰,這裡有幽默、有趣的對話風格,將複雜的技術問題轉化為易懂的故事。
留言
avatar-img
留言分享你的想法!
「嘿,你有聽說 PHP 8.4 的新特性了嗎?」新特性能在存取屬性時進行驗證、格式化,並支援虛擬屬性設計,程式碼更簡潔易讀,有助於維護和擴展。開發者可透過此特性快速實現自訂邏輯,同時保有工具相容性,讓整體開發流程更順暢、直觀。
CodeIgniter 3 和 Laravel 是兩種不同的 PHP 框架,各有其特點和適用場景。CodeIgniter 3 是一個輕量級框架,Laravel 是一個功能強大的現代 PHP 框架,同樣都有Models的它們有什麼樣的差別呢?
本篇文章為Laravel初學者提供了一個指南,深入探討了Laravel的routes目錄下的功能。文章詳細描述了web.php和api.php的差異和使用情境,並簡要介紹了console.php和channels.php的功能。透過這篇文章,讀者可以更好地理解和利用Laravel的路由功能。
Laravel框架中的路由系統是其核心功能之一,它允許開發者輕鬆地定義應用程式的URL結構和相應的邏輯。本篇文章將深入探討Laravel路由的基本概念、進階功能以及實際應用。
在Laravel的MVC架構中,視圖(View)是呈現資料給使用者的關鍵部分。本篇深入探討了視圖的基本概念、建立與管理、與資料的互動方式,以及Blade模板引擎的應用。Blade提供了一套強大的工具,使動態視圖建立更為高效。
本篇深入探討了Model的基本定義、其Controller的關係,以及如何在Controller中使用Model進行CRUD操作。強調了Model的關聯方法,如hasMany,並透過範例程式碼展示了其實際應用。為初學者提供了一個清晰的Laravel入門路徑,同時也為有經驗的開發者提供了實用的參考。
「嘿,你有聽說 PHP 8.4 的新特性了嗎?」新特性能在存取屬性時進行驗證、格式化,並支援虛擬屬性設計,程式碼更簡潔易讀,有助於維護和擴展。開發者可透過此特性快速實現自訂邏輯,同時保有工具相容性,讓整體開發流程更順暢、直觀。
CodeIgniter 3 和 Laravel 是兩種不同的 PHP 框架,各有其特點和適用場景。CodeIgniter 3 是一個輕量級框架,Laravel 是一個功能強大的現代 PHP 框架,同樣都有Models的它們有什麼樣的差別呢?
本篇文章為Laravel初學者提供了一個指南,深入探討了Laravel的routes目錄下的功能。文章詳細描述了web.php和api.php的差異和使用情境,並簡要介紹了console.php和channels.php的功能。透過這篇文章,讀者可以更好地理解和利用Laravel的路由功能。
Laravel框架中的路由系統是其核心功能之一,它允許開發者輕鬆地定義應用程式的URL結構和相應的邏輯。本篇文章將深入探討Laravel路由的基本概念、進階功能以及實際應用。
在Laravel的MVC架構中,視圖(View)是呈現資料給使用者的關鍵部分。本篇深入探討了視圖的基本概念、建立與管理、與資料的互動方式,以及Blade模板引擎的應用。Blade提供了一套強大的工具,使動態視圖建立更為高效。
本篇深入探討了Model的基本定義、其Controller的關係,以及如何在Controller中使用Model進行CRUD操作。強調了Model的關聯方法,如hasMany,並透過範例程式碼展示了其實際應用。為初學者提供了一個清晰的Laravel入門路徑,同時也為有經驗的開發者提供了實用的參考。