計算の検証結果
このサイトの計算が公的機関の公表額と合っているかを、実際の数字で公開しています。 下の表の「エンジンの計算結果」の欄は、このページを生成したときに計算機と同じコードを動かして出した値です。 人が手で書き写した値ではありません。
一次ソースとの照合
230件
すべて一致(2026年8月30日のビルド時)
回帰テスト
181件
16ファイル・公開前に毎回実行
料率の適用年度
令和8年分(2026年)
令和8年度税制改正の反映後
検証のしくみ
料率や控除額は data/rates.json などのデータファイルにまとめ、
それぞれに出典のURLと確認した日付を持たせています。計算エンジンはこのデータだけを読み、独自の係数を持ちません。
公開の前には node --test で回帰テストを181件実行します。
1件でも失敗すると、デプロイのスクリプトがそこで止まります。
さらにこのページを組み立てるときにも230件の照合を走らせ、一次ソースの実額と食い違いが出た場合はページの生成自体が失敗します。
つまり、この表に「一致」と書かれた状態でしか公開されません。
サイトの中で数字のつじつまが合っていることは、正しさの根拠になりません。 外の公表値と突き合わせた結果を、そのまま置いています。
照合1: 協会けんぽの保険料額表と一致するか
協会けんぽが公表している保険料額表(東京支部)から3つの等級を取り、被保険者が負担する折半額をエンジンの計算結果と並べています。 協会けんぽの表は健康保険料と子ども・子育て支援金を別の欄に載せているため、この2つを足した額で比べています。
| 等級 | 項目 | 協会けんぽの公表額 | エンジンの計算結果 | 判定 |
|---|---|---|---|---|
| 17(厚年14)(標準報酬月額 200,000円) | 標準報酬月額(健康保険の等級) | 200,000 | 200,000 | 一致 |
| 健康保険+子ども・子育て支援金(被保険者負担) | 10,080 | 10,080 | 一致 | |
| 健康保険+介護保険+支援金(40〜64歳・被保険者負担) | 11,700 | 11,700 | 一致 | |
| 厚生年金保険(被保険者負担) | 18,300 | 18,300 | 一致 | |
| 22(厚年19)(標準報酬月額 300,000円) | 標準報酬月額(健康保険の等級) | 300,000 | 300,000 | 一致 |
| 健康保険+子ども・子育て支援金(被保険者負担) | 15,120 | 15,120 | 一致 | |
| 健康保険+介護保険+支援金(40〜64歳・被保険者負担) | 17,550 | 17,550 | 一致 | |
| 厚生年金保険(被保険者負担) | 27,450 | 27,450 | 一致 | |
| 30(厚年27)(標準報酬月額 500,000円) | 標準報酬月額(健康保険の等級) | 500,000 | 500,000 | 一致 |
| 健康保険+子ども・子育て支援金(被保険者負担) | 25,200 | 25,200 | 一致 | |
| 健康保険+介護保険+支援金(40〜64歳・被保険者負担) | 29,250 | 29,250 | 一致 | |
| 厚生年金保険(被保険者負担) | 45,750 | 45,750 | 一致 |
単位は円(月額)。出典: 協会けんぽ 令和8年3月分(4月納付分)からの健康保険・厚生年金保険の保険料額表(東京支部)(健康保険・介護保険料率: 令和8年3月分〜 / 子ども・子育て支援金率: 令和8年4月分〜・確認日 2026-07-20)。 端数は、被保険者負担分の50銭以下を切り捨て、50銭超を1円に切り上げる同表の注記に合わせています。
照合2: 給与所得控除の表と一致するか
令和8年分の給与所得控除は、国税庁「源泉所得税の改正のあらまし」の表で決まります。 データファイルに持っている表の式を読み取って計算した額と、エンジンが返す額を並べています。
| 給与収入 | 表の区分 | 表の定め | 表から計算した額 | エンジンの計算結果 | 判定 |
|---|---|---|---|---|---|
| 1,000,000 | 2,200,000円以下 | 740,000円 | 740,000 | 740,000 | 一致 |
| 2,200,000 | 2,200,000円以下 | 740,000円 | 740,000 | 740,000 | 一致 |
| 3,000,000 | 3,600,000円以下 | 収入×30%+80,000円 | 980,000 | 980,000 | 一致 |
| 5,000,000 | 6,600,000円以下 | 収入×20%+440,000円 | 1,440,000 | 1,440,000 | 一致 |
| 8,000,000 | 8,500,000円以下 | 収入×10%+1,100,000円 | 1,900,000 | 1,900,000 | 一致 |
| 10,000,000 | 8,500,000円超 | 1,950,000円 | 1,950,000 | 1,950,000 | 一致 |
単位は円(年額)。出典: 国税庁「源泉所得税の改正のあらまし 令和8年4月」(令和8年度税制改正)(令和8年分・令和9年分(令和8年度税制改正・令和8年12月1日施行、令和8年分以後適用)・確認日 2026-07-20)
照合3: 国税庁が示している計算例と一致するか
所得税の速算表には、国税庁のページに計算例が載っています。その例をそのまま期待値にしました。
| 出典の記載 | 出典の答え | サイトの速算表データ | 計算結果 | 判定 |
|---|---|---|---|---|
| 7,000,000円 × 0.23 - 636,000円 = 974,000円 | 974,000 | 課税所得 8,999,000円以下 / 税率 23% / 控除額 636,000円 | 974,000 | 一致 |
単位は円。復興特別所得税を加える前の金額です。出典: 国税庁タックスアンサー No.2260 所得税の税率(令和7年4月1日現在法令等・確認日 2026-07-20)
照合4: 賞与の算出率の表を21行すべて引けるか
賞与の源泉所得税は、前月の給与から社会保険料を引いた額に応じて税率が決まります。 国税庁の表は21行あり、行の切り替わりを1円でも取り違えると税率がひと段ずれます。 各行について、範囲の下限とその行の最後の1円の2点でエンジンに税率を引かせ、表の率と比べています。
| 行 | 前月の社会保険料等控除後の給与 | 表の税率 | エンジン(下限で) | エンジン(上限直前で) | 判定 |
|---|---|---|---|---|---|
| 1 | 0円以上82,000円未満 | 0% | 0% | 0% | 一致 |
| 2 | 82,000円以上94,000円未満 | 2.042% | 2.042% | 2.042% | 一致 |
| 3 | 94,000円以上260,000円未満 | 4.084% | 4.084% | 4.084% | 一致 |
| 4 | 260,000円以上309,000円未満 | 6.126% | 6.126% | 6.126% | 一致 |
| 5 | 309,000円以上342,000円未満 | 8.168% | 8.168% | 8.168% | 一致 |
| 6 | 342,000円以上372,000円未満 | 10.21% | 10.21% | 10.21% | 一致 |
| 7 | 372,000円以上402,000円未満 | 12.252% | 12.252% | 12.252% | 一致 |
| 8 | 402,000円以上433,000円未満 | 14.294% | 14.294% | 14.294% | 一致 |
| 9 | 433,000円以上520,000円未満 | 16.336% | 16.336% | 16.336% | 一致 |
| 10 | 520,000円以上605,000円未満 | 18.378% | 18.378% | 18.378% | 一致 |
| 11 | 605,000円以上684,000円未満 | 20.42% | 20.42% | 20.42% | 一致 |
| 12 | 684,000円以上715,000円未満 | 22.462% | 22.462% | 22.462% | 一致 |
| 13 | 715,000円以上752,000円未満 | 24.504% | 24.504% | 24.504% | 一致 |
| 14 | 752,000円以上795,000円未満 | 26.546% | 26.546% | 26.546% | 一致 |
| 15 | 795,000円以上854,000円未満 | 28.588% | 28.588% | 28.588% | 一致 |
| 16 | 854,000円以上922,000円未満 | 30.63% | 30.63% | 30.63% | 一致 |
| 17 | 922,000円以上1,318,000円未満 | 32.672% | 32.672% | 32.672% | 一致 |
| 18 | 1,318,000円以上1,521,000円未満 | 35.735% | 35.735% | 35.735% | 一致 |
| 19 | 1,521,000円以上2,621,000円未満 | 38.798% | 38.798% | 38.798% | 一致 |
| 20 | 2,621,000円以上3,495,000円未満 | 41.861% | 41.861% | 41.861% | 一致 |
| 21 | 3,495,000円以上(上限なし) | 45.945% | 45.945% | 45.945% | 一致 |
扶養親族等の数0人・甲欄。表の率は復興特別所得税を含みます。出典: 国税庁 令和8年分 賞与に対する源泉徴収税額の算出率の表(PDF・15/16ページ)(令和8年分(2026年)・確認日 2026-07-21)
照合5: 住民税の非課税限度額の境界で正しく切り替わるか
住民税の均等割と森林環境税は、所得割が0円でもかかります。かかるかどうかを決めるのは 市区町村が条例で定める非課税限度額で、東京23区で扶養がいない場合は合計所得金額450,000円です。 境界をまたぐ額面年収でエンジンを動かし、公表の線どおりに切り替わるかを見ています。
| 額面年収 | 合計所得金額 | 限度額450,000円との関係 | 公表どおりの均等割+森林環境税 | エンジンの計算結果 | うち所得割 | 判定 |
|---|---|---|---|---|---|---|
| 1,190,000 | 450,000 | 限度額以下(非課税) | 0 | 0 | 0 | 一致 |
| 1,200,000 | 460,000 | 限度額を超える | 5,000 | 5,000 | 0 | 一致 |
| 1,370,000 | 630,000 | 限度額を超える | 5,000 | 5,000 | 0 | 一致 |
| 1,380,000 | 640,000 | 限度額を超える | 5,000 | 5,000 | 0 | 一致 |
| 地方税法施行令47条の3の式(基本額350,000円 × 1人 + 100,000円)と東京都主税局の記載額 | 450,000 | 450,000 | — | 一致 | ||
単位は円(年額)。合計所得金額は給与収入から給与所得控除を引いた額です(令和8年分の最低保障74万円)。 出典: 東京都主税局「個人住民税」6 個人住民税の非課税(確認日 2026-08-05)。 均等割の非課税限度額は市区町村の条例で定める。地方税法施行令47条の3は、条例の基本額を「35万円を超えない範囲内で、35万円に生活保護法の級地区分ごとの総務省令で定める率を乗じた額を参酌して定める」、加算額を「21万円を超えない範囲内で同じ率を乗じた額を参酌して定める」としており、東京23区はその上限にあたる35万円・21万円(+一律の10万円)を採る。級地区分が下がる市町村では基本額・加算額も下がるため、非課税のラインは東京23区より低くなる。
照合6: 自治体が公表している国民健康保険料と一致するか
国民健康保険料は市区町村ごとに料率が違うため、公的機関がひとつの表で答えを出してくれません。 そこで、自治体が自分のサイトで公表している目安表と計算例を集め、その資料が書いている入力条件を そのまま計算機に与えて、出てきた額を並べました。入力条件はこちらで作り替えていません。
広島市の目安表 216セルとの照合
広島市は世帯人数と所得ごとの保険料額を表で公表しています。表の前提は次のとおりです(原文のまま)。
- この表は、世帯のうち1人だけに所得がある場合のものです。
- 40歳から64歳までの方は、医療分+支援分+子ども分+介護分の欄となります。それ以外の方は、医療分+支援分+子ども分の欄となります。
- 令和8年度の国民健康保険料は、令和7年1月から同年12月の総所得金額で算定します。
- 未就学児、18歳未満被保険者がいる場合は異なります。
- 2人世帯の「介護分」欄は世帯の2人とも、3人・4人世帯の「介護分(2人)」欄は4人のうち2人が40歳以上65歳未満であるものとして読んだ。表の注記に加えて、27行すべてで金額が合うことでも確かめている。
給与収入27行 × 世帯構成8通りの 216セルすべてをエンジンに計算させました。 軽減が当たらないセルは148あり、そのすべてが公表額と1円まで一致します。 残る68セルは均等割・平等割が軽減される帯で、こちらは差が出ます(表の下の注記)。
| 給与収入 | 総所得金額等 | 1人世帯(医療+支援+子ども) | 1人世帯(+介護) | 2人世帯(医療+支援+子ども) | 2人世帯(+介護) | 3人世帯(医療+支援+子ども) | 3人世帯(+介護・2人) | 4人世帯(医療+支援+子ども) | 4人世帯(+介護・2人) |
|---|---|---|---|---|---|---|---|---|---|
| 980,000 | 330,000 | 25,260 差 +1 | 30,750 差 +1 | 38,067 差 +3 | 46,689 差 +4 | 50,874 差 +6 | 59,496 差 +7 | 63,681 差 +8 | 72,303 差 +9 |
| 1,000,000 | 350,000 | 25,260 差 +1 | 30,750 差 +1 | 38,067 差 +3 | 46,689 差 +4 | 50,874 差 +6 | 59,496 差 +7 | 63,681 差 +8 | 72,303 差 +9 |
| 1,250,000 | 600,000 | 60,959 一致 | 74,394 一致 | 82,308 一致 | 100,964 差 +1 | 103,657 一致 | 122,313 差 +1 | 125,006 一致 | 143,662 差 +1 |
| 1,500,000 | 850,000 | 113,946 差 +1 | 139,172 差 +1 | 110,033 一致 | 134,989 差 +1 | 131,382 一致 | 156,338 差 +1 | 152,731 一致 | 177,687 差 +1 |
| 1,750,000 | 1,100,000 | 158,517 一致 | 193,704 一致 | 175,827 差 +3 | 215,707 差 +3 | 159,107 一致 | 190,363 差 +1 | 180,456 一致 | 211,712 差 +1 |
| 2,000,000 | 1,320,000 | 182,915 一致 | 223,646 一致 | 200,225 差 +3 | 245,649 差 +3 | 183,505 一致 | 220,305 差 +1 | 204,854 一致 | 241,654 差 +1 |
| 2,250,000 | 1,493,600 | 202,166 一致 | 247,271 一致 | 219,476 差 +3 | 269,274 差 +3 | 253,632 差 +6 | 303,430 差 +6 | 224,105 一致 | 265,279 差 +1 |
| 2,500,000 | 1,670,000 | 221,730 一致 | 271,281 一致 | 264,428 一致 | 324,422 一致 | 273,196 差 +6 | 327,440 差 +6 | 243,669 一致 | 289,289 差 +1 |
| 2,750,000 | 1,843,600 | 240,981 一致 | 294,906 一致 | 283,679 一致 | 348,047 一致 | 292,447 差 +6 | 351,065 差 +6 | 326,603 差 +8 | 385,221 差 +8 |
| 3,000,000 | 2,020,000 | 260,545 一致 | 318,916 一致 | 303,243 一致 | 372,057 一致 | 312,011 差 +6 | 375,075 差 +6 | 346,167 差 +8 | 409,231 差 +8 |
| 3,250,000 | 2,193,600 | 279,796 一致 | 342,541 一致 | 322,494 一致 | 395,682 一致 | 365,192 一致 | 438,380 一致 | 365,418 差 +8 | 432,856 差 +8 |
| 3,500,000 | 2,370,000 | 299,360 一致 | 366,551 一致 | 342,058 一致 | 419,692 一致 | 384,756 一致 | 462,390 一致 | 384,982 差 +8 | 456,866 差 +8 |
| 3,750,000 | 2,558,400 | 320,252 一致 | 392,190 一致 | 362,950 一致 | 445,331 一致 | 405,648 一致 | 488,029 一致 | 405,874 差 +8 | 482,505 差 +8 |
| 4,000,000 | 2,760,000 | 342,611 一致 | 419,630 一致 | 385,309 一致 | 472,771 一致 | 428,007 一致 | 515,469 一致 | 470,705 一致 | 558,167 一致 |
| 4,250,000 | 2,958,400 | 364,612 一致 | 446,630 一致 | 407,310 一致 | 499,771 一致 | 450,008 一致 | 542,469 一致 | 492,706 一致 | 585,167 一致 |
| 4,500,000 | 3,160,000 | 386,971 一致 | 474,070 一致 | 429,669 一致 | 527,211 一致 | 472,367 一致 | 569,909 一致 | 515,065 一致 | 612,607 一致 |
| 4,750,000 | 3,358,400 | 408,972 一致 | 501,070 一致 | 451,670 一致 | 554,211 一致 | 494,368 一致 | 596,909 一致 | 537,066 一致 | 639,607 一致 |
| 5,000,000 | 3,560,000 | 431,331 一致 | 528,510 一致 | 474,029 一致 | 581,651 一致 | 516,727 一致 | 624,349 一致 | 559,425 一致 | 667,047 一致 |
| 5,250,000 | 3,758,400 | 453,332 一致 | 555,510 一致 | 496,030 一致 | 608,651 一致 | 538,728 一致 | 651,349 一致 | 581,426 一致 | 694,047 一致 |
| 5,500,000 | 3,960,000 | 475,691 一致 | 582,950 一致 | 518,389 一致 | 636,091 一致 | 561,087 一致 | 678,789 一致 | 603,785 一致 | 721,487 一致 |
| 5,750,000 | 4,158,400 | 497,692 一致 | 609,950 一致 | 540,390 一致 | 663,091 一致 | 583,088 一致 | 705,789 一致 | 625,786 一致 | 748,487 一致 |
| 6,000,000 | 4,360,000 | 520,051 一致 | 637,390 一致 | 562,749 一致 | 690,531 一致 | 605,447 一致 | 733,229 一致 | 648,145 一致 | 775,927 一致 |
| 6,250,000 | 4,558,400 | 542,052 一致 | 664,390 一致 | 584,750 一致 | 717,531 一致 | 627,448 一致 | 760,229 一致 | 670,146 一致 | 802,927 一致 |
| 6,500,000 | 4,760,000 | 564,411 一致 | 691,830 一致 | 607,109 一致 | 744,971 一致 | 649,807 一致 | 787,669 一致 | 692,505 一致 | 830,367 一致 |
| 7,000,000 | 5,200,000 | 613,207 一致 | 751,714 一致 | 655,905 一致 | 804,855 一致 | 698,603 一致 | 847,553 一致 | 741,301 一致 | 890,251 一致 |
| 7,500,000 | 5,650,000 | 663,112 一致 | 812,959 一致 | 705,810 一致 | 866,100 一致 | 748,508 一致 | 908,798 一致 | 791,206 一致 | 951,496 一致 |
| 8,000,000 | 6,100,000 | 713,017 一致 | 874,204 一致 | 755,715 一致 | 925,715 一致 | 798,413 一致 | 968,413 一致 | 841,111 一致 | 1,011,111 一致 |
単位は円(年額)。上段が広島市の公表額、下段がエンジンの出力との関係です。 出典: 令和8年度保険料目安表(国民健康保険料の計算方法|広島市) (掲載ページ・確認日 2026-08-12)。 差が出ている54セルは、いずれも均等割・平等割が軽減される帯です。 当サイトは均等割の合計に軽減率を掛けてから1円未満を切り捨て、広島市は加入者1人ずつ切り捨てているため、 人数が増えるほど差が開きます。差は最大9円で、判定の対象からは外しています。
令和8年度名古屋市国民健康保険料計算例 モデルケース3の内訳
名古屋市は計算例を式のまま公表しています。前提は「世帯主(給与収入 360 万円(給与所得 244 万円))・障害者控除(本人)無し・扶養家族無し(51歳の単身世帯)」で、 賦課基準額は「244 万円(所得)-43 万円=201 万円」と書かれています。 区分ごとの所得割額・均等割額を、そのままエンジンの内訳と並べました。
| 区分 | 項目 | 出典の記載 | 出典の額 | エンジンの計算結果 | 判定 |
|---|---|---|---|---|---|
| 賦課基準額 | 244 万円(所得)-43 万円=201 万円 | 2,010,000 | 2,010,000 | 一致 | |
| 医療分 | 所得割額 | 201 万円×0.0883=177,483 円 | 177,483 | 177,483 | 一致 |
| 医療分 | 均等割額 | 50,591 円×1 人=50,591 円 | 50,591 | 50,591 | 一致 |
| 後期高齢者支援金分 | 所得割額 | 201 万円×0.0258=51,858 円 | 51,858 | 51,858 | 一致 |
| 後期高齢者支援金分 | 均等割額 | 15,784 円×1 人=15,784 円 | 15,784 | 15,784 | 一致 |
| 介護納付金分 | 所得割額 | 201 万円×0.0234=47,034 円 | 47,034 | 47,034 | 一致 |
| 介護納付金分 | 均等割額 | 16,120 円×1 人=16,120 円 | 16,120 | 16,120 | 一致 |
| 子ども・子育て支援金分 | 所得割額 | 201 万円×0.0026=5,226 円 | 5,226 | 5,226 | 一致 |
| 子ども・子育て支援金分 | 均等割額 | 1,771 円×1 人+18 歳以上均等割 92 円×1 人 | 1,863 | 1,863 | 一致 |
| 年間保険料 | 医療分、支援金分、介護分、子ども分それぞれ 10 円未満切捨て後に合算 | 365,940 | 365,940 | 一致 | |
単位は円(年額)。内訳8項目と合計が、いずれも計算例と一致します。 内訳は切り捨てる前の額で、合計は名古屋市が明記している「区分ごとに10円未満を切り捨ててから合算」を当てた額です。 出典: 令和8年度名古屋市国民健康保険料計算例(令和8年度分の国民健康保険料|名古屋市) (掲載ページ・確認日 2026-08-12)。 同じ資料の他の3件は照合から外しました。理由は次のとおりです。
- モデルケース1(20歳の単身世帯・給与収入85万円): 名古屋市独自の「均等割額の独自控除2,000円」を含む。当サイトのエンジンは自治体独自の控除を持たない
- モデルケース2(68歳の単身世帯・年金収入160万円): 上の独自控除に加え、65歳以上の公的年金等に係る所得から15万円を控除して軽減を判定する取扱いを含む
- モデルケース4(45歳世帯主・38歳配偶者): 障害者控除と扶養家族による「所得割額の独自控除」を含む
端数処理と、公表額との差
自治体は保険料を円単位で出すところ、区分ごとに10円未満を切り捨てるところ、100円未満を切り捨てるところに分かれます。 当サイトは、公式資料でどの単位で切り捨てているか確認できた6自治体にだけ、その単位を当てています。 確認できていない9自治体では丸めません。確かめていない変換を当てると、 根拠のない額を全自治体に広げることになるためです。丸めない自治体では、通知書より数十円から数百円高い額が出ます。
| 自治体 | 出典が示す前提 | 当サイトが当てている端数処理 | 公表額 | エンジンの計算結果 | 差 | 出典(確認日) |
|---|---|---|---|---|---|---|
| 広島市 | 単身・40歳未満・総所得金額等2,020,000円(給与収入3,000,000円) | 円単位(切り捨てない) 確認: 目安表216セルの金額が1円単位(例: 38,067円・46,689円)。丸めずに計算すると、軽減が当たらない148セルすべてが公表額と1円まで一致する (令和8年度保険料目安表(国民健康保険料の計算方法|広島市)・2026-08-12) | 260,545 | 260,545 | 0 | 令和8年度保険料目安表|広島市 (2026-08-12) |
| 仙台市 | 単身・40歳未満・総所得金額等2,020,000円(給与収入3,000,000円) | 区分ごとに10円未満切捨て 確認: 目安表に載る金額に1円単位の端数を持つものが0件、10円単位の端数を持つものが280件ある(例: 23,040円・27,990円・34,830円)。区分ごとに10円未満を切り捨てるとエンジンの出力が公表額と1円まで一致する (令和8年度仙台市国民健康保険料の目安・2026-08-12) | 255,400 | 255,400 | 0 | 令和8年度仙台市国民健康保険料の目安 (2026-08-12) |
| 札幌市 | 単身・40歳未満・所得2,020,000円(給与収入3,000,000円) | 区分ごとに10円未満切捨て 確認: 目安表に載る金額に1円単位の端数を持つものが0件、10円単位の端数を持つものが149件ある。区分ごとに10円未満を切り捨てるとエンジンの出力が公表額と1円まで一致する (令和8年度国民健康保険料の目安(64歳以下の公的年金収入以外の場合)|札幌市・2026-08-12) | 253,730 | 253,730 | 0 | 令和8年度国民健康保険料の目安(64歳以下の公的年金収入以外の場合)|札幌市 (2026-08-12) |
| 名古屋市 | 単身・51歳・給与所得2,440,000円(給与収入3,600,000円)=モデルケース3の合計 | 区分ごとに10円未満切捨て 確認: 医療分、支援金分、介護分、子ども分それぞれ 10 円未満切捨て後に合算 (令和8年度名古屋市国民健康保険料計算例・2026-08-12) | 365,940 | 365,940 | 0 | 令和8年度名古屋市国民健康保険料計算例 (2026-08-12) |
| 福岡市 | 単身・40歳未満・総所得金額等2,020,000円(給与収入3,000,000円) | 区分ごとに100円未満切捨て 確認: 目安表に載る金額に1円単位・10円単位の端数を持つものが0件で、100円単位の端数を持つものが247件ある。区分ごとに100円未満を切り捨てるとエンジンの出力が公表額と1円まで一致する (令和8年度国民健康保険料の目安|福岡市・2026-08-12) | 203,700 | 203,700 | 0 | 令和8年度国民健康保険料の目安|福岡市 (2026-08-12) |
| さいたま市 | 単身・42歳・給与所得3,000,000円(課税標準所得額257万円) | 区分ごとに100円未満切捨て 確認: 医療給付費分「100円未満切捨て 239,600円」/後期高齢者支援金等分「100円未満切捨て 85,000円」/介護納付金分「100円未満切捨て 77,000円」/子ども・子育て支援納付金分「100円未満切捨て 8,300円」 (国民健康保険税の計算(令和8年度の計算例)|さいたま市・2026-08-12) | 409,900 | 409,900 | 0 | 国民健康保険税の計算|さいたま市(計算例) (2026-08-12) |
単位は円(年額)。端数処理を宣言した6自治体は、いずれも公表額と1円まで一致しています。 切り捨ては区分(医療分・支援金分・子ども分・介護分)ごとに行い、そのあとで合算します。 合計に対して1回だけ切り捨てるのではありません。名古屋市とさいたま市はこの順序を資料に書いており、 仙台市・札幌市・福岡市は、公表している表の金額にその単位より細かい端数が1件も無いことから読み取りました。 表に無い9自治体は端数処理を確認できていないため丸めておらず、その自治体では 通知書より高い額が出ます。
照合に使えなかった自治体
国保の料率は15自治体を収録していますが、照合表に載せたのは6自治体です。 残る9自治体は、料率と計算式は公表していても、入力条件と金額をそろえた例を出していません。 条件が書かれていない金額をこちらで作ると照合の意味が消えるため、載せていません。
- 東京都特別区: 足立区が計算例を公表しているが、単身世帯の例は「約114,000円」のように概算の表記で、4人世帯の例は未就学児の均等割5割軽減(当サイトのエンジンが持たない仕組み)を含む
- 横浜市: 公式ページは料率と試算ページの案内までで、入力条件つきの金額を公表していない
- 川崎市: 公表しているのは記入用の計算様式(令和8年度川崎市国民健康保険料の計算方法)で、金額の例が入っていない
- 千葉市: 公表しているのは試算用のエクセル配布で、入力条件つきの金額の表が無い
- 大阪市: 料率と計算式は公表しているが、入力条件つきの金額の例が無い
- 堺市: 料率と計算式は公表しているが、入力条件つきの金額の例が無い
- 京都市: 料率と計算式は公表しているが、入力条件つきの金額の例が無い
- 神戸市: 外部の試算システムへ案内しており、入力条件つきの金額を自ら公表していない
- 北九州市: 公表しているのは記入用の計算様式で、金額の例が入っていない
算出式の全過程(額面年収500万円の場合)
計算機が内部で何をしているかを、1本の通しで開きます。前提は賞与なし・40歳未満・扶養なし・東京都(協会けんぽ)・年収を12等分した月収です。
| 項目 | 算出式 | 金額(円) |
|---|---|---|
| 額面年収 | 入力値 | 5,000,000 |
| 給与所得控除 | 5,000,000円 × 20% + 440,000円(令和8年分・収入660万円以下の区分) | 1,440,000 |
| 給与所得 | 5,000,000円 − 1,440,000円 | 3,560,000 |
| 標準報酬月額 | 月額 416,667円 が属する等級(協会けんぽ) | 410,000 |
| 健康保険+支援金(年額) | 410,000円 ×(9.85%+0.23%)÷ 2 × 12か月 | 247,968 |
| 厚生年金(年額) | 410,000円 × 18.3% ÷ 2 × 12か月 | 450,180 |
| 雇用保険(年額) | 5,000,000円 × 0.5% | 25,000 |
| 基礎控除(所得税) | 合計所得 3,560,000円 の区分(令和8年分) | 1,040,000 |
| 課税所得(所得税) | 給与所得 − 社会保険料 − 基礎控除(1,000円未満切捨て) | 1,796,000 |
| 所得税 | 速算表 + 復興特別所得税 2.1%(100円未満切捨て) | 91,600 |
| 基礎控除(住民税) | 合計所得 3,560,000円 の区分 | 430,000 |
| 課税所得(住民税) | 給与所得 − 社会保険料 − 基礎控除(1,000円未満切捨て) | 2,406,000 |
| 住民税の非課税限度額の判定 | 合計所得 3,560,000円 と 非課税限度額 450,000円(東京23区・扶養なし単身)の比較 | 450,000 |
| 住民税 所得割 | 課税所得 × 10% − 調整控除2,500円(100円未満切捨て) | 238,100 |
| 住民税 均等割+森林環境税 | 限度額を超えるため 4,000円 + 1,000円 | 5,000 |
| 住民税 | 所得割 + 均等割 + 森林環境税 | 243,100 |
| 控除の合計 | 所得税 + 住民税 + 社会保険料 | 1,057,848 |
| 手取り(年額) | 5,000,000円 − 1,057,848円 | 3,942,152 |
住民税は前年の所得に対して翌年度に課税されます。この表は同じ所得が続いた場合の概算です。 調整控除は、単身の場合の基礎控除の人的控除差5万円の5%として2,500円を差し引いています(東京都主税局)。
算出式の全過程(賞与50万500円の場合)
賞与は毎月の給与と引かれ方が違います。回帰テストが固定している組み合わせを、そのまま内訳で開きます。 前月の給与を0円としたケースで、住民税は賞与からは引かれません。
| 項目 | 算出式 | 金額(円) |
|---|---|---|
| 賞与の額面 | 入力値 | 500,500 |
| 標準賞与額 | 500,500円 の1,000円未満切捨て | 500,000 |
| 健康保険+支援金 | 500,000円 ×(9.85%+0.23%)÷ 2 | 25,200 |
| 厚生年金 | 500,000円 × 18.3% ÷ 2 | 45,750 |
| 雇用保険 | 500,500円 × 0.5% | 2,502 |
| 源泉所得税 | 前月の給与が0円のため算出率の表の税率は0% | 0 |
| 賞与の手取り | 500,500円 −(社会保険料 73,452円 + 源泉所得税 0円) | 427,048 |
回帰テスト181件の一覧
公開前に実行しているテストです。名前とファイルは、実際のテストコードを読み取って並べています。
tests/annual-bonus.test.mjs 14件
年収を「毎月の給与」と「賞与」に分けたときの年間手取り(computeAnnualWithBonus)の回帰テスト。 期待値は一次ソースの定義から手で組んだ値のみを置く(サイト内で一貫していることは根拠にしない)。 - 標準賞与額=賞与額の1,000円未満切捨て/健保は年度累計573万円・厚年は1回150万円が上限 出典: 日本年金機構 https://www.nenkin.go.jp/service/kounen/hokenryo/hoshu/20141203.html (確認日 2026-08-19) - 賞与は年3回以下。年4回以上は標準報酬月額に算入される報酬 出典: 日本年金機構 https://www.nenkin.go.jp/service/kounen/hokenryo/hoshu/20150515-01.html (確認日 2026-08-19) - 料率は協会けんぽ東京支部 令和8年度(健保9.85%+子ども・子育て支援金0.23%・厚年18.3%・労使折半)
| # | テストが確かめていること |
|---|---|
| 1 | 賞与ゼロなら、既存の computeAnnual と1円も違わない(早見44帯の全部で) |
| 2 | 賞与ゼロなら、介護保険料あり・都道府県ちがいでも computeAnnual と一致する |
| 3 | 標準賞与額は1,000円未満を切り捨てる(賞与50万500円→50万円ぶんの保険料) |
| 4 | 賞与ぶんの保険料は、賞与の計算機(computeBonus)と同じ額になる=2つの経路で答えが割れない |
| 5 | 厚生年金の標準賞与額は1回150万円で頭打ち(1回200万円でも150万円ぶん) |
| 6 | 健康保険の標準賞与額は年度の累計573万円で頭打ち(3回×250万円=750万円でも573万円ぶん) |
| 7 | 賞与は年3回以下。4回以上を渡しても3回に収まり、丸めたことを返す |
| 8 | 雇用保険料は賞与の分け方で変わらない(賃金の総額に率を掛けるため) |
| 9 | 同じ年収でも賞与の配分で年間の社会保険料が変わり、向きは年収帯で反転する |
| 10 | 社会保険料が増えれば所得税は減る(社会保険料控除の向き)。逆転しない |
| 11 | 不正な入力で例外を投げない。賞与は年収を超えず、負数は0になる |
| 12 | 40〜64歳(介護保険料あり)は、同じ年収・同じ賞与配分で手取りが必ず少ない |
| 13 | 内訳の合計が返り値と合う(月給ぶん+賞与ぶん=健康保険料・厚生年金保険料) |
| 14 | 前提と出典が欠けていない(助言表現を含まない) |
tests/bonus.test.mjs 6件
賞与(ボーナス)手取り計算の回帰テスト。 フィクスチャは外部一次ソース(国税庁 賞与算出率表・協会けんぽ料率・日本年金機構の標準賞与額上限)。 deploy.shの関所で実行され、FAILでデプロイ中止(金融YMYL=計算ロジックは一次ソース照合必須)。
| # | テストが確かめていること |
|---|---|
| 1 | 賞与算出率表(扶養0人)の境界で正しい率を引く(国税庁 一次ソース) |
| 2 | 算出率表の率は復興特別所得税込み(基準率×1.021) |
| 3 | 標準賞与額の厚生年金上限(1回150万円)が効く |
| 4 | 賞与手取りフィクスチャ(前月給与なし・端数1000円未満切捨て・扶養0・40歳未満) |
| 5 | 前月給与ありのとき算出率表の率で源泉所得税を計算する(合成の整合) |
| 6 | 賞与0・不正入力は0を返す |
tests/deductions.test.mjs 10件
所得控除(扶養・配偶者・特定親族)と所得税内訳の回帰テスト。 フィクスチャは国税庁の公表資料の実額。自作の期待値でテストを書かない。
| # | テストが確かめていること |
|---|---|
| 1 | 国税庁タックスアンサー No.2260 の計算例と一致する(課税所得7,000,000円→974,000円・復興特別所得税前) |
| 2 | 扶養控除の額が国税庁 No.1180 の区分どおりに合算される |
| 3 | 配偶者控除が国税庁 No.1191 の所得区分どおりに適用される(令和8年分の所得要件62万円以下) |
| 4 | 配偶者特別控除が改正あらましの表どおりに段階的に減る |
| 5 | 特定親族特別控除が改正あらましの表どおりに段階的に減る(本人の所得区分なし) |
| 6 | 控除を指定しない所得税計算は、手取り計算エンジンの所得税と一致する(内部整合) |
| 7 | 扶養親族が増えると課税所得と所得税が下がる |
| 8 | 配偶者控除と配偶者特別控除は同時に適用されない |
| 9 | 控除が課税所得を上回っても所得税は負にならない |
| 10 | データの出典と適用年度が欠けていない(架空データ混入の検知) |
tests/engine.test.mjs 8件
手取り計算エンジンの回帰テスト。 フィクスチャは外部一次ソース(協会けんぽ保険料額表・国税庁速算表)の実額=自作の期待値でテストを書かない。 deploy.shの関所で実行され、FAILでデプロイ中止(VEIL日干支21日ズレ事件の再発防止)。
| # | テストが確かめていること |
|---|---|
| 1 | 協会けんぽ保険料額表フィクスチャと折半額が一致する(子ども・子育て支援金は健康保険に合算) |
| 2 | 所得税速算表: 境界で税額が連続する(国税庁No.2260) |
| 3 | 給与所得控除(令和8年分): 220万円以下は最低保障74万円・境界で連続 |
| 4 | 基礎控除(所得税・令和8年分): 合計所得489万円以下は104万円(改正あらまし) |
| 5 | 所得税: 課税所得0以下は0円・復興税2.1%込み・100円未満切捨て |
| 6 | computeAnnual: 不変条件(手取り<額面・控除内訳の合計一致・単調増加) |
| 7 | computeAnnual: 介護保険ありは手取りが減る(40〜64歳) |
| 8 | computeAnnual: 低収入は税0(給与所得が基礎控除以下) |
tests/hayami-table.test.mjs 12件
一覧1枚(/hayami/)の行の回帰テスト。 なぜ要るか(2026-08-21): /hayami/ の行を専用ページの帯(HAYAMI_AMOUNTS)から切り離し、10万円刻みの131行に増やした。 配列が2本になった時点で、次の3つがサイレントに壊れうる: ① 専用ページのある帯が一覧の行から漏れる(表からその年収へ行けなくなる) ② 一覧の上限が計算機の対応上限(MAX_MAN = max(HAYAMI_AMOUNTS))を追い越し、 「表には載っているのに、その年収を計算機に入れ直せない」状態になる (2026-08-19に /hayami/3500/ /4000/ /5000/ で実際に起きた壊れ方と同型) ③ 表に並べる7列(所得税・住民税・社会保険料・手取り)の足し算が額面と合わなくなる ①②は型もビルドも通る種類の壊れ方なので、テストでしか止められない。
| # | テストが確かめていること |
|---|---|
| 1 | 一覧の行は昇順で重複がない |
| 2 | 刻みは「1000万円までは10万円・その上は100万円」のとおり |
| 3 | 専用ページのある44帯は、すべて一覧の行にある(表からその年収へ行ける) |
| 4 | 一覧の上限は計算機の対応上限(MAX_MAN = max(HAYAMI_AMOUNTS))を超えない |
| 5 | 表の移動リンクの飛び先は、すべて実在する行を指す |
| 6 | 全行で 額面 − 所得税 − 住民税 − 社会保険料 = 手取り が成り立つ |
| 7 | 全行で手取りは0より大きく、手取り率は0〜100%に収まる |
| 8 | 社会保険料は標準報酬月額の等級表の上限で頭打ちになる(高年収帯で増えない) |
| 9 | 一覧を紹介するための導出値が、行の配列と一致する |
| 10 | 「年収◯万円までは△万円刻み」は、その範囲で実際に成り立つ |
| 11 | 一覧の3つの保険料の列は、どれも0以上で、額面−税−3列=手取り が全行で成り立つ |
| 12 | 雇用保険料は等級表を使わないので、健保・厚年が頭打ちになったあとも増え続ける |
tests/indicators.test.mjs 28件
導出指標の回帰テスト。 正本は logic/indicators.mjs。site 側はその生成ミラーなので、まず両者が一致していることを確かめてから 正本を直接 import してテストする(ミラーが古いまま緑になる経路をつぶす)。 フィクスチャの出所: - 都道府県別の健康保険料率: 協会けんぽ 令和8年度 都道府県毎の保険料率(data/pref-health-rates.json) - 標準報酬月額の等級表・厚生年金料率: 協会けんぽ保険料額表/日本年金機構(data/rates.json) - 課税所得の1,000円未満切捨て・速算表: 国税庁(data/rates.json の incomeTax) 境界値として、料率が同値の都道府県・等級表の上限・帯の先頭・算出不可の入力を必ず入れる。
| # | テストが確かめていること |
|---|---|
| 1 | logic/indicators.mjs と site 側ミラーが一致している |
| 2 | 入力が空でも例外を投げず、null と理由コードを返す |
| 3 | 算出不可を0で埋めない(差0円と算出不可を区別する) |
| 4 | 居住地スプレッドは47都道府県で算出でき、上下端は新潟と佐賀(協会けんぽ令和8年度) |
| 5 | スプレッドは全帯で算出でき、分布が潰れない(値の種類が2以上・算出不可0件) |
| 6 | スプレッドは年収に対して単調増加ではない(前の帯より狭くなる箇所がある) |
| 7 | 境界値: 料率が同じ都道府県は年間手取りも同額で、同じ順位になる |
| 8 | 境界値: 同率の都道府県どうしは、ねじれの比較対象から外す |
| 9 | ねじれの検出: 料率が高いほうの手取りが多い組だけを拾う |
| 10 | 実データのねじれは存在し、すべて隣り合う料率どうしの小さな差にとどまる |
| 11 | 対最良差は最良県が0円で、それ以外は正の値 |
| 12 | 一覧表は47行 × 指定した帯すべてを埋め、欠けが無い |
| 13 | 限界手取り率は「増分 ÷ 増分」で、手計算と一致する |
| 14 | 実効控除率はエンジンの内訳と一致する(年収500万・東京) |
| 15 | 最初の帯の限界手取り率は算出不可(0で埋めない) |
| 16 | 限界手取り率は単調減少ではなく、上向く帯がある |
| 17 | 境界値: 等級表の上限に達すると、その保険料はそれ以上増えない |
| 18 | 境界値: 上限を超えた領域では都道府県による健康保険料の差も広がらない |
| 19 | 境界値: 住民税の非課税限度額をまたぐと均等割と森林環境税が立ち上がる |
| 20 | 最大の逆転幅は、同じ額面での都道府県スプレッドより大きい |
| 21 | 却下した指標の根拠が、いまのデータでも成り立っている |
| 22 | distribution は件数・種類・最頻を返す |
| 23 | pearson は完全な線形関係で ±1 を返す |
| 24 | leave-one-out: 1件抜いて符号が反転する相関は stable: false になる |
| 25 | leave-one-out: 安定な相関は stable: true と値の範囲を返す |
| 26 | leave-one-out: 点数が足りないときは stable を判定しない(null) |
| 27 | 公開している相関はすべて leave-one-out で符号が安定している |
| 28 | 不安定な相関はページに数値が出ない言い回しになる |
tests/kokuho-published.test.mjs 6件
自治体が公表している国保料の試算例・目安表との照合(CLAUDE.md 絶対ルール1の国保版)。 kokuho.test.mjs は「式」を、kokuho-rates.test.mjs は「料率データ」を固定する。 こちらは「式×データを通した結果が、自治体自身が公表している金額と合うか」を固定する。 サイトの中でつじつまが合っていることは正しさの根拠にならないので、外の公表額で縛る。 期待値は data/kokuho-published-cases.json(自治体公式資料からの転記・出典URLと確認日つき)にあり、 このテストは数値を持たない。年度が変わって公表資料が差し替われば、データ側を取り直して落とす。
| # | テストが確かめていること |
|---|---|
| 1 | 広島市の目安表のうち、軽減が当たらないセルは公表額と1円まで一致する |
| 2 | 広島市の軽減が当たるセルの差は、軽減額の切り捨て単位のぶんに収まる(10円未満) |
| 3 | 名古屋市の計算例の内訳(所得割額・均等割額)が項目ごとに一致する |
| 4 | 名古屋市の合計額は、公表資料が明記している10円未満切捨てを当てると一致する |
| 5 | 公表額との差は、端数処理を宣言している自治体では0になる |
| 6 | 公表データは全件が一次出典URLと確認日を持ち、収録・未収録の合計が料率マスタの自治体数と合う |
tests/kokuho-rates.test.mjs 9件
国保料率マスタの一次ソース照合(CLAUDE.md 絶対ルール1)。 §1 の kokuho.test.mjs は「式」を固定する。こちらは「データ」を一次ソースに固定する。 料率は毎年度改定されるので、年度更新でこのテストが落ちるのは正常。 落ちたときは data/kokuho-rates.json を新年度の一次ソースで取り直し、この期待値も更新する。 ここに置いている期待値は、収集エージェントと検証エージェントが独立に到達した一次資料の実額: - 厚生労働省「令和8年度 税制改正の概要(厚生労働省関係)」P16(軽減判定所得・課税限度額) https://www.mhlw.go.jp/content/12602000/001623254.pdf - 各自治体公式(lg.jp / city.*.jp)
| # | テストが確かめていること |
|---|---|
| 1 | 軽減判定所得は令和8年度の値(厚労省 5割31万・2割57万/7割は人数比例なし) |
| 2 | 賦課限度額は国基準(医療67万・支援26万・介護17万・子ども3万) |
| 3 | 公表値を合算で示す自治体は、内訳の和が公表値と一致する |
| 4 | 札幌市の18歳以上1人世帯の子ども分均等割は公表値1,100円になる |
| 5 | 18歳未満だけの加入では、全額軽減の自治体で子ども分均等割が0になる |
| 6 | 全自治体に適用年度・出典・確認日があり、所得割率は小数で入っている |
| 7 | 端数処理は宣言した自治体だけに適用し、宣言には出典と確認日が付く |
| 8 | 宣言した端数処理の単位で、区分ごとに切り捨ててから合算する |
| 9 | 東京23区の料率は「統一」ではなく、逸脱する区がある事実を持っている |
tests/kokuho.test.mjs 15件
国民健康保険料の回帰テスト。 2層に分かれている: §1 式の性質 — 順番と適用範囲を固定する。ここで使う料率は「式を試すためのテスト用の値」で、 実在の自治体の料率ではない(実在の値は data/kokuho-rates.json 側にあり §2 で使う) §2 一次ソース照合 — 自治体公式が公表している試算例と突き合わせる。CLAUDE.md 絶対ルール1の本体 式の順番(軽減→限度額)が入れ替わると、限度額に張り付いた低所得世帯で軽減が消える。 加入者ごとの基礎控除を世帯で1回にすると、多人数世帯の保険料が実際より安く出る。 どちらも「サイト内で一貫しているのに間違っている」壊れ方なので、性質としてテストで留める。
| # | テストが確かめていること |
|---|---|
| 1 | 賦課基準額は加入者ごとに基礎控除を引いて合算する(世帯で1回ではない) |
| 2 | 所得がマイナスの加入者は0として扱い、他の人の所得と相殺しない |
| 3 | 介護分の対象は40歳以上65歳未満 |
| 4 | 軽減は率の高いものから当たり、加入者数で基準額が動く |
| 5 | 軽減は均等割・平等割にだけ効き、所得割には効かない |
| 6 | 限度額は軽減のあとにかかる(順番が逆だと低所得の大世帯で軽減が消える) |
| 7 | 100円未満切り捨ては区分ごとにかかる |
| 8 | 介護分は該当者がいなければ null、いれば該当者だけで計算する |
| 9 | 合計は区分の合算で、内訳の和と一致する |
| 10 | 料率に載っている区分が増えたら合計にも入る(区分を3つに固定しない) |
| 11 | 子育て支援金分にも軽減と限度額が同じ順番でかかる |
| 12 | 擬制世帯主の所得は軽減判定にだけ入り、所得割には入らない |
| 13 | 18歳以上加算は18歳以上の人数にだけかかる |
| 14 | 18歳未満の均等割を全額軽減する自治体では、子どもは基本均等割もかからない |
| 15 | 算出できないときは例外を投げず reason を返す(0で埋めない) |
tests/kyuyo-shotoku.test.mjs 10件
給与所得の金額(年末調整の申告書に書く「所得金額」)の回帰テスト。 対象は 2026-08-15 に追加した salaryIncomeAmountSpecial / salaryIncomeAmount と、 それを使う面 /calc/kyuyo-shotoku/。 一次ソース: 国税庁 タックスアンサー No.1410(給与所得控除の速算表・別表第五の注記) 国税庁 源泉所得税の改正のあらまし 令和8年4月 1(2)ハ/同Q&A Q3-1① (令和8年・9年分の「給与所得の金額の特例」の表) 設計: 期待値はこのファイルに独立に書き下し、data/rates.json とエンジンの両方に突き合わせる。 rates.json だけを読んで比べると、転記が壊れたときに両方が同じ嘘をつくので検出できない。
| # | テストが確かめていること |
|---|---|
| 1 | 特例表: data/rates.json の転記がフィクスチャと一致する |
| 2 | 特例表: 各行の下限・上限の1円手前で、エンジンが表どおりの給与所得を返す |
| 3 | 特例表: 範囲外は null を返す(0で埋めない) |
| 4 | 給与所得の金額: 表の範囲外は「収入 − 給与所得控除」と一致する |
| 5 | 給与所得の金額: 負にならず、収入が増えて減ることもない |
| 6 | 特例表と速算表の差は、表が階段になっている3帯だけに出る(最大3,999円) |
| 7 | 特例表の帯では、収入が増えても給与所得が動かない区間がある |
| 8 | 既存の面と同じ答えになる: 特例表の帯の外では computeIncomeTax の給与所得と一致する |
| 9 | 給与所得控除の速算表: 令和8年分の境界値が No.1410 と改正のあらましの表と一致する |
| 10 | /calc/kyuyo-shotoku/ の早見表が使う代表値 |
tests/prefecture.test.mjs 5件
都道府県別(協会けんぽ支部別)健康保険料率の回帰テスト。 フィクスチャは協会けんぽ令和8年度・都道府県毎の保険料率(pref-health-rates.json)。 健保のみ都道府県で変わり、厚生年金・雇用保険・介護(全国一律)は変わらないことを固定する。
| # | テストが確かめていること |
|---|---|
| 1 | 都道府県未指定は東京と同じ(後方互換) |
| 2 | 健保率フィクスチャ: 東京9.85%・佐賀10.55%・新潟9.21%(協会けんぽ令和8年度) |
| 3 | 佐賀の健康保険料は東京より高く、新潟は低い(年金・雇用は同じ) |
| 4 | 健保フィクスチャ実額(月収30万・佐賀・介護なし=標準報酬月額30万) |
| 5 | 未知の都道府県は東京にフォールバックする |
tests/reform-2026.test.mjs 15件
令和8年度税制改正の前後比較(r7経路)の回帰テスト。 目的は2つ。 1. 改正前(令和7年分)のルールが、国税庁の公表資料の値と一致すること 2. 既定(令和8年分)の計算が、r7経路の追加で1円も動いていないこと 一次ソース: 国税庁 タックスアンサー No.1199(基礎控除) 国税庁 タックスアンサー No.1410(給与所得控除) 国税庁 タックスアンサー No.2260(所得税の税率) 国税庁 源泉所得税の改正のあらまし 令和8年4月(令和8年度税制改正)
| # | テストが確かめていること |
|---|---|
| 1 | 給与所得控除: 令和7年分の値が No.1410 の表と一致する |
| 2 | 給与所得控除: 令和8年分の最低保障は74万円・上限は収入220万円 |
| 3 | 基礎控除(所得税): 令和7年分の区分と金額が No.1199 と一致する |
| 4 | 基礎控除(所得税): 令和8年分は合計所得489万円以下が104万円に揃う |
| 5 | 存在しない年度を渡したら落ちる(黙って既定に落ちない) |
| 6 | 所得税がかかり始める給与収入は改正前160万円・改正後178万円 |
| 7 | r7経路・r8経路とも、公表資料から独立に組んだ計算と一致する(年収100万〜3,000万を1万円刻み) |
| 8 | 減税額の代表値(賞与なし・扶養なし・単身・40歳未満・東京) |
| 9 | 合計所得489万円の境目で基礎控除の増加額が36万円から4万円に落ちる |
| 10 | 減税額が最大になるのは合計所得336万円超489万円以下の帯 |
| 11 | 給与収入178万円以下と合計所得2,350万円超では減税額が0になる |
| 12 | 既定の年度は令和8年分のまま |
| 13 | 年度引数なしのラッパーは改正後の値を返す(既存の呼び出し側の挙動が変わらない) |
| 14 | computeAnnual の所得税は r8_r9 経路と完全に一致する(年収10万〜3,000万を1万円刻み) |
| 15 | リファクタ前の計算式を直書きしたものと computeAnnual が一致する(都道府県指定も含む) |
tests/resident-tax.test.mjs 10件
住民税の非課税限度額の回帰テスト。 フィクスチャは東京都主税局「個人住民税」6 個人住民税の非課税(1級地・東京23区)の記載額と、 地方税法施行令47条の3・森林環境税及び森林環境譲与税に関する法律4条の条文。自作の期待値でテストを書かない。 均等割と森林環境税は「住民税の課税所得が出るかどうか」ではなく、自治体が条例で定める非課税限度額 (東京23区・扶養なし単身=合計所得金額45万円以下)で決まる。ここを取り違えると、 給与収入120万〜137万の帯で住民税を5,000円ぶん少なく表示してしまう(2026-08-05に実検出・D-041)。
| # | テストが確かめていること |
|---|---|
| 1 | 非課税限度額のフィクスチャが東京都主税局の記載額と一致する(1級地・扶養なし単身45万円) |
| 2 | 限度額ちょうどは非課税・1円超えると課税(均等割・所得割とも45万円が境界) |
| 3 | 住民税の給与所得控除は令和9年度分=最低保障74万円で、所得税と同額(東京都主税局・名古屋市・横浜市) |
| 4 | 年度分と給与所得控除の対応表が、エンジンの対象年(令和8年分の所得)を1つだけ指す |
| 5 | 年収の壁データの「住民税がかかり始める」額が、エンジンの非課税ラインと一致する |
| 6 | 給与収入119万円は住民税0円、120万円は均等割+森林環境税の5,000円がかかる |
| 7 | 均等割・森林環境税は所得割が0円でも課税される(120万〜137万の帯) |
| 8 | 所得割が出る帯では 住民税 = 所得割 + 均等割 + 森林環境税 が成り立つ |
| 9 | 森林環境税は均等割が非課税なら課されない(森林環境税法4条) |
| 10 | 非課税限度額の境界で手取りが逆転しない(5,000円の段差は額面1万円の増加に吸収される) |
tests/reverse.test.mjs 5件
逆引き(手取り→額面)の回帰テスト。 逆引きには外部の公表実額が存在しないため、「順方向エンジンとの往復整合」で担保する。 順方向(computeAnnual)は協会けんぽ・国税庁のフィクスチャで検証済み(engine.test.mjs)なので、 逆引きが順方向と矛盾しないことを示せば、逆引きの正しさは順方向の正しさに帰着する。
| # | テストが確かめていること |
|---|---|
| 1 | 往復整合: 額面→手取り→額面で、戻した額面の手取りが元の手取りと一致する |
| 2 | 逆引きの結果は目標手取り以上(不足しない) |
| 3 | 都道府県で健保料率が変わると必要な額面も変わる(北海道は東京より料率が高い=同じ手取りに必要な額面が増える) |
| 4 | 介護保険料がある40〜64歳は、同じ手取りに必要な額面が増える |
| 5 | 不正な入力はゼロを返す(NaN・負数で例外を投げない) |
tests/shoyo.test.mjs 7件
賞与額別の面(/shoyo/)の回帰テスト。 フィクスチャは外部一次ソース(国税庁 賞与算出率表・協会けんぽ東京支部の料率・厚生年金の標準賞与額上限)。 面が固定している前提(前月の給与)が計算機側の一覧とずれると、同じ賞与額に2つの答えが出るため、 前提の一致もここで固定する。deploy.shの関所で実行され、FAILでデプロイ中止。
| # | テストが確かめていること |
|---|---|
| 1 | 賞与額別ページの対象額は昇順・重複なしで、10万〜150万の帯に収まる |
| 2 | 賞与の一覧と額別ページが同じ前提(前月の給与)を使う=同じ額に2つの答えを出さない |
| 3 | 額別ページの前提(前月の給与30万円)で、賞与50万円の手取りが一次ソースどおりになる |
| 4 | 対象額すべてで、手取り=額面−社会保険料−源泉所得税が成り立ち、率も算出率表と一致する |
| 5 | 対象額すべてで、40〜64歳(介護保険料あり)の手取りは40歳未満より少ない |
| 6 | 前月の給与を上げると賞与の税率は下がらず、手取りは増えない(算出率表の階段) |
| 7 | 帯の上限150万円までは手取りの割合が一定で、厚生年金の上限を超えると上がる |
tests/taishoku.test.mjs 21件
退職金(退職手当等)の手取り計算の回帰テスト。 フィクスチャは外部一次ソースの計算例そのもの(国税庁 No.2732 の計算例3件・No.1420 の控除額例2件・ 京都市「退職手当等からの特別徴収税額の計算方法について」の住民税の計算例1件)。 deploy.shの関所で実行され、FAILでデプロイ中止(金融YMYL=計算ロジックは一次ソース照合必須)。
| # | テストが確かめていること |
|---|---|
| 1 | 勤続年数は1年未満の端数を切り上げる(国税庁 No.1420「端数の2か月は1年に切上げ」) |
| 2 | 退職所得控除額が国税庁 No.1420 の計算例と一致する(勤続11年=440万円・勤続30年=1,500万円) |
| 3 | 退職所得控除額の計算表どおりに境界が動く(20年以下は40万円×年数・最低80万円/20年超は800万円+70万円×超過年数) |
| 4 | 20年の前後で控除額が連続する(境界で段差が出ない=式の取り違えを止める) |
| 5 | 障害者になったことが直接の原因で退職した場合は100万円を加算する(国税庁 No.1420) |
| 6 | 課税退職所得金額は1,000円未満を切り捨てる(国税庁 No.2732) |
| 7 | 支給額が退職所得控除以下なら課税退職所得は0円=税金は引かれない |
| 8 | 特定役員退職手当等(役員等・勤続5年以下)は2分の1の適用がない(国税庁 No.1420) |
| 9 | 短期退職手当等(役員等以外・勤続5年以下)は300万円を超える部分に2分の1の適用がない(国税庁 No.1420) |
| 10 | 国税庁 No.2732 の計算例と源泉徴収税額が一致する(申告書あり・800万円/勤続10年2か月=91,890円) |
| 11 | 国税庁 No.2732 の計算例と源泉徴収税額が一致する(申告書あり・2,300万円/勤続29年2か月=380,322円) |
| 12 | 国税庁 No.2732 の計算例と一致する(申告書なし・800万円×20.42%=1,633,600円) |
| 13 | 退職所得の所得税は100円未満を切り捨てない(給与・賞与との違い) |
| 14 | 申告書を出さない場合のほうが源泉徴収される額が多くなる(退職所得控除を差し引かないため) |
| 15 | 京都市の計算例と住民税が一致する(27,485,570円/勤続35年=市民税269,500円・府民税179,600円) |
| 16 | 住民税は市町村民税6%・道府県民税4%で、それぞれ100円未満を切り捨てる(京都市・東京都主税局) |
| 17 | 手取りは支給額から所得税等と住民税を引いた額に一致する(引き算の整合) |
| 18 | 支給額が増えても手取りが減らない(逆転が起きない) |
| 19 | 同じ支給額なら勤続年数が長いほど税金が減る(退職所得控除が増えるため) |
| 20 | 料率マスタが一次出典と確認日を持つ(架空データ禁止の機械確認) |
| 21 | 20.42%は所得税20%と復興特別所得税を合わせた率(率の取り違えを止める) |
使っている料率と出典
計算に使う値と、その出どころです。年度が変わったらこのデータを差し替え、全ページを作り直します。
| 項目 | 値 | 適用 | 出典(確認日) |
|---|---|---|---|
| 健康保険料率(協会けんぽ東京支部・労使折半前) | 9.85% | 令和8年度(健康保険・介護保険料率: 令和8年3月分〜 / 子ども・子育て支援金率: 令和8年4月分〜) | 協会けんぽ 令和8年3月分(4月納付分)からの健康保険・厚生年金保険の保険料額表(東京支部) (2026-07-20) |
| 介護保険料率(40〜64歳・全国一律) | 1.62% | 令和8年度(健康保険・介護保険料率: 令和8年3月分〜 / 子ども・子育て支援金率: 令和8年4月分〜) | 協会けんぽ 令和8年3月分(4月納付分)からの健康保険・厚生年金保険の保険料額表(東京支部) (2026-07-20) |
| 子ども・子育て支援金率(全国一律) | 0.23% | 令和8年4月分(5月納付分)〜 | 協会けんぽ 令和8年3月分(4月納付分)からの健康保険・厚生年金保険の保険料額表(東京支部) (2026-07-20) |
| 厚生年金保険料率(労使折半前) | 18.3% | 平成29年(2017)9月から固定 | 日本年金機構「厚生年金保険の保険料」 (2026-07-20) |
| 雇用保険料率(労働者負担・一般の事業) | 0.5% | 令和8年度(2026-04-01〜2027-03-31) | 厚生労働省「令和8(2026)年度 雇用保険料率のご案内」 (2026-07-20) |
| 復興特別所得税 | 2.1% | 平成25年(2013)分〜令和19年(2037)分 | 国税庁タックスアンサー No.2260 所得税の税率 (2026-07-20) |
| 住民税 所得割(都道府県4%+市区町村6%) | 10% | 標準税率 | 総務省「個人住民税」 (2026-07-20) |
| 住民税 均等割 | 4,000円 | 標準税率 | 総務省「個人住民税」 (2026-07-20) |
| 森林環境税(国税・住民税均等割と併せて徴収) | 1,000円 | 令和6年度から | 総務省「個人住民税」 (2026-07-20) |
| 住民税の非課税限度額(均等割・所得割/扶養なし単身) | 450,000円 | 合計所得金額・東京23区(1級地) | 東京都主税局「個人住民税」6 個人住民税の非課税 (2026-08-05) |
| 給与所得控除の最低保障 | 740,000円 | 令和8年分・令和9年分(令和8年度税制改正・令和8年12月1日施行、令和8年分以後適用) | 国税庁「源泉所得税の改正のあらまし 令和8年4月」(令和8年度税制改正) (2026-07-20) |
| 基礎控除(所得税・合計所得489万円以下) | 1,040,000円 | 令和8年分・令和9年分(令和8年度税制改正後・令和8年12月1日施行) | 国税庁「源泉所得税の改正のあらまし 令和8年4月」(令和8年度税制改正) (2026-07-20) |
| 基礎控除(住民税・合計所得2,400万円以下) | 430,000円 | 令和3年度以降(令和8年度時点で改正なし。令和7・8年度の各税制改正でも住民税の基礎控除は据え置き) | 品川区「特別区民税・都民税の所得控除の種類と控除額」(令和3年度以降) (2026-07-20) |
| 賞与の標準賞与額 上限(健康保険・年度累計) | 5,730,000円 | 令和8年分(2026年) | 日本年金機構 従業員に賞与を支給したときの手続き (2026-07-21) |
| 賞与の標準賞与額 上限(厚生年金・1か月) | 1,500,000円 | 令和8年分(2026年) | 日本年金機構 従業員に賞与を支給したときの手続き (2026-07-21) |
検証していないこと
住民税は自治体によって均等割や独自の税率が異なります。このサイトの住民税は東京都・単身の場合の標準税率での概算で、 全国の自治体の条例までは照合していません。非課税限度額も東京23区(1級地)・扶養なしの 450,000円で判定しています。級地区分が下がる市町村や扶養がいる場合は線が動くため、 住民税がかかり始める額面はこの計算とずれます。
標準報酬月額は、実際には4月から6月に支払われた報酬の平均で決まります(定時決定)。 このサイトは年収を12等分した月収を標準報酬月額とみなすため、実際の等級と離れることがあります。
手取りから額面を逆算する計算には、外部に公表された答えがありません。
そのため順方向の計算との往復が合うかどうかで確かめています(tests/reverse.test.mjs)。
生命保険料控除・住宅ローン控除・医療費控除などは反映していません。年末調整や確定申告で精算される分は、この計算には含まれません。
国民健康保険料は、未就学児の均等割の5割軽減、自治体が条例で置いている独自の控除、 65歳以上の公的年金等所得を軽減の判定で15万円減らす取扱い、年度の途中で加入・脱退した場合の月割りを持っていません。 これらを使う自治体の計算例は、照合6の対象から外しています。 端数処理も、公式資料で確認できた自治体にだけ当てています(照合6の3つめの表)。
誤りを見つけたとき
計算や出典の誤りに気づいた場合は、確認のうえ速やかに直し、更新日を改めます。 編集方針と体制は編集方針・計算根拠と編集体制に書いています。
計算機を使う
計算の前提
- 対象年: 令和8年分(2026年)。令和8年度税制改正後の基礎控除・給与所得控除で年間ベースの手取りを計算しています(月々の源泉徴収は令和8年11月まで改正前の税額表で、年末調整で精算されます)
- 所得税: 課税所得×速算表(国税庁)+復興特別所得税2.1%。課税所得1,000円未満・年税額100円未満は切捨て
- 住民税: 同じ所得が続いた場合の概算。所得割10%+均等割4,000円+森林環境税1,000円−調整控除2,500円(東京都・単身の場合)。住民税は前年の所得に対して翌年度に課税されます
- 住民税の非課税限度額は東京23区(1級地)・扶養なし単身の合計所得金額45万円で判定しています(東京都主税局)。この額以下なら所得割・均等割・森林環境税とも0円です。限度額は市区町村が条例で定め、級地区分と扶養人数で変わるため、23区以外や扶養がある場合はこの計算と線がずれます
- 社会保険: 協会けんぽ(東京支部・令和8年度)の標準報酬月額等級表で計算。健康保険9.85%・介護保険1.62%(40〜64歳)・子ども・子育て支援金0.23%・厚生年金18.3%の労使折半、雇用保険は労働者負担0.5%(一般の事業)
- 賞与なし(年収を12等分した月収で計算)・扶養なし・単身・給与収入のみの前提です。扶養控除・生命保険料控除などの各種控除は反映していません
計算結果は概算です。正確な金額は源泉徴収票・住民税決定通知書、または所轄の税務署・年金事務所・自治体でご確認ください。 当サイトは情報提供と計算の道具の提供を目的とし、個別の税務・保険・投資に関する助言は行いません。
このページの表は 2026年8月30日 のビルド時に生成しました。