小さな自治体が続けられるGovTechスタック — 交付金KPIをコードで自動検証する実践ガイド

どうも〜おかむーです!今日はちょっとエンジニア寄りの現場ネタを持ってきたよ〜
- 小規模自治体でも低コストで公開データの検証パイプラインを回せる
- 交付金(デジタル田園都市国家構想など)のKPIは公開形式がバラバラで手作業が発生してる
- Gitとサーバーレスで「公開→検証→アラート」の流れを自動化しよう!
結論
地方自治体はフルスタックの大改修を待つ必要なし。静的なデータカタログ(CSV/CSVW)をGitで管理し、サーバーレス関数+CIでKPIと実績の差を自動検出するだけで、運用コストを抑えつつ政策モニタリングの信頼性が格段に上がる。要するに“手作業の死角”をコードで埋めるということです。
レポート本文
背景と問題認識
これ見てくださいよ。デジタル田園都市国家構想交付金の評価ガイドライン(https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf)や、県の実績PDF(例:https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf)を開くと、KPI・達成状況・金額が書いてあるんだけど、PDFやHTML添付で出しているケースが多いんですよね。要するに人が読むにはいいけど、機械で検証するには不親切ということです。
技術的に問題になる点
- フォーマット散逸:PDF/画像/テーブルの位置依存でパースが不安定
- メタデータ不在:列説明や単位が書かれておらず自動解釈が難しい
- 更新履歴の欠如:いつ誰が変えたかを辿れない(現場で差分チェックが困難)
目標(小さく始めるグッドプラクティス)
エンジニア的に言うと、これAPI一本で解決する話なんですよね。APIが重く感じるなら、まずは静的CSV + CDNでOK。実績を毎週落として検証するだけで行政の説明責任がぐっと強くなります。
実務で使えるコード例(CSVの自動検証)
まずはCSVを叩いて簡単にKPIギャップを出すPythonスクリプト(pandasベース):
import pandas as pd
url = 'https://www.env.go.jp/content/900398071.csv' # 例: 環境省のCSV
df = pd.read_csv(url, encoding='utf-8')
仮に列が 'project','kpi_target','kpi_actual' とする
df['gap_pct'] = (df['kpi_actual'] - df['kpi_target']) / df['kpi_target'] * 100
alerts = df.loc[df['gap_pct'] < -10] # 目標未達が10%超ならアラート
print(alerts)
要するに、まずは"目標と実績の差を自動で掬い上げる"ことが大事。CSVの列名が固定でない場合はCSVWで列名マッピングを定義しておくと便利です(要するにメタデータを付けるってこと)。
配置例:最小構成のGovTechスタック
- データカタログ:GitHubリポジトリ(/data/.csv + /data/csvw/.json)
- 配信:GitHub Pages / S3 + CloudFront
- 検証:GitHub Actionsで毎日/PR時に検証ワークフローを実行
- 通知:検証失敗でSlack/メールへ告知
簡単なCI(GitHub Actions)例:
name: validate-kpi
on:
schedule:
- cron: '0 3 *'
push: {}
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with: python-version: '3.10'
- run: pip install pandas
- run: python scripts/validate_kpi.py
政策の数値目標と実績のギャップをどう伝えるか
データを出すだけじゃダメで、誰が見ても分かる"差分説明"が必要。自動検証で得たギャップは次の形で公開するといい:
- 数値差(目標-実績)
- 割合差(%)
- 発生原因のタグ(データ欠損、評価基準変更、外的要因)
例: 山口県の実績PDF(https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf)はKPIを示しているが、表がPDFであるためタイムリーな差分チェックが難しい。CSV化してGit管理すれば年度ごとの差分を自動的に可視化できるんです。
運用負荷を下げる工夫
- テンプレートCSV+CSVWを用意して現場に配布
- 小さなスクリプト(2〜3行)で変換できる変換ツールを提供
- 変換はローカルでやらせず、GitHubのPRテンプレートで簡単にアップロード→CIで検証
まとめ
改修で大きなシステムを入れるよりも、まずは「公開フォーマットを揃える」「Gitで履歴を管理する」「CIで自動検証する」の3ステップが効果的。PDFに閉じたKPIは使いにくいけど、ちょっとした自動化を入れるだけで政策検証の速度と精度は劇的に上がりますよ〜!
おかむーから一言
テクノロジーで行政はぜったい良くなる!まずは小さく、できることからコードで固めていこう。現場とコードが繋がったとき、本当の説明責任が生まれます。
情報ソース
- https://www.zhihu.com/question/290714454
- https://metidx-gov.note.jp/n/n9468573c213b
- https://www.zhihu.com/question/6430289390
- https://www.trans-plus.jp/blog/column/202210_municipality-dx
- https://www.zhihu.com/question/38923279
- https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB
- https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf
- https://www.digital.go.jp/
- https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf
- https://e-words.jp/w/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB.html
- https://notice.go.jp/docs/status_nicter.csv
- https://www.jinji.go.jp/content/900024615.csv
- https://www.env.go.jp/content/900398071.csv
- https://www.inpit.go.jp/content/100869372.csv
- https://www.mhlw.go.jp/content/001429362.csv
シェアする
関連レポート

公共予約システムの“ログインからAPI化”ロードマップ:パスワードレスで運用コストを下げる技術提案
公共施設予約の認証とデータを段階的にAPI化して運用コストを下げる技術ロードマップを紹介します。

政府データを“つなげる”発想:省庁バラバラを超えるフェデレーション戦略
フェデレーション層で省庁データをつなぎ、PDF混在を克服する実践的な技術案を示す。

政策ダッシュボードは“作るだけ”じゃダメ!KPIを自動で監査するパイプライン設計
政策ダッシュボードの数値を自動監査するパイプライン設計案。API・スキーマ・差分管理でKPIの信頼性を上げる技術手法を紹介します。