{
  "$schema": "schym-chart-plan/v1",
  "registry_version": "1.0.0",
  "consultation_status": "complete",
  "article_id": "germany-far-right-three-maps-2026",
  "style_id": "evidence-cartography",
  "data_fingerprint": "sha256:950b62809e30f48b773e0e87b8d7868a649f3f5028056970e0acebf5aeb4f18e",
  "stakes": "high",
  "figures": [
    {
      "figure_id": "fig-01-three-maps",
      "chart_id": "choropleth-map",
      "question": "Where are 2024 music, protest and observed violence rates concentrated across Germany?",
      "role": "hero-evidence",
      "title": "Three channels, one recurring eastern cluster — and a major blank in violence data",
      "unit": "Events or incidents per 100,000 residents; 2024",
      "source": "FARAC v1, Lang & Mayer (2026), Zenodo DOI 10.5281/zenodo.21041488; county boundaries © GeoBasis-DE/BKG.",
      "transformations": "Counts divided by FARAC population and multiplied by 100,000. Each channel uses the same positive-rate percentile grammar: zero, ≤P50, P50–P75, P75–P90, P90–P95 and >P95. Violence-unavailable counties are excluded from its percentile calculation and remain hatched. FARAC carries 2023 population into 2024.",
      "renderer": "choropleth",
      "selection_reason": "Aligned choropleths preserve county geography while a shared percentile grammar makes relative hotspots comparable without pretending that the three recording systems have equal scales or coverage.",
      "fallback": "../02_figures/light/fig-01_three-maps.png",
      "consultation": [
        {
          "role": "best_analytical_fit",
          "chart_id": "choropleth-map",
          "score": 74.7,
          "reason": "County geography and spatial concentration are the question; three aligned panels keep boundaries fixed."
        },
        {
          "role": "standard_baseline",
          "chart_id": "sequential-choropleth",
          "score": 68.7,
          "reason": "A single sequential choropleth is familiar but cannot compare the three channels simultaneously."
        },
        {
          "role": "non_standard_challenger",
          "chart_id": "tile-grid-map",
          "score": 51.92,
          "reason": "Equal-area tiles reduce geographic area bias but sacrifice recognizable county shape and adjacency."
        }
      ],
      "non_standard_candidate_id": "tile-grid-map",
      "non_standard_decision": "rejected",
      "non_standard_reason": "The 22.78-point score gap and loss of recognizable geography outweigh the area-equality benefit; the article separately reports exact county values.",
      "data_profile": {
        "fields": ["county_code", "channel", "rate_100k", "percentile_bin", "coverage"],
        "row_count": 945,
        "category_count": 400,
        "has_negative": false,
        "has_uncertainty": false,
        "part_to_whole": false,
        "flow_conserved": false,
        "actual_cohorts": false,
        "normalized_rate": true,
        "has_edges": false,
        "component_count": 0,
        "constant_sum": false,
        "cyclical": false,
        "spatial_depth_justified": false,
        "sample_size_per_group": 0,
        "dense_series": false,
        "additive_components": false,
        "time_points": 1,
        "series_count": 3,
        "measure_count": 3,
        "legend_cells": 7,
        "normalized_axes": true,
        "same_direction_axes": true,
        "axis_count": 0,
        "sequential_cohort": false,
        "weighted_edges": false,
        "axis_starts_at_zero": true,
        "time_spacing_proportional": true,
        "circle_area_scaled": true
      },
      "accessibility": {
        "alt_text": "Three county maps of Germany show 2024 per-capita far-right music events, protests and recorded violence. Music and protest hotspots recur especially in Saxony and Thuringia; violence is unavailable for 255 of 400 counties, shown with hatch rather than zero.",
        "exact_value_fallback": "../02_figures/exact-values/fig-01_three-maps.csv"
      },
      "validation": {"status": "ready", "findings": [], "overrides": []}
    },
    {
      "figure_id": "fig-02-overlap",
      "chart_id": "100percent-stacked-bar-chart",
      "question": "How much do music-active and protest-active counties overlap in 2024, in all county-years and cumulatively from 2013 to 2024?",
      "role": "comparison",
      "title": "Music and protest meet locally more often than one national snapshot suggests",
      "unit": "Counties or county-years with any recorded event",
      "source": "FARAC v1; authors’ calculations.",
      "transformations": "Binary any-event indicators. Each bar is normalized to its scope-specific music–protest union; its shared segment is Jaccard similarity. Exact intersections, unions and within-Land fixed-margin references remain labelled.",
      "renderer": "bar",
      "selection_reason": "A 100% stacked bar makes the overlap share comparable across three scopes with radically different denominators while direct labels preserve the exact counts.",
      "fallback": "../02_figures/light/fig-02_overlap.png",
      "consultation": [
        {
          "role": "best_analytical_fit",
          "chart_id": "100percent-stacked-bar-chart",
          "score": 80.57,
          "reason": "The claim is the changing intersection share across scopes with different denominators."
        },
        {
          "role": "standard_baseline",
          "chart_id": "stacked-bar-chart",
          "score": 76.57,
          "reason": "A count-stacked bar is familiar but the large county-year denominator makes the two county scopes nearly unreadable."
        },
        {
          "role": "non_standard_challenger",
          "chart_id": "waffle-chart",
          "score": 72.59,
          "reason": "A waffle makes composition tangible but three grids are less precise and need more space."
        }
      ],
      "non_standard_candidate_id": "waffle-chart",
      "non_standard_decision": "rejected",
      "non_standard_reason": "The 7.98-point score gap and lower precision outweigh the tangible grid metaphor; the normalized bar preserves exact comparison.",
      "data_profile": {
        "fields": ["scope", "music_active", "protest_active", "both", "union", "jaccard"],
        "row_count": 3,
        "category_count": 3,
        "has_negative": false,
        "has_uncertainty": false,
        "part_to_whole": true,
        "flow_conserved": false,
        "actual_cohorts": false,
        "normalized_rate": false,
        "has_edges": false,
        "component_count": 4,
        "constant_sum": true,
        "cyclical": false,
        "spatial_depth_justified": false,
        "sample_size_per_group": 0,
        "dense_series": false,
        "additive_components": false,
        "time_points": 0,
        "series_count": 3,
        "measure_count": 6,
        "legend_cells": 3,
        "normalized_axes": true,
        "same_direction_axes": true,
        "axis_count": 1,
        "sequential_cohort": false,
        "weighted_edges": false,
        "axis_starts_at_zero": true,
        "time_spacing_proportional": true,
        "circle_area_scaled": true
      },
      "accessibility": {
        "alt_text": "Set-comparison bars show that music and protest overlapped in 17 counties in 2024, 281 county-years over 2013–2024 and 156 counties at least once over the full period. The corresponding Jaccard similarities are 28.3%, 24.1% and 56.1%.",
        "exact_value_fallback": "../02_figures/exact-values/fig-02_overlap.csv"
      },
      "validation": {"status": "ready", "findings": [], "overrides": []}
    },
    {
      "figure_id": "fig-03-trajectories",
      "chart_id": "resource-utilisation-heatmap",
      "question": "How does each of 400 counties move among six activity and coverage states over twelve ordered years?",
      "role": "trajectory",
      "title": "County ecosystems persist, but coverage shifts can mimic change",
      "unit": "Mutually exclusive county-year state, 2013–2024",
      "source": "FARAC v1; authors’ typology and documented Hamburg correction.",
      "transformations": "Music plus protest is a proven multi-channel state even when violence is unavailable; otherwise uncovered cells remain coverage unavailable. Covered cells are classified by their positive channels. Rows are grouped by region and sorted by their twelve-year state sequence. Görlitz is the persistent specimen.",
      "renderer": "operations",
      "selection_reason": "A compact category-by-time cell matrix is the only static form that can retain all 4,800 county-years while making persistence, switches and coverage blocks visible.",
      "fallback": "../02_figures/light/fig-03_trajectories.png",
      "consultation": [
        {
          "role": "best_analytical_fit",
          "chart_id": "resource-utilisation-heatmap",
          "score": 78.08,
          "reason": "Its row-by-time status geometry maps directly to counties by year, despite the registry’s operational label."
        },
        {
          "role": "standard_baseline",
          "chart_id": "exact-value-table",
          "score": 63.1,
          "reason": "A table is exact but cannot reveal recurring bands across 4,800 cells at publication scale."
        },
        {
          "role": "non_standard_challenger",
          "chart_id": "queue-length-chart",
          "score": 78.08,
          "reason": "The routed challenger shares the time-by-status signal but its queue metaphor has no substantive meaning here."
        }
      ],
      "non_standard_candidate_id": "queue-length-chart",
      "non_standard_decision": "rejected",
      "non_standard_reason": "The operational queue metaphor would distort a categorical county history; only the heatmap geometry is retained and explicitly relabelled as a trajectory matrix.",
      "data_profile": {
        "fields": ["county_code", "county_name", "year", "typology", "observed_channels"],
        "row_count": 4800,
        "category_count": 400,
        "has_negative": false,
        "has_uncertainty": false,
        "part_to_whole": false,
        "flow_conserved": false,
        "actual_cohorts": true,
        "normalized_rate": false,
        "has_edges": false,
        "component_count": 6,
        "constant_sum": false,
        "cyclical": false,
        "spatial_depth_justified": false,
        "sample_size_per_group": 0,
        "dense_series": true,
        "additive_components": false,
        "time_points": 12,
        "series_count": 400,
        "measure_count": 1,
        "legend_cells": 6,
        "normalized_axes": false,
        "same_direction_axes": true,
        "axis_count": 0,
        "sequential_cohort": true,
        "weighted_edges": false,
        "axis_starts_at_zero": true,
        "time_spacing_proportional": true,
        "circle_area_scaled": true
      },
      "accessibility": {
        "alt_text": "A 400-row by 12-column county trajectory matrix shows long blocks of unavailable violence coverage, alongside persistent multi-channel and violence-only bands in covered eastern counties. Görlitz is highlighted and remains covered throughout.",
        "exact_value_fallback": "../02_figures/exact-values/fig-03_trajectories.csv"
      },
      "validation": {
        "status": "ready",
        "findings": ["Registry label is operational; publication label is county trajectory matrix."],
        "overrides": ["Use the registered resource-by-time status geometry with county/year semantics."]
      }
    },
    {
      "figure_id": "fig-04-transitions",
      "chart_id": "adjacency-matrix",
      "question": "Which activity states persist or change between adjacent years when violence is observed in both years?",
      "role": "mechanism",
      "title": "Multi-channel counties often remain multi-channel",
      "unit": "Adjacent county-year transitions with violence observed in both years",
      "source": "FARAC v1; authors’ calculations after documented Hamburg correction.",
      "transformations": "Only adjacent pairs with violence coverage in both years enter. Each cell shows count and origin-row share; coverage-entry and coverage-exit flows are excluded and reported separately.",
      "renderer": "matrix",
      "selection_reason": "The ordered origin–destination matrix exposes both diagonal persistence and specific switches without the visual dominance of the 3,419 unavailable-to-unavailable flows.",
      "fallback": "../02_figures/light/fig-04_transitions.png",
      "consultation": [
        {
          "role": "best_analytical_fit",
          "chart_id": "adjacency-matrix",
          "score": 96.32,
          "reason": "The data are a small directed origin–destination network with weighted edges."
        },
        {
          "role": "standard_baseline",
          "chart_id": "correlation-matrix",
          "score": 64.3,
          "reason": "Its familiar matrix geometry lacks the required direction and count semantics."
        },
        {
          "role": "non_standard_challenger",
          "chart_id": "clustered-adjacency-matrix",
          "score": 80.32,
          "reason": "Clustering could group similar flow profiles but would destroy the predeclared substantive state order."
        }
      ],
      "non_standard_candidate_id": "clustered-adjacency-matrix",
      "non_standard_decision": "rejected",
      "non_standard_reason": "Five states do not need clustering, and semantic order is more interpretable than a data-driven rearrangement.",
      "data_profile": {
        "fields": ["from_state", "to_state", "county_year_pairs", "row_share"],
        "row_count": 25,
        "category_count": 5,
        "has_negative": false,
        "has_uncertainty": false,
        "part_to_whole": true,
        "flow_conserved": true,
        "actual_cohorts": true,
        "normalized_rate": false,
        "has_edges": true,
        "component_count": 5,
        "constant_sum": false,
        "cyclical": false,
        "spatial_depth_justified": false,
        "sample_size_per_group": 0,
        "dense_series": false,
        "additive_components": false,
        "time_points": 11,
        "series_count": 5,
        "measure_count": 2,
        "legend_cells": 5,
        "normalized_axes": false,
        "same_direction_axes": true,
        "axis_count": 0,
        "sequential_cohort": true,
        "weighted_edges": true,
        "axis_starts_at_zero": true,
        "time_spacing_proportional": true,
        "circle_area_scaled": true
      },
      "accessibility": {
        "alt_text": "A five-by-five transition matrix based on 882 adjacent county-year pairs shows strong diagonal persistence: 73.5% of multi-channel observations stay multi-channel, while 70.5% of violence-only observations stay violence-only.",
        "exact_value_fallback": "../02_figures/exact-values/fig-04_transitions.csv"
      },
      "validation": {"status": "ready", "findings": [], "overrides": []}
    },
    {
      "figure_id": "fig-05-models",
      "chart_id": "dot-and-whisker-plot",
      "question": "Does prior-year music predict next-year protests across the primary model and pre-specified sensitivity checks?",
      "role": "inference",
      "title": "The lag looks large in raw presence, small in the main count model",
      "unit": "Incidence-rate ratio, odds ratio or average marginal effect with county-clustered 95% confidence interval",
      "source": "FARAC v1; authors’ negative-binomial, PPML and binary panel models.",
      "transformations": "Counts use population exposure, county and year effects and lagged protest activity. Binary results use an any-music indicator and are visually separated because their estimand and scale differ. Intervals are exponentiated for IRR/OR.",
      "renderer": "interval",
      "selection_reason": "A dot-and-whisker plot displays the estimate, uncertainty and null directly and keeps specification-dependent extensive-margin evidence separate from the count dose-response.",
      "fallback": "../02_figures/light/fig-05_models.png",
      "consultation": [
        {
          "role": "best_analytical_fit",
          "chart_id": "dot-and-whisker-plot",
          "score": 69.6,
          "reason": "The central task is comparing point estimates and clustered confidence intervals to a null of one."
        },
        {
          "role": "standard_baseline",
          "chart_id": "error-bar-chart",
          "score": 68.85,
          "reason": "A conventional error-bar chart is equivalent but less suited to a labelled vertical specification list."
        },
        {
          "role": "non_standard_challenger",
          "chart_id": "confidence-curve",
          "score": 54.87,
          "reason": "A confidence curve exposes the full compatibility distribution but creates decoding cost for several specifications."
        }
      ],
      "non_standard_candidate_id": "confidence-curve",
      "non_standard_decision": "rejected",
      "non_standard_reason": "The 14.73-point gap and higher decoding burden outweigh the additional inferential detail; exact intervals and p-values are supplied in CSV.",
      "data_profile": {
        "fields": ["model", "estimand", "estimate", "conf_low", "conf_high", "p_value", "n_obs", "n_counties"],
        "row_count": 11,
        "category_count": 11,
        "has_negative": false,
        "has_uncertainty": true,
        "part_to_whole": false,
        "flow_conserved": false,
        "actual_cohorts": false,
        "normalized_rate": true,
        "has_edges": false,
        "component_count": 0,
        "constant_sum": false,
        "cyclical": false,
        "spatial_depth_justified": false,
        "sample_size_per_group": 0,
        "dense_series": false,
        "additive_components": false,
        "time_points": 0,
        "series_count": 1,
        "measure_count": 3,
        "legend_cells": 3,
        "normalized_axes": true,
        "same_direction_axes": true,
        "axis_count": 1,
        "sequential_cohort": false,
        "weighted_edges": false,
        "axis_starts_at_zero": false,
        "time_spacing_proportional": true,
        "circle_area_scaled": true
      },
      "accessibility": {
        "alt_text": "Coefficient intervals show that the primary negative-binomial estimate is close to the null: IRR 1.043, 95% CI 0.987–1.103. PPML is 1.009, 0.930–1.094. Binary any-event specifications are positive but are exploratory and specification-sensitive.",
        "exact_value_fallback": "../02_figures/exact-values/fig-05_models.csv"
      },
      "validation": {
        "status": "ready",
        "findings": ["The x-axis begins above zero because ratios are interpreted around a null of one."],
        "overrides": ["Non-zero-baseline interval axis is required for coefficient precision; the null line at 1 is explicit."]
      }
    },
    {
      "figure_id": "fig-06-coverage",
      "chart_id": "line-chart",
      "question": "How did county and population coverage of the violence series expand from 2013 to 2024?",
      "role": "boundary",
      "title": "Violence coverage expanded in steps, not evenly across Germany",
      "unit": "Covered counties and share of population, 2013–2024",
      "source": "FARAC v1 coverage flags, corrected for Hamburg 2015–2021; authors’ calculations.",
      "transformations": "County coverage is the count of covered counties. Population coverage sums population only in covered counties and divides by national panel population. Hamburg 2015–2021 is corrected to unavailable.",
      "renderer": "line",
      "selection_reason": "A step-like time path makes the measurement-system expansions visible and explains why raw violence totals cannot be read as a homogeneous national trend.",
      "fallback": "../02_figures/light/fig-06_coverage.png",
      "consultation": [
        {
          "role": "best_analytical_fit",
          "chart_id": "line-chart",
          "score": 85.92,
          "reason": "The claim is the timing and magnitude of discrete coverage expansions over twelve ordered years."
        },
        {
          "role": "standard_baseline",
          "chart_id": "multi-series-line-chart",
          "score": 83.92,
          "reason": "A dual line is familiar, but county count and population share require clearly separated scales."
        },
        {
          "role": "non_standard_challenger",
          "chart_id": "braided-line-chart",
          "score": 69.94,
          "reason": "Braiding emphasizes crossings that have no analytical meaning for measures with different units."
        }
      ],
      "non_standard_candidate_id": "braided-line-chart",
      "non_standard_decision": "rejected",
      "non_standard_reason": "The 15.98-point gap and incompatible units make crossings decorative rather than informative; aligned small panels are used instead.",
      "data_profile": {
        "fields": ["year", "covered_counties", "county_coverage_share", "population_coverage_share"],
        "row_count": 12,
        "category_count": 1,
        "has_negative": false,
        "has_uncertainty": false,
        "part_to_whole": false,
        "flow_conserved": false,
        "actual_cohorts": false,
        "normalized_rate": false,
        "has_edges": false,
        "component_count": 0,
        "constant_sum": false,
        "cyclical": false,
        "spatial_depth_justified": false,
        "sample_size_per_group": 0,
        "dense_series": false,
        "additive_components": false,
        "time_points": 12,
        "series_count": 2,
        "measure_count": 2,
        "legend_cells": 2,
        "normalized_axes": false,
        "same_direction_axes": true,
        "axis_count": 2,
        "sequential_cohort": false,
        "weighted_edges": false,
        "axis_starts_at_zero": true,
        "time_spacing_proportional": true,
        "circle_area_scaled": true
      },
      "accessibility": {
        "alt_text": "Two aligned time series show violence coverage rising from 53 counties in 2013 to 92 in 2023 and 145 in 2024. Even in 2024, those counties represent only 46.7% of the panel population.",
        "exact_value_fallback": "../02_figures/exact-values/fig-06_coverage.csv"
      },
      "validation": {"status": "ready", "findings": [], "overrides": []}
    },
    {
      "figure_id": "fig-07-bundesland-aggregate",
      "chart_id": "cleveland-dot-plot",
      "question": "How do the sixteen Länder compare on 2024 music, protest and coverage-qualified violence rates?",
      "role": "scale-comparison",
      "title": "Saxony owns the protest spike; Thuringia the music spike",
      "unit": "Events or incidents per 100,000 residents; violence coverage share; 2024",
      "source": "FARAC v1; authors’ Bundesland aggregation.",
      "transformations": "County counts and population are summed by Land before rates are recomputed. Music and protest use total population. Violence uses covered population, travels with its population coverage share and remains unavailable where coverage is zero. County typologies are retained as a distribution rather than collapsed into a Land label.",
      "renderer": "dot",
      "selection_reason": "Aligned Cleveland dot plots preserve a common Land order and reveal different channel leaders without giving bar area undue visual weight; separate zero-based axes respect the measures’ different ranges.",
      "fallback": "../02_figures/light/fig-07_bundesland-aggregate.png",
      "consultation": [
        {
          "role": "best_analytical_fit",
          "chart_id": "cleveland-dot-plot",
          "score": 77.19,
          "reason": "The task is a precise rank comparison of sixteen named Länder across several aligned measures."
        },
        {
          "role": "standard_baseline",
          "chart_id": "horizontal-bar-chart",
          "score": 77.19,
          "reason": "Horizontal bars are familiar, but four panels would add unnecessary ink and make small nonzero rates harder to compare."
        },
        {
          "role": "non_standard_challenger",
          "chart_id": "combination-matrix",
          "score": 57.31,
          "reason": "A combination matrix could emphasize channel presence, but would discard the rate and coverage magnitudes that define the question."
        }
      ],
      "non_standard_candidate_id": "combination-matrix",
      "non_standard_decision": "rejected",
      "non_standard_reason": "The 19.88-point score gap and loss of magnitude outweigh the set-membership view; exact typology distributions remain available separately.",
      "data_profile": {
        "fields": ["state_ags", "state_name", "music_rate_100k", "protest_rate_100k", "violence_rate_100k_covered_population", "violence_population_coverage_share"],
        "row_count": 16,
        "category_count": 16,
        "has_negative": false,
        "has_uncertainty": false,
        "part_to_whole": false,
        "flow_conserved": false,
        "actual_cohorts": false,
        "normalized_rate": true,
        "has_edges": false,
        "component_count": 0,
        "constant_sum": false,
        "cyclical": false,
        "spatial_depth_justified": false,
        "sample_size_per_group": 16,
        "dense_series": false,
        "additive_components": false,
        "time_points": 1,
        "series_count": 4,
        "measure_count": 4,
        "legend_cells": 0,
        "normalized_axes": false,
        "same_direction_axes": true,
        "axis_count": 4,
        "sequential_cohort": false,
        "weighted_edges": false,
        "axis_starts_at_zero": true,
        "time_spacing_proportional": true,
        "circle_area_scaled": true
      },
      "accessibility": {
        "alt_text": "Four aligned dot plots compare all sixteen Länder in 2024. Thuringia has the highest music-event rate at 1.419 per 100,000, Saxony the highest protest rate at 3.255, and Saxony-Anhalt the highest recorded-violence rate among nine covered Länder at 13.103.",
        "exact_value_fallback": "../02_figures/exact-values/fig-07_bundesland-aggregate.csv"
      },
      "validation": {
        "status": "ready",
        "findings": ["Violence has a different denominator and is unavailable in seven Länder."],
        "overrides": ["Use independent zero-based axes and pair the violence rate with a coverage panel; never rank unavailable Länder as zero."]
      }
    },
    {
      "figure_id": "fig-08-voting-correlation",
      "chart_id": "grouped-scatterplot",
      "question": "How strongly does pre-election far-right activity geography correlate with AfD vote share across six ballots, before and after removing Land means?",
      "role": "relationship-boundary",
      "title": "The national overlap changes with the ballot—and shrinks inside Länder",
      "unit": "AfD valid-vote share and log(1 + activity rate); raw and Land-demeaned",
      "source": "FARAC v1; IP-CURRENT-RESEARCH at commit 898c7a56f6076570e677a1ab04f964d950abf8a8; authors’ separate derived analysis.",
      "transformations": "Six election outcomes are paired with full-calendar FARAC activity in the preceding year. Activity-side counts and population crosswalk from 400 counties to 396 stable regions; the Bundestag 2025 source independently crosswalks 401 official Kreis rows to the same frame through five additive pairs, including Berlin East plus West. AfD votes are divided by valid votes only after aggregation. The selected view correlates vote share with log(1 + rate) or subtracts each Land’s mean from both variables. East, West and Berlin are visual context groups, not model strata; Bundestag and European Parliament ballots remain selectable but are never pooled.",
      "renderer": "scatter",
      "selection_reason": "A ballot rail plus grouped scatterplot exposes the full zero-heavy regional distribution, regional composition, channel-specific coverage and within-Land attenuation without hiding the 396 observations behind a pooled coefficient.",
      "fallback": "../02_figures/light/fig-08_voting-correlation.png",
      "consultation": [
        {
          "role": "best_analytical_fit",
          "chart_id": "grouped-scatterplot",
          "score": 76.3,
          "reason": "The relationship, regional composition, selected ballot and within-Land attenuation remain visible at the exact-region level."
        },
        {
          "role": "standard_baseline",
          "chart_id": "scatterplot",
          "score": 70.3,
          "reason": "A plain scatterplot shows association but hides the East–West composition that explains much of the national pattern."
        },
        {
          "role": "non_standard_challenger",
          "chart_id": "2d-density-plot",
          "score": 73.7,
          "reason": "Density contours would reveal the crowded core but obscure exact stable regions, the zero-heavy activity mass and influential observations."
        }
      ],
      "non_standard_candidate_id": "2d-density-plot",
      "non_standard_decision": "rejected",
      "non_standard_reason": "The challenger is eligible but not promoted under the high-stakes evidence rule: a 2D density plot hides exact regions, the structural zero mass and influential observations that readers must be able to inspect. The grouped scatter also scores 2.6 points higher.",
      "data_profile": {
        "fields": ["event_id", "election_family", "election_year", "activity_year", "stable_region_id", "state_name", "regional_context", "afd_vote_share_pct", "music_rate_100k", "protest_rate_100k", "violence_rate_100k_complete", "violence_coverage_complete"],
        "row_count": 2376,
        "category_count": 3,
        "has_negative": true,
        "has_uncertainty": false,
        "part_to_whole": false,
        "flow_conserved": false,
        "actual_cohorts": false,
        "normalized_rate": true,
        "has_edges": false,
        "component_count": 0,
        "constant_sum": false,
        "cyclical": false,
        "spatial_depth_justified": false,
        "sample_size_per_group": 396,
        "dense_series": true,
        "additive_components": false,
        "time_points": 6,
        "series_count": 3,
        "measure_count": 5,
        "legend_cells": 3,
        "normalized_axes": false,
        "same_direction_axes": true,
        "axis_count": 2,
        "sequential_cohort": false,
        "weighted_edges": false,
        "axis_starts_at_zero": false,
        "time_spacing_proportional": true,
        "circle_area_scaled": true
      },
      "accessibility": {
        "alt_text": "An election-selectable scatterplot compares six prior-year activity windows with AfD vote share in 396 stable regions. In the default Bundestag 2025 view, raw music and protest correlations are 0.430 and 0.370; after both axes are demeaned within each Land they fall to 0.236 and 0.037. Violence is shown only for 142 coverage-complete regions and changes from 0.347 raw to −0.349 within Länder.",
        "exact_value_fallback": "../02_figures/exact-values/fig-08_voting-correlation.csv"
      },
      "validation": {
        "status": "ready",
        "findings": ["Observations are spatially dependent and activity is located by event rather than voter residence.", "The six election contexts are reader-selectable but never pooled; violence samples vary with coverage."],
        "overrides": ["Trend lines, r values and HC3 summaries are descriptive only; no causal arrow, significance badge or confidence band is shown.", "Expose ballot year, paired activity year, sample size and coverage rule in the interface and exact-value table."]
      }
    },
    {
      "figure_id": "fig-09-bundestag-history",
      "chart_id": "event-state-timeline",
      "question": "Which Bundestag elections from 2002 to 2025 have an admitted AfD result, and which can be paired with preceding-year FARAC activity?",
      "role": "availability-boundary",
      "title": "The archive begins in 2002. The correlatable Bundestag series begins in 2017.",
      "unit": "Governed election-evidence state; national AfD second-vote share where admitted",
      "source": "IP-CURRENT-RESEARCH at commit 898c7a56f6076570e677a1ab04f964d950abf8a8; Specs 004A, 017A, 011E/014A1 and 017B2A/B2B/B2C; authors’ availability classification.",
      "transformations": "Retain seven ordered Bundestag event identities. Mark 2002, 2005 and 2009 as context-only because the AfD was not on the ballot and the pinned release admits no comparable outcome; mark 2013 as vote-only because FARAC lacks 2012; pair only 2017 with 2016, 2021 with 2020 and 2025 with 2024. Derive national shares by summing AfD and valid second-vote counts across 396 stable regions before division. Never convert unavailable outcomes to zero or substitute another party.",
      "renderer": "state",
      "selection_reason": "An event-state timeline makes the evidence discontinuity itself visible, preserves proportional election spacing and lets readers inspect every election without admitting blocked values into the correlation chart.",
      "fallback": "../downloads/bundestag-election-history.csv",
      "consultation": [
        {
          "role": "best_analytical_fit",
          "chart_id": "event-state-timeline",
          "score": 85.42,
          "reason": "The question is a sequence of governed states—context-only, vote-only and paired—rather than a continuous result trend."
        },
        {
          "role": "standard_baseline",
          "chart_id": "process-flowchart",
          "score": 69.4,
          "reason": "A conventional ordered flow can communicate eligibility but loses calendar spacing and election-specific inspection."
        },
        {
          "role": "non_standard_challenger",
          "chart_id": "markov-chain-diagram",
          "score": 85.42,
          "reason": "The routed challenger fits categorical states but would falsely imply transition probabilities or a stochastic process."
        }
      ],
      "non_standard_candidate_id": "markov-chain-diagram",
      "non_standard_decision": "rejected",
      "non_standard_reason": "Equal registry score does not overcome the semantic failure: elections do not transition probabilistically between evidence states. A chronological state timeline is the honest form.",
      "data_profile": {
        "fields": ["event_id", "election_year", "election_date", "party_status", "outcome_status", "analysis_status", "national_afd_share_pct", "matched_activity_year", "exclusion_code"],
        "row_count": 7,
        "category_count": 3,
        "has_negative": false,
        "has_uncertainty": false,
        "part_to_whole": false,
        "flow_conserved": false,
        "actual_cohorts": false,
        "normalized_rate": false,
        "has_edges": false,
        "component_count": 3,
        "constant_sum": false,
        "cyclical": false,
        "spatial_depth_justified": false,
        "sample_size_per_group": 0,
        "dense_series": false,
        "additive_components": false,
        "time_points": 7,
        "series_count": 1,
        "measure_count": 2,
        "legend_cells": 3,
        "normalized_axes": false,
        "same_direction_axes": true,
        "axis_count": 0,
        "sequential_cohort": false,
        "weighted_edges": false,
        "axis_starts_at_zero": true,
        "time_spacing_proportional": true,
        "circle_area_scaled": false
      },
      "accessibility": {
        "alt_text": "A proportional timeline shows seven Bundestag elections from 2002 to 2025. Elections in 2002, 2005 and 2009 are context-only because the AfD was not on the ballot and no comparable outcome is admitted; 2013 has a result but no preceding FARAC year; 2017, 2021 and 2025 pair with activity in 2016, 2020 and 2024.",
        "exact_value_fallback": "../downloads/bundestag-election-history.csv"
      },
      "validation": {
        "status": "ready",
        "findings": ["Context-only and vote-only events are inspectable but never enter the scatter, correlations or regressions.", "Outcome non-admission, party nonparticipation and absent FARAC years are distinct states."],
        "overrides": ["Marker fill is redundant with direct status text and an exact table; national shares start in 2013 and are not connected across earlier elections."]
      }
    }
  ]
}
