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.
556 lines
32 KiB
556 lines
32 KiB
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Overton Window Analysis | Dutch Parliament 2016-2026</title>
|
|
<style>
|
|
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
body {
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
color: #1a1a2e;
|
|
background: #f8f9fa;
|
|
line-height: 1.6;
|
|
font-size: 15px;
|
|
}
|
|
.container { max-width: 900px; margin: 0 auto; padding: 40px 24px; background: #fff; }
|
|
|
|
/* Header */
|
|
.header { text-align: center; padding: 48px 0 32px; border-bottom: 2px solid #e8ecef; margin-bottom: 40px; }
|
|
.header h1 { font-size: 28px; font-weight: 700; color: #1a1a2e; letter-spacing: -0.3px; }
|
|
.header .subtitle { font-size: 16px; color: #5a6a7a; margin-top: 8px; max-width: 600px; margin-left: auto; margin-right: auto; }
|
|
.header .meta { font-size: 12px; color: #8a9aa8; margin-top: 12px; letter-spacing: 0.5px; text-transform: uppercase; }
|
|
|
|
/* Section headings */
|
|
h2 { font-size: 20px; font-weight: 600; color: #1a1a2e; margin: 44px 0 16px; padding-bottom: 8px; border-bottom: 1px solid #e8ecef; }
|
|
h3 { font-size: 16px; font-weight: 600; color: #1a1a2e; margin: 24px 0 12px; }
|
|
|
|
/* Body text */
|
|
p { margin-bottom: 14px; color: #2d3a45; font-size: 14.5px; }
|
|
.text-small { font-size: 12.5px; color: #6a7a8a; }
|
|
|
|
/* Bar charts */
|
|
.bar-group { margin: 16px 0; padding: 8px 0; }
|
|
.bar-label { display: flex; justify-content: space-between; font-size: 12.5px; color: #4a5a6a; margin-bottom: 4px; }
|
|
.bar-label .n-count { color: #8a9aa8; font-size: 11.5px; }
|
|
.bar-track { height: 24px; background: #e8ecef; border-radius: 4px; overflow: hidden; margin-bottom: 2px; position: relative; }
|
|
.bar-track + .bar-track { margin-top: 2px; }
|
|
.bar-fill { height: 100%; border-radius: 4px; transition: width 0.3s; }
|
|
.bar-fill.pre { background: #8a9aa8; }
|
|
.bar-fill.post { background: #2563eb; }
|
|
.bar-legend { display: flex; gap: 20px; font-size: 12px; color: #4a5a6a; margin: 4px 0 16px; }
|
|
.bar-legend span { display: flex; align-items: center; gap: 6px; }
|
|
.bar-legend .swatch { display: inline-block; width: 14px; height: 14px; border-radius: 3px; }
|
|
.bar-legend .swatch.pre { background: #8a9aa8; }
|
|
.bar-legend .swatch.post { background: #2563eb; }
|
|
|
|
/* Section 4 and 5 charts */
|
|
.chart-block { margin-bottom: 32px; background: #f8f9fa; border-radius: 8px; padding: 20px; }
|
|
|
|
/* Note box */
|
|
.note { background: #f0f4f8; border-left: 3px solid #2563eb; padding: 12px 16px; margin: 16px 0; font-size: 13px; color: #3a4a5a; border-radius: 0 6px 6px 0; }
|
|
|
|
/* Example motion boxes */
|
|
.motion-box { background: #f8f9fa; border-radius: 8px; padding: 20px; margin: 16px 0; border: 1px solid #e8ecef; }
|
|
.motion-box h3 { margin-top: 0; font-size: 15px; }
|
|
.motion-box .motion-id { font-size: 11.5px; color: #8a9aa8; text-transform: uppercase; letter-spacing: 0.5px; }
|
|
.motion-box .motion-title { font-style: italic; color: #2d3a45; margin: 4px 0 10px; font-size: 13.5px; }
|
|
.motion-stats { display: flex; flex-wrap: wrap; gap: 16px; margin: 10px 0; }
|
|
.motion-stat { background: #fff; border-radius: 6px; padding: 8px 14px; border: 1px solid #e8ecef; flex: 1; min-width: 100px; }
|
|
.motion-stat .stat-label { font-size: 11px; color: #8a9aa8; text-transform: uppercase; letter-spacing: 0.3px; }
|
|
.motion-stat .stat-value { font-size: 18px; font-weight: 600; color: #1a1a2e; margin-top: 2px; }
|
|
.motion-box p { font-size: 13.5px; color: #4a5a6a; margin-bottom: 0; }
|
|
|
|
/* Yearly table */
|
|
.data-table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 12px 0; }
|
|
.data-table th { text-align: left; padding: 8px 12px; background: #f0f4f8; color: #3a4a5a; font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: 0.3px; border-bottom: 2px solid #d0d8e0; }
|
|
.data-table td { padding: 8px 12px; border-bottom: 1px solid #e8ecef; color: #2d3a45; }
|
|
.data-table tr:hover td { background: #f8f9fa; }
|
|
.data-table .num { text-align: right; font-variant-numeric: tabular-nums; }
|
|
.data-table .change-up { color: #2563eb; }
|
|
.data-table .change-down { color: #8a9aa8; }
|
|
|
|
/* Sparkline bars */
|
|
.sparkline { display: flex; align-items: flex-end; gap: 4px; height: 120px; padding: 16px 0; }
|
|
.spark-col { display: flex; flex-direction: column; align-items: center; flex: 1; }
|
|
.spark-bar { width: 100%; max-width: 50px; min-height: 4px; background: #2563eb; border-radius: 3px 3px 0 0; transition: height 0.3s; }
|
|
.spark-bar.low-n { background: #b0c0d0; }
|
|
.spark-label { font-size: 10.5px; color: #6a7a8a; margin-top: 6px; text-align: center; }
|
|
|
|
/* Side-by-side right wing section */
|
|
.two-col { display: flex; gap: 24px; margin: 16px 0; }
|
|
.two-col > div { flex: 1; background: #f8f9fa; border-radius: 8px; padding: 20px; }
|
|
.two-col h3 { margin-top: 0; font-size: 15px; }
|
|
.big-stat { font-size: 36px; font-weight: 700; color: #1a1a2e; line-height: 1.1; margin: 8px 0; }
|
|
.big-stat .sub { font-size: 14px; font-weight: 400; color: #6a7a8a; }
|
|
.pre-post-row { display: flex; justify-content: space-between; margin: 4px 0; font-size: 13px; color: #4a5a6a; }
|
|
|
|
/* Heatmap */
|
|
.heatmap { width: 100%; border-collapse: collapse; font-size: 13px; margin: 12px 0; }
|
|
.heatmap th { padding: 8px 12px; background: #f0f4f8; color: #3a4a5a; font-weight: 600; font-size: 12px; text-align: center; border-bottom: 2px solid #d0d8e0; }
|
|
.heatmap th:first-child { text-align: left; }
|
|
.heatmap td { padding: 10px 12px; text-align: center; border-bottom: 1px solid #e8ecef; font-variant-numeric: tabular-nums; }
|
|
.heatmap td:first-child { text-align: left; font-weight: 500; color: #3a4a5a; }
|
|
.heatmap .cell-val { font-weight: 600; font-size: 14px; }
|
|
.heatmap .cell-pct { font-size: 11px; color: #8a9aa8; }
|
|
.heatmap .highlight { background: #2563eb; color: #fff; border-radius: 4px; }
|
|
.heatmap .highlight .cell-pct { color: rgba(255,255,255,0.75); }
|
|
.heatmap .highlight .cell-val { color: #fff; }
|
|
.hm-mid { background: #eef4fc; }
|
|
.hm-low { background: #f8f9fa; }
|
|
|
|
/* Takeaways */
|
|
.verdict { background: #f0f4f8; border-radius: 8px; padding: 24px; margin: 16px 0; border: 1px solid #e0e8f0; }
|
|
.verdict ul { list-style: none; padding: 0; }
|
|
.verdict li { padding: 8px 0; border-bottom: 1px solid #e0e8f0; font-size: 14px; color: #2d3a45; }
|
|
.verdict li:last-child { border-bottom: none; }
|
|
.verdict li strong { color: #1a1a2e; }
|
|
|
|
/* Footer */
|
|
.footer { text-align: center; padding: 32px 0 16px; border-top: 1px solid #e8ecef; margin-top: 40px; font-size: 12px; color: #8a9aa8; }
|
|
|
|
/* Responsive */
|
|
@media (max-width: 640px) {
|
|
.container { padding: 20px 16px; }
|
|
.two-col { flex-direction: column; }
|
|
.motion-stats { flex-direction: column; }
|
|
.header h1 { font-size: 22px; }
|
|
.spark-label { font-size: 9px; }
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
|
|
<!-- 1. Header -->
|
|
<div class="header">
|
|
<h1>The Overton Window in the Dutch Parliament</h1>
|
|
<div class="subtitle">A gravity-model analysis of 29,591 parliamentary motions from 2016 to 2026 reveals how the window of acceptable policy debate shifted after the 2024 Schoof cabinet formation.</div>
|
|
<div class="meta">Analysis based on voting records · Data: motions.db · Period: 2016–2026</div>
|
|
</div>
|
|
|
|
<!-- 2. What Is the Overton Window -->
|
|
<h2>What Is the Overton Window</h2>
|
|
<p>The Overton window describes the range of policy ideas that are politically acceptable at a given time. In the Dutch parliamentary context, we operationalise this by measuring centrist support for motions at varying levels of policy extremity. The core question is not whether extreme motions pass, but whether centrist parties are willing to support them at all — a signal that a policy position has entered the realm of acceptable debate.</p>
|
|
<p>We model acceptability using a gravity framework: each motion is assigned a gravity level (M1 through M5) based on its combined stylistic and material extremity. Higher gravity levels correspond to more extreme motions. The formation of the Schoof cabinet in July 2024 serves as the watershed. By comparing centrist support before and after this date, we can measure whether the Overton window shifted — and if so, by how much.</p>
|
|
|
|
<!-- 3. Methodology -->
|
|
<h2>Methodology</h2>
|
|
<p>Each motion was scored on two independent dimensions by an LLM-based classifier: <strong>stijl</strong> (rhetorical extremity, 1–5) and <strong>materieel</strong> (policy impact, 1–5). The gravity level is derived from the combined scores. Centrist support is measured as the fraction of centrist parties that voted in favour. The <strong>canonical definition</strong> uses 4 strict centrist parties: D66, CDA, CU, and NSC. A broader <strong>all-party</strong> model (including VVD, BBB, and other non-extreme parties) is shown for comparison.</p>
|
|
<p>The dataset contains <strong>29,591</strong> motions. The pre-2024 period (January 2016 to June 2024) covers 21,695 motions; the post-2024 period (July 2024 to present) covers 7,875 motions. Mean stylistic extremity: <strong>1.36</strong> (on a 1–5 scale). Mean material extremity: <strong>2.12</strong>. The Pearson correlation between the two dimensions is <strong>r = 0.43</strong> (excluding placeholder motions, r = 0.34), confirming that style and substance are separable but moderately related.</p>
|
|
|
|
<!-- 4. Gravity-Controlled Analysis -->
|
|
<h2>Gravity-Controlled Analysis</h2>
|
|
<p>Centrist support (all-party definition) by gravity level, before and after July 2024. As expected, higher gravity levels show lower centrist support. The post-2024 window shows increased centrist support at levels M3 and above, consistent with a rightward shift in the Overton window.</p>
|
|
|
|
<div class="chart-block">
|
|
<div class="bar-legend">
|
|
<span><span class="swatch pre"></span> Pre-2024</span>
|
|
<span><span class="swatch post"></span> Post-2024</span>
|
|
</div>
|
|
|
|
<div class="bar-group">
|
|
<div class="bar-label">
|
|
<span>M1 — Lowest extremity</span>
|
|
<span class="n-count">Pre: 4,495 · Post: 2,068</span>
|
|
</div>
|
|
<div class="bar-track"><div class="bar-fill pre" style="width: 71.5%"></div></div>
|
|
<div class="bar-label" style="margin-top:1px"><span></span><span>Pre: 0.715 / Post: 0.655</span></div>
|
|
<div class="bar-track"><div class="bar-fill post" style="width: 65.5%"></div></div>
|
|
</div>
|
|
|
|
<div class="bar-group">
|
|
<div class="bar-label">
|
|
<span>M2</span>
|
|
<span class="n-count">Pre: 10,979 · Post: 3,698</span>
|
|
</div>
|
|
<div class="bar-track"><div class="bar-fill pre" style="width: 61.4%"></div></div>
|
|
<div class="bar-label" style="margin-top:1px"><span></span><span>Pre: 0.614 / Post: 0.632</span></div>
|
|
<div class="bar-track"><div class="bar-fill post" style="width: 63.2%"></div></div>
|
|
</div>
|
|
|
|
<div class="bar-group">
|
|
<div class="bar-label">
|
|
<span>M3</span>
|
|
<span class="n-count">Pre: 4,984 · Post: 1,730</span>
|
|
</div>
|
|
<div class="bar-track"><div class="bar-fill pre" style="width: 42.3%"></div></div>
|
|
<div class="bar-label" style="margin-top:1px"><span></span><span>Pre: 0.423 / Post: 0.449</span></div>
|
|
<div class="bar-track"><div class="bar-fill post" style="width: 44.9%"></div></div>
|
|
</div>
|
|
|
|
<div class="bar-group">
|
|
<div class="bar-label">
|
|
<span>M4</span>
|
|
<span class="n-count">Pre: 1,076 · Post: 346</span>
|
|
</div>
|
|
<div class="bar-track"><div class="bar-fill pre" style="width: 26.7%"></div></div>
|
|
<div class="bar-label" style="margin-top:1px"><span></span><span>Pre: 0.267 / Post: 0.278</span></div>
|
|
<div class="bar-track"><div class="bar-fill post" style="width: 27.8%"></div></div>
|
|
</div>
|
|
|
|
<div class="bar-group">
|
|
<div class="bar-label">
|
|
<span>M5 — Highest extremity</span>
|
|
<span class="n-count">Pre: 161 · Post: 33</span>
|
|
</div>
|
|
<div class="bar-track"><div class="bar-fill pre" style="width: 13.8%"></div></div>
|
|
<div class="bar-label" style="margin-top:1px"><span></span><span>Pre: 0.138 / Post: 0.229</span></div>
|
|
<div class="bar-track"><div class="bar-fill post" style="width: 22.9%"></div></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="note">
|
|
<strong>Interpretation.</strong> The gravity ranking is sensible: higher gravity levels consistently show lower centrist support. Post-2024, centrist support increased at levels M3 through M5, with the largest relative gain at M5 (from 0.138 to 0.229). At M1, centrist support actually decreased slightly post-2024, suggesting that the window shift primarily affected more extreme motions rather than broadening consensus on low-extremity proposals.
|
|
</div>
|
|
|
|
<!-- 5. Strict 4-Party Centrist Model -->
|
|
<h2>Strict 4-Party Centrist Model</h2>
|
|
<p>Using the strict centrist definition (D66, CDA, CU, NSC), centrist support values are lower across all gravity levels, as expected. The strict model isolates the behaviour of the ideological centre without dilution by adjacent parties.</p>
|
|
|
|
<div class="chart-block">
|
|
<div class="bar-legend">
|
|
<span><span class="swatch pre"></span> Pre-2024</span>
|
|
<span><span class="swatch post"></span> Post-2024</span>
|
|
</div>
|
|
|
|
<div class="bar-group">
|
|
<div class="bar-label">
|
|
<span>M1 — Lowest extremity</span>
|
|
<span class="n-count">Pre: 4,495 · Post: 2,068</span>
|
|
</div>
|
|
<div class="bar-track"><div class="bar-fill pre" style="width: 71.8%"></div></div>
|
|
<div class="bar-label" style="margin-top:1px"><span></span><span>Pre: 0.718 / Post: 0.647</span></div>
|
|
<div class="bar-track"><div class="bar-fill post" style="width: 64.7%"></div></div>
|
|
</div>
|
|
|
|
<div class="bar-group">
|
|
<div class="bar-label">
|
|
<span>M2</span>
|
|
<span class="n-count">Pre: 10,979 · Post: 3,698</span>
|
|
</div>
|
|
<div class="bar-track"><div class="bar-fill pre" style="width: 60.8%"></div></div>
|
|
<div class="bar-label" style="margin-top:1px"><span></span><span>Pre: 0.608 / Post: 0.659</span></div>
|
|
<div class="bar-track"><div class="bar-fill post" style="width: 65.9%"></div></div>
|
|
</div>
|
|
|
|
<div class="bar-group">
|
|
<div class="bar-label">
|
|
<span>M3</span>
|
|
<span class="n-count">Pre: 4,984 · Post: 1,730</span>
|
|
</div>
|
|
<div class="bar-track"><div class="bar-fill pre" style="width: 39.1%"></div></div>
|
|
<div class="bar-label" style="margin-top:1px"><span></span><span>Pre: 0.391 / Post: 0.475</span></div>
|
|
<div class="bar-track"><div class="bar-fill post" style="width: 47.5%"></div></div>
|
|
</div>
|
|
|
|
<div class="bar-group">
|
|
<div class="bar-label">
|
|
<span>M4</span>
|
|
<span class="n-count">Pre: 1,076 · Post: 346</span>
|
|
</div>
|
|
<div class="bar-track"><div class="bar-fill pre" style="width: 18.9%"></div></div>
|
|
<div class="bar-label" style="margin-top:1px"><span></span><span>Pre: 0.189 / Post: 0.238</span></div>
|
|
<div class="bar-track"><div class="bar-fill post" style="width: 23.8%"></div></div>
|
|
</div>
|
|
|
|
<div class="bar-group">
|
|
<div class="bar-label">
|
|
<span>M5 — Highest extremity</span>
|
|
<span class="n-count">Pre: 161 · Post: 33</span>
|
|
</div>
|
|
<div class="bar-track"><div class="bar-fill pre" style="width: 4.4%"></div></div>
|
|
<div class="bar-label" style="margin-top:1px"><span></span><span>Pre: 0.044 / Post: 0.101</span></div>
|
|
<div class="bar-track"><div class="bar-fill post" style="width: 10.1%"></div></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="note">
|
|
<strong>Interpretation.</strong> Under the strict 4-party model, cs_strict values are indeed lower than the all-party figures. At M5, the centrist core went from cs_strict = 0.044 pre-2024 to 0.101 post-2024 — a 2.3x relative increase but still very low in absolute terms. This suggests that while the strict centrist core became more tolerant of extreme motions after the 2024 watershed, the absolute level of acceptance remains modest. The shift is real but not transformative for the most extreme proposals.
|
|
</div>
|
|
|
|
<!-- 6. Example Motions -->
|
|
<h2>Example Motions</h2>
|
|
<p>Three motions illustrate different patterns in the Overton window shift.</p>
|
|
|
|
<div class="motion-box">
|
|
<div class="motion-id">Motion 144 · Hidden Impact</div>
|
|
<div class="motion-title">Motie van het lid Eerdmans over zich inzetten voor juridische en politieke ruimte om asielprocedures buiten de EU te kunnen afhandelen</div>
|
|
<p>This motion proposes external processing of asylum procedures outside the EU. It scores <strong>stijl = 1</strong> (neutral legal language, no rhetorical escalation) but <strong>materieel = 4</strong> (fundamental policy reform). The modest stylistic framing masks the substantive ambition. The strict centrist support (cs_strict) rose from <strong>0.00</strong> pre-2024 to <strong>1.00</strong> post-2024 — a motion that no centrist party would touch before the Schoof cabinet became universally acceptable after.</p>
|
|
<div class="motion-stats">
|
|
<div class="motion-stat"><div class="stat-label">Stijl</div><div class="stat-value">1</div></div>
|
|
<div class="motion-stat"><div class="stat-label">Materieel</div><div class="stat-value">4</div></div>
|
|
<div class="motion-stat"><div class="stat-label">CS strict pre</div><div class="stat-value">0.00</div></div>
|
|
<div class="motion-stat"><div class="stat-label">CS strict post</div><div class="stat-value">1.00</div></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="motion-box">
|
|
<div class="motion-id">Motion 28109 · The Line</div>
|
|
<div class="motion-title">Motie van de leden Van Haga en Smolders over het Vluchtelingenverdrag uit 1951 opzeggen</div>
|
|
<p>This motion calls for withdrawing from the 1951 Refugee Convention. It scores <strong>stijl = 5</strong> and <strong>materieel = 5</strong> — maximum extremity on both dimensions. Despite the broader post-2024 shift in the Overton window, strict centrist support remained at <strong>0.00</strong> both before and after the watershed. Some positions remain outside the window of acceptability regardless of the political climate.</p>
|
|
<div class="motion-stats">
|
|
<div class="motion-stat"><div class="stat-label">Stijl</div><div class="stat-value">5</div></div>
|
|
<div class="motion-stat"><div class="stat-label">Materieel</div><div class="stat-value">5</div></div>
|
|
<div class="motion-stat"><div class="stat-label">CS strict pre</div><div class="stat-value">0.00</div></div>
|
|
<div class="motion-stat"><div class="stat-label">CS strict post</div><div class="stat-value">0.00</div></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="motion-box">
|
|
<div class="motion-id">Motion 306 · The Shift</div>
|
|
<div class="motion-title">Motie van de leden Boomsma en Van Zanten over maatregelen voor de vrijwillige terugkeer van Syriërs</div>
|
|
<p>This motion proposes measures for voluntary return of Syrians. It scores <strong>stijl = 2</strong> and <strong>materieel = 3</strong> — moderate on both dimensions. Strict centrist support went from <strong>0.00</strong> pre-2024 to <strong>1.00</strong> post-2024. This motion exemplifies the category of proposals that crossed the acceptability threshold after the political watershed, gaining full support from the centrist core where it previously had none.</p>
|
|
<div class="motion-stats">
|
|
<div class="motion-stat"><div class="stat-label">Stijl</div><div class="stat-value">2</div></div>
|
|
<div class="motion-stat"><div class="stat-label">Materieel</div><div class="stat-value">3</div></div>
|
|
<div class="motion-stat"><div class="stat-label">CS strict pre</div><div class="stat-value">0.00</div></div>
|
|
<div class="motion-stat"><div class="stat-label">CS strict post</div><div class="stat-value">1.00</div></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 7. Yearly Trend -- M3+ Motions -->
|
|
<h2>Yearly Trend — M3+ Strict Centrist Support</h2>
|
|
<p>Annual strict centrist support for motions at gravity level M3 and above. Years 2016–2018 have very low motion counts and should be interpreted with caution.</p>
|
|
|
|
<div class="chart-block">
|
|
<div class="sparkline">
|
|
<div class="spark-col">
|
|
<div class="spark-bar low-n" style="height: 70.5px"></div>
|
|
<div class="spark-label">2016</div>
|
|
</div>
|
|
<div class="spark-col">
|
|
<div class="spark-bar low-n" style="height: 66.4px"></div>
|
|
<div class="spark-label">2017</div>
|
|
</div>
|
|
<div class="spark-col">
|
|
<div class="spark-bar low-n" style="height: 95.8px"></div>
|
|
<div class="spark-label">2018</div>
|
|
</div>
|
|
<div class="spark-col">
|
|
<div class="spark-bar" style="height: 33.6px"></div>
|
|
<div class="spark-label">2019</div>
|
|
</div>
|
|
<div class="spark-col">
|
|
<div class="spark-bar" style="height: 30.8px"></div>
|
|
<div class="spark-label">2020</div>
|
|
</div>
|
|
<div class="spark-col">
|
|
<div class="spark-bar" style="height: 32.9px"></div>
|
|
<div class="spark-label">2021</div>
|
|
</div>
|
|
<div class="spark-col">
|
|
<div class="spark-bar" style="height: 31.3px"></div>
|
|
<div class="spark-label">2022</div>
|
|
</div>
|
|
<div class="spark-col">
|
|
<div class="spark-bar" style="height: 35.5px"></div>
|
|
<div class="spark-label">2023</div>
|
|
</div>
|
|
<div class="spark-col">
|
|
<div class="spark-bar" style="height: 48.7px"></div>
|
|
<div class="spark-label">2024</div>
|
|
</div>
|
|
<div class="spark-col">
|
|
<div class="spark-bar" style="height: 45.1px"></div>
|
|
<div class="spark-label">2025</div>
|
|
</div>
|
|
<div class="spark-col">
|
|
<div class="spark-bar" style="height: 29.7px"></div>
|
|
<div class="spark-label">2026</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<table class="data-table">
|
|
<thead>
|
|
<tr>
|
|
<th>Year</th>
|
|
<th class="num">Count (M3+)</th>
|
|
<th class="num">CS strict</th>
|
|
<th class="num">Change</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>2016</td>
|
|
<td class="num">17</td>
|
|
<td class="num">0.705</td>
|
|
<td class="num">—</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2017</td>
|
|
<td class="num">9</td>
|
|
<td class="num">0.664</td>
|
|
<td class="num change-down">-0.041</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2018</td>
|
|
<td class="num">12</td>
|
|
<td class="num">0.958</td>
|
|
<td class="num change-up">+0.294</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2019</td>
|
|
<td class="num">851</td>
|
|
<td class="num">0.336</td>
|
|
<td class="num change-down">-0.622</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2020</td>
|
|
<td class="num">1,157</td>
|
|
<td class="num">0.308</td>
|
|
<td class="num change-down">-0.028</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2021</td>
|
|
<td class="num">1,229</td>
|
|
<td class="num">0.329</td>
|
|
<td class="num change-up">+0.021</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2022</td>
|
|
<td class="num">1,199</td>
|
|
<td class="num">0.313</td>
|
|
<td class="num change-down">-0.016</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2023</td>
|
|
<td class="num">1,099</td>
|
|
<td class="num">0.355</td>
|
|
<td class="num change-up">+0.042</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2024</td>
|
|
<td class="num">1,252</td>
|
|
<td class="num">0.487</td>
|
|
<td class="num change-up">+0.132</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2025</td>
|
|
<td class="num">1,101</td>
|
|
<td class="num">0.451</td>
|
|
<td class="num change-down">-0.036</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2026</td>
|
|
<td class="num">404</td>
|
|
<td class="num">0.297</td>
|
|
<td class="num change-down">-0.154</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<div class="note">
|
|
<strong>Note.</strong> The spike in 2018 (cs_strict = 0.958) is based on only 12 motions and should not be interpreted as a genuine shift in the Overton window. The low-N period from 2016 to 2018 reflects limited availability of digital motion records. The post-2024 peak (0.487 in 2024) followed by a decline through 2025–2026 suggests the shift may have been concentrated around the immediate Schoof cabinet formation period.
|
|
</div>
|
|
|
|
<!-- 8. Right-Wing vs Other -->
|
|
<h2>Right-Wing vs Other Parties</h2>
|
|
<p>Comparing centrist support for motions proposed by right-wing parties (PVV, FVD, JA21, SGP) versus motions from all other parties, before and after July 2024.</p>
|
|
|
|
<div class="two-col">
|
|
<div>
|
|
<h3>Right-Wing Motions</h3>
|
|
<div class="big-stat">0.384 <span class="sub">→ 0.620</span></div>
|
|
<div class="pre-post-row"><span>Pre-2024</span><span>0.384</span></div>
|
|
<div class="pre-post-row"><span>Post-2024</span><span>0.620</span></div>
|
|
<div class="pre-post-row" style="margin-top:6px;font-weight:600;color:#2563eb;"><span>Change</span><span>+0.236</span></div>
|
|
<p class="text-small" style="margin-top:8px;">N: 1,911 pre · 1,119 post</p>
|
|
</div>
|
|
<div>
|
|
<h3>Other Party Motions</h3>
|
|
<div class="big-stat">0.587 <span class="sub">→ 0.581</span></div>
|
|
<div class="pre-post-row"><span>Pre-2024</span><span>0.587</span></div>
|
|
<div class="pre-post-row"><span>Post-2024</span><span>0.581</span></div>
|
|
<div class="pre-post-row" style="margin-top:6px;font-weight:600;color:#8a9aa8;"><span>Change</span><span>-0.006</span></div>
|
|
<p class="text-small" style="margin-top:8px;">N: 17,768 pre · 8,772 post</p>
|
|
</div>
|
|
</div>
|
|
|
|
<p>Right-wing motions saw a substantial increase in centrist support after the 2024 watershed, rising from 0.384 to 0.620 — a gain of 0.236 points. In contrast, centrist support for motions from other parties remained essentially flat (0.587 pre vs 0.581 post). This asymmetric shift is the central finding of the analysis: the Overton window moved primarily on the right flank, with centrist parties becoming more willing to support proposals originating from the right wing, while their behaviour toward other party motions did not change.</p>
|
|
|
|
<!-- 9. 2D Distribution -->
|
|
<h2>2D Distribution: Stijl vs Materieel</h2>
|
|
<p>Each cell shows the count of motions at each combination of rhetorical extremity (stijl) and policy impact (materieel), with the percentage of the total dataset. The highlighted cell marks the highest concentration. The Pearson correlation between the two dimensions is r = 0.43.</p>
|
|
|
|
<table class="heatmap">
|
|
<thead>
|
|
<tr>
|
|
<th>Stijl \ Materieel</th>
|
|
<th>1</th>
|
|
<th>2</th>
|
|
<th>3</th>
|
|
<th>4</th>
|
|
<th>5</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>1 — Lowest</td>
|
|
<td class="hm-mid"><div class="cell-val">6,010</div><div class="cell-pct">20.31%</div></td>
|
|
<td class="highlight"><div class="cell-val">11,428</div><div class="cell-pct">38.62%</div></td>
|
|
<td class="hm-mid"><div class="cell-val">3,194</div><div class="cell-pct">10.79%</div></td>
|
|
<td><div class="cell-val">391</div><div class="cell-pct">1.32%</div></td>
|
|
<td><div class="cell-val">19</div><div class="cell-pct">0.06%</div></td>
|
|
</tr>
|
|
<tr>
|
|
<td>2</td>
|
|
<td class="hm-low"><div class="cell-val">442</div><div class="cell-pct">1.49%</div></td>
|
|
<td class="hm-mid"><div class="cell-val">2,852</div><div class="cell-pct">9.64%</div></td>
|
|
<td class="hm-mid"><div class="cell-val">2,880</div><div class="cell-pct">9.73%</div></td>
|
|
<td class="hm-low"><div class="cell-val">580</div><div class="cell-pct">1.96%</div></td>
|
|
<td><div class="cell-val">47</div><div class="cell-pct">0.16%</div></td>
|
|
</tr>
|
|
<tr>
|
|
<td>3</td>
|
|
<td><div class="cell-val">100</div><div class="cell-pct">0.34%</div></td>
|
|
<td class="hm-low"><div class="cell-val">360</div><div class="cell-pct">1.22%</div></td>
|
|
<td class="hm-low"><div class="cell-val">542</div><div class="cell-pct">1.83%</div></td>
|
|
<td class="hm-low"><div class="cell-val">308</div><div class="cell-pct">1.04%</div></td>
|
|
<td><div class="cell-val">61</div><div class="cell-pct">0.21%</div></td>
|
|
</tr>
|
|
<tr>
|
|
<td>4</td>
|
|
<td><div class="cell-val">14</div><div class="cell-pct">0.05%</div></td>
|
|
<td><div class="cell-val">46</div><div class="cell-pct">0.16%</div></td>
|
|
<td><div class="cell-val">96</div><div class="cell-pct">0.32%</div></td>
|
|
<td><div class="cell-val">111</div><div class="cell-pct">0.38%</div></td>
|
|
<td><div class="cell-val">49</div><div class="cell-pct">0.17%</div></td>
|
|
</tr>
|
|
<tr>
|
|
<td>5 — Highest</td>
|
|
<td><div class="cell-val">2</div><div class="cell-pct">0.01%</div></td>
|
|
<td><div class="cell-val">2</div><div class="cell-pct">0.01%</div></td>
|
|
<td><div class="cell-val">7</div><div class="cell-pct">0.02%</div></td>
|
|
<td><div class="cell-val">32</div><div class="cell-pct">0.11%</div></td>
|
|
<td><div class="cell-val">18</div><div class="cell-pct">0.06%</div></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<div class="note">
|
|
<strong>Interpretation.</strong> The modest correlation (r = 0.43) confirms that rhetorical extremity and policy impact are separable dimensions. Most motions cluster in the low-stijl / mid-materieel region: nearly 40% of all motions have stijl=1, materieel=2. Highly extreme motions (scores of 4 or 5 on either dimension) are rare, with only 61 out of 29,591 motions scoring at the maximum on both dimensions.
|
|
</div>
|
|
|
|
<!-- 10. Key Takeaways -->
|
|
<h2>Key Takeaways</h2>
|
|
<div class="verdict">
|
|
<ul>
|
|
<li><strong>Exploratory evidence suggests an Overton shift for right-wing motions.</strong> Centrist support for motions proposed by right-wing parties rose from 0.384 to 0.620 after July 2024, while support for other party motions stayed flat. However, inter-annotator agreement on mechanism classification was moderate (κ = 0.41), meaning the mechanism evidence should be treated as suggestive rather than conclusive.</li>
|
|
<li><strong>Migration is the gateway domain.</strong> Asylum/migration is where the Overton shift is most genuine — centrist support more than doubled (0.153 → 0.369) while material impact barely declined. Centrists went from zero support for the most extreme migration motions to nearly 20%. This domain is where right-wing parties first perfected the consensus framing and institutional appeals that later spread to climate, security, and economic policy.</li>
|
|
<li><strong>Centrist tolerance increased at all gravity levels.</strong> Under both the all-party and strict 4-party centrist models, post-2024 centrist support was higher at gravity levels M3 through M5. The strict centrist core moved as well, not just the broader coalition.</li>
|
|
<li><strong>Shift is not across the board — M5 motions remain largely rejected.</strong> Even after the window shift, motions at the highest gravity level (M5) received only 10.1% strict centrist support. Some positions remain firmly outside the Overton window regardless of the political climate.</li>
|
|
<li><strong>Style and substance are only moderately correlated.</strong> With r = 0.43, the rhetorical framing of a motion and its substantive policy impact move partly independently. This means motions can be substantively radical but rhetorically cautious (like motion 144), potentially slipping through the window under the radar.</li>
|
|
<li><strong>Post-2025 downward trend suggests shift may be reversing.</strong> Strict centrist support for M3+ motions peaked in 2024 (0.487) and declined through 2025 (0.451) and 2026 (0.297). The 2026-Q1 reversion (CS = 0.334) shows material moderation persisted while stijl reverted. Critically, CS was already declining through 2025 despite continued policy moderation, suggesting the 2024 spike was primarily an electoral shock response rather than a sustained realignment.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- 11. Footer -->
|
|
<div class="footer">
|
|
Generated from motions.db and right_wing_motions analysis pipeline · 29,591 motions scored on stijl and materieel dimensions · 2016–2026
|
|
</div>
|
|
|
|
</div>
|
|
</body>
|
|
</html> |