overton analysis explorer page push

main
Sven Geboers 18 hours ago
parent 19e8d5b8ba
commit bb8ce65ec9
  1. 17
      analysis/tabs/compass.py
  2. 12
      analysis/tabs/overton.py
  3. 5
      analysis/tabs/trajectories.py

@ -185,18 +185,15 @@ def build_compass_tab(db_path: str, window_size: str) -> None:
with st.expander("Overton Window Context"):
st.markdown(
"The SVD compass visualizes the dynamics behind the "
"**widening of the Overton window** in the Dutch parliament.\n\n"
"Centrist support for right-wing motions rose from 25% to 51% after 2024, "
"while support for left-wing motions stayed flat. The window widened: "
"more right-wing positions became acceptable.\n\n"
"But **centrist parties** (D66, CDA, CU, NSC) moved **left on both axes** "
"while right-wing parties stayed put. This pattern of "
'"acceptance without conversion" means right-wing parties filed milder '
"motions, and centrists could vote along more often, "
"The SVD compass reflects changes in voting patterns after 2024.\n\n"
"Centrist support for right-wing motions rose from 25% to 51%, "
"while support for left-wing motions stayed flat.\n\n"
"Centrist parties (D66, CDA, CU, NSC) moved left on both axes "
"while right-wing parties stayed put. Right-wing parties filed milder "
"motions, so centrists could vote along more often "
"without shifting ideologically to the right.\n\n"
"[Read the full analysis](../reports/overton_window/overton_window.qmd)\n\n"
"Try the **Stemwijzer quiz** to see which MP matches your positions."
"Try the Stemwijzer quiz to see which MP matches your positions."
)
st.markdown("---")
st.markdown(

@ -17,9 +17,9 @@ def build_overton_tab(db_path: str) -> None:
"""Build the Overton Window tab."""
st.subheader("Overton Window Analysis")
st.markdown(
"The Overton window **widened** after 2024: centrist support for right-wing "
"motions rose from 25% to 51%, while support for left-wing motions stayed flat. "
"Right-wing parties filed milder motions, allowing centrists to vote along "
"After 2024, centrist support for right-wing motions increased from 25% to 51%, "
"while support for left-wing motions remained flat. "
"Right-wing parties filed milder motions, so centrists could vote along "
"without shifting ideologically."
)
@ -141,8 +141,8 @@ def _render_summary_stats(con: duckdb.DuckDBPyConnection) -> None:
def _render_migration_gateway(con: duckdb.DuckDBPyConnection) -> None:
st.subheader("Migration: the gateway domain")
st.markdown(
"Migration is where the Overton shift is most genuine, and where "
"right-wing parties learned the frames they later applied to other domains."
"Migration showed the largest shift in centrist support. "
"Framing patterns first used here later appeared in other policy domains."
)
df = con.execute("""
@ -197,7 +197,7 @@ def _render_motion_browser(con: duckdb.DuckDBPyConnection) -> None:
df = df.rename(columns={
"year": "Year",
"title": "Title",
"text": "Motion text",
"body_text": "Motion text",
"centrist_support_strict": "Centrist Support",
"category": "Category",
})

@ -667,10 +667,9 @@ def build_trajectories_tab(db_path: str, window_size: str) -> None:
try:
st.plotly_chart(fig, use_container_width=True)
st.info(
"**Overton window widened:** after PVV's election victory (Nov 2023), "
"centrist support for right-wing motions rose from 25% to 51%, "
"After 2024, centrist support for right-wing motions rose from 25% to 51%, "
"while support for left-wing motions stayed flat. "
"Right-wing parties moderated their motions; centrists voted along more often."
"Right-wing parties filed milder motions; centrists voted along more often."
)
except Exception as e:
st.error(f"Trajectories rendering failed: {e}")

Loading…
Cancel
Save