fix(svd): remove component 4 from SVD_THEMES (dim 3 has zero party signal)
Dim 3 captures within-party individual disagreement (MPs splitting from party lines). Party-aggregate votes are structurally 0 on this dimension, so the axis chart showed all parties at ~0 with no discrimination. Confirmed via dry-run: identical to existing data. Also filter comp_options to only show components with a defined theme, so component 4 is hidden from the selectbox entirely.
This commit is contained in:
+3
-19
@@ -1017,24 +1017,6 @@ def build_svd_components_tab(db_path: str) -> None:
|
|||||||
"negative_pole": "Strikte handhaving, deregulering en nationalistisch eigenbelang boven humanitaire verplichtingen",
|
"negative_pole": "Strikte handhaving, deregulering en nationalistisch eigenbelang boven humanitaire verplichtingen",
|
||||||
"flip": True,
|
"flip": True,
|
||||||
},
|
},
|
||||||
4: {
|
|
||||||
"label": "Publieke voorzieningen beschermen versus liberale marktwerking",
|
|
||||||
"explanation": (
|
|
||||||
"Deze as weerspiegelt de klassieke sociaal-economische tegenstelling tussen links en "
|
|
||||||
"liberaal-economisch rechts. Aan de positieve kant staan moties van SP en DENK die "
|
|
||||||
"pleiten voor betaalbare zorg, lage treintarieven, bescherming van politiepersoneel en "
|
|
||||||
"regionale brandweerposten — allemaal gericht op het beschermen van publieke voorzieningen "
|
|
||||||
"voor gewone burgers. Aan de negatieve kant staan moties van VVD, D66, Volt en NSC die "
|
|
||||||
"pleiten voor het EU-Mercosur vrijhandelsverdrag en een flexibele kennismigrantenregeling "
|
|
||||||
"ten behoeve van het economisch verdienvermogen. Deze dimensie is politiek betekenisvol "
|
|
||||||
"omdat hij de fundamentele vraag raakt of de staat actief moet ingrijpen om collectieve "
|
|
||||||
"voorzieningen betaalbaar en toegankelijk te houden, of dat vrije markt en open handel "
|
|
||||||
"leidend moeten zijn."
|
|
||||||
),
|
|
||||||
"positive_pole": "Vrije handel, open economie en marktgerichte arbeidsmigratie",
|
|
||||||
"negative_pole": "Staatsbescherming van betaalbare publieke voorzieningen voor iedereen",
|
|
||||||
"flip": False,
|
|
||||||
},
|
|
||||||
5: {
|
5: {
|
||||||
"label": "Christelijk-conservatief sociaal beleid versus seculier progressief",
|
"label": "Christelijk-conservatief sociaal beleid versus seculier progressief",
|
||||||
"explanation": (
|
"explanation": (
|
||||||
@@ -1177,7 +1159,9 @@ def build_svd_components_tab(db_path: str) -> None:
|
|||||||
if r.get("motion_id") not in existing_ids:
|
if r.get("motion_id") not in existing_ids:
|
||||||
bucket.append(r)
|
bucket.append(r)
|
||||||
|
|
||||||
comp_options = sorted(comp_map.keys())
|
# Only show components that have a defined theme (excludes e.g. dim 3 which
|
||||||
|
# captures within-party individual variance and is uninformative at party level).
|
||||||
|
comp_options = sorted(c for c in comp_map.keys() if c in SVD_THEMES)
|
||||||
|
|
||||||
# Build display labels for selectbox: "As 1 — Regulering vs. status-quo"
|
# Build display labels for selectbox: "As 1 — Regulering vs. status-quo"
|
||||||
def _comp_label(c: int) -> str:
|
def _comp_label(c: int) -> str:
|
||||||
|
|||||||
Reference in New Issue
Block a user