概念ガイド
端数処理の規則
金額に関する基本方針は次のとおりです。
- 公開レスポンスの金額は integer yen(円単位の整数)です。
- 料率の乗算や中間値の計算には
decimal.jsを使います。 - 時給制の基本給(
hourly_rate × base_work_minutes ÷ 60)はceil_yenで円未満を切り上げます。 calculation_traceの各ステップには、丸める前の値(raw_amount)と丸めた後の値(rounded_amount)の両方が記録されます。
端数処理ルールは用途ごとに固定
Section titled “端数処理ルールは用途ごとに固定”現行の端数処理ルールは用途ごとに明示されており、法定控除の丸め自体を会社ごとの任意ルールへ変更することはできません。ただし、割増賃金と源泉所得税は法令上認められた方式から会社が選択できます。社会保険料等の50銭ルールは従来どおり変更できません。
会社計算プロファイルの overtime_premium_rounding_method で、割増賃金に使う時間単価・割増単価の端数処理を選べます。
| 値 | 処理 |
|---|---|
none(既定) | 時間単価と割増単価を丸めず、4区分を合算した後に1円未満を切り上げます。従来と同じ方式です |
hourly_rate_half_up | 1時間あたり賃金額を50銭四捨五入してから、各割増率を掛けます |
unit_price_half_up | 1時間あたり賃金額を50銭四捨五入し、さらに各割増単価も50銭四捨五入してから分数を掛けます |
hourly_rate_ceil | 1時間あたり賃金額の1円未満を、労働者に有利な方向へ切り上げてから各割増率を掛けます |
月間の割増賃金を合算した後の処理は、overtime_premium_monthly_total_rounding で別に選びます。
| 値 | 処理 |
|---|---|
none(既定) | 追加処理をしません |
half_up_100_yen | 合算後の整数円額を100円単位で四捨五入します(50円以上切り上げ、50円未満切り捨て) |
これらは昭和63年3月14日 基発150号で認められた範囲の方式です。就業規則・賃金規程との整合は会社の責任で確認して選択してください。適用した値は月次計算レスポンスの settings_snapshot で、計算過程は attendance_premium_rounding と attendance_overtime_monthly_total_rounding のtrace stepで確認できます。
社会保険・厚生年金・雇用保険の従業員負担分
Section titled “社会保険・厚生年金・雇用保険の従業員負担分”健康保険、介護保険、子ども・子育て支援金、厚生年金保険、雇用保険の従業員負担分には round_50_sen_or_less_down_over_50_sen_up_to_yen を使います。これは 50銭以下を切り捨て、50銭を超える場合に切り上げる ルールで、たとえば 1000.50 は 1000 に、1000.51 は 1001 になります。
round_half_up_to_yen(四捨五入)や floor_yen(切り捨て)は一般用途の丸めとして残されていますが、社会保険・厚生年金・雇用保険の従業員控除額には使用しません。
- 月次給与の月額表方式 は、課税支給額から社会保険料等控除額を差し引いた金額を参照額として、
tax_table_typeとtax_dependent_countで国税庁の源泉徴収税額表(月額表)の該当行をそのまま引きます(表引き)。表の値をそのまま使うため、追加の端数処理は発生せず、trace 上のrounding_ruleはnullになります。 - 月次給与の電算機計算の特例 は、甲欄について給与所得控除の1円未満を
ceil_yenで切り上げ、算出した税額をround_half_up_to_10_yenで10円未満四捨五入します。乙欄は会社設定にかかわらず月額表を使います。 - 賞与の所得税 は、前月の課税支給額から前月の社会保険料等控除額を差し引いた金額を参照額として、税額表から源泉税率を決定します。その税率を、当月の課税支給額から社会保険料等控除額を差し引いた金額に掛け、結果を
floor_yen(円未満切り捨て)で丸めます。
trace で確認する
Section titled “trace で確認する”どの端数処理ルールが適用されたかは、calculation_trace の各ステップの rounding_rule フィールドで確認できます。ルールが適用されないステップ(設定解決や表引きなど)では rounding_rule は null です。trace の構造全体については trace の読み方 を参照してください。