けんざんは「検算」から取った名前である。計算が合っているかを確かめること、そのものを名前にした。
このページには、けんざんが自分の計算を何と突き合わせているかと、そこで実際に見つかった間違いを書いている。
正解データを2つの層に分けている
数値の正解と、使い方の正解は、出どころが違う。
| 層 | 何の正解か | どこから取っているか |
|---|---|---|
| 1層目 | 償却率・改定償却率・保証率・耐用年数 | 法令そのもの。e-Gov法令検索の法令APIから耐用年数省令の別表を取得している |
| 2層目 | 算式・端数処理・備忘価額1円 | 国税庁が公開している計算例 |
1層目は機械で取れる。取得日と施行日は全ページの下部に出している。2層目は数が少ないので手で写している。
この2つが一致することを、公開のたびに機械で確かめている。突き合わせているのは、国税庁の確定申告書等作成コーナーが公開している計算例である。取得価額100万円・耐用年数10年について、定額法と200%定率法の10年分すべての償却額が一致することを見ている。旧定額法・旧定率法の償却率、中古資産の簡便法、端数の切上げも同じ関門を通している。
実際に見つかった間違い
関門を作った理由は、間違いが実際に出たからである。
1. 浮動小数点で償却保証額が1円ずれた
取得価額100万円・保証率0.06552の償却保証額は65,520円である(耐用年数省令第5条第2号ロ・別表第十)。ところが計算結果は65,519円だった。
原因は浮動小数点である。1000000 * 0.06552 の結果は 65519.999999999993 になり、切り捨てで65,519になっていた。これは JavaScript でも同じことが起きる。
いまは金額を BigInt で扱い、率は文字列で持って10万倍の整数に直してから計算している。
2. 端数処理が切捨てだった。関門は通っていた
国税庁の確定申告書等作成コーナーは、減価償却費の計算で小数点以下の端数が生じた場合に切上げ処理を行っている。取得価額3,333,333円の95%相当額は3,166,666.35となり、切上げて3,166,667円になる。
けんざんの実装は切捨てだった。それでも関門は通っていた。突き合わせていた国税庁の計算例(取得価額100万円・耐用年数10年)では、どの年も端数が出ないためである。切上げと切捨ての区別がつかない条件だけで確かめていた。
3. 期中に取得した場合、償却が途中で終わっていた
取得価額300,000円・耐用年数4年・定額法の場合を、画面で試した。事業に使い始めたのが年の途中(6ヶ月)という条件である。すると4年目で計算が終わり、帳簿価額に37,500円が残った。年の中途で取得した場合は1年分の金額を12で除して使用月数を掛けるため(耐用年数省令第4条第3項)、初年度が月割りになるぶん、償却は耐用年数を超えて続く。
これも関門は通っていた。国税庁の計算例には「便宜上、1年間事業に使用していたと仮定して計算しています」と書かれており、月割りが起きない条件でしか突き合わせていなかった。
いまは帳簿価額が備忘価額1円(所得税法施行令第134条)になるまで計算し、償却額の合計が取得価額から1円を引いた額と一致することも関門で見ている。
4. 機械向けの窓口が、外からは1つも見えていなかった
けんざんは AIエージェント向けの窓口(MCPサーバ)も用意している。作った直後、自分で通信を投げて動作を確かめ、動いていると判断した。
だが実際のクライアントからは、5つの機能が1つも見えていなかった。入力の項目名を日本語で書いていたためである。受け取る側の仕様は、項目名を半角英数字に限っていた。サーバ自体は正しく動くので、サーバ側の確認では気づけなかった。
5. 条文が言っていないものに条番号を付けていた
これが4回起きた。 どれも、選択肢を2つ受け取って、一方がもう一方を縛っていることを見ていなかった。
| 道具 | 何が起きたか | 条文はどう書いていたか |
|---|---|---|
| 住宅ローン控除 | 増改築等に認定住宅等の借入限度額が当たっていた | 第6項が「認定住宅等の新築取得等」と呼ぶのは新築等・買取再販・既存の3つで、増改築等は入っていない(租税特別措置法第41条第6項) |
| 相続税の基礎控除と総額 | 相続人0人で税額が0円になった | 「当該相続人が、一人である場合又はない場合には、当該控除した残額」(相続税法第16条) |
| 登録免許税 | 所有権の保存に土地の売買の軽減が当たっていた | 租税特別措置法第72条第1項第1号は「売買による所有権の移転の登記」と書いている |
| 固定資産税 | 家屋に住宅用地の6分の1が当たっていた | 「敷地の用に供されている土地」である(地方税法第349条の3の2第1項) |
検算は「正しい組み合わせ」だけを並べており、間違った組み合わせを1つも試していなかった。
いまは、選択肢が2つ以上ある道具は全通りを総なめして、条番号が当たらない組み合わせに付いていないことを見る。登録免許税なら32行 × 5つの軽減で160通り、固定資産税なら3種類 × 3区分で9通りである。
6. 条文を途中まで読んで判断していた
住民税の確定金額を、道府県分と市町村分を合わせて100円未満切り捨てにしていた。根拠にしたのは地方税法第20条の4の2第8項の「一の地方税とみなす」である。
しかし第8項は、第3項については「地方税の確定金額の全額が百円未満であるときにおいて、その全額を切り捨てる部分に限る」というかっこ書きを付けていた(地方税法第20条の4の2第8項)。ふつうの100円未満の切捨ては入らない。
課税標準1,001,000円で答えが100円ずれていた(地方税法第20条の4の2第3項)。検算も、課税標準を2,500の倍数でしか試しておらず、差が出る値を通っていなかった。
7. 検査そのものが誤っていて、正しいデータに反応していた
労災の障害補償給付で「第7級より第8級の日数が多い」という検査を書いた。しかし第7級は131日で年金、第8級は503日で一時金であり、多いのが正しい(労働者災害補償保険法別表第一・別表第二)。
しかもこの誤った検査が落ちたのを、わざと壊したときの検知と読み違えた。 壊していないときにも落ちていたのに、そのことを確かめていなかった。
いまは、壊して落ちたことを確かめたら、戻して通ることも必ず確かめる。 片方だけでは、検査の誤りと検知を区別できない。
8. 取り出しの正規表現が黙って取りこぼしていた
失業給付の所定給付日数で、日数を読む正規表現の先頭が「百」を含んでいなかった。「百二十日」を「二十日」と読み、120が20に、150が50になっていた(雇用保険法第22条第1項)。
段の繋がりの検査は通っていた。 20も50も昇順だったためである。気づいたのは、取り出した値を目で見たからである。
同じ取り出しで、本則の第22条ではなく附則の第22条を拾っていた。雇用保険法には本則にも附則にも第22条がある。いまは既定で附則の中を見ない。
道具ごとに、突き合わせる相手が違う
確かめ方に3つの強さがある。混ぜて書かない。
| 強さ | 相手 | 何が確かめられるか | 何は確かめられないか |
|---|---|---|---|
| 強 | 国税庁の公表表 | 条文の読み方まで。別の人が別の経路で作った表と一致するため | 国税庁の表そのものの誤り |
| 中 | 条文の表そのもの(1マスずつ) | 書き写しの誤りは1つ残らず。条文の表を機械で読み、書き写した値と全数照合するため | 条文の読み方。どの表を使うかを取り違えていれば通る |
| 弱 | 条文に数が実在するか | 書き写しの誤りの多く | 条文の読み違い。数は合っていても使い方を取り違えていれば通る |
| 道具 | 強さ | 中身 |
|---|---|---|
| 減価償却の計算 | 強 | 国税庁の計算例(取得価額100万円・耐用年数10年)の10年ぶんすべてと照合 |
| 中古資産の耐用年数 | 強(一部) | 簡便法は国税庁の計算例と照合。2年から100年の全5,049通りで、整数だけの計算が小数の計算とずれないことも見た |
| 耐用年数を資産名から | 中 | 耐用年数省令の別表を機械で取り出し、資産名の対応表を抜き取りで照合 |
| 償却率表 | 中 | 耐用年数省令の別表第七から第十までを機械で取り出している |
| 減価償却が必要か | 弱 | 10万円・20万円・30万円・40万円の境目と、時点による切り替え |
| 所得税の税率 | 強 | 速算表と千円きざみで45,000点 |
| 配偶者特別控除 | 強 | 公表表と千円きざみで2,250点 |
| 生命保険料控除 | 強 | 速算表と1円きざみで30万点 |
| 特定親族特別控除 | 強 | 国税庁 No.1177 の表と千円きざみで650点 |
| 退職所得 | 強(一部) | 国税庁の計算例2件。控除額は別表第六39年ぶんとも一致。短期・特定役員の区分は条文のみ |
| 交際費等の損金不算入 | 弱 | 2つの資本金の線、月割り、第1項と第2項のどちらの額が小さいかの判定を241点で照合 |
| 欠損金の繰越控除 | 弱 | 50%と100%、限度の頭打ち、繰り越す額を808点で照合 |
| 未成年者控除・障害者控除 | 弱 | 3区分 × 年齢0〜100歳 × 税額3通りの909点で、引ける額が税額も控除額も超えないことを照合 |
| 所得税の予定納税 | 弱 | 15万円の境目と3分の1の切り捨てを20,001点で照合。合計+残り=基準額も見た |
| 消費税の納税義務の免除 | 弱 | 864点。基準期間 × 特定期間 × 給与 × 適格請求書 × 判定の見方で照合。1段目が「以下」・2段目が「超える」で、ちょうど1,000万円の扱いが逆になることも見た |
| 相続税額の2割加算 | 弱 | 1,010点。続柄5通り × 代襲の有無 × 税額で照合。孫養子が代襲なら加算されず、兄弟姉妹は代襲でも加算されることも見た |
| セルフメディケーション税制 | 弱 | 2,001点。購入費100円きざみで照合。足切り1万2,000円と上限8万8,000円の両方の境目で額が正しく折れることも見た |
| 外国税額控除の限度額 | 弱 | 625点。所得税額 × 所得総額 × 国外所得 × 外国所得税で照合。調整国外所得金額が所得総額を超えないことと、所得総額0円で割り算が落ちないことも見た |
| 障害基礎年金 | 弱 | 294点。改定率 × 等級 × 子0〜6人で照合。1級が2級の100分の125になることと、丸めが満額と加算のそれぞれで行われることも見た |
| 遺族基礎年金 | 弱 | 294点。障害基礎年金と同じ総なめの中で、額が障害基礎年金の2級と一致することを照合。子の加算の2段も見た |
| 在職老齢年金 | 弱 | 961点。年金額 × 総報酬月額相当額で照合。止まるのが超えた額の2分の1であることと、停止額が年金額以上なら全部止まることも見た |
| 不動産取得税 | 弱 | 4,002点。新築の有無 × 価格1万円きざみで照合。控除が価格を超えないことと、端数処理が2段(課税標準1,000円・税額100円)であることを端数のある価格で見た |
| 事業所税 | 弱 | 147点。床面積 × 従業者数 × 給与の組み合わせで、2つの免税点が別々に効くことを照合。「以下」なのでちょうど1,000平方メートル・ちょうど100人では課さないことも見た |
| 退職所得に係る住民税 | 弱 | 2,001点。退職所得1万円きざみで照合。道府県民税4%と市町村民税6%が別々に切り捨てられ、合計が10%に収まることも見た |
| 山林所得と5分5乗 | 弱 | 2,001点。特別控除が残額を超えないことと、5分5乗の税額が通常の税額以下になることを、収入1万円きざみで照合 |
| 平均課税 | 弱 | 1,680点。適用の線(20%)の内と外、課税総所得金額が平均課税対象金額を超える場合と以下の場合の両方を照合。平均課税の税額が通常の税額を超えないことも見た |
| 純損失の繰越控除 | 弱 | 625点。3年ぶんの損失 × 所得の組み合わせで、控除額と引ききれない額の合計が損失の合計と一致することを照合 |
| 特定支出控除 | 弱 | 501点。2分の1の線のちょうど・直前・直後を含む1万円きざみで照合。額はどちらでも0円なので、ちょうど2分の1では「超えていない」と判定することも直接見た |
| 法定相続分 | 弱 | 2,591点。順位(子・直系尊属・兄弟姉妹)× 配偶者の有無 × 人数0〜5人の全組み合わせで、取り分の合計が遺産の額と一致することを照合。半血の兄弟姉妹が全血の2分の1になることも見た |
| 遺留分 | 弱 | 32点。直系尊属のみが3分の1、それ以外が2分の1になることと、配偶者も子も直系尊属もいなければ0円になること(兄弟姉妹に遺留分は無い)を照合。算定の財産が負のときに0で止まることも見た |
| 配偶者の相続税額の軽減 | 弱 | イとロの選び方、1億6千万円の下限、按分を201点で照合。1億6千万円までは必ず全額軽減になることも見た |
| 児童手当 | 弱 | 第6条第1項の表の場合分けを、算定対象者0〜3人 × 児童0〜8人の324点で照合。内訳の合計が額と一致することも見た |
| 失業給付の所定給付日数 | 中 | 雇用保険法第22条・第23条の号から23区分を機械で取り出し、段の繋がりと日数の並びを全数照合 |
| 国民年金の保険料と老齢基礎年金 | 中 | 国民年金法第87条第3項の表14段と、同法第27条の号8つを機械で取り出し、免除の限度と割合を全数照合 |
| 介護休業給付金・出生時育児休業給付金 | 弱 | 本則と附則の率、28日の上限、80%の調整を960点で照合 |
| 育児休業給付金 | 弱 | 67%と50%、80%の調整の3つの分かれ目、境目の1円。相手は条文のみ |
| 労災の障害補償給付 | 中 | 別表第一・第二から14等級を機械で取り出し、等級が1〜14で揃うことと日数の並びを照合 |
| 労災の休業補償給付 | 弱 | 60%と20%、部分算定日、待期。給付と特別支給金の比が3対1から離れないことを10,001点で見た |
| 出産育児一時金 | 弱 | 3万円の上限と人数分を572点で照合 |
| 高年齢雇用継続基本給付金 | 弱 | 75%の線と64%の段の分かれ目を301点で照合 |
| 傷病手当金・出産手当金 | 強 | 2段階の端数処理を、それぞれ1,333点で丸め関数と突き合わせた |
| 高額療養費 | 中 | 施行令第42条第1項の5号を機械で取り出し、定額・しきい・多数回の3つを全数照合。1%の四捨五入は286,001点で丸め関数と照合 |
| 社会保険料 | 中 | 等級表82段(厚年32・健保50)を法律の表から機械で取り出し、繋がりと範囲を全数照合。第32級は政令の読み替えから当てている |
| 年次有給休暇 | 中 | 労働基準法施行規則の表28マスと、労働基準法の表6段を全数照合 |
| 給与所得控除 | 中 | 別表第五の連続性(1,179行)と、式で書かれた3行 |
| 給与の源泉徴収税額 | 中 | 別表第二2,079マスを機械で取り出し、全マスを引き当てて照合 |
| 賞与の源泉徴収税額 | 中 | 別表第四168マスを機械で取り出し、全マスを引き当てて照合 |
| 日額表の源泉徴収税額 | 中 | 別表第三2,050マスを機械で取り出し、全マスを引き当てて照合 |
| 退職金の源泉徴収税額 | 中 | 別表第六39年ぶんを、所得税法第30条第3項の算式と全数照合 |
| 基礎控除 | 中 | 4段の額と境目。どの上限にどの額が付くかを、条文の号ごとに照合(第1号〜第4号の8個) |
| 配偶者控除 | 中 | 3段の額と境目。一般と老人の額を、条文の号ごとに照合(第1号〜第3号の9個) |
| 扶養控除 | 中(一部) | 特定扶養親族63万円・老人扶養親族48万円は、条文でその名前の直後に書いてある額と照合。一般の38万円は条文に名前が出てこないので照合していない |
| 障害者控除 | 中(一部) | 障害者27万円・特別障害者40万円は、条文でその名前の直後に書いてある額と照合。同居特別障害者75万円は条文がその名前を使っていないので照合していない |
| 寡婦・ひとり親・勤労学生 | 弱 | 3つの額と、要件の境目 |
| 公的年金等控除 | 弱 | イ・ロ・最低保障の額と、段の境目 |
| 医療費控除 | 弱 | 5%・10万円・200万円 |
| 地震保険料控除 | 弱 | 5万円 |
| 寄附金控除 | 弱 | 40%・2,000円 |
| 雑損控除 | 弱 | 10分の1・5万円 |
| 一時所得 | 弱 | 50万円・2分の1 |
| 譲渡所得 | 弱 | 50万円・5年・2分の1 |
| 平均賃金ほか | 弱 | 3か月・60%・30日 |
| 割増賃金 | 弱 | 法の率と政令の率、60時間の境目 |
| 加算税 | 弱 | 4種類の率、いつ申告したかの3つの分かれ目、300万円超の区分、端数 |
| 登録免許税 | 中 | 別表第一第一号から32行を機械で取り出し、拾い残しがないことを税率の欄の数で照合 |
| 自動車重量税 | 弱 | 4つの区分 × 3車種 × 2期間の率、0.5トンの切り上げ、区分どうしの高さの順。相手は条文のみ |
| 固定資産税・都市計画税 | 弱 | 1.4%・0.3%、住宅用地の4つの分数、3つの免税点、2か所の端数。相手は条文のみ |
| 住民税の所得割と均等割 | 弱 | 4%・6%・2%・8%、均等割、調整控除の2つの場合、2か所の端数。相手は条文のみ |
| 消費税の中間申告 | 中 | 消費税法第42条にある3つのただし書からしきいを機械で取り出し、区分の境目を2,001点で照合 |
| 消費税の簡易課税 | 強 | 6つのみなし仕入率を国税庁 No.6505 の一覧と照合。合わせ技の率も508点で別の算式と照合 |
| 消費税の税率 | 弱 | 7.8%・6.24%・78分の22。漢数字にならない率は文字列のまま照合 |
| 配当控除 | 弱 | 3つの号の分かれ目と、1,000万円の境目 |
| 青色申告特別控除 | 弱 | 10万・55万・65万と、所得での頭打ち |
| 報酬・料金の源泉徴収税額 | 強 | 国税庁が示す10.21%・20.42%と1円きざみで401万点 |
| 相続税の基礎控除と総額 | 強 | 速算表と1万円きざみで70,001点 |
| 贈与税 | 強 | 一般・特例の速算表と各6,000点 |
| 印紙税 | 強 | 別表第一と措置法第91条を機械で取り出し、国税庁の一覧表と段の境目で照合 |
| 住宅ローン控除 | 弱 | 居住年×住宅の種類×取得の区分×特定取得の448通りを総なめ。相手は条文のみ |
| 法人税の税率 | 弱 | 23.2%・19%・15%・17%と、800万円・10億円の境目、月割り |
| 全額が控除されるもの | — | 計算が無い。条文の号をそのまま並べている |
弱が47本ある。この47本は、条文の読み違いを機械で捕まえられない。 国税庁が同じ計算の表や計算例を公表していないためである。これは「確かめていない」ではなく「確かめ方が弱い」という意味である。
公的年金等控除については、突き合わせを試みて取れなかった。 国税庁 タックスアンサー No.1600 公的年金等の課税関係に速算表はあるが、画像で提供されており機械では読めなかった(2026-08-31 実測)。
給与所得控除を「中」に置いている理由を書いておく。 抜き取り6点の期待値は、けんざんが所得税法から取り出した別表第五そのものから取っている。自分が取り出したものを、自分で照合している。 別表の連続性は確かめているので写し落としは捕まるが、国税庁の「年末調整等のための給与所得後の給与等の金額の表」とは突き合わせていない。
漢数字にならない率は、文字列のまま照合する
「百分の二・五」「百分の七・八」「百分の六・二四」は、漢数字として読むと2と5、7と8、6と2と4に割れてしまう。数として照合できない。
そこで、これらは条文にその言い方がそのまま出てくるかを見ている。配当控除の2.5%(所得税法第92条第1項第2号ロ)と、消費税の税率の7.8%・6.24%(消費税法第29条)・78分の22(地方税法第72条の83)がこれにあたる。
大きい表は、書き写さずに機械で取り出す
給与の源泉徴収税額が使う所得税法別表第二は、231行あり、それぞれに甲欄8つと乙欄がある。あわせて2,079マスある。人が書き写せる大きさではない。
書き写さないので、写し間違いは起きない。かわりに取り出し方が正しいかを見る。
印紙税も同じ形にした。印紙税法別表第一の税率欄と租税特別措置法第91条の号から、段の並びを機械で読んでいる。拾い残しがないことを、条文に出てくる「〜のもの」の数と号の数で確かめている。
書き写さずに取り出しているものは、ほかにもある。
| 何を | どこから | 大きさ |
|---|---|---|
| 社会保険料の標準報酬月額の等級表 | 厚生年金保険法第20条第1項・健康保険法第40条第1項 | 82段 |
| 登録免許税の税率 | 登録免許税法別表第一第1号 | 32行(別表全体は1,414行) |
| 失業給付の所定給付日数 | 雇用保険法第22条・第23条 | 23区分 |
| 高額療養費の算定基準額 | 健康保険法施行令第42条第1項 | 5号 |
| 労災の障害補償給付の日数 | 労働者災害補償保険法別表第一・第二 | 14等級 |
| 国民年金の保険料と免除の割合 | 国民年金法第87条第3項・第27条 | 14段・8号 |
| 消費税の中間申告のしきい | 消費税法第42条にある3つのただし書 | 3区分 |
厚生年金の第32級は、法律の表に無い。 政令が第20条第1項の表を読み替えて足したものである。その読み替えを政令の本文から読んで当てている(厚生年金保険法の標準報酬月額の等級区分の改定等に関する政令第1条)。
| 見ること | 中身(すべて所得税法別表第二について) |
|---|---|
| すき間 | 表の「以上」と「未満」が全行で繋がっているか |
| 単調性 | 給与が増えて税額が下がる行、扶養が増えて税額が増える行が無いか |
| 段の独立 | 式の基準額が、前の段から率で導けてしまう段が無いか。導けるなら段が余分か、取り違えている |
| 乙欄の範囲 | 乙欄の式の範囲は表のセルの結合でしか読めない。計算で裏を取る。740,000円の253,900円に40%を掛けると1,710,000円の641,900円になる |
| つなぎ目 | 表の終わり(740,000円)と式の始まりが同じ額か |
| 引き当て | 取り出した2,079マスを、1マスずつ引き当てて表と照合する |
日額表が使う別表第三も同じで、205行 × 甲8欄・乙・丙 = 2,050マスある。丙欄が乙欄より大きい行が無いことも見ている。欄を1つ取り違えると、そこが逆転するためである。
退職金の源泉徴収税額が使う別表第六は、勤続年数ごとの退職所得控除額の表である。この39年ぶんが、退職所得で使っている所得税法第30条第3項の算式と全数で一致することを確かめている。 同じ額を条文が2つの形で書いており、片方でもう片方を検算できる。
賞与の源泉徴収税額が使う別表第四も同じである。甲欄21段 × 扶養親族等8欄 = 168マスを機械で取り出し、範囲にすき間が無いこと・率が段ごとに上がっていること・扶養親族等が増えて率が上がる点が無いことを見ている。
別表第二が所得税だけであることを、機械で確かめている
別表第二の3,500,000円の額(1,102,130円)を12倍すると13,225,560円になる。同じ給与から所得税法第89条で計算した年税額は13,226,500円で、0.01%しか違わない。復興特別所得税を足した13,504,256円からは2%以上離れている。
したがって別表第二は所得税だけであり、復興特別所得税を含まない。 この判定を検算に入れている。
表の段が抜けていないかを、条文の構造から数える
段のある表は、額が合っていても段が1つ抜けていることがある。抜けた段は、残った段からは見えない。実際に給与所得控除の別表第五で行を落とし、検算は通っていた。
そこで、書き写した段の数を、条文の構造から数えた数と突き合わせている。所得税法なら号(Item)や表の行(TableRow)の個数がそのまま段数になる。
| 道具 | 書き写した段 | 条文から数えた数 |
|---|---|---|
| 所得税の税率 | 7段 | 表の行 7個 |
| 基礎控除 | 5段 | 号 4個 + 対象外の1段 |
| 配偶者控除 | 4段 | 号 3個 + 対象外の1段 |
| 生命保険料控除(第1項第1号・新) | 4段 | イロハニ(Subitem1)4個 |
| 生命保険料控除(第1項第2号・旧) | 4段 | イロハニ 4個 |
| 生命保険料控除(第2項・介護医療) | 4段 | 号 4個 |
| 生命保険料控除(第3項第1号・新) | 4段 | イロハニ 4個 |
| 生命保険料控除(第3項第2号・旧) | 4段 | イロハニ 4個 |
| 年次有給休暇(労働基準法第39条第2項の表) | 6段 | 表の行のうち日数の行 6個。中身6個も全数照合 |
| 年次有給休暇(労働基準法施行規則第24条の3第3項の表) | 4段 × 7期間 | 表の行 4個と見出しの7列。28マスすべて全数照合 |
過去の時点の規則も、その時点の条文で検算する
いつの条文で計算するかのとおり、いくつかの道具は過去の時点でも計算できる。
機械で取り出している表は、過去の時点にも同じ検算がそのまま走る。 すき間・単調性・段の繋がり・全マスの引き当てを、時点ごとに確かめている。
人が条文から書き写している規則は、時点ごとに書き直しが要る。 基礎控除の段と、給与所得控除の算式がそれにあたる。書き直した数が、その時点の条文にあることを機械で確かめている。 現行の条文と突き合わせても意味がないので、時点ごとに別の条文と突き合わせる。
条文そのものが無い時点は、「無い」と確かめる。 特定親族特別控除は2024年時点に所得税法第84条の2が存在しない。「無い」と書いたのに条文があれば、取り出しが落ちる。
同じ算式を2か所が持たない
給与所得控除は、所得税法第28条第3項の算式をページのJavaScriptに直接書いていた。データにも同じ算式があり、同じことを2か所が知っている状態だった。今日は一致していたが、突き合わせる者がいなかった。
いまはデータから引いている。書き写す場所を1つにした。
書いた条番号が実在するかを毎回見る
条番号を出すことがこのサイトの核である。存在しない条を指していたら核が嘘になる。
それでも一度、記憶から書いた条番号を5つ、確かめずに公開しかけた。人が確かめるかどうかに任せず、機械が毎回見る形にした。tools/jobun-check.py が、本文とデータに書かれた条番号をすべて拾い、e-Gov法令APIから取った法令の本体に実在するかを突き合わせている。照合する相手は39本の法令である。条だけでなく、項と号まで見る。 所得税法第86条第1項に第7号は無い、第86条に第5項は無い、といった書き間違いで落ちる。
附則も引けるが、本則より弱い。 附則は改正のたびに増え、同じ条番号が何本もある。どれか1本にあることまでしか確かめられない(項・号は見ない)。それでも、附則の条番号を本則の同じ番号として通していた状態よりは良い。「当分の間」の読み替えを条番号つきで書けるようになったのはこの直しのおかげで、介護休業給付金の67%(雇用保険法附則第12条。本則の40%は同法第61条の4第4項)がその最初の例である。
見ていないものもある。「同項第2号」「同条第3項」のような、直前を指す書き方は照合していない。イ・ロ・ハの枝も見ていない。
確かめられない法令を指していたら落とす。旧長期損害保険料の経過措置がその例で、平成18年の改正法の附則にあると分かっているが、e-Gov法令APIから取れなかったため地震保険料控除のページには条番号を書いていない。
ここから引き出した規律
上の4件のうち、2件と3件は関門を通ったまま間違っていた。4件目は自分の確認を通ったまま間違っていた。
このことから2つを決めている。
第一に、正解データが「どの条件を含んでいないか」を関門のコードに書く。国税庁の計算例は1年間使用の仮定で作られており、月割りも端数も起きない。正解データに無い条件は、自分で期待値を立てて確かめる。償却額の合計が取得価額から1円を引いた額になる、といった条件が使える。
第二に、画面で手で触る。最小・最大・端数・期中といった端の条件を、必ず1つは試す。
関門を通ることは、正しさの証明ではない。突き合わせた行が一致したという事実にすぎない。
制度が変わったときにどうするか
法令が改正されたら、法令APIからデータを取り直し、関門を通してから公開する。
実例がある。少額減価償却資産の特例の金額は、2026年4月1日から30万円未満が40万円未満になった(租税特別措置法第28条の2)。適用期限も令和8年3月31日から令和11年3月31日に延びている。この改正は、法令APIで時点を指定して条文を取り、2025年時点の条文と突き合わせて確かめた。
けんざんは取得した時点の条文で計算する。2025年に取得した資産には30万円未満、2026年4月1日以後に取得した資産には40万円未満が当たる(租税特別措置法第28条の2)。
確かめていないこと
このページに書いていないことも記しておく。
けんざんは税理士による監修を受けていない。扱うのは制度の説明と計算だけである。どちらを選ぶか、いつ買うかといった判断は書いていない。適用の可否は税務署または税理士に確認してほしい。
関門で確かめているのは、国税庁が計算例を公開している範囲である。特別償却・割増償却、資本的支出を行った場合、除却や売却をした場合の計算は、突き合わせる相手がまだない。これらはこのサイトで扱っていない。
資産の名前と別表の行の対応は、けんざんが判断したものである。法令が保証しているのは別表の行と耐用年数だけで、「エアコン」がその行に当たるという結び付きは、けんざんが結んだものである。