You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
4.8 KiB
93 lines
4.8 KiB
---
|
|
title: Overton window analysis narrative architecture
|
|
date: 2026-06-06
|
|
category: best-practices
|
|
module: analysis/right_wing
|
|
problem_type: architecture_pattern
|
|
component: development_workflow
|
|
severity: medium
|
|
applies_when:
|
|
- "organizing multi-report analytical projects into a coherent narrative"
|
|
- "connecting static reports to live dashboards"
|
|
- "identifying gaps between parallel analytical tracks"
|
|
tags:
|
|
- overton-window
|
|
- narrative-architecture
|
|
- report-organization
|
|
- dashboard-integration
|
|
- quarto
|
|
---
|
|
|
|
# Overton window analysis narrative architecture
|
|
|
|
## Context
|
|
|
|
The Overton window analysis produced 17 reports across `reports/overton_window/`, 3 live Streamlit Explorer dashboards, and a project-local scoring skill — but these pieces were built incrementally across sessions and never organized into a coherent narrative. The reports cross-reference each other inconsistently, overlap with dashboard data, and lack a clear reading order.
|
|
|
|
## Guidance
|
|
|
|
### 1. Three-tier narrative structure
|
|
|
|
Organize analytical outputs into three tiers, each with a different audience and purpose:
|
|
|
|
| Tier | Audience | Format | Content |
|
|
|------|----------|--------|---------|
|
|
| **Narrative spine** | Everyone | Quarto article (`.qmd`) | The coherent story: what happened, why, and what it means |
|
|
| **Detailed appendices** | Researchers | Markdown reports in `reports/overton_window/` | Per-indicator deep dives with full methodology |
|
|
| **Live exploration** | Power users | Streamlit Explorer tab | Interactive drill-down into the underlying data |
|
|
|
|
The narrative spine references appendices for detail. Appendices reference each other where analyses overlap. The live dashboard links back to the narrative via explanatory text.
|
|
|
|
### 2. Centrist definition must be consistent across all outputs
|
|
|
|
The strict 4-party definition (D66, CDA, CU, NSC) is the canonical one — it isolates the genuine center and produces cleaner signals. The 6-party definition (adding VVD, BBB) appeared in early iterations and survives in some reports. Every public-facing output must use the strict definition or explicitly note when the wide definition is used for comparison.
|
|
|
|
### 3. Live dashboards are part of the story
|
|
|
|
The Streamlit Explorer already shows the SVD compass (Tab A), party trajectories (Tab B), and component decomposition (Tab C) — all of which directly visualize Overton window dynamics. The gap is that:
|
|
|
|
- No tab explicitly labels itself as "Overton analysis"
|
|
- No tab shows right-wing motion centrist support trends
|
|
- No tab shows 2D extremity scoring results
|
|
- The browser.py/search.py tabs exist but aren't wired
|
|
|
|
Adding a dedicated "Overton Window" tab or retrofitting the existing compass tab with an Overton context panel connects the static analysis to the live data surface.
|
|
|
|
### 4. Quarto bridges static reports and interactive dashboards
|
|
|
|
Static HTML (overton_report.html) is a dead-end artifact — it can't be updated without regeneration and can't be filtered or zoomed. Quarto `.qmd` files with embedded Plotly charts solve this:
|
|
|
|
- Interactive centrist support trend lines with hover tooltips
|
|
- Filterable 2D extremity scatter plots
|
|
- Linked views between SVD drift and centrist support
|
|
- Self-contained HTML output with embedded data
|
|
|
|
The existing `plotly` dependency (6.6.0) works directly in Quarto's Jupyter engine.
|
|
|
|
### 5. Remove, don't accumulate
|
|
|
|
Not every report earned its place. Remove:
|
|
- `findings_report.md` — fully superseded by synthesis
|
|
- `blog_post.html` — replace with Quarto version
|
|
- Duplicate analysis between breakpoint and synthesis — keep breakpoint as appendix only
|
|
|
|
### 6. Master build script for reproducibility
|
|
|
|
A single `analysis/right_wing/build_all_reports.py` that runs every analysis script in dependency order and verifies output existence. This guarantees that any future researcher can regenerate the entire Overton analysis from the same database state.
|
|
|
|
## Why This Matters
|
|
|
|
Without narrative architecture, a multi-session analytical project produces a fragmented artifact: individual reports are technically correct but nobody can follow the story from question to answer. The three-tier structure (narrative spine → appendices → live dashboard) maps to how different readers consume the work: skim the spine, drill into appendices for detail, explore the dashboard for their own questions.
|
|
|
|
## When to Apply
|
|
|
|
- Any analytical project that spans multiple sessions and produces more than 5 output files
|
|
- When static reports overlap with live dashboards
|
|
- When reports need to survive beyond the session that created them
|
|
|
|
## Related
|
|
|
|
- `reports/overton_window/overton_window_synthesis.md` — current master synthesis
|
|
- `reports/overton_window/overton_report.html` — current static HTML deliverable
|
|
- `.opencode/skills/score-extremity/SKILL.md` — 2D scoring methodology
|
|
- `docs/solutions/best-practices/overton-window-shift-methodology-2026-05-24.md` — 7-step methodology
|
|
|