Code-Driven Manifesto: Auditing Japan’s Public Dashboards from an Engineer’s POV

どうも〜おかむーです! Today I want to take a tech-first look at how Japan publishes public data — "code for a manifesto" style. I’ll inspect portals like the Digital Agency's Japan Dashboard, e-Stat, RESAS (Data StaRt), and GovTech Tokyo outputs, and give concrete engineering suggestions you can use today.
- Japan has strong open-data portals (Japan Dashboard, e-Stat, RESAS), but machine-readability and API design vary
- PDFs and dashboard-only views create friction; an API-first, schema-driven approach would vastly improve reuse
- Here are practical fixes: standard schema (JSON-stat/JSON-LD), OpenAPI, automated ETL, and UX/observability for data quality
結論
Public dashboards in Japan are promising and full of useful indicators, but from an engineering perspective many are hampered by presentation-first publishing (PDFs, embedded charts) and inconsistent machine interfaces. 要するに、policy → dashboard → developer path がスムーズになれば、政策の検証と再現性が劇的に上がるということです。
Report: what I looked at and what it means
What exists
- Japan Dashboard (Digital Agency, https://www.digital.go.jp/resources/japandashboard) aggregates government statistics into themed dashboards.
- e-Stat (https://dashboard.e-stat.go.jp/) and RESAS / Data StaRt provide sectoral visualizations and often have backend APIs.
- GovTech Tokyo supports local dashboards and UX improvements.
What’s good
- Centralized portals make it easy for the public to find indicators — nice!
- Some services already expose APIs (e.g., e-Stat, RESAS have developer endpoints) so programmatic access is possible.
What’s painful (エンジニア的に言うと…)
- PDFs embedded in policy pages: These are unreadable for scripts. これ見てくださいよ — a policy PDF with key tables is great for humans but terrible for automation.
- Dashboard-first UX: Many dashboards render charts client-side but don’t expose the underlying JSON or CSV directly.
- Inconsistent schemas across agencies: different field names, date formats, and metadata make federation hard.
- Lack of operational guarantees: rate limits, versioning, and data provenance are unclear.
Data quality & policy gaps
- Many policies declare numeric targets (e.g., targets for digitalization rates, population measures, or DX KPIs). But linking target → measurement dataset is often manual.
- Without explicit stable identifiers for indicators, automated checks (tests) that validate progress over time are brittle.
Concrete engineering proposals
1) API-first + OpenAPI
- Every dashboard endpoint should publish an OpenAPI spec and example responses. That makes discovery and client generation trivial.
2) Publish machine-readable bundles
- For each indicator publish: JSON-stat (or simple JSON with metadata), CSV, and a tiny schema.json. Include last-updated, provenance (source URL), and stable indicator ID.
3) Data catalog & versioning
- Run a CKAN or Data Portal with dataset versions (semantic versioning). Automate snapshots and provide diffs so researchers can reproduce past analyses.
4) Simple ETL + automated tests
- A reproducible pipeline (Airflow/GitHub Actions) that: fetches raw, validates schema, transforms, runs unit tests (e.g., no negative populations), and publishes artifacts.
5) UX + developer experience
- On each dashboard page add a "Download data (CSV/JSON)" and "API link + example curl" panel. Also provide sample code (Python/pandas) so civic hackers can get started.
Code examples (practical)
- Example: fetch e-Stat-like API in Python and pivot to a time series. This is a minimal pattern you can adapt:
import requests
import pandas as pd
API = 'https://api.e-stat.go.jp/rest/3.0/app/json/getStatsData'
params = {'appId': 'YOUR_API_KEY', 'statsDataId': '0000000000'}
resp = requests.get(API, params=params, timeout=10)
resp.raise_for_status()
js = resp.json()
extract table -> normalize -> DataFrame
records = []
for item in js.get('GET_STATS_DATA', {}).get('STATISTICAL_DATA', {}).get('DATA_INF', {}).get('VALUE', []):
records.append({'time': item.get('@time'), 'value': float(item.get('$'))})
df = pd.DataFrame(records).sort_values('time')
print(df.head())
- If only PDF is available: use an automated extractor (tabula-py for tables) but treat it as a last resort — push agencies to publish CSV/JSON.
Operational checklist for agencies
- Does endpoint have OpenAPI? ✅/❌
- Is raw CSV/JSON downloadable next to a chart? ✅/❌
- Are fields and dates standardized across datasets? ✅/❌
- Is historical versioning available? ✅/❌
まとめ
Japan’s public data ecosystem is in a good place — the ingredients (e-Stat, Japan Dashboard, RESAS, GovTech support) are here. But to make data a true accountability engine, treat datasets like software: API-first, schema-managed, versioned, and tested. 要するに、データを"PDFで発表して終わり"にしないで、エンジニアリングで運用しよう、ということです。
おかむーから一言
I’ve built products and scaled data pipelines — trust me, small devops + schema discipline gives huge leverage. Let’s make public data as reliable as production code, and then policy debates become data-driven in practice!
Sources
- https://www.digital.go.jp/resources/japandashboard
- https://dashboard.e-stat.go.jp/
- https://www.kantei.go.jp/
- https://www.kantei.go.jp/jp/news/index.html
- https://www.stat.go.jp/dstart/tool/
- https://www.govtechtokyo.or.jp/services/data-utilization/
- https://govtechbridge.com/
- https://note.govtechtokyo.jp/n/n77785a8254d6
- https://www.zhihu.com/question/356146882
- https://www.idx.jp/notice/gov_tech/
- https://metidx-gov.note.jp/n/n9468573c213b
- https://www.digital.go.jp/policies/servicedesign/government-system-ui
- https://zenn.dev/govtechtokyo/articles/b65dc687e50918
- https://picks-design.com/blog/5751/
- https://www.meti.go.jp/meti_lib/report/2024FY/000072.pdf
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.