Code-Driven Manifesto: Auditing Japan’s Digital Grants and Local Systems

IT Policy Proposals
Code-Driven Manifesto: Auditing Japan’s Digital Grants and Local Systems

どうも〜おかむーです! Hi — today I want to dig into Japan's push for digital government from a coder's lens. エンジニア的に言うと、政策はコードとデータで検証できるんですよ〜

  • The government is pushing standardization and cloud migration (Digital Agency, Ministry of Internal Affairs)
  • Many program evaluations and KPI reports live in PDFs, not machine-readable formats (chisou.go.jp, city reports)
  • Technical fixes (APIs, OpenAPI, schemas) can turn bureaucracy into reusable infrastructure

結論

Government policy is moving the right direction: standardization and gov-cloud adoption are big wins. ただし、実務はまだPDF中心で、KPIや実績データが機械的に比較できない。要するに、「データをAPI化してスキーマ化する」ことが急務なんです。

Report: what I checked and why it matters

Sources examined

  • Digital Agency policy pages (digital.go.jp) on local-government standardization and gov-cloud
  • Ministry of Internal Affairs standardization materials (soumu.go.jp)
  • Regional grant guidelines and evaluation PDFs (chisou.go.jp, city.moka.lg.jp)

これ見てくださいよ:交付金の評価はPDFにまとまっている(例えば、デジタル田園都市交付金のガイドラインや評価書)。人間には読めるけど、エンジニア的にはCSV/JSONで欲しいんです。

Technical problems found

  • PDFs instead of machine-readable datasets: tables and KPIs locked in static files
  • No uniform schema for KPIs: different municipalities use different names/units
  • Limited public APIs for cross-municipality queries despite Digital Agency’s standardization push
  • Lack of data provenance/versioning and stable identifiers for projects

要するに、データがAPI化されてないのでスケールしないってことです。

How I'd verify KPI gaps (practical steps)

  • Bulk-download PDFs from chisou.go.jp / city sites
  • Extract tables with Camelot / tabula-py or OCR when necessary
  • Normalize into a schema: {project_id, municipality_code, kpi_name, baseline, target, achieved, fiscal_year}
  • Run comparative analysis across projects
  • Sample Python (PDF -> normalized CSV):

    import camelot, pandas as pd
    

    tables = camelot.read_pdf('r6_houkokusho-suishin.pdf', pages='all')

    df = pd.concat([t.df for t in tables])

    cleaning: map columns to schema, normalize numerics

    API-first proposal (concrete)

    • Publish an OpenAPI spec for grant/KPI endpoints: GET /projects, GET /projects/{id}/kpis
    • Use JSON Schema for KPI objects and require municipality_code (standardized via soumu law)
    • Provide bulk export (CSV/JSON) and dataset versioning (semantic version tag)
    • Authentication: API key for heavy use, OAuth2 for administrative clients

    Implementation stack suggestion

    • Gov cloud-hosted microservices (as Digital Agency recommends)
    • Backing store: PostgreSQL with temporal tables for provenance
    • CI: schema validation in PRs, automated CSV/JSON dumps
    • Frontend: simple explorer + SQL-to-API gateway for ad-hoc analysis

    Improvements that matter

    • Mandate machine-readable reporting for grant outcomes (not just PDFs)
    • Provide reference ETL scripts (Tabula/Camelot examples) for municipalities
    • Create a central catalogue (CKAN/DKAN) indexed by soumu municipality codes
    • Define KPI ontology so cross-region aggregation is trivial

    まとめ

    • The policy direction (standardization + gov-cloud) is right and actionable
    • Today’s bottleneck is format and schema, not political will
    • Small technical rules (OpenAPI, JSON Schema, stable IDs) would unlock analysis and reuse

    おかむーから一言

    Tech scales democracy — seriously. If you give civic data clean APIs and schemas, you don't just save analysts time, you enable better policy. I'm fired up to help build that stack!