Code Speaks: Auditing Japan's Local Open Data and Digital Grants

どうも〜おかむーです! Today I want to take a technical look at how Japanese central and local governments publish data and run digital grant programs — with a focus on machine-readability, APIs, KPI plumbing, and practical fixes you can actually implement.
- This piece inspects real sources: Tokyo Open Data Catalog, prefectural PDF reports, and the Digital Agency's UI guidance
- Main finding: lots of data exists, but PDFs and inconsistent formats block programmatic use and KPI automation
- Practical fixes: normalize formats (CSV/JSON/Schema), provide APIs, add dataset CI and KPI time series endpoints
結論
Public-sector data in Japan is improving (see portal.data.metro.tokyo.lg.jp and local portals), but many operational datasets and grant evaluations are locked in PDFs or inconsistent CSVs. エンジニア的に言うと、データのオンランタイムがないためKPIの継続的検証ができない。要するに「データはあるけど使えない」という状態です。
Report
What I looked at
- Tokyo Open Data Catalog (portal.data.metro.tokyo.lg.jp / catalog.data.metro.tokyo.lg.jp): clear catalog, many CSVs
- Local portals (saitama, Chuo ward): generally CSV-first policy but mixed Excel and PDFs
- Digital Rural City grant guidance and reports (chisou.go.jp): KPI frameworks exist but evaluation reports published as PDF (see Yamaguchi example)
- Digital Agency UI guidance (digital.go.jp): good on UX, but less prescriptive about API-first data publishing
Problems I find (concrete)
- PDF-first reporting: grant performance and evaluations often in PDFs (chisou.go.jp, pref PDFs). Programmatic extraction requires OCR/Tabula and is brittle.
- Inconsistent schemas: same KPI named differently across municipalities, missing data dictionaries.
- Lack of stable APIs: catalogs have download links but few provide a stable JSON API for time-series KPIs or metadata endpoints.
- Metadata gaps: missing provenance, last-updated timestamps, and licensing in some datasets.
これ見てくださいよ — a typical workflow friction:
1) You want quarterly KPI time series for a grant-funded project
2) You find a PDF report with a table (chisou.go.jp / uploaded PDF)
3) You run tabula or copy-paste, then manually normalize columns and units
4) Repeat next quarter — painful and error-prone
Quick technical blueprint (code example)
# example: fetch a CSV if available, otherwise fallback to PDF extraction
import requests
import pandas as pd
csv_url = "{dataset_csv_url}"
res = requests.get(csv_url)
res.raise_for_status()
df = pd.read_csv(pd.compat.StringIO(res.text))
normalize column names
df.columns = [c.strip().lower().replace(' ', '_') for c in df.columns]
compute KPI gap
df['kpi_gap'] = df['target'] - df['actual']
print(df[['year_quarter','target','actual','kpi_gap']].tail())
If the source is PDF, use tabula-py or camelot to extract tables, then run the same normalization pipeline. 要するに、安定したCSV/JSON endpointsがあればこのコードはすぐ動くということです。
Recommendations (concrete, prioritized)
- API-first datasets: publish KPIs and time-series as JSON/CSV with stable endpoints and pagination
- Schema registry: use a central schema (JSON Schema) per dataset type (e.g., grant_kpi_v1)
- Dataset CI & tests: run nightly checks for schema conformance, completeness, and drift
- Machine-readable provenance: include created_at, updated_at, source_document (URL), and license
- UI + developer experience: link interactive API docs from portal pages; include sample curl/pandas snippets
- Cross-municipal KPI harmonization: central guidance (chisou.go.jp) should publish canonical KPI names and units
まとめ
Japan has real momentum: portals like Tokyo's catalog are solid foundations. But PDFs, ad-hoc CSVs, and missing APIs make continuous programmatic evaluation hard. Small engineering practices — schema, APIs, dataset CI — unlock huge gains: automated KPI tracking, reproducible audits, and faster policymaking.
おかむーから一言
As an entrepreneur-engineer, I want public data to be as dev-friendly as an API from your favorite SaaS. Tech can make governance measurable — let's ship it!🔥
Sources
- 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://dxlab.jp/blog-arase-2021-11-15-digital/
- 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://catalog.data.metro.tokyo.lg.jp/dataset
- https://portal.data.metro.tokyo.lg.jp/
- https://catalog.data.metro.tokyo.lg.jp/dataset/?tags=%E8%87%AA%E6%B2%BB%E4%BD%93%E6%A8%99%E6%BA%96%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88
- https://opendata.pref.saitama.lg.jp/
- https://www.city.chuo.lg.jp/kusei/gaiyou/toukeidate/opendata.html
- https://metidx-gov.note.jp/n/n9468573c213b
- https://lg.reserva.be/ux-design/
- https://www.zhihu.com/question/290714454
- https://www.digital.go.jp/policies/servicedesign/government-system-ui
- https://zenn.dev/govtechtokyo/articles/b65dc687e50918
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.