political-swot-framework.md

May 3, 2026 · View on GitHub

Hack23 Logo

💼 Political SWOT Analysis Framework

📊 Evidence-Based SWOT Methodology for Political Intelligence
🎯 MCP Sources · Confidence Levels · Cross-SWOT Interference · Scenario Generation · Power-Interest Mapping

Owner Version Effective Date Classification

📋 Document Owner: CEO | 📄 Version: 2.5 | 📅 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
PurposeEvidence-based SWOT methodology with cross-SWOT interference, scenario generation, power-interest mapping, and TOWS — Step 4 of the AI-driven pipeline.
InputsFamily A synthesis; Family E per-document analyses; classification + risk + threat outputs
Outputsswot-analysis.md
Owning artifact(s)swot-analysis.md
Owning gate checkCheck 4 (evidence per quadrant) + Check 5 (Mermaid) + party-neutrality arithmetic in reference-quality-thresholds.json#tradecraftQualitySignals.partyNeutralityArithmeticRequired
Citation density target≥ 2 evidence anchors per quadrant; cross-SWOT interference rows ≥ 1 anchor per pairing
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)

  • ≥ 2 entries per quadrant (Strengths, Weaknesses, Opportunities, Threats), each with confidence (VERY HIGH / HIGH / MEDIUM / LOW / VERY LOW)
  • ≥ 3 TOWS strategic options (SO, WO, ST or WT each)
  • Party-neutrality: equal treatment of all parties; passive support / tolerance is not active coalition
  • 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)

  • Add a cross-SWOT interference table where ≥ 2 quadrants amplify each other
  • Add ≥ 1 scenario per SWOT combination with WEP probability
  • 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)

(SWOT entry) "Threat — Coalition fragility on FöU appropriation (HIGH): SD whip discipline 96.7 % on H902FöU14 vote (vote-id R-2026-04-22-12); evidence riksdagen.se ([A1]). Cross-SWOT: amplifies Weakness W-3 (L bench abstention rate 14 %)."

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

(failure mode) "Threats include coalition instability and policy disagreements." — no quadrant entries, no confidence, no dok_id, no cross-SWOT.


🔄 Tradecraft Anchors

ElementValueReference
F3EAD StageEXPLOITSWOT extracts strategic intelligence value from public parliamentary/government documents and official statistics
PIRs ServedSWOT entries map to PIRs: Strengths/Opportunities for government → PIR-1, PIR-5; Threats to democratic process → PIR-7; Electoral vulnerabilities → PIR-6See political-style-guide.md §PIR/EEI Catalog
Admiralty FloorEvery SWOT entry requires ≥[B2] evidence; entries at [C3] or lower must be flagged ⚠️ low confidenceSee political-style-guide.md §Admiralty Code
WEP RequirementScenario Generation uses WEP probabilities; TOWS strategic options use WEP for likelihood of successSee political-style-guide.md §WEP + ODNI
ICD 203 GateStandard 4 (alternative analysis via Cross-SWOT), 6 (logical argumentation), 9 (visual information)See political-style-guide.md §ICD 203
SAT(s)Brainstorming (entry generation), Key Assumptions Check (SWOT validation)See political-style-guide.md §SATs

🎯 Purpose

This framework establishes the deep, evidence-based SWOT analysis methodology for Riksdagsmonitor. Unlike traditional opinion-based SWOT analyses, this methodology requires verifiable evidence for every entry — either a Riksdag document ID (dok_id), named primary source, or official statistical reference.

Beyond basic SWOT, this framework includes advanced analytical techniques:

  • Cross-SWOT Interference Analysis — how SWOT elements from different actors interact and amplify each other
  • Strategic Scenario Generation — using SWOT combinations to construct plausible political futures
  • Power-Interest Mapping — positioning stakeholders by influence and stake in outcomes
  • TOWS Matrix — converting SWOT findings into actionable strategic options

Quality standard: SWOT.md (965 lines of strategic analysis) and CIA platform SWOT.md.


📐 Evidence-Based vs. Opinion-Based SWOT

The fundamental distinction that makes political SWOT analysis analytically rigorous:

graph LR
    A[SWOT Entry] --> B{Has verifiable<br/>evidence source?}
    B -->|Yes: dok_id, statistics,<br/>named vote, official statement| C[✅ Evidence-Based<br/>PUBLISHABLE]
    B -->|No: analyst opinion,<br/>general impression| D[❌ Opinion-Based<br/>REJECTED]
    
    C --> E[Assign Confidence Level<br/>based on source quality]
    D --> F[Return for evidence gathering<br/>or discard]
    
    E --> G[HIGH: Official Riksdag document<br/>or SCB statistics]
    E --> H[MEDIUM: Verified media report<br/>+ corroborating source]
    E --> I[LOW: Single source,<br/>credible but unverified]

Evidence Hierarchy (by confidence level)

ConfidenceAcceptable SourcesTool / Data Source
HIGHRiksdag official document (proposition, betänkande, protokoll)get_dokument, search_dokument
HIGHVerified voting recordsearch_voteringar
HIGHSCB official statisticsSCB PxWeb API
HIGHIMF economic data (WEO / FM / IFS / BOP / GFS_COFOG / DOTS / PCPS / MFS_IR / ER) — primary and only economic sourceIMF Datamapper REST + SDMX 3.0 (scripts/imf-fetch.ts)
MEDIUMGovernment press releasesearch_regering
MEDIUMNamed politician's anförande in Riksdagsearch_anforanden
MEDIUMVerified major newspaper with named sourcessearch_dokument_fulltext
LOWSingle unnamed source— (flag for verification)
REJECTEDAnalyst inference without evidence

📊 MCP Data Sources for Each Quadrant

✅ Strengths — Optimal MCP Sources

Strengths are typically demonstrated by achieved results and enacted legislation:

Strength TypeMCP ToolQuery Strategy
Legislative achievementsearch_dokumentdoktyp=prop + status=antagen (approved)
Coalition vote cohesionsearch_voteringarFilter by coalition parties + Ja votes
Policy implementationsearch_dokumentGovernment skr (skrivelse) reports
Parliamentary majorityfetch_reportreport=ledamotsstatistik for seat counts
International standingsearch_dokumentorgan=UU (Foreign Affairs Committee)

⚠️ Weaknesses — Optimal MCP Sources

Weaknesses are demonstrated by failed votes, dissenting opinions, and opposition criticism:

Weakness TypeMCP ToolQuery Strategy
Internal coalition dissentsearch_voteringarCoalition party voting against government
Policy failuresearch_dokumentWithdrawn propositions, failed betänkanden
Opposition criticism strengthget_interpellationerVolume and topics of interpellationer
Parliamentary minoritysearch_voteringarNej votes from coalition on own proposals
Public accountability issuessearch_dokumentKU investigations organ=KU

🚀 Opportunities — Optimal MCP Sources

Opportunities are demonstrated by legislative proposals, committee reports, and economic data:

Opportunity TypeMCP ToolQuery Strategy
Pending favourable legislationget_motionerCoalition party motions, high significance
Positive economic contextIMF WEO/FM data + SCB national accounts + search_dokumentFiU positive assessments
Upcoming SOU recommendationssearch_dokumentdoktyp=sou recent + search_regering
Nordic/EU opportunitysearch_dokumentorgan=UU + EU directive implementation
Electoral opportunityfetch_report + search_voteringarFavourable topics + voting patterns

🔴 Threats — Optimal MCP Sources

Threats are demonstrated by opposition motions, no-confidence signals, and external pressures:

Threat TypeMCP ToolQuery Strategy
No-confidence risksearch_dokumentdoktyp=miss (misstroendeförklaring)
Opposition mobilisationget_motionerHigh-volume opposition motions on key topics
Budget squeezesearch_dokumentFiU dissenting reservationer
Constitutional challengesearch_dokumentorgan=KU active investigations
EU compliance pressuresearch_dokumentEU-directive related propositioner

🎯 Confidence Level Assignment (5-Level Scale)

Assignment Criteria

LevelLabelCriteriaExample
🟦 5VERY HIGHMultiple official sources, cross-validated, no conflicting evidence; primary source is official Riksdag voting records or government legislation"Coalition secured 176/349 votes on motion FPM45 (voteringsresultat 2025-11-24, cross-checked against party position statements)"
🟩 4HIGHMultiple independent sources corroborate; primary source is official Riksdag document or SCB statistics; source current (within 90 days)"Coalition secured 176/349 votes on budget motion 2025/26:FPM45 (verified via voteringsresultat 2025-11-24)"
🟧 3MEDIUMSingle primary source confirmed; or multiple secondary sources; or primary source 90–180 days old"Government polling at 38% approval per Novus (2026-02-15); single pollster"
🟥 2LOWCredible but single unverified source; inference from related evidence; source 180+ days old"Estimated L party dissent based on parliamentary debate tone — no formal vote yet"
⬛ 1VERY LOWSpeculation only; no direct evidence; inferred from general political patterns"Possible SD internal disagreement suggested by tone of spokesperson statement"

Confidence Decay Rule

SWOT entries age and their confidence level automatically degrades over time:

Original ConfidenceAfter 30 daysAfter 90 daysAfter 180 days
VERY HIGHVERY HIGHHIGHMEDIUM
HIGHHIGHMEDIUMLOW
MEDIUMMEDIUMLOWEXPIRED
LOWLOWEXPIREDEXPIRED
VERY LOWEXPIREDEXPIREDEXPIRED

EXPIRED entries must be re-verified or removed before inclusion in new SWOT analyses.

Clarification: EXPIRED is a lifecycle status, not a confidence level. When temporal decay moves an entry to EXPIRED, it must be handled per the rules below. An active SWOT analysis contains ONLY entries with confidence VERY HIGH, HIGH, MEDIUM, or LOW.

Handling EXPIRED Entries

When an entry reaches EXPIRED status:

  1. Re-verify: Check if updated evidence exists via MCP tools (e.g., new vote record, updated SCB data)
  2. Refresh: If new evidence found, create a NEW entry with fresh confidence and updated evidence
  3. Archive: If no new evidence, move entry to "Historical Context" section (informational, not active SWOT)
  4. Remove: If the situation has fundamentally changed (e.g., new coalition formed), delete the entry entirely

Rule: An active SWOT analysis must contain ZERO expired entries. Every entry must have a confidence of VERY HIGH, HIGH, MEDIUM, or LOW with a clear evidence trail.


🗳️ Election 2026 — Mandatory SWOT Dimension

Added in v2.3 — Election 2026 is a MANDATORY SWOT dimension for all analyses in 2025–2026.

With the September 2026 Swedish general election approaching, every SWOT analysis MUST include an Electoral Dimension assessment across all four quadrants.

Electoral SWOT Quadrant Requirements

QuadrantElection 2026 FocusEvidence Standard
StrengthsPolicies that position governing coalition favorably for 2026 (track record, deliveries, approval metrics)Opinion polling, government implementation reports
WeaknessesPolicy failures or controversies that create electoral vulnerabilities (budget gaps, coalition tensions, unfulfilled promises)Riksdag debates, media coverage, opposition motions
OpportunitiesPolicy areas where the government can score electoral wins before September 2026Legislative calendar, EU funds, pending legislation
ThreatsExternal events or opposition strategies that could damage electoral prospectsOpposition motions, global economic indicators, security events

Minimum Electoral SWOT Requirements

Every SWOT analysis produced within 18 months of September 2026 MUST include:

  • ≥1 Strength entry with specific electoral relevance and evidence
  • ≥1 Weakness entry with specific electoral vulnerability and attack vector potential
  • ≥1 Opportunity entry with timeline relative to election date
  • ≥1 Threat entry with probability assessment and mitigation options

Electoral SWOT Confidence Standards

Electoral SWOT entries require MEDIUM confidence minimum (3+ sources). VERY LOW confidence content is not permitted as an active Electoral SWOT entry and must not be used to satisfy the minimum Strength/Weakness/Opportunity/Threat requirements above. Speculation about electoral consequences without supporting polling or documented party positions may only appear in a clearly separate Speculative / Monitoring Notes subsection, labeled VERY LOW, and isolated from substantive findings.


🔗 Aggregating Party/Coalition SWOTs into Landscape SWOT

When analysing the full political landscape, aggregate individual party SWOTs using this protocol:

Aggregation Steps

flowchart TD
    A[Individual Party SWOTs] --> B[Government Coalition SWOT]
    A --> C[Opposition Bloc SWOT]
    A --> D[Individual Party SWOTs<br/>e.g. SD, V, MP]
    
    B --> E[Landscape SWOT Aggregation]
    C --> E
    D --> E
    
    E --> F{Intersection Analysis}
    F --> G[Government S vs Opposition T<br/>= Contested terrain]
    F --> H[Government W vs Opposition O<br/>= Opposition opportunity]
    F --> I[Shared O<br/>= Cross-party opportunity]
    F --> J[Shared T<br/>= System-level risk]
    
    G --> K[Landscape SWOT Entry]
    H --> K
    I --> K
    J --> K

Intersection Rules

  • Government Strength + Opposition Threat = Priority watchpoint (contested terrain)
  • Government Weakness + Opposition Opportunity = High-significance political risk
  • Shared Opportunity (both sides see it) = Major policy window; cross-party deal possible
  • Shared Threat (both sides face it) = System-level risk; constitutional/economic dimension

Weighting Rules for Landscape SWOT

When aggregating individual party/coalition SWOTs into a landscape SWOT:

Source SWOTWeightRationale
Government Coalition0.40Governing parties set policy agenda; their position has highest system impact
Main Opposition (S)0.25Largest opposition party; primary alternative government
SD (supply-and-confidence)0.20Kingmaker role; coalition depends on SD support
Minor parties (V, MP, C, L)0.15Combined weight; influence through committee and budget negotiations

Conflict resolution: When government SWOT entry contradicts opposition SWOT entry on the same topic, include BOTH in the landscape SWOT as "contested terrain" with a note identifying the conflict. Do NOT average or remove conflicting entries.

Minimum landscape SWOT requirements:

  • ≥ 3 Strengths (at least 1 from government, 1 from opposition perspective)
  • ≥ 3 Weaknesses (at least 1 from each side)
  • ≥ 2 Opportunities (at least 1 shared across perspectives)
  • ≥ 3 Threats (at least 1 system-level)

📚 SWOT Generation Pipeline Reference

The SWOT generation pipeline is driven by AI agents reading methodology documents and producing per-file analysis:

FilePurpose
scripts/prompts/v2/swot-generation.mdLLM prompts for SWOT generation (v2)
scripts/prompts/v2/per-file-intelligence-analysis.mdPer-file analysis protocol
analysis/templates/per-file-political-intelligence.mdPer-file output template with SWOT section
analysis/templates/swot-analysis.mdStandalone SWOT template for daily/weekly synthesis
scripts/ai-analysis/swot/SWOT-specific AI analysis scripts
scripts/analysis-framework/lenses/Per-perspective evidence gathering

AI Analysis Protocol for SWOT

The AI agent MUST follow this protocol when generating SWOT analysis:

  1. Read this framework — understand evidence hierarchy, confidence levels, decay rules, AND the advanced techniques below
  2. Query MCP tools — use the tool/query strategies from the tables above for each quadrant
  3. Fill SWOT template — every entry needs: Statement + Evidence (dok_id) + Confidence + Impact
  4. Apply Cross-SWOT Interference — identify how SWOT elements from different actors amplify each other
  5. Apply intersection analysis — identify contested terrain, opposition opportunities, shared risks
  6. Generate TOWS strategic options — convert findings to strategic implications
  7. Validate quality gate — ≥ 2 entries per quadrant, zero opinion-only entries, zero EXPIRED entries

🔄 Advanced Technique 1: Cross-SWOT Interference Analysis

When the political landscape involves multiple actors (government, opposition, kingmaker SD), their SWOT elements don't exist in isolation — they interfere with each other, creating amplification effects:

graph TD
    subgraph "Government SWOT"
        GS["💪 Gov Strength:<br/>Legislative majority"]
        GW["⚡ Gov Weakness:<br/>Internal coalition tension"]
    end
    subgraph "Opposition SWOT"
        OS["💪 Opp Strength:<br/>United front on healthcare"]
        OT["🔴 Opp Threat:<br/>SD migration agenda"]
    end
    subgraph "SD SWOT"
        SS["💪 SD Strength:<br/>Kingmaker position"]
        SW["⚡ SD Weakness:<br/>Policy delivery credibility"]
    end

    GW -->|"amplifies"| OS
    SS -->|"enables"| GS
    SW -->|"undermines"| GS
    OT -->|"constrains"| OS

    style GS fill:#4CAF50,color:#FFFFFF
    style GW fill:#FF9800,color:#FFFFFF
    style OS fill:#4CAF50,color:#FFFFFF
    style OT fill:#D32F2F,color:#FFFFFF
    style SS fill:#4CAF50,color:#FFFFFF
    style SW fill:#FF9800,color:#FFFFFF

Interference Matrix

Gov SWOT ElementOpp SWOT ElementInterference EffectImplication
Gov Strength + Opp WeaknessReinforcing advantageGovernment position consolidates
Gov Weakness + Opp StrengthAmplified vulnerabilityOpposition likely to exploit
Gov Threat + Opp OpportunityConverging pressureHigh-risk political moment
Gov Strength + SD WeaknessFragile dependencyMajority depends on unreliable support

Interference Detection Protocol

For each SWOT entry:

  1. Ask: "Does this element AMPLIFY or COUNTERACT any element from another actor's SWOT?"
  2. Map the interference (amplifies, enables, undermines, constrains)
  3. Rate the interference strength (strong/moderate/weak)
  4. Identify the net political effect — is the system moving toward stability or instability?

📊 Advanced Technique 2: TOWS Strategic Options Matrix

TOWS converts SWOT findings into strategic options — answering "So what?" for each SWOT combination:

``$\text{mermaid} \text{graph} \text{TD} \text{SO}["\text{SO} \text{Strategies}<\text{br}/>(\text{Strengths} \times \text{Opportunities})<\text{br}/><\text{em}>\text{Leverage} \text{strengths} \text{to} \text{exploit} \text{opportunities}</\text{em}>"] \text{WO}["\text{WO} \text{Strategies}<\text{br}/>(\text{Weaknesses} \times \text{Opportunities})<\text{br}/><\text{em}>\text{Use} \text{opportunities} \text{to} \text{address} \text{weaknesses}</\text{em}>"] \text{ST}["\text{ST} \text{Strategies}<\text{br}/>(\text{Strengths} \times \text{Threats})<\text{br}/><\text{em}>\text{Use} \text{strengths} \text{to} \text{counter} \text{threats}</\text{em}>"] \text{WT}["\text{WT} \text{Strategies}<\text{br}/>(\text{Weaknesses} \times \text{Threats})<\text{br}/><\text{em}>\text{Defensive}: \text{minimise} \text{vulnerabilities}</\text{em}>"]

\text{style} \text{SO} \text{fill}:#4\text{CAF50},\text{color}:#\text{FFFFFF}
\text{style} \text{WO} \text{fill}:#1565\text{C0},\text{color}:#\text{FFFFFF}
\text{style} \text{ST} \text{fill}:#\text{FFC107},\text{color}:#000000
\text{style} \text{WT} \text{fill}:#\text{D32F2F},\text{color}:#\text{FFFFFF}

$``

TOWS CellPolitical ContextExample
SO (Strength × Opportunity)"Government uses legislative majority (S1) to pass popular criminal justice reform (O1) before election"Proactive agenda-setting
WO (Weakness × Opportunity)"Coalition uses EU mandate (O2) to force internal alignment on migration (W1)"External pressure as internal discipline
ST (Strength × Threat)"Government uses budget control (S2) to fund SD-priority policies, neutralising withdrawal threat (T1)"Pre-emptive concession
WT (Weakness × Threat)"Internal dissent (W1) + SD withdrawal threat (T1) = highest-risk scenario requiring immediate coalition management"Defensive damage control

Every SWOT analysis MUST include at least 2 TOWS strategic options with evidence-backed reasoning.


🔮 Advanced Technique 3: Strategic Scenario Generation

Use SWOT combinations to construct plausible political futures (scenarios), each with a probability range and trigger conditions:

Scenario Construction Protocol

  1. Identify 2–3 key uncertainties from the SWOT analysis (e.g., "Will SD support the budget?" + "Will KU investigation escalate?")
  2. Construct 2×2 scenario matrix from the two most impactful uncertainties
  3. Name each scenario and describe its political characteristics
  4. Assign probability ranges based on evidence
  5. Identify trigger indicators that would signal movement toward each scenario

Example Scenario Matrix

%%{init: {
  "theme": "neutral",
  "themeVariables": {
    "quadrant1Fill": "#D32F2F",
    "quadrant2Fill": "#FFC107",
    "quadrant3Fill": "#4CAF50",
    "quadrant4Fill": "#FF9800",
    "quadrantTitleFill": "#FFFFFF",
    "quadrantPointFill": "#FFFFFF",
    "quadrantPointTextFill": "#000000",
    "quadrantXAxisTextFill": "#000000",
    "quadrantYAxisTextFill": "#000000"
  },
  "quadrantChart": {
    "chartWidth": 700,
    "chartHeight": 700,
    "pointLabelFontSize": 12,
    "titleFontSize": 18,
    "quadrantLabelFontSize": 14,
    "xAxisLabelFontSize": 14,
    "yAxisLabelFontSize": 14
  }
}}%%
quadrantChart
    title 🎯 Political Scenario Space (30-day horizon)
    x-axis SD Budget Support --> SD Budget Withdrawal
    y-axis KU Investigation Contained --> KU Investigation Escalates
    quadrant-1 🔴 CRISIS — Coalition collapse
    quadrant-2 🟡 PRESSURE — Managed transition
    quadrant-3 🟢 STATUS QUO — Stable governance
    quadrant-4 🟠 STRESS TEST — Weakened but surviving
ScenarioSD Budget SupportKU OutcomeProbabilityKey Trigger
🟢 Status QuoSupportsContained40–55%SD publicly confirms budget support
🟠 Stress TestSupportsEscalates15–25%KU hearing reveals new evidence
🟡 PressureWithdrawsContained10–20%SD demands unmet, partial withdrawal
🔴 CrisisWithdrawsEscalates5–15%Combined pressure triggers no-confidence

📐 Advanced Technique 4: Power-Interest Mapping

Position key stakeholders by their power (ability to influence outcomes) and interest (stake in specific issues) to identify who matters most:

%%{init: {
  "theme": "dark",
  "themeVariables": {
    "quadrant1Fill": "#1565C0",
    "quadrant2Fill": "#2E7D32",
    "quadrant3Fill": "#FF9800",
    "quadrant4Fill": "#D32F2F",
    "quadrantTitleFill": "#FFFFFF",
    "quadrantPointFill": "#FFFFFF",
    "quadrantPointTextFill": "#FFFFFF",
    "quadrantXAxisTextFill": "#FFFFFF",
    "quadrantYAxisTextFill": "#FFFFFF"
  },
  "quadrantChart": {
    "chartWidth": 700,
    "chartHeight": 700,
    "pointLabelFontSize": 14,
    "titleFontSize": 20,
    "quadrantLabelFontSize": 16,
    "xAxisLabelFontSize": 14,
    "yAxisLabelFontSize": 14
  }
}}%%
quadrantChart
    title 🤝 Stakeholder Power-Interest Map
    x-axis Low Interest --> High Interest
    y-axis Low Power --> High Power
    quadrant-1 MANAGE CLOSELY
    quadrant-2 KEEP SATISFIED
    quadrant-3 MONITOR
    quadrant-4 KEEP INFORMED
    "👨‍💼 Statsminister": [0.80, 0.90]
    "🏛️ SD Leadership": [0.70, 0.75]
    "🏛️ S Opposition": [0.65, 0.60]
    "📺 Media (SVT)": [0.50, 0.50]
    "🇪🇺 EU Commission": [0.30, 0.65]
    "👥 General Public": [0.70, 0.20]
QuadrantStrategyStakeholders
Manage Closely (high power, high interest)Full analysis; primary intelligence consumerGovernment leadership, coalition partners, SD
Keep Satisfied (high power, low interest)Monitor for engagement; alert on activationEU Commission, NATO allies, central bank
Keep Informed (low power, high interest)Regular reporting; citizen engagementMedia, civil society, general public
Monitor (low power, low interest)Periodic check; no active engagementMinor parties, regional actors

🇪🇺 EU Parliament Monitor Integration

Cross-Parliament Evidence Hierarchy

Riksdagsmonitor enriches its SWOT analysis with EU Parliament data via the European Parliament MCP Server. When Swedish domestic policy intersects EU legislation, cross-parliament evidence strengthens confidence assessments.

ConfidenceAcceptable SourcesTool / Data Source
HIGHOfficial Riksdag voted text, verified roll-call recordsearch_voteringar, get_betankanden
HIGHGovernment proposition text (approved or tabled)get_propositioner
HIGHSCB / Eurostat official statisticsSCB PxWeb, Eurostat
HIGHIMF economic data (WEO / FM / IFS / BOP / GFS_COFOG / DOTS / PCPS / MFS_IR / ER) — primary and only economic sourcescripts/imf-fetch.ts
HIGHEP plenary roll-call vote (verified)EP Open Data /votes
MEDIUMNamed MP speech in Riksdag plenary recordsearch_anforanden
MEDIUMCommittee / commission statement (Riksdag or EP)search_dokument, EP /committees
MEDIUMVerified media outlet with named sourcesExternal (flagged)
MEDIUMSwedish MEP activity in EP plenary or committeeEP /meps, EP /activities
LOWSingle unnamed source— (flag for verification)
REJECTEDAnalyst inference without evidence— (not accepted)

Cross-Parliament Rule: When a SWOT entry cites both a Riksdag source (dok_id) and an EP source (EP document reference), it receives a +1 confidence boost (e.g., MEDIUM → HIGH) because cross-parliament corroboration significantly increases reliability.

Cross-Parliament Confidence Decay

SWOT entries using cross-parliament evidence follow slower/extended decay because EU legislative timelines are longer (co-decision procedures span 12–24 months):

Original ConfidenceAfter 30 daysAfter 90 daysAfter 180 days
HIGHHIGHHIGHMEDIUM
MEDIUMMEDIUMLOWEXPIRED
LOWLOWEXPIREDEXPIRED

Note: EU legislative procedure references (COD, CNS, APP) decay slower than domestic Riksdag references because EU procedures move on multi-year timescales. A pending EU directive cited in a SWOT entry retains HIGH confidence for 90 days (vs. 30 for domestic-only entries). EXPIRED entries must be re-verified via EP Open Data or removed from active analysis.


🇪🇺 EU Parliament MCP Data Sources for Each Quadrant

✅ Strengths — EU Parliament Dimension

Swedish government strengths reinforced by EU-level legislative achievements and MEP influence:

Strength TypeRiksdag MCP ToolEU Parliament SourceCross-Reference Strategy
Legislative achievement with EU mandateget_betankanden, search_voteringarEP /votes (roll-call)Match Riksdag betänkande to EU directive transposition
Coalition cohesion on EU policysearch_voteringar, get_propositionerEP /meps (Swedish MEP votes)Compare coalition party discipline: Riksdag vs. EP group
Strong EP group alignmentExternal/manual: EP seat count data (e.g. European-Parliament-MCP-Server)EP /committeesSwedish MEPs in key EP committee chair/rapporteur roles
EU funding securedsearch_dokument (organ=FiU)Eurostat, EU budget dataCross-reference FiU assessment with EU allocation data

⚠️ Weaknesses — EU Parliament Dimension

Party fragmentation and policy stalls visible through cross-parliament comparison:

Weakness TypeRiksdag MCP ToolEU Parliament SourceCross-Reference Strategy
Riksdag–EP voting misalignmentsearch_voteringar (defection rates)EP /votes (Swedish MEPs)Party votes YES in Riksdag but Swedish MEPs vote NO in EP
Unanswered interpellationer on EU policyget_interpellationerEP /documentsGovernment silent on EU issues raised by opposition
EU infringement proceedings against Swedensearch_dokument (organ=UU)EUR-Lex infringement dataMap pending infringements to legislative inaction
Swedish MEP influence deficitEP /committees, /activitiesFew Swedish rapporteurships or committee chairs

🚀 Opportunities — EU Parliament Dimension

Pending EU legislation and cross-party consensus windows:

Opportunity TypeRiksdag MCP ToolEU Parliament SourceCross-Reference Strategy
Pending EU legislation favourable to Swedenget_propositioner, get_calendar_eventsEP /documents (COD procedures)Match pending EP votes to Riksdag preparatory work
Cross-party consensus in EP benefiting Swedensearch_voteringarEP /votes (Swedish MEP unanimity)All Swedish MEPs voting together = strong national position
EU funding opportunitiessearch_dokument (organ=FiU)EU budget / NextGenerationEUIdentify uncommitted EU funds for Swedish priorities
Nordic bloc coordination in EPsearch_dokument (organ=UU)EP /meps (Nordic MEPs)Joint Nordic positions in EP committees and votes

🔴 Threats — EU Parliament Dimension

SD leverage on EU policy, budget disputes, and opposition attacks with EU ammunition:

Threat TypeRiksdag MCP ToolEU Parliament SourceCross-Reference Strategy
SD leveraging EU migration policysearch_voteringar, search_anforandenEP /votes (ECR group)SD demands map to ECR group positions in EP
Opposition using EU comparison dataget_motioner, search_anforandenEurostat, EP /documentsS/V/MP citing EU benchmarks Sweden fails to meet
EU regulatory burden on Swedish industrysearch_dokumentEP /documents (pending directives)Upcoming EU regulation impact on Swedish competitiveness
Budget disputes amplified by EU contributionssearch_voteringar (budget votes)EU budget dataSwedish EU contribution changes affecting domestic budget

🔄 Cross-Parliament SWOT Aggregation

Riksdag ↔ EU Parliament Aggregation Pipeline

When political analysis requires both domestic and EU-level intelligence, individual party SWOTs aggregate through two parliamentary layers:

flowchart TD
    subgraph "Layer 1: Individual Party SWOTs"
        M["🟦 M<br/>Moderaterna"]
        KD["🟦 KD<br/>Kristdemokraterna"]
        L["🟦 L<br/>Liberalerna"]
        SD["🟨 SD<br/>Sverigedemokraterna"]
        S["🟥 S<br/>Socialdemokraterna"]
        V["🟥 V<br/>Vänsterpartiet"]
        MP["🟩 MP<br/>Miljöpartiet"]
        C["🟩 C<br/>Centerpartiet"]
    end

    subgraph "Layer 2: Bloc Aggregation"
        GOV["💼 Government Bloc SWOT<br/>M + KD + L + SD<br/>(Tidöavtalet)"]
        OPP["📢 Opposition Bloc SWOT<br/>S + V + MP + C"]
    end

    subgraph "Layer 3: Riksdag Landscape"
        RIK["🇸🇪 Riksdag Landscape SWOT"]
    end

    subgraph "Layer 4: EU Parliament Dimension"
        EPMEP["🇪🇺 Swedish MEP SWOT<br/>21 MEPs across EP groups"]
        EPGRP["🇪🇺 EP Group Alignment SWOT<br/>EPP · S&D · RE · ECR · Greens/EFA · GUE/NGL"]
    end

    subgraph "Layer 5: Cross-Parliament Synthesis"
        XSWOT["🌐 Cross-Parliament<br/>Landscape SWOT"]
    end

    M --> GOV
    KD --> GOV
    L --> GOV
    SD --> GOV
    S --> OPP
    V --> OPP
    MP --> OPP
    C --> OPP

    GOV --> RIK
    OPP --> RIK

    RIK --> XSWOT
    EPMEP --> XSWOT
    EPGRP --> XSWOT

    XSWOT --> INT{{"🔍 Cross-Parliament<br/>Intersection Analysis"}}
    INT --> CT["⚔️ Contested terrain:<br/>Gov Strength + Opp Threat<br/>+ EP divergence"]
    INT --> PR["⚠️ Political risk:<br/>Gov Weakness + Opp Opportunity<br/>+ EU infringement"]
    INT --> PW["🤝 Policy window:<br/>Shared Opportunity<br/>+ EP cross-group consensus"]
    INT --> SR["🚨 System-level risk:<br/>Shared Threat<br/>+ EU compliance gap"]

    style GOV fill:#1565C0,color:#FFFFFF,stroke:#1565C0
    style OPP fill:#B71C1C,color:#FFFFFF,stroke:#D32F2F
    style RIK fill:#0D47A1,color:#FFFFFF,stroke:#1565C0
    style EPMEP fill:#1565C0,color:#FFFFFF,stroke:#2196F3
    style EPGRP fill:#0D47A1,color:#FFFFFF,stroke:#2196F3
    style XSWOT fill:#1B5E20,color:#FFFFFF,stroke:#00897B
    style CT fill:#FF9800,color:#000000,stroke:#FF9800
    style PR fill:#D32F2F,color:#FFFFFF,stroke:#D32F2F
    style PW fill:#4CAF50,color:#FFFFFF,stroke:#4CAF50
    style SR fill:#7B1FA2,color:#FFFFFF,stroke:#7B1FA2

Cross-Parliament Intersection Rules

Riksdag SWOT ElementEU Parliament ElementIntersection TypeSignificance
Gov Strength + EP group alignmentSwedish MEPs in majority EP groupReinforced strengthSweden's position amplified in EU negotiations
Gov Weakness + EP infringement pressurePending EU infringement caseAmplified vulnerabilityDomestic policy failure + EU enforcement = high risk
Gov Threat (SD leverage) + ECR group dynamicsECR group internal splitsMediated threatSD leverage may be constrained by EP group realities
Opp Opportunity + EP cross-group majorityBroad EP consensus on policyEnhanced opportunityOpposition cites EU consensus to pressure government
Shared Opportunity + EU legislative windowPending COD procedure favourable to SwedenStrategic windowCross-bloc domestic deal possible under EU mandate
Shared Threat + EU compliance deadlineHard EU transposition deadlineElevated system riskFailure to act has legal consequences beyond domestic politics

Swedish Party → EP Group Mapping

Understanding which EP groups align with Swedish parties is essential for cross-parliament SWOT:

Swedish PartyEP Political GroupAlignment StrengthSWOT Implication
M (Moderaterna)EPP (European People's Party)StrongEPP majority positions reinforce M's domestic agenda
KD (Kristdemokraterna)EPPStrongKD benefits from EPP family policy positions
L (Liberalerna)Renew Europe (RE)ModerateRE liberal positions sometimes conflict with Tidöavtalet
SD (Sverigedemokraterna)ECR (European Conservatives)ModerateECR migration stance aligns but EU-scepticism limits leverage
S (Socialdemokraterna)S&D (Socialists & Democrats)StrongS&D positions provide ammunition for opposition criticism
V (Vänsterpartiet)GUE/NGL (The Left)ModerateEU-critical stance limits V's use of EP evidence
MP (Miljöpartiet)Greens/EFAStrongGreen Deal alignment gives MP strong EU-backed arguments
C (Centerpartiet)Renew Europe (RE)ModerateRE market-liberal positions support C's deregulation agenda

🛡️ Evidence-Based vs. Opinion-Based SWOT — Full Decision Tree

Every SWOT entry — whether from Riksdag, EU Parliament, or cross-parliament sources — must pass this gate:

flowchart TD
    A["📝 SWOT Entry Submitted"] --> B{"Has verifiable<br/>evidence?"}

    B -->|"✅ Yes"| C{"Source type?"}
    B -->|"❌ No"| REJ["🚫 REJECTED<br/>Opinion-Based<br/>Return for evidence<br/>gathering or discard"]

    C -->|"Riksdag dok_id<br/>or roll-call vote"| D["📊 Riksdag-Sourced<br/>HIGH confidence"]
    C -->|"EP document ref<br/>or roll-call vote"| E["🇪🇺 EP-Sourced<br/>HIGH confidence"]
    C -->|"Both Riksdag +<br/>EP sources"| F["🌐 Cross-Parliament<br/>HIGH+ confidence<br/>(boosted)"]
    C -->|"Named speech or<br/>committee statement"| G["💬 Statement-Sourced<br/>MEDIUM confidence"]
    C -->|"Verified media<br/>with named sources"| H["📰 Media-Sourced<br/>MEDIUM confidence"]
    C -->|"Single unnamed<br/>source"| I["⚠️ Single-Source<br/>LOW confidence<br/>Flag for verification"]

    D --> PUB["✅ PUBLISHABLE<br/>Include in active SWOT"]
    E --> PUB
    F --> PUB
    G --> PUB
    H --> PUB
    I --> PUB

    REJ --> REWORK["🔄 Rework: Gather evidence<br/>via MCP tools or<br/>discard entry"]

    style A fill:#455A64,color:#FFFFFF,stroke:#455A64
    style B fill:#7B1FA2,color:#FFFFFF,stroke:#7B1FA2
    style C fill:#1565C0,color:#FFFFFF,stroke:#2196F3
    style D fill:#4CAF50,color:#FFFFFF,stroke:#4CAF50
    style E fill:#1565C0,color:#FFFFFF,stroke:#2196F3
    style F fill:#1B5E20,color:#FFFFFF,stroke:#00897B
    style G fill:#FF9800,color:#000000,stroke:#FF9800
    style H fill:#FF9800,color:#000000,stroke:#FF9800
    style I fill:#FF9800,color:#FFFFFF,stroke:#F57C00
    style PUB fill:#4CAF50,color:#FFFFFF,stroke:#4CAF50
    style REJ fill:#D32F2F,color:#FFFFFF,stroke:#D32F2F
    style REWORK fill:#9E9E9E,color:#000000,stroke:#9E9E9E

⛔ Anti-Pattern Warning

🚨 SWOT entries without specific evidence citations (dok_id, MCP tool outputs, EP document references, or named sources) are REJECTED.

This is a hard gate — no exceptions. Analyst inference, general impressions, "common knowledge," and unsourced claims do not qualify as evidence. If an entry cannot cite at least one of:

  • A Riksdag document ID (dok_id, e.g., H901FiU1)
  • An MCP tool query result (e.g., search_voteringar output)
  • An EP document reference (e.g., A9-0123/2026)
  • A named primary source with date and context

…then it must not appear in a published SWOT analysis. Return it for evidence gathering via the appropriate MCP tools, or discard it entirely.


🔄 SWOT Evolution Tracking (v2.2)

SWOT analyses are living documents that change as the political landscape evolves. This section defines how to track SWOT changes over time, detect inter-quadrant migration, and aggregate cross-day SWOT data for weekly/monthly reviews.

SWOT Delta Template

When producing sequential SWOT analyses (e.g., daily or weekly), include a SWOT Delta section showing what changed since the previous analysis:

QuadrantEntryStatusPrior DayCurrent DayEvidence for Change
StrengthCoalition voting cohesion at 89%PersistsS1: 89% cohesion (2026-03-31)S1: 89% cohesion (2026-04-01)search_voteringar rm=2025/26 — no new votes
StrengthL above 4% thresholdDegraded ⬇️S3: L at 4.4% (Novus 2026-03-15)→ Moved to WeaknessSCB partisympati 2026-04-01: L at 3.8% (±1.1%)
WeaknessL threshold riskNew 🆕(not present)W4: L at 3.8% (±1.1%)Migrated from Strength S3
OpportunityFiU spring budget amendmentResolvedO2: Spring amending budget expected(removed — event occurred)Budget tabled 2026-04-01 via get_propositioner
ThreatSD migration ultimatumEscalatedT1: SD rhetoric intensifyingT1: SD formal demand via interpellationget_interpellationer dok_id: HD04567

Status Codes

CodeMeaningAction Required
PersistsEntry unchanged — same evidence, same assessmentCarry forward with updated date
New 🆕Entry did not exist in prior analysisDocument the triggering evidence and date
Degraded ⬇️Entry's evidence weakened or confidence decayedUpdate confidence level; consider migration
EscalatedEntry's severity or confidence increasedUpdate with new evidence; re-score
ResolvedThe underlying situation no longer appliesRemove from active SWOT; archive in historical context
MigratedEntry moved to a different quadrantDocument both the old and new quadrant

Inter-Quadrant Migration Rules

SWOT entries can migrate between quadrants as the political situation evolves. Common migration patterns:

graph LR
    S["✅ Strength"]
    W["⚠️ Weakness"]
    O["🚀 Opportunity"]
    T["🔴 Threat"]

    S -->|"Evidence reversal<br/>(e.g., polling drops)"| W
    W -->|"Remediation<br/>(e.g., policy reform)"| S
    O -->|"Window closes<br/>(e.g., deadline passes)"| T
    T -->|"Mitigated<br/>(e.g., agreement reached)"| O
    O -->|"Captured successfully"| S
    T -->|"Materialized"| W

    style S fill:#4CAF50,color:#FFFFFF
    style W fill:#D32F2F,color:#FFFFFF
    style O fill:#1565C0,color:#FFFFFF
    style T fill:#FFC107,color:#000000

Migration Examples

MigrationExampleTrigger Evidence
Strength → WeaknessCoalition voting cohesion 89% → 62% after contested FöU votesearch_voteringar rm=2025/26, bet=FöU8
Opportunity → ThreatEU Green Deal funding window closes without Swedish application submittedEU deadline + search_dokument for missing proposition
Threat → WeaknessSD migration ultimatum materializes — coalition partner defects on SfU votesearch_voteringar showing SD voting with opposition
Weakness → StrengthGovernment successfully renegotiates Tidöavtal migration sectionJoint coalition press conference + search_dokument
Opportunity → StrengthGovernment captures spring budget opportunity with cross-party supportsearch_voteringar rm=2025/26, bet=FiU20

Rule: Every migration MUST cite the specific MCP evidence that triggered the move. Undocumented migrations are rejected.

Cross-Document SWOT Aggregation Protocol

When producing weekly reviews or monthly strategic briefs, aggregate daily SWOT analyses using this protocol:

Step 1: Collect Daily SWOTs

Gather all SWOT analyses from analysis/daily/YYYY-MM-DD/*/swot-analysis.md for the period.

Step 2: Frequency Analysis

Count how many times each SWOT entry appears across the period:

EntryQuadrantAppearances (out of N days)Persistence RateTrend
Coalition cohesion ≥85%Strength5/5100%→ Stable
L threshold riskWeakness3/560%↑ Emerging
SD migration demandsThreat5/5100%↑ Escalating
FiU spring budgetOpportunity2/540%↓ Resolving

Step 3: Weighted Aggregation

For the aggregated weekly/monthly SWOT:

  • Include entries with ≥60% persistence rate as core items
  • Flag entries with 30–59% persistence as emerging/resolving
  • Exclude entries with <30% persistence (one-off events) unless they triggered a migration
  • Weight by confidence: HIGH entries count 1.0×, MEDIUM 0.7×, LOW 0.4×

Step 4: Delta Summary

Produce a period-level delta:

Weekly SWOT Delta (2026-03-31 to 2026-04-06):

  • New Strengths: 1 (budget passed with cross-party support)
  • Lost Strengths: 1 (L polling dropped below 4% → migrated to Weakness)
  • New Threats: 2 (SD interpellation, ECJ infringement warning)
  • Resolved Opportunities: 1 (spring budget tabled)
  • Net SWOT Balance: Weakening (−1 Strength, +2 Threats)


Document Control:

  • Path: /analysis/methodologies/political-swot-framework.md
  • CIA Reference: CIA SWOT.md
  • Version: 2.3
  • Advanced Techniques: Cross-SWOT Interference, TOWS Matrix, Scenario Generation, Power-Interest Mapping, EU Parliament Cross-Reference, SWOT Evolution Tracking, Election 2026 Mandatory Dimension
  • Key Changes v2.3: Election 2026 as mandatory SWOT dimension (electoral quadrant requirements, confidence standards for electoral entries), 5-level confidence scale replacing HIGH/MEDIUM/LOW (VERY HIGH/HIGH/MEDIUM/LOW/VERY LOW with updated decay table)
  • Key Changes v2.2: SWOT Evolution Tracking (SWOT Delta template, inter-quadrant migration rules with Mermaid diagram, cross-document aggregation protocol for weekly/monthly reviews)
  • EU Integration: European Parliament MCP Server data sources, cross-parliament aggregation, Swedish MEP ↔ EP group mapping
  • Classification: Public
  • Next Review: 2026-09-01