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

IT政策の提案
小さな自治体が続けられる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/画像/テーブルの位置依存でパースが不安定
  • メタデータ不在:列説明や単位が書かれておらず自動解釈が難しい
  • 更新履歴の欠如:いつ誰が変えたかを辿れない(現場で差分チェックが困難)

目標(小さく始めるグッドプラクティス)

  • 交付金の「KPI定義」「年度目標」「実績」をCSVで公開する
  • CSVにはCSVW/JSON-LDでスキーマと単位を付与する
  • Gitで履歴管理し、CI(GitHub Actions等)で自動検証を走らせる
  • 検証ルールは最小限:スキーマ整合、数値範囲、差分閾値
  • エンジニア的に言うと、これ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は使いにくいけど、ちょっとした自動化を入れるだけで政策検証の速度と精度は劇的に上がりますよ〜!

    おかむーから一言

    テクノロジーで行政はぜったい良くなる!まずは小さく、できることからコードで固めていこう。現場とコードが繋がったとき、本当の説明責任が生まれます。

    シェアする