インド現地法人や海外子会社向けの給与計算システムを開発・保守しているエンジニアに向けた内容です。
2025年11月に施行された新労働法制(Labour Codes)により、インドの給与計算ロジックには複数の変更が入りました。
特にEPF(従業員積立基金、Employees' Provident Fund)の上限額変更は、既存システムの計算式を直撃する改修ポイントです。
該当するシステムを持つチームが、何を確認し何を直せばよいかを整理します。
何が変わったのか、なぜ無視できないのか
インドの給与計算には、ほぼ全従業員に共通する3つの法定控除があります。
EPF(従業員積立基金)、ESI(従業員国家保険、Employees' State Insurance)、そしてPT(職業税、Professional Tax)です。
これらは一見「給与の◯%を引くだけ」のシンプルな計算に見えます。
ところが実務では、上限額(ceiling)が年度途中で変わったり、州ごとに税率の境界値(slab)の定義が異なったりします。
2026年9月17日付の通知S.O. 5109(E)により、EPFの対象賃金上限が月額1万5000ルピーから2万5000ルピーに引き上げられました。
この上限は2014年9月から12年間変わっていなかった数値です。
日本で例えるなら、社会保険の標準報酬月額の上限が突然大幅に引き上げられ、しかも月の途中から適用されるような状況に近いものです。
給与計算エンジンに上限値をハードコードしていた場合、この変更は単純な定数の書き換えでは済みません。
技術的な仕組みを段階的に見る
「賃金」の定義がgross salaryと違う
まず押さえておきたいのは、法定控除の計算基礎になる「wages(賃金)」が、額面給与(gross salary)とは別の概念だという点です。
賃金コード2019年法(Code on Wages, 2019)の第2条(y)項と、社会保障コード2020年法(Code on Social Security, 2020)の第2条(88)項で定義されています。
基本給と物価手当(DA)、留保手当は賃金に含まれます。
一方でHRA(住宅手当)や交通費、残業代、歩合給、会社負担のPF拠出分などは除外項目です。
ここでエンジニアが注意すべきなのが、通称「50%ルール」という但し書きです。
除外項目の合計が総支給額の半分を超えた場合、超過分を賃金に戻し入れて再計算する必要があります。
たとえば額面給与が5万ルピーで、基本給とDAの合計が2万ルピーのケースを考えます。
除外項目は3万ルピーとなり、これは総支給額の半分(2万5000ルピー)を5000ルピー上回ります。
この超過分5000ルピーを賃金に加算するため、法定上の賃金は2万5000ルピーになります。
給与計算システムの設計としては、給与項目ごとに「賃金に含める/除外する」フラグを持たせる構造が必須になります。
このフラグ管理をハードコードせず、設定(config)として外出しできているかが、改修コストを左右する分かれ目です。
EPFの料率と2026年9月の分割計算
EPFは従業員が賃金の12%、会社も12%を拠出します。
会社負担分の内訳は、年金制度(EPS)へ8.33%、EPF本体(A/c 1)へ残りの3.67%という構成です。
さらに会社負担として、EDLI(団体生命保険)が0.5%、事務手数料が0.5%加わります。
事務手数料には、拠出対象者が1人以上いる事業所あたり月額500ルピーの最低額ルールがある点も見落としやすいところです。
前述の上限引き上げにより、EPS拠出額の上限は月額1250ルピーから2083ルピーへと増加しました。
この上限を超える賃金については、原則として従業員・会社双方の拠出額が上限額ベースで頭打ちになります。
特に厄介なのが2026年9月の扱いです。
EPFO(従業員積立基金機構)のFAQによれば、9月は1本のECR(電子チャレン返納書)で報告しつつ、期間を2つに分けて計算します。
9月1日から16日までは旧上限の1万5000ルピーを16/30で按分し、17日から30日までは新上限の2万5000ルピーを14/30で按分する仕組みです。
月額2万ルピーの既存加入者の場合、9月のEPF対象賃金は「1万5000×16/30 + 2万×14/30 = 1万7333.33ルピー」という計算になります。
丸め処理にも規則があります。
EPFスキームでは各拠出額を1ルピー単位で四捨五入し、50パイサ以上は切り上げ、未満は切り捨てです。
2万5000ルピーの賃金であればEPS分は2082.50ルピーから切り上げて2083ルピー、EPF分は917ルピーという計算結果になります。
ESIとPTは別軸の確認が必要
ESI(従業員国家保険)は従業員が0.75%、会社が3.25%を負担します。
適用対象となる賃金上限は月額2万1000ルピー(障がいのある従業員は2万5000ルピー)で、こちらは2017年1月の改定から据え置かれています。
ESIの対象判定はcontribution period(拠出期間、半年単位の区切り)ごとに行われる点がEPFと異なります。
期の途中で昇給して上限を超えても、その拠出期間中は引き続き対象のままというルールがあるため、月次の上限判定だけで実装するとバグの温床になります。
PT(職業税)はさらに厄介で、州ごとに税額の境界値(slab)が異なる地方税です。
全国一律の計算式が存在しないため、州コードをキーにしたテーブル管理が前提になります。
日本の社会保険計算との比較で理解する
日本の給与システムに慣れたエンジニアにとって、インドの法定控除は「標準報酬月額」の考え方に近い部分があります。
上限額を設けて保険料を頭打ちにする構造は、日本の厚生年金・健康保険の仕組みと似ています。
一方で大きく違うのは、改正の施行タイミングが「月の途中」である点です。
日本の社会保険料改定は原則として月単位・年単位で区切りが明確ですが、今回のEPF上限改定は9月17日という月中の日付から有効になりました。
このため、給与計算エンジン側で「有効日(effective date)」を持つ料率マスタの設計が重要になります。
月初から一律で新ルールを適用するような実装では、今回のような分割月の処理に対応できません。
既存システムの改修を検討する場合、料率や上限値を単一の定数として持っているか、履歴を持つマスタテーブルとして持っているかの確認がまず必要です。
定数管理のままだと、今後も同様の法改正が起きるたびにコードを書き換えることになります。
今日確認できること
実際に給与計算システムを保守しているなら、まず次の点を確認してみてください。
- EPFの上限額がコード内にハードコードされていないか、設定テーブルから参照しているか
- 給与項目ごとの「賃金算入/除外」フラグが、賃金コード2019年第2条(y)項・社会保障コード2020年第2条(88)項の定義に沿って設定されているか
- 50%ルール(除外項目が総支給額の半分を超えた場合の戻し入れ)が計算ロジックに組み込まれているか
- 料率マスタが「有効開始日」を持つ構造になっており、月中改定に対応できるか
- ESIの対象判定が月次ではなくcontribution period単位で行われているか
- PTの税額テーブルが州コード別に管理され、州ごとの境界値を個別に設定変更できるか
これらの確認には、EPFOが公表しているFAQ文書や、各通知(Notification S.O. 5109(E)など)の原文にあたるのが確実です。
特に丸め処理のルールは、計算結果が1ルピー単位でずれるだけで監査時の指摘対象になりやすい部分なので、既存の丸め関数が「最後に一度だけ丸める」方式になっているかも合わせて見ておくとよさそうです。
まとめ
インド向け給与計算エンジンを持つチームにとって、2026年のEPF上限改定は単なる数値変更ではなく、設計の前提を問い直す機会です。
- 賃金の定義がgross salaryと異なり、50%ルールによる戻し入れ計算が必要になる
- EPF上限が1万5000ルピーから2万5000ルピーに引き上げられ、9月は按分計算が必要
- ESIとPTはそれぞれ別の判定単位(拠出期間・州別テーブル)を持つため、一律ロジックにできない
まずは自社の給与計算システムで、上限値と料率がどこにどう保持されているかをコードベースで洗い出すところから始めるのが現実的な一歩になります。