Code-First Manifest: Evaluating Japan's Digital Grants and Local Government Systems

どうも〜おかむーです! Hey — Okamu here! Today I want to dig into how Japan's digital policy and local-government IT programs actually look when you "read the code" — or at least, when you read the data and the file formats they publish. エンジニア的に言うと、policy is only as good as its interfaces.
- This post inspects the Digital Agency, the "Digital Den-en-Toshi" grant scheme, and local-government system standardization from a technical lens
- Main problem: important project KPIs and budgets are often trapped in PDFs rather than machine-readable formats
- Concrete fixes: open CSV/APIs, OpenAPI + auth, CKAN/DCAT catalog, CI pipelines to publish validated datasets
結論
Government initiatives (Digital Agency, Digital Den-en-Toshi grants, and the Local Government System Standardization program) show clear strategic intent, but many operational artifacts remain non-machine-readable. 要するに、政策の追跡や independent verification をするためのインターフェース(APIs, CSVs, metadata) が足りないということです。改善は比較的短期で効果出ます:PDF→CSVの自動化、OpenAPI-firstの案件設計、データカタログ運用を導入すればOKです。
Report: technical read of sources, problems, and fixes
What I looked at
- Digital Agency overview: https://www.digital.go.jp/ (policy hub, DX mission)
- Digital Den-en-Toshi grant pages: https://www.chisou.go.jp/sousei/about/kouhukin/index.html (scheme description)
- Example implementation report: Yamaguchi Prefecture PDF on grant usage (pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf) — this contains project-level KPI and budget figures but only as PDF tables
- Local government IT standardization pages: https://www.digital.go.jp/policies/local_governments and https://www.soumu.go.jp/menu_seisaku/chiho/jichitaijoho_system/index.html (governance, timelines, gov-cloud migration)
これ見てくださいよ:the Yamaguchi PDF shows "採択事業:2事業. 実績額:15,289千円." Great — but it's embedded in a PDF. For engineers and researchers, that means manual copy/paste or brittle scraping. 要するに、機械可読性がない。
Problems identified (technical)
- Budget, KPI, and performance numbers are in PDFs. PDF is fine for human consumption but terrible for automated analysis.
- Risks: transcription errors, lack of provenance, no schema, no timestamps for rows.
- National pushes (Digital Agency, Ministry of Internal Affairs and Communications) discuss standardization, but many municipalities still expose documents rather than datasets.
- Without OpenAPI/JSON schemas, integration costs spike for third-party tools and civic tech groups.
- No single machine-readable catalog (DCAT or CKAN) that indexes grant-level, project-level, and operational datasets across ministries and prefectures.
- High-level totals (e.g., 15,289千円) exist, but transaction-level line items, procurement records, and milestone timestamps are missing or hidden.
Evidence: example from the Yamaguchi PDF
- The PDF lists KPIs and an "実績額" (actual amount). If I were to validate performance vs target, I'd need structured columns: project_id, activity, kpi_name, target_value, achieved_value, fiscal_year, budget_amount_jpy, spending_breakdown.
- Instead we have a paginated PDF: manual extraction required.
Quick win technical fixes (practical)
- For every PDF report, include a CSV with the same table(s). Add a small machine-readable metadata JSON (schema version, generated_at, source_url).
- Minimal contract: /api/v1/grants?page=1&prefecture=yamaguchi
- Use OpenAPI to document fields and types; allow filtering by fiscal year, KPI, and status.
- One catalog per ministry/prefecture or a federated CKAN; register datasets with DCAT metadata so discovery is easy.
- Use tabula-py / camelot in a GitHub Actions job that converts uploaded PDFs to CSV, runs schema checks, and publishes to S3 + the catalog.
Example code: PDF -> CSV extraction + basic validation (Python)
# requirements: tabula-py, pandas
import tabula
import pandas as pd
from jsonschema import validate
extract first table from PDF
df_list = tabula.read_pdf("yamaguchi_report.pdf", pages='all', multiple_tables=True)
df = df_list[0]
normalize columns
df.columns = [c.strip() for c in df.columns]
simple schema
schema = {
"type": "array",
"items": {
"type": "object",
"properties": {
"project": {"type": "string"},
"kpi": {"type": "string"},
"target": {"type": ["number","string"]},
"actual": {"type": ["number","string"]},
"amount_jpy": {"type": ["number","string"]}
},
"required": ["project","amount_jpy"]
}
}
validate rows
records = df.to_dict(orient='records')
validate(records, schema)
persist
df.to_csv('yamaguchi_report.csv', index=False)
要するに、この程度の自動化でかなりマシになりますよね。
API design sketch (OpenAPI-flavored)
- Endpoint: GET /api/v1/grants
- Parameters: prefecture, fiscal_year, project_id, kpi
- Response: JSON array with fields: project_id, title, budget_jpy, spent_jpy, kpis: [{name, target, achieved}], attachments: [{type, url, format}]
Sample curl:
curl 'https://data.pref.yamaguchi.lg.jp/api/v1/grants?fiscal_year=2024' \
-H 'Accept: application/json'
Longer-term architecture suggestions
- Federated catalog: each prefecture runs a CKAN instance that syncs metadata to a national index (DCAT-enabled). This keeps local autonomy and national discoverability.
- Authentication: for sensitive endpoints use OIDC/OAuth2 and role-based scopes; public datasets remain unauthenticated.
- Provenance & versioning: store datasets in object storage (S3) with immutable versioned keys and a small JSON manifest describing generation pipeline and commit hash.
- Governance: require OpenAPI + example dataset as part of grant acceptance criteria for Digital Den-en-Toshi funding.
Policy vs implementation: numbers and accountability
- Policy documents (Digital Agency / Soumu) set timelines for standardization and gov-cloud migration (notes around 2025/2026 in published materials). Good.
- But on-the-ground artifacts (like the Yamaguchi report) show that deliverables still default to PDFs. Result: you can't easily measure whether the digital investment achieved stated KPIs.
- Example numeric check: the PDF lists "採択事業:2事業. 実績額:15,289千円." To verify value-for-money, we'd want line-level procurement records and KPI time series. Those aren't present.
Civic-tech use cases unlocked by better interfaces
- Automated dashboards that compare target vs achieved across all prefectures
- Open procurement analysis: detect anomalies in unit prices or repeated contractors
- Data-driven allocation models for next-round grants using historical spend and outcomes
- Citizen-facing trackers that show real-time progress on digital transformation investments
まとめ
- Policy intent is there: Digital Agency and Soumu are pushing standardization and cloud migration. But implementation still lags in data interfaces.
- The core gap is machine-readability: PDFs must be complemented with CSVs/APIs + metadata.
- Practical roadmap: mandate OpenAPI + dataset CSVs for funded projects, run CI pipelines to convert and validate PDFs, deploy a federated CKAN catalog, and publish transaction-level data where privacy allows.
- エンジニア的に言うと、this is not rocket science — it's about putting the right contract around data.
おかむーから一言
I started companies and built products that rely on clean data — policy wins only when data is accessible. Let's push for OpenAPI and CSVs first, fancy ML models later. Technology should make government accountable and useful, not just prettier PDF reports.
Sources
- https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB
- https://www.chisou.go.jp/sousei/about/kouhukin/index.html
- https://www.digital.go.jp/
- https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf
- https://biz.kddi.com/content/column/smartwork/what-is-digital/
- https://www.keiba.go.jp/
- https://www.digital.go.jp/policies/local_governments
- https://www.keiba.go.jp/KeibaWeb/TodayRaceInfo/TodayRaceInfoTop
- https://www.soumu.go.jp/menu_seisaku/chiho/jichitaijoho_system/index.html
- https://www.keiba.go.jp/live/
- https://www.zhihu.com/question/290714454
- https://metidx-gov.note.jp/n/n9468573c213b
- https://www.zhihu.com/question/6430289390
- https://ai-government-portal.com/%E5%85%AC%E5%8B%99%E5%93%A1%E3%81%AE%E6%96%B0%E3%81%97%E3%81%84%E6%8C%91%E6%88%A6%E3%80%8C%E8%A1%8C%E6%94%BFux%E6%94%B9%E5%96%84%E6%A5%AD%E5%8B%99%E5%A7%94%E8%A8%97%E3%80%8D%E5%AE%8C%E5%85%A8%E3%82%AC/
- https://www.zhihu.com/question/38923279
Share
Related Reports

Code-driven Manifesto: Auditing Local Gov Data and Systems (Kagawa case study)
Local gov systems run but hide data behind UIs; expose CSV/JSON, APIs, and common schemas to unlock value.

Code-driven Check: Japan’s Open Data and the Machine-Readable Gap
Digital Japan has dashboards and rules, but PDFs and messy formats still block automated policy verification; mandate CSV/JSON, APIs, and dataset linting.

Code Speaks: Testing Japan's Gov Data and Dashboards
Japan has great dashboards but inconsistent machine-readability. This report inspects e-Stat, Japan Dashboard, Kantei PDFs, and proposes API-first fixes and practical code examples.