制度の計算をコードにする — 根拠つきの純粋関数と、行政の計算例による検証
失業保険の日額・給付日数・入金予定を条文つきの純粋関数で実装し、公表された計算例30件と突き合わせる。たいしょくんの設計記録
無料で公開しています(ブラウザで動作・登録不要)。サイト内に広告(アフィリエイト)を掲載しています。
なぜポートフォリオにあるか
制度の計算を扱うシステムで事故が起きるのは、計算式を間違えたときより、去年の数字のまま動き続けたときです。たいしょくんは、毎年変わる数字をロジックから切り離し、すべての計算を行政が公表した計算例に照らして検証する形で作りました。
なぜ作ったか
退職を考えている人が知りたいのは、制度の仕組みより「いつ・いくら入るか」です。基本手当の計算式は公開されていますが、待期の7日間と給付制限を挟んで、何月の何日ごろにいくら振り込まれるかは、自分で組み立てるしかありません。
技術的には、法令に従う計算を、根拠を追える形でコードにする題材として選びました。給与・保険料・補助金・税の計算は受託でもよく出てきますが、どれも「正しさを誰がどう確認するか」が曖昧なまま作られがちです。
いちばん難しかったこと
3つあります。
- 数字が毎年変わる。 賃金日額と基本手当日額の上限・下限は、毎年8月1日に改定されます。コードに直書きした瞬間から、1年後に静かに間違い始めます。
- 例外が日付で効く。 給付制限は2025年4月1日の改正で「原則2か月」から「原則1か月」に短くなりました。有期契約の更新がなかった人への給付日数の優遇は、離職日が2027年3月31日以前の場合に限る時限措置です。どちらも「今日」ではなく離職日で判定しなければいけません。
- 間違いに気づく手段がない。 計算が1円ずれても、画面はそれらしい数字を出し続けます。
どう決めたか(と、捨てたもの)
制度の数字をロジックから切り離し、日付つきのデータにしました。テーブルは適用開始日・次回改定予定日・出典URL・一次資料にアクセスした日を持ちます。改定のときに触るのはこのファイルとテストの期待値だけで、計算のコードには手を入れません。
計算は副作用のない純粋関数に閉じ、関数ごとに根拠の条文や公的資料を注記しています。日付で効く改正は、離職日を引数に取って分岐します。
正しさの確認には、行政が公表している計算例をそのままテストの期待値にしました。しかも公開している検証ページとテストが同じ配列を読むので、テストを通っていない検証結果をページに書くことが構造的にできません。
捨てたものは、個別事情の網羅です。受給資格や金額を最終的に決めるのはハローワークで、画面でもそう案内しています。
実際に動いているもの
計算はすべてブラウザの中で行います。サーバーに送信するのは問い合わせフォームだけで、入力した給与や年齢の生の値は URL から取り除き、分析ツールには年齢帯や10万円刻みの賃金帯といった区分だけを渡します(プライバシーポリシーで開示しています)。
サイトは問い合わせ API を除いて全ページが静的生成です。CSP で eval を禁じているため、入力検証の Zod は eval を使わないモードで動かしています。
収益は転職・退職関連サービスの広告(アフィリエイト)です。広告枠の配分は、枠ごとの実績を経験ベイズ(ベータ二項分布の縮小推定)でならし、乱数の種を固定したトンプソン抽出で決めています。出力が決定的な表になるので、同じデータからは同じ配分が出ます。
コードから数えられる値
2026-08-17 から 09-21 までの84コミット。行政が公表した計算例との突合が30件、テストが93ファイル、Playwright の E2E が8本。
早見表は「離職理由 × 年齢 × 勤続年数」の組み合わせから33ページを生成しています。サイトマップ上のページは89で、うち解説記事が44本です。
制度テーブルの適用開始日は2026年8月1日、次回の改定予定は2027年8月1日としてデータに持っています。
これは、あなたの案件の何を証明するか
料金の計算、保険料や給付の判定、補助金の要件チェック、給与計算。制度や規程をコードにする案件では、「正しいことを誰がどう確かめるか」を設計に組み込めるかで、運用が始まってからの手戻りが決まります。
たいしょくんは、改定される数字をデータに分離し、公的な計算例をテストの期待値にし、その検証結果を公開ページと同じデータから出す、という形でそれを実装した実例です。個人の入力を生のまま外に出さない作りも、そのまま持ち込めます。
計算を純粋関数に閉じ、公的な計算例をテストにする具体的なコードは、法令の計算を TypeScript で実装する解説記事にまとめました。
同じ設計は、業務システム・計算ツールの開発としてお請けしています。
コードから数えられる値
- 公的な計算例との突合
- 30件公開の検証ページとテストが同じ配列を読む。テストを通らない検証結果はページに書けない
- テスト
- 93ファイルほかに Playwright の E2E が8本
- 早見表
- 33ページ離職理由 × 年齢 × 勤続年数の組み合わせから生成
よくある質問
- たいしょくんの計算結果は正確ですか?
- 行政が公表している計算例30件と一致することを、テストで毎回確認しています。検証結果は公開ページでも確認できます。ただし受給資格や実際の金額を決めるのはハローワークなので、最終的な判断はハローワークで確認してください。
- 入力した給与や年齢はどこかに送信されますか?
- 生の値は送信されません。計算はすべてブラウザの中で行い、入力値は URL から取り除きます。分析ツールに記録するのは年齢帯や10万円刻みの賃金帯などの区分だけで、その旨はプライバシーポリシーに書いてあります。
- 毎年の制度改定にはどう追従していますか?
- 基本手当日額の上限・下限は毎年8月1日に改定されるため、ロジックから切り離した日付つきのテーブルとして持っています。改定時に更新するのはテーブルとテストの期待値だけです。次回の改定予定は2027年8月1日です。
- 給付制限の改正(2025年4月)は反映されていますか?
- 反映しています。2025年4月1日の改正で、自己都合退職の給付制限は原則2か月から原則1か月になりました。どちらを適用するかは、計算した日ではなく離職日で判定しています。
- 無料で使えますか?収益はどこから得ていますか?
- 無料で、登録も不要です。サイト内に転職・退職関連サービスの広告(アフィリエイト)を掲載しており、それが収益源です。広告であることはサイト上で明示しています。
たいしょくんを使ってみる
無料で公開しています(ブラウザで動作・登録不要)。サイト内に広告(アフィリエイト)を掲載しています。
同様の課題、抱えていませんか?
あなたのビジネス課題も、最新の技術で解決できます。 まずは30分の無料技術相談から、状況をお聞かせください。
自社の課題もSaaS化できるか相談するプロジェクト単位(請負)・技術顧問、どちらにも対応可能です