コードで語るマニフェスト:自治体データをAPI化して実績とKPIギャップを埋める方法

どうも〜おかむーです! 안녕하세요, 오카무입니다! 오늘은 정부·지자체가 공개한 데이터와 시스템을 엔지니어 관점에서 찢어보고, 실무적으로 고칠 수 있는 제안을 던져볼게요〜
- 이 글의 핵심은: 공개파일(PDF/CSV)의 기계가독성, API 부재, KPI와 실적의 괴리를 코드 관점에서 검증하고 개선안을 제시한다
- 실제 레퍼런스로 gov 사이트의 CSV/PDF를 확인(例: env.go.jp CSV, pref.yamaguchi.lg.jp PDF, digital.go.jp 등)
- 제안은 API 우선, 표준 스키마, CSV→JSON 파이프라인, 자동화된 KPI 대시보드 구축입니다
結論
정부·지자체 데이터는 이미 존재하지만 형식과 배포 방식이 발목을 잡고 있다. PDF에 갇힌 지표나 쪼개진 CSV는 재사용성이 낮다. 엔지니어적 해결책은 단순하다: 머신리더블 포맷(CSV/JSON-LD)을 우선 제공하고, 경량 API(REST/GraphQL)를 통해 실적(KPI)을 실시간으로 확인 가능하게 하라. 그러면 정책의検証が自然にできるようになる!
レポート本文
現状確認 — これ見てくださいよ
実際の公開例を見てみると現場の状況が分かる。
- 環境省のCSV例: https://www.env.go.jp/content/900398071.csv — CSVで公開はしているがメタデータやスキーマ定義が薄い
- 山口県の事業実績PDF: https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf — PDFにKPIと実績が埋め込まれており、機械処理が困難
- デジタル庁: https://www.digital.go.jp/ — 政策プラットフォームはあるが、各自治体レベルへの実装はまだムラがある
要するに、データはあるけど“使える形”で出てないということです。
技術的問題点の整理
- フォーマット混在(PDF × 表形式、CSVだがスキーマ不統一)
- APIの不在または限定的な提供
- メタデータ欠如(カラム説明、単位、時系列の確定)
KPIと実績のギャップ分析例
国のガイドライン(例: デジタル田園都市国家構想交付金のKPI運用ガイド、chisou.go.jpの資料)ではKPI設定を求めているが、自治体の実績報告でPDFに閉じてしまい、年度比較や跨年度分析が難しいケースが多い。
山口県のPDFでは「採択事業:2事業」「実績額:15,289千円」といった値があるけど、これが年度別・カテゴリ別に機械的に集計できる形で公開されていない。要するに“人間が読むレポート”から“システムが読むデータ”へ移行する必要がある。
エンジニア的改善提案
1) APIファーストで公開
- 各種CSVはそのまま置くだけでなく、軽量REST APIで /api/v1/projects, /api/v1/kpi などエンドポイントを作る
2) スキーマとメタデータを定義
- JSON Schema / JSON-LD、Data Catalog(例: CKAN)でカラム説明・単位を明示
3) PDF → CSV/JSON のパイプラインを自動化
- OCR/PDFテーブル抽出 → 正規化 → スキーマ検証
4) KPIダッシュボードの自動化
- ETL → DB → BIツール(例: Metabase)で実績と目標を比較
具体的コード例(サンプル)
以下はCSVを拾って簡易APIに変換するPython例です(実務では認証やエラー処理を追加してください):
# requirements: requests, pandas, flask
import requests
import pandas as pd
from flask import Flask, jsonify
CSV_URL = 'https://www.env.go.jp/content/900398071.csv'
app = Flask(__name__)
@app.route('/api/v1/env_data')
def env_data():
r = requests.get(CSV_URL)
r.encoding = 'utf-8'
df = pd.read_csv(pd.compat.StringIO(r.text))
# 簡易クレンジング
df.columns = [c.strip() for c in df.columns]
return jsonify(df.to_dict(orient='records'))
if __name__ == '__main__':
app.run(port=8000)
要するに、CSVを拾ってJSONで出すAPIはエンジニアならすぐ作れるんですよね。
運用面の提案:自動検証とガバナンス
- CIでスキーマバリデーションを回す(JSON Schemaを用意して差違を検出)
- 公開データのバージョン管理をGitで行う(誰がいつ変更したかトラッキング)
- SLAとして更新頻度を明記(例: KPIは四半期ごと、財務は月次)
オープンデータ活用の可能性
- 地域課題を解くスタートアップと自治体をマッチングするAPIハブ
- ダッシュボード+データセット公開で市民参加型の監視(KPIの透明化)
- ローカルデータを統合して機械学習モデル(需要予測、補助金効果測定)を作成可能
まとめ
- 現状: データはあるが機械可読性とAPI化が足りない
- 技術的施策: APIファースト、スキーマ定義、PDF→CSV/JSON自動化、CIによる品質保証
- 効果: 政策の検証がしやすくなり、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
공유하기
관련 리포트

コードで語るマニフェスト:自治体データとシステムをエンジニア視点で検証する
自治体データはPDFやUIに閉じがち。API-firstとJSON Schemaで再利用性を高め、ガバメントクラウドへ移行する実務ロードマップを提示します。

コードで語るマニフェスト:日本政府データの現場から見る技術検証
政府データは可視化が進むも機械可読性不足が課題。CSV/JSON/API、スキーマ、ID統一で政策検証を自動化しよう。

코드로 읽는 마니페스토: 일본 정부 데이터와 시스템을 엔지니어 관점에서 후벼파기
일본 정부 데이터의 PDF·API·메타데이터 문제를 엔지니어 관점에서 분석하고, 실무 가능한 개선안을 코드 예시와 함께 제시합니다。