# municipality-series / proportional-party-comparison-2025-2026

This dataset stores municipality-level party comparison rows for the proportional
components of the 2025 House of Councillors election and the 2026 House of
Representatives election.

## Boundary

- This is not canonical fact storage.
- Source of truth remains Layer 2 release facts.
- The direct input is `derived/extraction/municipality-series/party-votes`.
- Selector rows are limited to parties present on the 2026-02-08 target side,
  plus explicitly documented graph-only comparison blocs.
- This dataset does not infer general party lineage, merger, split, or replacement semantics.
- Pilot-specific graph-only bloc: `CDR_TJU` / 中道+ゆうこく compares
  `2025 KMT + CDP` against `2026 CDR + TJU`.
- Standalone `CDR` and `TJU` are excluded from the comparison selector because
  the current canonical data does not support candidate-level apportionment of
  2025 `CDP` votes into those two 2026 parties.
- Missing party rows on either side remain blank except for that explicit `CDR_TJU` bloc rule.

## Selector and Row Grain

- family: `municipality-series`
- dataset: `proportional-party-comparison-2025-2026`
- primary selector field: `jis_code`
- selector shard directory: `by-jis`
- row grain: `comparison_key x jis_code x party_id`
- prefecture aggregate selector field: `prefecture_code`
- prefecture aggregate selector shard directory: `by-prefecture`
- prefecture aggregate row grain: `comparison_key x prefecture_code x party_id`
- `party_id=CDR_TJU` is a graph-only comparison selector, not a canonical party ID.

## Comparison

- comparison key: `20250720_hc_pr__20260208_hr_block`
- baseline: `20250720_hc`, vote system `pr`
- target: `20260208_hr`, vote system `block`

## Metrics

Only the minimal graph-facing comparison metrics are included:

- baseline / target party votes
- vote delta
- vote change rate: `(target_votes - baseline_votes) / baseline_votes * 100`
- baseline / target municipality vote share percentage
- vote-share delta in percentage points
- Prefecture aggregate rows intentionally leave municipality share fields blank;
  they are vote-total aggregates for graph nationwide scope, not municipality-share
  aggregates.

## Files

- `current.yaml`: contract and latest metadata for this dataset
- `latest/nationwide.csv`: stable latest municipality-grain convenience table
- `latest/prefecture.csv`: stable latest prefecture-grain aggregate table
- `latest/by-jis/<jis_code>.csv`: selector shard
- `latest/by-prefecture/<prefecture_code>.csv`: prefecture aggregate selector shard
- `releases/<source_release_version>/...`: release-scoped materialization snapshot
