political-risk-methodology.md

May 3, 2026 · View on GitHub

Hack23 Logo

⚠️ Political Risk Assessment Methodology

📊 Multi-Dimensional Risk Scoring for Swedish Parliamentary Intelligence
🎯 Cascading Risk · Bayesian Updating · Risk Interconnection · Scenario Trees

Owner Version Effective Date Classification

📋 Document Owner: CEO | 📄 Version: 2.4 | 📅 Last Updated: 2026-04-25 (UTC)
🔄 Review Cycle: Quarterly | ⏰ Next Review: 2026-09-01
🏢 Owner: Hack23 AB (Org.nr 5595347807) | 🏷️ Classification: Public


🎯 AI-FIRST Methodology Card

🚦 Read this card before writing a single paragraph. It names the artifact this methodology owns, the gate check it satisfies, the evidence-density target it must hit, and the Pass-1 / Pass-2 discipline required by .github/copilot-instructions.md §5 (AI-FIRST Quality Principle).

FieldValue
PurposeMulti-dimensional 5×5 Likelihood × Impact risk scoring with cascading-risk and Bayesian-update overlays — Step 3–4 of the AI-driven pipeline.
InputsFamily A synthesis; classification outputs; OSINT tradecraft (Admiralty, WEP, ICD 203); historical-parallels for prior probabilities
Outputsrisk-assessment.md
Owning artifact(s)risk-assessment.md
Owning gate checkChecks 1, 4, 5 (Mermaid), and the WEP / Admiralty signals listed in reference-quality-thresholds.json#tradecraftQualitySignals
Citation density target≥ 1 evidence anchor per risk row; cascading-risk paths cite ≥ 1 anchor per node; Bayesian priors cite ≥ 1 [A1] historical source
Banned phrasesEnforced via political-style-guide.md §Machine-readable banned-phrase list
Threshold sourcereference-quality-thresholds.jsonthresholds[articleType][artifact] (fallback defaults.coreArtifactFloor)

✅ Pass-1 checklist (creation — minimal viable artifact)

  • Score every risk on Likelihood × Impact 5×5 with WEP mapping (L=1 remote → L=5 very likely)
  • Cover all 8 categories: policy / legislative / economic / social / security / diplomatic / coalition / constitutional
  • ≥ 1 cascading-risk path showing 2nd-order consequences
  • Produce every required sub-section listed in the owning template
  • Add ≥ 1 evidence anchor (dok_id, vote id, named MP, or primary-source URL) per analytical claim
  • Apply the correct WEP confidence band for the run's horizon (72h / week / month / quarter / year / cycle)
  • Include ≥ 1 themed Mermaid diagram with style … or themeVariables config (where structurally meaningful)
  • Cross-link the relevant template under analysis/templates/ and the gate check it satisfies

🔁 Pass-2 checklist (read-back & improve — AI-FIRST mandatory)

  • Bayesian update: cite the prior + likelihood ratio + posterior for ≥ 1 high-stakes risk
  • Verify wildcard / high-impact-low-probability entries are flagged with WEP unlikely or below
  • Re-read the file end-to-end; flag every claim that lacks an evidence anchor and add one
  • Replace every banned phrase listed in political-style-guide.md §Machine-readable banned-phrase list with an evidence-anchored alternative
  • Tighten WEP language: never above likely without ≥ 3 cycle-aged sources for year/cycle horizons
  • Strengthen Mermaid (color-coded style … directives, themeVariables, ≥ 5 nodes where the structure admits it)
  • Add ≥ 1 second-order effect, cui-bono note, or counterfactual where the artifact admits one
  • Verify citation density meets the per-file target below and the gate's evidence-density rules

🟢 Exemplar (good — pattern-match this)

(risk row) "R-04 Coalition fracture (L=3 unlikely / I=4 high) — Tidö stress on H902FiU1; cascading: budget defeat → confidence vote → snap-election. Prior: 2024 H801FiU1 vote 175–174 ([A1]). Mitigation: SD-bench whipping. WEP=unlikely."

🔴 Anti-exemplar (failure mode — never ship this)

(failure mode) "Coalition risks are elevated." — no L/I score, no dok_id, no cascading path, no WEP mapping.


🔄 Tradecraft Anchors

ElementValueReference
F3EAD StageEXPLOITRisk assessment extracts threat-oriented intelligence value from SWOT and classification
PIRs ServedCoalition Risk → PIR-1; Constitutional Risk → PIR-2, PIR-7; Fiscal Risk → PIR-5; Electoral Risk → PIR-6See political-style-guide.md §PIR/EEI Catalog
Admiralty FloorRisk claims require ≥[B2] evidence; Bayesian priors require ≥[A1] historical dataSee political-style-guide.md §Admiralty Code
WEP RequirementLikelihood scores map to WEP: L=1 → remote (~5%); L=2 → very unlikely (~15%); L=3 → unlikely (~30%); L=4 → likely (~70%); L=5 → very likely (~85%)See political-style-guide.md §WEP + ODNI
ICD 203 GateStandard 2 (express uncertainties), 4 (alternative analysis via scenario trees), 8 (accurate judgments)See political-style-guide.md §ICD 203
SAT(s)High-Impact/Low-Probability Analysis (wildcard risks), What If? Analysis (cascading risk)See political-style-guide.md §SATs

🎯 Purpose

This methodology provides the authoritative framework for political risk assessment in Riksdagsmonitor's analytical workflows. Beyond the basic 5×5 Likelihood × Impact matrix, this methodology includes:

  • Cascading risk analysis — how one risk event triggers a chain of subsequent risks
  • Bayesian updating — how to revise risk scores as new evidence arrives
  • Risk interconnection mapping — visualizing dependencies between risk types
  • Scenario tree analysis — probabilistic branching for complex political situations

This adapts the quantitative approach from Hack23 ISMS Risk_Assessment_Methodology.md to Swedish parliamentary politics.

See reference/isms-risk-assessment-adaptation.md for the complete ISMS-to-political mapping.


📐 Core Methodology: Likelihood × Impact

All political risks are scored using a 5×5 matrix. Risk Score = Likelihood × Impact.

Likelihood Scale (1–5)

ScoreLabelDefinitionParliamentary Analogy
1Rare<5% probability in assessment windowCoalition collapse with 176-seat majority
2Unlikely5–20% probabilityBudget vote fails despite coalition agreement
3Possible21–40% probabilitySD defects on single non-budget vote
4Likely41–70% probabilityOpposition files no-confidence motion when polls shift
5Almost Certain>70% probabilityGovernment proposes budget in September

Impact Scale (1–5)

ScoreLabelDefinitionPolitical Example
1NegligibleRoutine disruption; normal operations continueMinor committee delay
2MinorModerate disruption; corrective action straightforwardSingle bill rejected; government re-submits
3ModerateSignificant disruption; coalition relationship strainedMajor budget amendment forced by opposition
4MajorSevere disruption; coalition integrity threatenedMinister forced to resign
5SevereDemocratic crisis; constitutional mechanisms triggeredGovernment falls; extraordinary election called

Risk Matrix

$\text{mermaid} \text{graph} \text{LR} \text{subgraph} "\text{Risk} \text{Score} = \text{Likelihood} \times \text{Impact}" \text{direction} \text{TB} \text{L1}["\text{L}=1"] ---|" \times 1=1"|\text{I1}["\text{I}=1: 🟢1"] \text{L1}---|" \times 2=2"|\text{I2}["\text{I}=2: 🟢2"] \text{L1}---|" \times 3=3"|\text{I3}["\text{I}=3: 🟢3"] \text{L1}---|" \times 4=4"|\text{I4}["\text{I}=4: 🟢4"] \text{L1}---|" \times 5=5"|\text{I5}["\text{I}=5: 🟡5"] \text{L3}["\text{L}=3"] ---|" \times 3=9"|\text{I3b}["\text{I}=3: 🟡9"] \text{L3}---|" \times 4=12"|\text{I4b}["\text{I}=4: 🟠12"] \text{L5}["\text{L}=5"] ---|" \times 4=20"|\text{I4c}["\text{I}=4: 🔴20"] \text{L5}---|" \times 5=25"|\text{I5c}["\text{I}=5: 🔴25"] \text{end} $

ScoreTierColourAction
1–4Low🟢Monitor; mention in weekly digest
5–9Medium🟡Active monitoring; flag in daily analysis
10–14High🟠Priority assessment; include in news
15–25Critical🔴Immediate analysis; breaking news consideration

5-Level Confidence Scale Mapping for Risk Scores

Risk scores carry a confidence label that reflects the quality and completeness of evidence behind the L×I assessment:

Confidence LevelLabelRisk Score ContextEvidence Requirements
🟦 5VERY HIGHScore backed by official voting records or government actionsMultiple official sources, cross-validated, no conflicting evidence
🟩 4HIGHScore based on official Riksdag API data or documented government positions≥2 official sources, direct evidence
🟧 3MEDIUMScore based on multiple news reports or committee proceedings3+ sources with moderate agreement; some inferential gaps
🟥 2LOWScore based on limited public information or indirect indicators2 sources, circumstantial evidence; score may shift significantly
⬛ 1VERY LOWScore is speculative; single source or no confirmed evidence0–1 sources; treat score as provisional

Application rule: Always append the confidence label to every risk score entry. Example: L=3, I=4, Score=12 [HIGH confidence — based on JuU committee vote records and ministerial statement]

Election 2026 Risk Proximity Factor

Apply a proximity factor to Electoral risk scores based on distance to the September 2026 election:

Months to ElectionProximity FactorApplied Risk Score
>18 months×1.0Standard L×I score
12–18 months×1.1Score × 1.1 (rounded up)
6–12 months×1.25Score × 1.25 (rounded up)
<6 months×1.5Score × 1.5 (rounded up)

Rationale: Political risks with direct electoral implications become more consequential as the election approaches. A score of 8 (HIGH) with 5 months to election becomes 12 (HIGH→ border of CRITICAL) after proximity adjustment.


🤝 Coalition Stability Risk

Coalition risk is the most politically distinctive risk type in Swedish parliamentary analysis.

Coalition Stability Factors

flowchart TD
    A["🤝 Coalition Stability Assessment"] --> B["📊 Seat Arithmetic<br/>M+KD+L+SD = 176 seats"]
    A --> C["📋 Policy Cohesion<br/>Legislative agreement rate"]
    A --> D["📈 Electoral Pressure<br/>National polls & municipal spillovers"]
    A --> E["📜 Tidöavtalet Compliance<br/>SD cooperation agreement adherence"]
    A --> F["🌍 External Constraints"]

    B --> B1["Formal majority: ≥175 of 349"]
    B --> B2["Support party reliability<br/>SD vote-by-vote basis"]
    B --> B3["By-election & defection risk"]

    C --> C1["Budget agreement status"]
    C --> C2["Migration policy splits<br/>L vs SD divergence"]
    C --> C3["Energy policy cohesion<br/>Nuclear vs renewables"]

    D --> D1["National poll trajectory<br/>Novus, Demoskop, SCB/PSU"]
    D --> D2["Municipal election spillovers"]
    D --> D3["Pre-election positioning pressure"]

    E --> E1["Migration chapter compliance"]
    E --> E2["Crime & justice chapter delivery"]
    E --> E3["SD satisfaction signals<br/>Public statements, vote patterns"]

    F --> F1["EU compliance requirements"]
    F --> F2["NATO commitments"]
    F --> F3["Economic indicators"]

    style A fill:#D32F2F,color:#FFFFFF
    style B fill:#FF9800,color:#FFFFFF
    style C fill:#FF9800,color:#FFFFFF
    style D fill:#FFC107,color:#000000
    style E fill:#7B1FA2,color:#FFFFFF
    style F fill:#1565C0,color:#FFFFFF

Coalition Collapse Probability (90-day window)

Likelihood of CollapseSeat MarginPolicy CohesionElectoral PressureCombined Score
LOW (<15%)≥176 operational bufferHigh (all parties aligned)Low (polls stable)L≤2, I≤3
MEDIUM (15–35%)175 bare majority (no buffer)Medium (one party strained)Medium (5+ point poll shift)L=3, I=3–4
HIGH (>35%)<175 no majorityLow (multi-party tension)High (SD threats withdrawal)L≥4, I≥4

Note on majority arithmetic: A formal Riksdag majority requires ≥175 of 349 seats. However, absences and abstentions mean that ≥176 seats provide an "operational buffer" — the practical threshold for reliable legislative passage. The table above uses this distinction: ≥176 = comfortable (LOW), exactly 175 = bare majority (MEDIUM), <175 = no majority (HIGH).


📋 Policy Implementation Risk

Policy implementation risks assess the probability that a proposed policy fails to pass, is significantly amended, or is blocked:

StageDefault LikelihoodRisk AmplifiersRisk Reducers
Proposition submittedL=2Opposition majority, SD conditionsCross-party agreement
Committee reviewL=2Dissenting committee reportsGovernment committee majority
Floor debate scheduledL=3No-confidence backdropVote whipped by all coalition parties
Vote imminentL=1–4Internal defections signalledPrior vote counting confirms majority
EnactedL=1 (reversal)New government formedConstitutional entrenchment

💰 Budget Risk Assessment

Swedish budget risk has unique characteristics due to the Riksdag's fiscal framework:

Budget Timeline Risk Points

timeline
    title Swedish Budget Risk Calendar
    section September
        Budget Proposition : Tabled by Finansminister
        Risk Level: HIGH if coalition unstable
    section October–November
        FiU Committee Review : Amendments filed
        Risk Level: MEDIUM normally
    section November
        Riksdag Budget Vote : Deadline vote
        Risk Level: CRITICAL if no majority confirmed
    section December
        Budget Implementation : Government executes
        Risk Level: LOW if passed
    section April
        Spring Amending Budget : Adjustments
        Risk Level: LOW–MEDIUM

FiU (Finansutskottet) Dissent Tracking: Track formal dissenting opinions (reservationer) filed by opposition parties. Each reservation from a coalition party signals High policy risk for that budget line.


🗳️ Electoral Positioning Risk

Electoral risk quantifies how political events affect parties' electoral prospects over the 4-year Swedish electoral cycle:

Electoral PhaseRisk FocusKey Indicators
Year 1 (post-election)Coalition formation stabilityCooperation agreement durability
Year 2 (mid-term)Policy delivery credibilityLegislation passing rate; SCB data
Year 3 (positioning)Pre-election narrativePoll trends; party conference resolutions
Year 4 (campaign)Electoral positioningBudget generosity; flagship policy status

Note: General elections in Sweden are held the second Sunday of September every 4 years. Current cycle: September 2022 → September 2026.


📊 Calibration Examples

Real Swedish political scenarios as scoring anchors:

ScenarioLikelihoodImpactScoreTierRationale
SD conditionally supports budget4416🔴 CriticalFrequent pattern; major governance impact
SD conditionally supports government on migration4416🔴 CriticalTidöavtalet leverage; SD extracts concessions as price for continued support
L exits coalition over migration2510🟠 HighHistorically rare; would collapse government
L exits government coalition2510🟠 HighL departure reduces M+KD to ~131 seats; SD support alone insufficient for majority
Minor committee report delayed111🟢 LowRoutine; no political consequence
Budget vote passes with expected margin414🟢 LowLikely but low-impact routine event
Plenary adopts budget with expected margin414🟢 LowStandard legislative process; M+KD+L+SD bloc votes cohesively
KU investigation into government minister339🟡 MediumPossible; damages but rarely fatal
Motion of no confidence (misstroendeförklaring)155🟡 MediumRequires 175 votes; very rare but triggers government fall if passed
No-confidence motion passes155🟡 MediumVery rare; catastrophic if it occurs
New SOU recommends major pension reform4312🟠 HighLikely publication; major policy implications
Major government proposition on AI regulation4312🟠 HighLikely given EU AI Act transposition deadline; cross-cutting policy with industry impact
Article 7/EU sanctions against Sweden155🟡 MediumExtremely rare EU mechanism; would signal severe rule-of-law concerns


🤖 AI Analysis Protocol for Risk Assessment

The AI agent MUST follow this protocol when performing risk assessment:

  1. Read this methodology — understand the 5×5 matrix, calibration examples, coalition stability factors, AND the advanced techniques below
  2. Query MCP tools for evidence:
    • search_voteringar — recent vote margins to assess coalition stability
    • search_dokument with organ=FiU — budget committee status
    • search_dokument with organ=KU — constitutional committee investigations
    • search_anforanden — parliamentary debate signals
    • IMF (WEO/FM/IFS) + SCB data — economic context for budget and electoral risk
  3. Score each risk dimension using the 5×5 matrix with evidence
  4. Apply calibration — compare against the calibration examples above
  5. Perform cascading risk analysis — identify risk chains and second-order effects
  6. Map risk interconnections — which risks amplify each other?
  7. Apply Bayesian updating — adjust base rates with new evidence
  8. Assign overall risk level — weighted by dimension (Coalition 0.30, Policy 0.25, Budget 0.20, Electoral 0.15, External 0.10)

Risk-to-SWOT Integration

Risk assessment results feed directly into SWOT analysis:

  • Risk Score ≥ 15 (Critical) → SWOT Threat entry (HIGH confidence, HIGH impact)
  • Risk Score 10–14 (High) → SWOT Threat or Weakness entry (MEDIUM+ confidence)
  • Risk Score 5–9 (Medium) → SWOT Weakness or Threat entry (flag for monitoring)
  • Risk Score 1–4 (Low) → Informational only; no SWOT entry required

🔗 Advanced Technique 1: Cascading Risk Analysis

Political risks rarely occur in isolation. A cascading risk chain models how one risk event triggers subsequent risks:

flowchart TD
    R1["⚠️ TRIGGER RISK:<br/>SD demands migration<br/>policy concession<br/>L=4, I=3, Score=12 🟠"]
    R1 --> R2["⚠️ SECOND-ORDER:<br/>Government refuses;<br/>coalition tension rises<br/>L=3, I=4, Score=12 🟠"]
    R2 --> R3A["⚠️ BRANCH A:<br/>SD withdraws budget<br/>support<br/>L=2, I=5, Score=10 🟠"]
    R2 --> R3B["⚠️ BRANCH B:<br/>Government compromises;<br/>L loses face<br/>L=3, I=3, Score=9 🟡"]
    R3A --> R4A["🔴 CASCADING CRISIS:<br/>No-confidence vote<br/>L=2, I=5, Score=10 🟠"]
    R3B --> R4B["🟡 MANAGED STRESS:<br/>Internal L party dissent<br/>L=3, I=2, Score=6 🟡"]

    style R1 fill:#FF9800,color:#FFFFFF
    style R2 fill:#FF9800,color:#FFFFFF
    style R3A fill:#D32F2F,color:#FFFFFF
    style R3B fill:#FFC107,color:#000000
    style R4A fill:#D32F2F,color:#FFFFFF
    style R4B fill:#FFC107,color:#000000

Cascading Risk Construction Protocol

  1. Identify trigger risk — the initial event that starts the chain
  2. Map first-order consequences — what happens immediately if the trigger occurs?
  3. Map second-order consequences — what happens as a result of the first-order effects?
  4. Identify branching points — where does the chain split into alternative paths?
  5. Score each node independently using the 5×5 matrix
  6. Calculate cumulative chain probability — multiply probabilities along each path
  7. Identify circuit breakers — what intervention could stop the chain at each stage?

Cascading Risk Table

Chain StageRisk EventLikelihoodImpactScoreCircuit Breaker
Trigger[Initial event][1-5][1-5][L×I][What stops it here?]
1st Order[Immediate consequence][1-5][1-5][L×I][Intervention point]
2nd Order[Follow-on effect][1-5][1-5][L×I][Intervention point]
Terminal[Final outcome][1-5][1-5][L×I][Recovery action]

📊 Advanced Technique 2: Bayesian Updating for Risk Scores

Political risk scores should be updated as new evidence arrives, not just recalculated from scratch. Bayesian updating provides a disciplined framework:

Update Protocol

StepActionExample
1Start with prior — the current risk score based on existing evidence"Coalition collapse risk: L=2, I=5, Score=10 (prior)"
2New evidence arrives — an MCP-observable event changes the picture"SD publicly demands migration concession (MCP: interpellation 2025/26:789)"
3Assess evidence strength — how much should this shift the score?Strong evidence (official statement) → adjust by +1 on likelihood
4Update score — adjust likelihood and/or impact based on evidence"Coalition collapse risk: L=3, I=5, Score=15 (posterior)"
5Document the update — record prior, evidence, and posterior"Prior 10 → Evidence: SD interpellation → Posterior 15 (+5)"

Evidence Strength Table

Evidence TypeLikelihood AdjustmentExample
Official Riksdag document (proposition, vote)±1 to ±2Vote passes/fails
Named politician public statement±1SD leader demands concession
Verified media report with named sources±0.5 to ±1DN reports coalition talks stalled
Single unnamed source±0.5"Sources say minister may resign"
Statistical data (IMF for macro/fiscal; SCB for Swedish-specific; WB for non-economic residue)±0.5 to ±1GDP growth data, unemployment change

🔗 Advanced Technique 3: Risk Interconnection Mapping

Political risks are interconnected — coalition risk affects budget risk, which affects electoral risk. Map these connections to understand system-level vulnerability:

graph TD
    CR["🤝 Coalition Risk<br/>Score: [X]"]
    PR["📋 Policy Risk<br/>Score: [X]"]
    BR["💰 Budget Risk<br/>Score: [X]"]
    ER["🗳️ Electoral Risk<br/>Score: [X]"]
    XR["🌍 External Risk<br/>Score: [X]"]

    CR -->|"Coalition instability delays<br/>policy implementation"| PR
    CR -->|"Budget depends on<br/>coalition agreement"| BR
    PR -->|"Policy failures erode<br/>electoral support"| ER
    BR -->|"Budget cuts affect<br/>policy capacity"| PR
    XR -->|"EU pressure forces<br/>unwanted policy"| PR
    XR -->|"Economic headwinds<br/>squeeze budget"| BR
    ER -->|"Election proximity increases<br/>coalition posturing"| CR

    style CR fill:#D32F2F,color:#FFFFFF
    style PR fill:#FF9800,color:#FFFFFF
    style BR fill:#FFC107,color:#000000
    style ER fill:#1565C0,color:#FFFFFF
    style XR fill:#7B1FA2,color:#FFFFFF

Interconnection Strength Assessment

From → ToConnection StrengthMechanismEvidence
Coalition → BudgetStrongBudget requires coalition majority[vote records]
Coalition → PolicyStrongPolicy delivery requires coalition unity[committee reports]
Policy → ElectoralMediumPolicy success/failure affects polls[polling data]
External → BudgetMediumEU/economic pressures constrain budget[IMF WEO/FM + SCB data]
Electoral → CoalitionMediumElection proximity strains coalition[calendar, debate rhetoric]

System-Level Risk Assessment: When ≥3 risk categories score ≥10 (High), the system is in a fragile state where any single trigger event could cascade across multiple risk dimensions simultaneously.


🌳 Advanced Technique 4: Scenario Tree Analysis

For complex risk situations with multiple branching points, construct a scenario tree showing probability-weighted outcomes:

flowchart TD
    START["📊 Current Situation<br/>Coalition majority holds"]
    START -->|"60%"| A["🟢 Stability<br/>Coalition remains intact"]
    START -->|"30%"| B["🟡 Stress<br/>Coalition strained but holds"]
    START -->|"10%"| C["🔴 Crisis<br/>Coalition breaks"]

    A -->|"80%"| A1["Budget passes normally"]
    A -->|"20%"| A2["Budget amended but passes"]

    B -->|"50%"| B1["Compromise found, stability restored"]
    B -->|"30%"| B2["Ongoing tension, weakened governance"]
    B -->|"20%"| B3["Delayed collapse"]

    C -->|"60%"| C1["New coalition formed"]
    C -->|"40%"| C2["Extraordinary election"]

    style START fill:#1565C0,color:#FFFFFF
    style A fill:#4CAF50,color:#FFFFFF
    style B fill:#FFC107,color:#000000
    style C fill:#D32F2F,color:#FFFFFF
``$

### \text{Scenario} \text{Tree} \text{Table}

| \text{Path} | \text{Probability} | \text{Outcome} | \text{Key} \text{Trigger} | \text{Watch} \text{Indicator} |
|------|:----------:|---------|------------|----------------|
| \text{Stability} → \text{Budget} \text{passes} | 48% (60% \times 80%) | \text{Normal} \text{governance} \text{continues} | \text{SD} \text{confirms} \text{budget} \text{support} | \text{SD} \text{budget} \text{stance} \text{statement} |
| \text{Stability} → \text{Budget} \text{amended} | 12% (60% \times 20%) | \text{Minor} \text{adjustments}, \text{governance} \text{continues} | \text{Partial} \text{SD} \text{objections} | \text{Committee} \text{amendment} \text{volume} |
| \text{Stress} → \text{Compromise} | 15% (30% \times 50%) | \text{Short}-\text{term} \text{disruption} \text{resolved} | \text{Public} \text{negotiation} \text{succeeds} | \text{Joint} \text{coalition} \text{statement} |
| \text{Crisis} → \text{New} \text{coalition} | 6% (10% \times 60%) | \text{Government} \text{changes}, \text{democracy} \text{functions} | \text{Coalition} \text{collapse} \text{triggers} \text{realignment} | \text{No}-\text{confidence} \text{vote} \text{result} |
| \text{Crisis} → \text{Election} | 4% (10% \times 40%) | \text{Extraordinary} \text{election} \text{called} | \text{No} \text{alternative} \text{coalition} \text{possible} | \text{Riksdag} \text{vote} \text{on} \text{dissolution} |

---

## 📡 \text{MCP} \text{Data} \text{Sources} \text{for} \text{Risk} \text{Assessment}

\text{The} \text{following} \text{table} \text{maps} \text{each} \text{risk} \text{category} \text{to} \text{the} \text{primary} \text{MCP} \text{tools} \text{and} \text{query} \text{strategies} \text{used} \text{to} \text{gather} \text{evidence} \text{for} \text{scoring}:

| \text{Risk} \text{Category} | \text{Primary} \text{MCP} \text{Tools} | \text{Query} \text{Strategy} |
|---------------|-------------------|----------------|
| **\text{Coalition} \text{stability}** | $search_voteringar` + internal voting pattern analysis (non‑MCP) | Track M+KD+L+SD voting cohesion; detect defections and abstention spikes |
| **Policy implementation** | `get_propositioner`, `search_dokument` | Monitor committee referrals, plenary vote outcomes, and reservation filings |
| **Legislative integrity** | `search_voteringar`, `get_betankanden` | Track contested votes (margin <10 seats), reservation analysis per party |
| **Economic governance** | `get_propositioner`, `search_dokument` | Budget bills (FiU), fiscal forecasts, spring amending budgets |
| **Social cohesion** | `search_anforanden`, `get_interpellationer` | Migration/welfare debate intensity; interpellation frequency by topic |
| **Democratic process** | `get_calendar_events`, `search_voteringar` | Participation rates, vote margins, plenary attendance patterns |

### Query Examples

```bash
# Coalition cohesion: party-level breakdown on recent budget (FiU1)
get_voting_group(rm="2025/26", bet="FiU1")

# Policy risk: track contested committee reports
get_betankanden(rm="2025/26", organ="SfU")  # Social insurance committee

# Democratic process: monitor plenary participation (party-level absences)
get_voting_group(rm="2025/26", rost="Frånvarande")

# Social cohesion: migration debate intensity
search_anforanden(text="migration", rm="2025/26")

⚠️ Anti-Pattern Warning

REJECTED: Generic risk statements like "medium risk" without specific L×I scores, evidence, or calibration examples are REJECTED. Every risk assessment MUST include:

  1. Explicit Likelihood (1–5) and Impact (1–5) scores with justification
  2. MCP evidence — specific document IDs, vote records, or speech references
  3. Calibration anchor — which calibration example is this most similar to?
  4. Confidence level — HIGH (multiple MCP sources), MEDIUM (single source), LOW (inference only)

"Coalition risk is medium" → Not actionable, no evidence, no scores
"Coalition risk: L=3, I=4, Score=12 (HIGH). Evidence: SD voted against government on SfU14 punkt 3 (search_voteringar rm=2025/26). Calibrated against 'SD conditionally supports government on migration' scenario."


⏱️ Temporal Analysis Protocol (v2.1)

Risk scores are point-in-time snapshots that degrade as the political environment evolves. This section defines how to track risk evolution over time, when to trigger re-scoring, and how to flag stale assessments.

Re-Scoring Triggers

The following observable events require immediate risk re-scoring for any affected risk category:

Trigger EventAffected Risk CategoryMCP Detection ToolExpected Response Time
Riksdag vote outcome (pass/fail)Coalition, Policy, Budgetsearch_voteringarSame day
Lagrådet opinion publishedPolicy, Constitutionalsearch_dokument(doktyp=yttr)Same day
Committee hearing conclusionPolicy, Legislativeget_betankandenSame day
Budget publication or amending budgetBudget, Coalition, Electoralget_propositionerSame day
Court ruling (ECJ, Supreme Court)Policy, External, Constitutionalsearch_dokument fulltextSame day
Opinion poll (Novus, SCB partisympati)Electoral, CoalitionExternal dataWithin 2 days
Government reshuffle or resignationCoalition, ElectoralNews monitoringImmediate
EU directive transposition deadlineExternal, PolicyEU calendar7 days before deadline
Parliamentary recess start/endAll categoriesget_calendar_eventsDay of

Staleness Rules

Risk Age (since last evidence update)StatusRequired Action
0–3 daysCurrentNo action — score is fresh
4–7 daysAging 🟡Acceptable if no trigger events occurred; note age in assessment
8–14 daysStale 🟠Flag for review — analyst must verify score still holds via MCP query
15+ daysExpired 🔴Score MUST be re-assessed before inclusion in any output

Rule: Every risk score published in a daily, weekly, or monthly analysis MUST include its last-evidence date. Scores older than 7 days without new evidence must carry a ⚠️ STALE marker.

Temporal Risk Evolution Table Template

Use this template to track how a single risk evolves across multiple analysis cycles:

DateRisk IDEvent / New EvidencePrior LPrior IPrior ScoreΔ Evidence StrengthPosterior LPosterior IPosterior ScoreTrend
[YYYY-MM-DD][R1–Rn][MCP-observable event][1-5][1-5][L×I][±adjustment][1-5][1-5][L×I][↑ → ↓]

Temporal Evolution Mermaid Template

graph LR
    D1["📅 Day 1<br/>R2: L3×I4=12"]
    D3["📅 Day 3<br/>R2: L2×I4=8"]
    D7["📅 Day 7<br/>R2: L2×I4=8"]

    D1 -->|"Lagrådet favorable<br/>opinion published"| D3
    D3 -->|"No new evidence<br/>(4 days)"| D7

    style D1 fill:#D32F2F,color:#FFFFFF
    style D3 fill:#FFC107,color:#000000
    style D7 fill:#FFC107,color:#000000

📐 Bayesian Updating Worked Example (v2.1)

This section provides a complete, date-specific worked example showing how to apply the Bayesian updating protocol from §Advanced Technique 2 in practice.

Scenario: ECHR Challenge to Swedish Migration Policy

Context: The government's migration reform bill (prop. 2025/26:117) faces a potential European Court of Human Rights challenge. Track how the risk score evolves as new evidence arrives over 7 days.

Day 1 (Tuesday 2026-03-24): Initial Assessment

Risk FactorLikelihoodImpactScoreEvidence
ECHR challenge to migration bill3 (Possible)4 (Significant)12Prop. 2025/26:117 passed committee (SfU) with 3 reservations; legal scholars cited in DN question ECHR compatibility; no formal complaint yet

Confidence: MEDIUM — academic opinion but no official ECHR action
MCP sources: get_propositioner(rm="2025/26"), get_betankanden(organ="SfU")

Day 3 (Thursday 2026-03-26): Lagrådet Opinion Published

New evidence: Lagrådet (Council on Legislation) publishes opinion on prop. 2025/26:117 stating "no conflict with ECHR Article 3 or Article 8" — favorable to government position.

StepActionValue
1Prior scoreL=3, I=4, Score=12
2New evidenceLagrådet favorable opinion (official document, HIGH authority)
3Evidence strengthOfficial Riksdag document → ±1 to ±2 adjustment
4DirectionFavorable opinion reduces likelihood of successful ECHR challenge
5Posterior scoreL=2 (−1), I=4 (unchanged), Score=8

Updated risk: L=2, I=4, Score=8 (was 12 → −4)
Confidence: HIGH — multiple sources including Lagrådet official position
Citation: search_dokument(doktyp=yttr, titel="prop. 2025/26:117")

Day 5 (Saturday 2026-03-28): Opposition Files KU Complaint

New evidence: Socialdemokraterna (S) files a KU complaint (konstitutionsutskottsanmälan) alleging the migration bill process was rushed without adequate remiss period.

StepActionValue
1Prior scoreL=2, I=4, Score=8
2New evidenceKU complaint filed (official Riksdag document) — procedural challenge
3Evidence strengthOfficial document → ±1 adjustment; procedural complaints are common
4DirectionKU complaints increase procedural risk but don't directly affect ECHR
5AssessmentImpact stays at 4; Likelihood increases to 3 (procedural vulnerability reinforces ECHR risk pathway)
6Posterior scoreL=3 (+1), I=4 (unchanged), Score=12

Updated risk: L=3, I=4, Score=12 (was 8 → +4)
Confidence: HIGH — two official documents with opposing indicators
Citation: search_dokument(organ="KU", rm="2025/26")

Day 7 (Monday 2026-03-30): No New Evidence

No new evidence for 2 days. Score carries forward unchanged:

  • Risk: L=3, I=4, Score=12 Last evidence: 2026-03-28 (2 days ago)
  • Staleness status: Current ✅ (within 3-day window)
  • Next scheduled check: Tuesday 2026-03-31 — monitor for KU committee response and any ECHR filings

Summary: 7-Day Risk Evolution

DateEventLIScoreΔConfidence
2026-03-24Initial assessment3412MEDIUM
2026-03-26Lagrådet favorable opinion248−4HIGH
2026-03-28S files KU complaint3412+4HIGH
2026-03-30No new evidence34120HIGH (Current)

Key Insight: Risk scores are non-monotonic — they can decrease and increase as competing evidence accumulates. The analyst must track each directional change with its specific evidence, not simply report the latest score.


Document Control:

  • Path: /analysis/methodologies/political-risk-methodology.md
  • ISMS Reference: Risk_Assessment_Methodology.md
  • Version: 2.2
  • Advanced Techniques: Cascading Risk, Bayesian Updating, Risk Interconnection, Scenario Trees, Temporal Analysis Protocol, 5-Level Confidence Scale, Election 2026 Risk Mapping
  • Key Changes v2.2: Added 5-Level Confidence Scale mapping to risk scoring (VERY HIGH/HIGH/MEDIUM/LOW/VERY LOW), Election 2026 risk dimension with electoral proximity factor, updated calibration examples with confidence levels
  • Key Changes v2.1: Temporal Analysis Protocol (re-scoring triggers, staleness rules, evolution template), Bayesian Updating Worked Example (7-day ECHR challenge scenario with date-specific evidence chain)
  • Classification: Public
  • Next Review: 2026-09-01