はじめに
国の予算事業には「要求して、成立して、使って、評価して、翌年度に反映する」というサイクルがあります。
では、評価で「縮減」「廃止」とされた事業は、翌年の予算で本当に減ったのか。これを事業ごとに1ページで確かめられるサイト zailoop を作りました。
- サイト: zailoop
- コード: kwrkb/zailoop(GitHub、MIT ライセンス)
- 対象: 2025年度シートの 6,227 事業
- 軸: 執行が確定している最新の予算年度(2025年度シートなら FY2024)
記事を読んで疑問を持ってから、データを調べ、作って公開するまでがほぼ2日でした。その流れを書きます。
きっかけ:補正予算の記事を読んで
発端は、日本経済新聞の「経産省肥ゆる補正一体予算 緊要性忘れた『官僚たちの秋』」(2026年9月)を読んだことです。2027年度概算要求を題材に、経産省の予算が補正と一体で膨らんでいる、という論説でした。
当初予算と補正予算が一体で編成されると、「当初予算がいくらか」だけ見ても全体像はつかめません。記事を読んでいて、素朴に思いました。
予算の数字だけ見ても、実態は分からないのでは。決算まで追わないと。
でも決算分析は難しそうです。誰かやれているのか。こういうのはデジタル庁の出番じゃないか、ダッシュボードにできないか。そう考えて、まず「CSVはどこにあるのか」から調べ始めました。
調べてみた:行政事業レビューのCSVでかなり追える
行き着いたのが行政事業レビュー見える化サイト(RSシステム)です。各府省の「行政事業レビューシート」を一元化したデータベースで、内閣官房行政改革推進本部事務局が整備しています。一般向けサイトは2024年8月に公開され、2021年度以降の国の事業を横断検索できます。
調べると、予算・執行、予算種別、目標・実績、点検・評価、支出先といったCSVが公開されていて、共通の予算事業IDでつなげられることが分かりました。
1円単位の完全追跡は無理だった
一方で、財務省の予算・決算データとは共通のキーがありません。RSの事業IDと財務省側の項目を対応づける表(クロスウォーク)を作らない限り、「国家予算を1円単位で自動追跡」はできない、という結論になりました。
ここで方針を決めました。
つながるデータは自動でつなぐ。つながらないものを推測で無理につながない。
zailoop の設計はこの一文に尽きます。
最初の構想は重かった
調査段階の案は、要求→成立→補正→執行→決算→評価→翌年度要求をつなぐ「国家予算ライフサイクル・ダッシュボード」でした。MVPも経産省×2024〜2026年度に絞り、DuckDB / Parquet → PostgreSQL → FastAPI のような構成を想定していました。
作ってみたら:Go + 静的HTMLで足りた
実装は Claude Code に任せました。手を動かしてみると、最初の構想よりずっと単純に済みました。
公開CSV(ZIP) → Go で読み込み・事業IDで再構成 → 静的HTMLを生成 → Cloudflare Workers で公開
- DB不要、API不要、サーバー処理ほぼなし
- 生成物は約6,200ファイル・合計99MB。Workers の静的アセットの上限(無料プランで2万ファイル、1ファイル25MiB)に収まる
- 一覧データは HTML に JSON として埋め込み、ローカルで HTML を直接開いても動く
- JavaScriptなしでも一覧を辿れる(JSなし一覧)
- 本体は Go の CLI。
go installで手元に入れ、fetch→buildで同じサイトを生成できる
最初に描いた構成は、データ量に対して明らかに過剰でした。「静的生成で済むなら、それで済ませる」に落ち着いています。
実装中の判断:ハマりはしなかったが、決めることは多かった
大きくハマった所はありませんでした。代わりに、「どちらでも作れるが、どちらにするか」の判断が続きました。Claude Code には、却下した案とその決め手を LESSONS.md に書き残させています。その中からいくつか紹介します。
事業は ID だけで追う
年度をまたいで同じ事業を追うとき、事業名や「旧事業番号」は使いませんでした。2025年度で旧事業番号が埋まっていたのは7件だけ、事業名は279件が変わっていたからです。予算事業IDは5,231件が年度をまたいで継続していたので、IDだけで結合しています。
執行0円は「欠測」ではない
「執行が確定した最新年度」を事業ごとに「執行額が0でない最大の年度」で決める案もありました。ところが FY2023 に執行0円の事業が483件あり、この方法だと0円という正しい実績を欠測と取り違えます。軸の年度はデータ全体で共通(シート年度−1)にしました。
ループ検証の比較年度を一度まちがえた
唯一の手戻りがここです。最初、前年シートと当年シートの 同じ年度 の当初予算を比べてしまい、結果が全件「同額」になりました。反映状況は「翌年度の概算要求」への反映なので、比べるべきは、2024年度シートの FY2024 当初と、2025年度シートの FY2025 当初です。全件同額という不自然な結果で気づけました。
厚労省の棒が長すぎても、尺度はいじらない
府省庁別の予算を棒で並べると、厚生労働省が単純合計の約76%を占めます。年金特別会計の給付事業が1件で数十兆円あるためです。対数尺度にすれば小さい府省庁も見えますが、見た目の比率が実際と変わってしまいます。線形のまま構成比を数字で添え、「一般会計と特別会計の単純合計で、国の予算総額とは一致しない」と注記しました。
zailoop で見えるもの
大事にしたのは、CSVをそのまま表示するサイトにはしないことです。CSVに散らばった情報を、事業の時間軸に並べ替えています。
1事業=6段階のライフサイクル
- 要求: 概算要求額
- 成立: 当初予算・補正・繰越を合わせた歳出予算現額
- 執行: 執行額と執行率
- 決算: 翌年度繰越と不用相当額
- 評価: 推進チーム所見と成果指標の達成率
- 反映: 所見が翌年度要求にどう反映されたか

ループ検証:「縮減」と言った翌年、本当に減ったか
zailoop で一番見せたいのがここです。
前年度シートで反映状況が「縮減・廃止・終了予定」の事業について、翌年度の当初予算を前年度と比べます。増えていなければ「整合」です。
年度をまたいで続く 5,231 事業のうち、2024年度シートの反映が「縮減・廃止・終了予定」だったのは 505 事業。そのうち FY2025 の当初予算が増えていたのは 47 事業でした。

たとえば法務省の「法教育の推進」は、2024年度シートの反映が「縮減」でしたが、当初予算は FY2024 の 1,117 万円から FY2025 は 1,764 万円に増えています。

増えていた事業も、「矛盾」とは呼ばないことにしました。増額は事業の再編や移管でも起こり、シートの値だけでは理由まで分からないからです。断定の言葉と赤の強調は、サイトを「判定する側」に見せてしまいます。そこで「反映要確認」という名前にし、色も琥珀色に落としました。
zailoop は答えを出すサイトではありません。人が調べる候補を絞り込む道具という位置づけです。
兆候:目安としてのフラグ
執行率が低い、要求と当初予算の差が大きいといった事業には「兆候」を付けています。閾値はビルド時の引数で変えられ、事業の良し悪しを判定するものではありません。
実例:薬局における薬剤交付支援事業
薬剤師として気になった事業を1つ見てみます。コロナ禍で自宅・宿泊療養の患者に薬を配送する際の配送料を支援していた薬局における薬剤交付支援事業です。
FY2023 の数字はこうでした。
- 歳出予算現額 9,129 万円(全額が前年度からの繰越)
- 執行額 2,639 万円(執行率 28.9%)
- 不用相当額 6,490 万円
- 所見・反映ともに「終了予定」、FY2025 要求は 0 円
電話等での服薬指導の実施回数は、目標 146,237 件に対して実績 3,559 件。所管部局の点検では、5類移行や診療報酬上の特例終了で活用機会が減ったと説明されています。
1枚のシートだけ見れば「低執行」です。でも推移で並べると、2021年度の現額約17億円から段階的に縮み、予定どおり終わっていく流れが見えます。
| 予算年度 | 歳出予算現額 | 執行額 |
|---|---|---|
| FY2021 | 17.3 億円 | 8.6 億円 |
| FY2022 | 3.1 億円 | 1.9 億円 |
| FY2023 | 9,129 万円 | 2,639 万円 |
| FY2024 | 0 円 | 0 円 |
「決算まで追わないと分からない」と最初に感じたのは、こういうことでした。
薬局の仕事に持ち帰れること
作ってみて、薬局の仕事に使えるとしたらこれだと思いました。データを「点」ではなく「流れ」で考えることです。
ある月、ある年度の数字だけを見ると、良いか悪いかの判定をしたくなります。でも、その数字がどこから来てどこへ向かうのかを並べると、同じ数字でも意味が変わります。国の予算でも薬局の数字でも、そこは同じだと感じています。
見せ方で気をつけたこと
- 公式の値と独自の値を分ける: シートに不用額の列はないため、「歳出予算現額 − 執行額 − 翌年度繰越」を 不用相当額 と呼び、決算上の不用額とは区別しています
- 用語にシートの列名を添える: 用語ページで、どの列の値か、zailoop が導出した値かを明記しました
- 非公式であることを全ページに書く: 出典と「兆候とループ検証は独自判定」をフッターに入れています
データは公共データ利用規約 第1.0版(PDL1.0)に従って加工・掲載しています。
まとめ
- 補正予算の記事から「決算まで追いたい」と思い、公開CSVだけで作れるか調べた
- 財務省データとの完全な突合は諦め、つながる範囲だけをつないだ
- 重い構成を想定していたが、Go + 静的HTMLで十分だった
- 判定の言葉は弱めにし、「人が調べる候補を絞る道具」に徹した
- データは点ではなく流れで見る。これは薬局の仕事にも持ち帰れる
自分の仕事に関わる府省や事業から覗いてみてください。

コメント