Code-Driven Manifesto: Reading Government Policy Through Data and Engineering

Hey — okamu here! Today I’ll do a quick-engineering audit of publicly available government datasets and systems, with the mantra: "code tells the manifesto." Keep it practical and a little bit cheeky — engineer-first analysis incoming!
- This is a data-first check of gov CSVs and publication practices (I inspected multiple go.jp CSVs listed in public indexes).
- Key finding: machine-readability is patchy — CSVs exist, but encoding, schema, metadata, and API coverage are inconsistent.
- Recommendation summary: standardize encodings and schemas, add APIs + CSVW/JSON-LD metadata, automate validation and CI for data quality.
結論
Public datasets are being published, which is great — but from an engineering POV they’re only half-baked. Files like https://notice.go.jp/docs/status_notice.csv and other go.jp CSVs show that Japan’s open-data story is at the "PDF-then-CSV" stage: human-consumable but fragile for automation. To get AI-ready, governments need consistent encodings (UTF-8), machine-readable schemas (CSVW/DCAT), stable APIs with OpenAPI specs, and automated validation pipelines. 要するに、データ公開の手順をコード化してデータをプロダクト化することです。
Report: what I checked and what I found
Datasets examined (examples from public indexes)
- NOTICE: https://notice.go.jp/docs/status_notice.csv — simple CSV endpoint.
- Ministry of Environment (Ibaraki example): https://www.env.go.jp/content/900398071.csv
- INPIT: https://www.inpit.go.jp/content/100869372.csv
- MHLW sample: https://www.mhlw.go.jp/content/001429362.csv
- Ministry of Internal Affairs (national list): https://www.soumu.go.jp/main_content/000323625.csv
これ見てくださいよ — raw CSV availability is a win. But file-level publication alone doesn’t make data easy to use at scale.
Common technical issues observed
- Encoding ambiguity: some CSVs likely use Shift_JIS or legacy encodings; no consistent UTF-8 guarantee. That triggers parsing headaches in pipelines.
- Missing machine-readable schema: columns are undocumented or only documented in human PDFs; no CSVW/JSON schema attached.
- Inconsistent date/time formats and lack of timezone normalization — tough for time-series joins.
- No stable API endpoints with versioning — just file blobs. Incremental updates are hard to detect.
- Lack of unique stable identifiers across datasets — linking records across ministries is manual.
- Metadata lives in unrelated PDFs or web pages (see Digital Agency guidance and policy docs), not alongside the data.
Why this matters — engineering perspective
- Data pipelines hate ambiguity. Encoding errors cause ETL failures, date inconsistencies break joins, and missing identifiers kill deduping.
- For AI-ready use (see cabinet documents about machine-readability), models need deterministic ingestion: schema + validation + provenance.
- Policy evaluation relies on time-series alignment and record linkage. Without stable IDs and documented schemas, KPI-vs-actual comparisons become guesswork.
Quick code examples (practical fixes)
- Sniff and read CSV with encoding fallback (Python/pandas):
import chardet
import requests
import pandas as pd
url = 'https://notice.go.jp/docs/status_notice.csv'
r = requests.get(url)
encoding = chardet.detect(r.content)['encoding'] or 'utf-8'
print('Detected encoding:', encoding)
df = pd.read_csv(pd.compat.StringIO(r.content.decode(encoding)), dtype=str)
print(df.head())
- Normalize dates and generate stable IDs:
from dateutil import parser
df['date'] = df['date_column'].apply(lambda x: parser.parse(x).date())
df['stable_id'] = df.apply(lambda r: f"{r['prefecture_code']}-{r['institution_id']}-{r['date']}", axis=1)
- Add a CSVW metadata file (example snippet):
{
"@context": "http://www.w3.org/ns/csvw",
"url": "status_notice.csv",
"tableSchema": { "columns": [ {"name":"date","datatype":"date"}, {"name":"prefecture_code","datatype":"string"} ] }
}
These are small but critical steps: automatic encoding detection, schema-driven parsing, and canonical IDs.
API and publication best-practices (practical roadmap)
- Publish CSVs as UTF-8 with explicit Content-Type and Content-Encoding HTTP headers.
- Bundle CSV with CSVW/JSON-LD and register datasets in a DCAT catalog (machine.readable metadata).
- Provide an OpenAPI-defined API; support pagination, filters, and delta queries (since=timestamp).
- Run Great Expectations or frictionless data checks on every publish: schema/uniqueness/ranges.
- Publish dataset changes via webhook or Pub/Sub so downstream consumers can react to diffs.
- Agree on minimal linking keys (prefecture_code + institution_code + measurement_date).
Policy measurement: KPI vs. reality
- Documents around Digital田園都市 and the Digital Agency emphasize KPIs and AI-readiness (see https://www.chisou.go.jp/ and https://www.digital.go.jp/).
- But reports (e.g., project KPI checklists) often rely on aggregated PDF-reported numbers; machine extraction from PDFs is error-prone.
- Concrete gap: a grant program’s KPI may be "number of facilities digitized," but datasets expose only ad-hoc CSV exports without time-series continuity. That makes computing actual progress and trend detection error-prone.
Practical fix: publish KPIs as time-series CSVs + API endpoints with clear definitions and provenance. That allows automated dashboards and reproducible evaluation.
Open data reuse opportunities
- Build cross-jurisdiction visualizations that combine NOTICE status with environmental and health CSVs (env.go.jp, mhlw.go.jp) for disaster or public-health dashboards.
- Create derivative APIs that reconcile duplicates and add canonical IDs, then publish as open transformed datasets (with code + tests in a Git repo).
- Encourage reuse by shipping example notebooks and minimal SDKs (Python/R) demonstrating ingestion and join patterns.
まとめ
- The government is publishing useful CSVs — great progress — but machine-readability is inconsistent.
- Engineer-first actions (UTF-8, CSVW, OpenAPI, CI validation, event-driven updates) would unlock huge value for policy evaluation, AI, and civic apps.
- Start small: pick a high-impact dataset, add CSVW + OpenAPI + CI tests, and make it a template for other ministries. Once one workflow is hardened, scale it.
おかむーから一言
I’ve built products from messy data — turn publication into a repeatable software process and you’ll halve analysis time and double trust. Tech upgrades policy delivery — let’s ship that pipeline together!
Sources
- https://notice.go.jp/docs/status_notice.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
- https://www.soumu.go.jp/main_content/000323625.csv
- https://www.zhihu.com/question/290714454
- https://okamu.ro/insight/ai-ready-administrative-data-checklist
- https://www.zhihu.com/question/6430289390
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/data8/data8_siryou1.pdf
- https://www.zhihu.com/question/38923279
- https://www.chisou.go.jp/sousei/about/kouhukin/index.html
- https://www.digital.go.jp/
- https://raida.go.jp/
- https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf
- https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB
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.