🔄 Advanced Process Flows: From Static Website to AI-Powered Intelligence Platform
🎯 Multi-Modal AI · Real-Time Analytics · Predictive Democracy · Knowledge Graphs
📋 Document Owner: CEO | 📄 Version: 2.0 | 📅 Last Updated: 2026-02-24 (UTC)
🔄 Review Cycle: Quarterly | ⏰ Next Review: 2026-05-24
🏢 Owner: Hack23 AB (Org.nr 5595347807) | 🏷️ Classification: Public
| Document | Type | Description |
|---|---|---|
| Architecture | 🏛️ Current | C4 model showing system structure |
| Data Model | 📊 Current | Data entities and relationships |
| Flowcharts | 🔄 Current | Process flows and pipelines |
| State Diagrams | 🔄 Current | System state transitions |
| Mindmap | 🗺️ Current | System conceptual map |
| SWOT | 💼 Current | Strategic analysis |
| Future Architecture | 🏗️ Future | System evolution roadmap |
| Future Data Model | 📊 Future | Enhanced data architecture |
| Future Flowcharts | 🔄 Future | Advanced process flows (this doc) |
| Future State Diagrams | 🔄 Future | Advanced state management |
| Future Mindmap | 🗺️ Future | Future capability map |
| Future SWOT | 💼 Future | Strategic outlook |
| Security Architecture | 🛡️ Security | Defense-in-depth controls |
| Future Security Architecture | 🛡️ Future | Security roadmap |
| Threat Model | 🎯 Security | STRIDE analysis |
This document outlines the future process flows and workflows for Riksdagsmonitor over the next 3-11 years (2026-2037). The roadmap focuses on AI-enhanced content generation, predictive analytics, semantic search, and real-time intelligence capabilities that transform the platform from a static Swedish Parliament monitoring website into an advanced democratic intelligence system.
Strategic Vision:
- 🤖 AI-Enhanced News Generation - Multi-modal content with GPT-5, Stability AI, ElevenLabs (2026+)
- 📊 Predictive Analytics - Election forecasting, vote prediction with TensorFlow.js (2026-2028)
- 🧠 Semantic Search & Knowledge Graphs - Neo4j-powered relationships across 109K+ documents (2027+)
- 🎤 Voice & Personalization - Voice assistants, personalized feeds, recommendation engines (2027-2028)
- 🌊 Real-Time Streaming - Kafka/Flink pipelines for live parliamentary monitoring (2028+)
- 🔒 Privacy-Preserving AI - Federated learning, differential privacy (2028+)
- AI-Enhanced News Generation Flows
- Predictive Analytics Workflows
- Semantic Search & Knowledge Graph Flows
- Advanced User Journeys
- Advanced Data Pipeline Flows
- AI Model Training & Deployment Flows
- Community Collaboration Flows
- ISMS Compliance & Security Flows
- Performance & Scalability Considerations
- Related Documentation
Objective: Generate comprehensive news articles in 14 languages (expanding to 30+) using AI, with text, images, audio, and video content from Swedish Parliament data.
flowchart TD
A[Start: Riksdag Event Detected] --> B{Event Type?}
B -->|New Motion| C[Fetch from riksdag-regering-mcp]
B -->|Vote Result| D[Fetch Vote Data]
B -->|Budget Release| E[Fetch Budget Data]
B -->|Committee Report| F[Fetch Report Data]
C --> G[Extract Structured Data]
D --> G
E --> G
F --> G
G --> H[Content Generation GPT-5]
H --> I{Quality Check >0.8?}
I -->|No| J[Refine Prompt]
J --> H
I -->|Yes| K[Multi-Language Translation]
K --> L[14 Languages: EN, SV, DA, NO, FI, DE, FR, ES, NL, AR, HE, JA, KO, ZH]
L --> M[Generate Images: Stability AI SDXL 3.0]
M --> N[Generate Audio: ElevenLabs TTS]
N --> O[Generate Video: Runway Gen-3 Alpha]
O --> P[Quality Validation Pipeline]
P --> Q{All Content Valid?}
Q -->|No| R[Flag for Human Review]
R --> S[Manual Correction]
S --> P
Q -->|Yes| T[Create Git Branch]
T --> U[Commit Multi-Language Files]
U --> V[Create Pull Request]
V --> W[Automated CI/CD Tests]
W --> X{Tests Pass?}
X -->|No| Y[Rollback & Alert]
X -->|Yes| Z[Deploy to AWS CloudFront + GitHub Pages]
Z --> AA[End: Content Live in 14 Languages]
style A fill:#4caf50,color:#000000
style H fill:#9c27b0,color:#ffffff
style K fill:#ff9800,color:#000000
style M fill:#e91e63,color:#ffffff
style N fill:#00bcd4,color:#000000
style O fill:#f44336,color:#ffffff
style Z fill:#4caf50,color:#000000
style AA fill:#4caf50,color:#000000
Key Technologies:
- GPT-5 (OpenAI) - Advanced language model for Swedish political context
- Stability AI SDXL 3.0 - High-quality image generation (charts, infographics, portraits)
- ElevenLabs TTS - Multi-language audio narration with Swedish voice models
- Runway Gen-3 Alpha - Video generation for complex political visualizations
- riksdag-regering-mcp - MCP server with 32 specialized tools for data fetching
Quality Thresholds:
- GPT-5 confidence: >0.8 for factual accuracy
- Image quality: Human review for political portraits (bias mitigation)
- Audio naturalness: MOS (Mean Opinion Score) >4.0/5.0
- Video coherence: Manual approval for first 100 videos, then automated
Error Handling:
- Retry with refined prompts (max 3 attempts)
- Fallback to human-written templates
- Quality alerts to content team via GitHub Issues
Objective: Provide real-time fact-checking during parliamentary debates with AI-powered verification against historical data and trusted sources.
flowchart TD
A[Start: Live Debate Stream] --> B[Speech-to-Text: Whisper Large v3]
B --> C[Extract Claims]
C --> D{Factual Claim?}
D -->|No| E[Skip - Opinion/Prediction]
D -->|Yes| F[Query Knowledge Graph Neo4j]
F --> G[Search 109K+ Historical Documents]
G --> H[Query World Bank API]
H --> I[Query Swedish Statistics SCB]
I --> J[Query EU Open Data]
J --> K[Aggregate Evidence]
K --> L[GPT-5 Fact-Check Analysis]
L --> M{Verdict?}
M -->|True| N[Display: ✅ Verified]
M -->|False| O[Display: ❌ False - Show Correction]
M -->|Misleading| P[Display: ⚠️ Misleading - Context Needed]
M -->|Unverifiable| Q[Display: ❓ Unverifiable - Insufficient Data]
N --> R[Real-Time Dashboard Update]
O --> R
P --> R
Q --> R
R --> S{Debate Ongoing?}
S -->|Yes| B
S -->|No| T[Generate Debate Summary]
T --> U[Export to Multi-Language News]
U --> V[End: Fact-Check Report Published]
style A fill:#4caf50,color:#000000
style B fill:#00bcd4,color:#000000
style L fill:#9c27b0,color:#ffffff
style N fill:#4caf50,color:#000000
style O fill:#f44336,color:#ffffff
style P fill:#ff9800,color:#000000
style V fill:#4caf50,color:#000000
Key Technologies:
- Whisper Large v3 - OpenAI's speech recognition (Swedish language model)
- Neo4j Knowledge Graph - 109K+ documents indexed with relationships
- GPT-5 - Claim extraction and verification reasoning
- World Bank API - Economic data validation
- Swedish Statistics (SCB) - Official government statistics
Performance Requirements:
- Latency: <10 seconds from claim to verdict
- Accuracy: >90% precision (manual validation against fact-checkers)
- Coverage: 80% of factual claims identified (recall)
Privacy & Ethics:
- No tracking of individual viewers
- Transparent methodology page
- Human oversight for controversial claims
- Appeals process for disputed verdicts
Objective: Predict Swedish election outcomes using historical data, polling, economic indicators, and machine learning models.
flowchart TD
A[Start: Election Cycle] --> B[Data Collection Phase]
B --> C[Historical Elections: 50+ Years]
B --> D[Current Polls: Novus, Sifo, Demoskop]
B --> E[Economic Indicators: SCB, World Bank]
B --> F[Social Media Sentiment: Twitter/X API]
B --> G[Parliamentary Activity: riksdag-regering-mcp]
C --> H[Data Preprocessing Pipeline]
D --> H
E --> H
F --> H
G --> H
H --> I[Feature Engineering]
I --> J[TensorFlow.js Model Training]
J --> K{Model Performance?}
K -->|R² < 0.85| L[Hyperparameter Tuning]
L --> J
K -->|R² >= 0.85| M[Monte Carlo Simulation: 10,000 Runs]
M --> N[Generate Prediction Intervals]
N --> O[Party Seat Distribution]
O --> P[Coalition Probability Matrix]
P --> Q[Prime Minister Likelihood]
Q --> R[D3.js Interactive Dashboard]
R --> S[Confidence Intervals Display]
S --> T{User Adjustments?}
T -->|Yes| U[User Scenario Builder]
U --> M
T -->|No| V[Export Predictions: JSON + CSV]
V --> W[Multi-Language Report Generation]
W --> X{Election Date?}
X -->|>30 Days| Y[Update Weekly]
X -->|<30 Days| Z[Update Daily]
X -->|Election Day| AA[Live Results Comparison]
Y --> B
Z --> B
AA --> AB[Post-Election Analysis]
AB --> AC[Model Accuracy Report]
AC --> AD[Retrain for Next Cycle]
AD --> AE[End: Archive & Publish Learnings]
style A fill:#4caf50,color:#000000
style J fill:#9c27b0,color:#ffffff
style M fill:#ff9800,color:#000000
style R fill:#00bcd4,color:#000000
style AE fill:#4caf50,color:#000000
Key Technologies:
- TensorFlow.js - Client-side ML for interactive predictions
- Monte Carlo Simulation - 10,000 runs for uncertainty quantification
- D3.js - Interactive visualization of seat distributions
- Python (scikit-learn) - Backend model training with XGBoost/Random Forest
- riksdag-regering-mcp - Historical voting data (1971-present)
Model Features (50+ Variables):
- Historical election results (seats, votes, turnout)
- Polling averages (last 90 days, weighted by recency)
- Economic indicators (GDP growth, unemployment, inflation)
- Government approval ratings
- Parliamentary activity (motions, votes, committee work)
- Social media sentiment scores
- Demographic shifts (age, urban/rural, immigration)
Confidence Intervals:
- 90% confidence: ±10 seats for major parties
- 95% confidence: ±15 seats for major parties
- Coalition probabilities: >0.8 threshold for "likely"
Ethical Considerations:
- Transparent methodology (open-source models)
- Clear uncertainty communication (avoid false precision)
- No prediction on election day (avoid voter influence)
- Post-election accuracy reporting
Objective: Predict how individual MPs will vote on upcoming bills based on historical voting patterns, party discipline, and ideological positioning.
flowchart TD
A[Start: Bill Introduced] --> B[Fetch Bill Text: riksdag-regering-mcp]
B --> C[Extract Policy Dimensions]
C --> D[Classify: Economic, Social, Foreign Policy, etc.]
D --> E[Query Historical Votes: Last 10 Years]
E --> F[Build MP Voting Matrix: 349 MPs × 50K+ Votes]
F --> G[Calculate Ideal Points: DW-NOMINATE]
G --> H[Party Discipline Analysis]
H --> I[Coalition Pressure Assessment]
I --> J[GPT-5 Bill Summary & Ideology Scoring]
J --> K[TensorFlow.js Neural Network]
K --> L{Prediction Confidence?}
L -->|< 0.7| M[Uncertain - Multiple Scenarios]
L -->|>= 0.7| N[High Confidence Prediction]
M --> O[Show Probability Distribution]
N --> O
O --> P[Interactive Voting Map: D3.js]
P --> Q{Actual Vote Occurred?}
Q -->|No| R[Wait for Vote]
Q -->|Yes| S[Compare: Predicted vs. Actual]
S --> T[Calculate Accuracy Metrics]
T --> U{Accuracy > 85%?}
U -->|No| V[Model Retraining Triggered]
V --> K
U -->|Yes| W[Update Confidence Scores]
W --> X[Store Prediction & Result]
X --> Y[End: Feed into Future Models]
style A fill:#4caf50,color:#000000
style G fill:#ff9800,color:#000000
style K fill:#9c27b0,color:#ffffff
style P fill:#00bcd4,color:#000000
style Y fill:#4caf50,color:#000000
Key Technologies:
- DW-NOMINATE - Ideal point estimation (political science standard)
- TensorFlow.js - Neural network for vote prediction
- GPT-5 - Bill text analysis and ideology scoring
- D3.js - Interactive vote visualization
- riksdag-regering-mcp - Historical voting data (50K+ votes)
Model Inputs:
- Historical voting record (349 MPs × 50K+ votes)
- Party affiliation and leadership positions
- Committee memberships
- Bill policy dimensions (economic left-right, social, foreign policy)
- Coalition status (government vs. opposition)
- Constituency characteristics (urban/rural, demographics)
- Social media positions (if publicly stated)
Accuracy Targets:
- Overall accuracy: >85% for individual votes
- Government party votes: >90% (high party discipline)
- Opposition votes: >80% (more variation)
- Abstentions: >70% (harder to predict)
Ethical Considerations:
- Predictions published after vote (no pressure on MPs)
- Transparency about uncertainty
- No personalized targeting of MPs
- Respect for democratic process
Objective: Enable natural language queries across 109K+ documents with GPT-5-powered understanding and vector embeddings.
flowchart TD
A[Start: User Query - Natural Language] --> B[Query Preprocessing]
B --> C[Intent Classification: GPT-5]
C --> D{Query Type?}
D -->|Document Search| E[Vector Embeddings: text-embedding-3-large]
D -->|Factual Question| F[Knowledge Graph Query: Neo4j Cypher]
D -->|Comparison| G[Multi-Document Analysis]
D -->|Timeline| H[Temporal Query Builder]
E --> I[Search Pinecone Vector DB]
I --> J[Retrieve Top 50 Documents]
F --> K[Neo4j Graph Traversal]
K --> L[Extract Relationships]
G --> M[Parallel Document Fetching]
M --> N[GPT-5 Comparison Analysis]
H --> O[Time-Series Data Extraction]
O --> P[D3.js Timeline Visualization]
J --> Q[Re-Ranking: GPT-5]
L --> Q
N --> Q
P --> Q
Q --> R[Top 10 Results + Explanations]
R --> S[Multi-Language Display]
S --> T{User Satisfied?}
T -->|No| U[Query Refinement Suggestions]
U --> A
T -->|Yes| V[Store Query & Results]
V --> W[Update Recommendation Model]
W --> X[Generate Related Queries]
X --> Y[End: Display Results + Related Searches]
style A fill:#4caf50,color:#000000
style C fill:#9c27b0,color:#ffffff
style I fill:#ff9800,color:#000000
style K fill:#00bcd4,color:#000000
style Q fill:#9c27b0,color:#ffffff
style Y fill:#4caf50,color:#000000
Key Technologies:
- GPT-5 - Intent classification, re-ranking, explanations
- text-embedding-3-large - OpenAI's 3072-dimensional embeddings
- Pinecone - Vector database for semantic search (109K+ documents)
- Neo4j - Knowledge graph for relationship queries
- D3.js - Timeline and relationship visualizations
Search Capabilities:
- Semantic Search: "What are the government's plans for climate change?" (not keyword matching)
- Factual Questions: "How many times has MP X voted against their party?"
- Comparisons: "Compare budget proposals from 2023 vs. 2024"
- Timelines: "Show all votes on immigration policy in the last 5 years"
- Relationships: "Which MPs co-sponsor motions with MP X?"
Performance Requirements:
- Query latency: <2 seconds (p95)
- Relevance: >80% of users satisfied (user feedback)
- Multi-language: Same query in 14 languages returns same results
Privacy:
- No user query logging (ephemeral search)
- Differential privacy for aggregated analytics
- GDPR-compliant (no personal data)
Objective: Build a comprehensive knowledge graph of Swedish parliamentary data with automated relationship extraction.
flowchart TD
A[Start: Data Sources] --> B[109K+ Documents from CIA Platform]
A --> C[349 MPs: Biographical Data]
A --> D[8 Parties: Historical Context]
A --> E[15 Committees: Jurisdictions]
A --> F[50+ Years: Election Results]
B --> G[Document Preprocessing Pipeline]
G --> H[Named Entity Recognition: GPT-5]
H --> I[Relationship Extraction]
C --> J[MP Profile Entities]
D --> K[Party Entities]
E --> L[Committee Entities]
F --> M[Election Entities]
I --> N{Relationship Type?}
N -->|Co-sponsorship| O[MP-MP: Co-sponsors]
N -->|Authorship| P[MP-Document: Authored]
N -->|Voting| Q[MP-Vote: Voted]
N -->|Committee| R[MP-Committee: Member]
N -->|Party| S[MP-Party: Affiliated]
N -->|Cites| T[Document-Document: Cites]
J --> U[Neo4j Node Creation]
K --> U
L --> U
M --> U
O --> V[Neo4j Relationship Creation]
P --> V
Q --> V
R --> V
S --> V
T --> V
U --> W[Graph Validation]
V --> W
W --> X{Validation Passed?}
X -->|No| Y[Manual Correction Queue]
Y --> U
X -->|Yes| Z[Index for Graph Queries]
Z --> AA[Compute Centrality Metrics]
AA --> AB[PageRank for Influential MPs]
AB --> AC[Community Detection: Louvain Algorithm]
AC --> AD[D3.js Force-Directed Graph Visualization]
AD --> AE[Interactive Exploration Interface]
AE --> AF{User Feedback?}
AF -->|Errors Reported| AG[Incremental Corrections]
AG --> W
AF -->|No Issues| AH[End: Knowledge Graph Live]
style A fill:#4caf50,color:#000000
style H fill:#9c27b0,color:#ffffff
style U fill:#00bcd4,color:#000000
style V fill:#00bcd4,color:#000000
style AD fill:#e91e63,color:#ffffff
style AH fill:#4caf50,color:#000000
Key Technologies:
- Neo4j - Graph database (349 MPs, 109K+ documents, 1M+ relationships)
- GPT-5 - Named entity recognition and relationship extraction
- Louvain Algorithm - Community detection (political factions)
- PageRank - Influential MP identification
- D3.js - Force-directed graph visualization
Graph Schema:
- Nodes: MPs (349), Parties (8), Committees (15), Documents (109K+), Votes (50K+)
- Relationships: Co-sponsors, Authored, Voted, Member, Affiliated, Cites, Amends
Use Cases:
- "Who are the most influential MPs in climate policy?" (PageRank + topic filtering)
- "Show me all MPs who co-sponsor with MP X" (1-hop graph traversal)
- "Which documents cite this budget proposal?" (reverse citation search)
- "Detect political factions beyond party lines" (community detection)
Data Quality:
- Manual validation: First 1,000 relationships (95% accuracy target)
- Automated validation: Consistency checks (e.g., MP can't vote before election)
- User feedback: Report errors via GitHub Issues
Objective: Provide personalized political news based on user interests, reading history, and explicit preferences without invasive tracking.
flowchart TD
A[Start: User Visits Website] --> B{User Logged In?}
B -->|No| C[Show Generic News Feed]
C --> D[Top Stories: All Parties]
B -->|Yes| E[Load User Preference Profile]
E --> F{Preferences Set?}
F -->|No| G[Onboarding: Select Interests]
G --> H[Choose Topics: Economy, Social, Foreign Policy, etc.]
H --> I[Choose Parties: Follow or Mute]
I --> J[Choose Committees: Focus Areas]
J --> K[Save Preferences: Local Storage + Server]
F -->|Yes| L[Fetch Reading History: Last 30 Days]
L --> M[Implicit Signals: Clicks, Time Spent, Shares]
K --> N[Build User Profile Vector]
M --> N
N --> O[TensorFlow.js Recommendation Model]
O --> P[Content Similarity Matching]
P --> Q[Diversity Optimization: Avoid Echo Chamber]
Q --> R{Filter Bubble Risk?}
R -->|High| S[Inject Diverse Content: 20%]
R -->|Low| T[Proceed with Recommendations]
S --> U[Final News Feed Ranking]
T --> U
U --> V[Multi-Language Display]
V --> W[Personalized Dashboard]
W --> X{User Interaction?}
X -->|Click Article| Y[Update Preference Weights]
X -->|Skip| Z[Decrease Relevance Score]
X -->|Share| AA[Strong Positive Signal]
X -->|Dismiss| AB[Negative Signal]
Y --> AC[Real-Time Model Update]
Z --> AC
AA --> AC
AB --> AC
AC --> AD{Daily Summary Request?}
AD -->|Yes| AE[Generate Personalized Digest]
AD -->|No| AF[Continue Browsing]
AE --> AG[Email/Push Notification]
AF --> X
AG --> AH[End: User Engaged]
style A fill:#4caf50,color:#000000
style O fill:#9c27b0,color:#ffffff
style Q fill:#ff9800,color:#000000
style W fill:#00bcd4,color:#000000
style AH fill:#4caf50,color:#000000
Key Technologies:
- TensorFlow.js - Recommendation engine (client-side for privacy)
- Local Storage - User preferences stored client-side (no server tracking)
- Diversity Optimization - Avoid echo chambers (20% diverse content injection)
- A/B Testing - Compare personalized vs. generic feeds (engagement metrics)
Privacy-First Design:
- No User Tracking: Preferences stored locally (browser local storage + encrypted server backup)
- Opt-In: Personalization disabled by default, explicit consent required
- Transparency: "Why this article?" explanations for each recommendation
- Data Portability: Export/import preferences (JSON format)
- Deletion: One-click preference reset
Recommendation Model:
- Content-based filtering (article topics, parties, MPs)
- Collaborative filtering (users with similar interests)
- Diversity penalty (Maximal Marginal Relevance algorithm)
- Recency boost (recent articles prioritized)
Metrics:
- User engagement: >30% increase in time on site
- Diversity: >20% of feed contains non-preferred topics
- Satisfaction: >4.0/5.0 user rating
Objective: Enable hands-free interaction with Riksdagsmonitor using voice commands and natural language understanding.
flowchart TD
A[Start: User Voice Command] --> B[Audio Capture: Microphone]
B --> C[Speech-to-Text: Whisper Large v3]
C --> D[Language Detection: 14 Languages]
D --> E{Query Intent?}
E -->|Search| F[Semantic Search Pipeline]
E -->|Summary| G[Document Summarization: GPT-5]
E -->|Navigation| H[Voice Navigation Commands]
E -->|Playback| I[Audio Content Playback]
F --> J[Retrieve Results]
G --> K[Generate Summary]
H --> L[Navigate to Section]
I --> M[Stream Audio via ElevenLabs]
J --> N[Text Response Generation: GPT-5]
K --> N
L --> N
M --> O[End: Audio Playback Complete]
N --> P[Text-to-Speech: ElevenLabs]
P --> Q[Voice Response Playback]
Q --> R{User Follow-Up?}
R -->|Yes| S[Multi-Turn Conversation]
S --> C
R -->|No| T[End: Conversation Complete]
style A fill:#4caf50,color:#000000
style C fill:#00bcd4,color:#000000
style N fill:#9c27b0,color:#ffffff
style P fill:#00bcd4,color:#000000
style T fill:#4caf50,color:#000000
Key Technologies:
- Whisper Large v3 - OpenAI's speech recognition (Swedish, English, 12 others)
- ElevenLabs TTS - High-quality voice synthesis (Swedish voices)
- GPT-5 - Natural language understanding and response generation
- Web Speech API - Browser-based audio capture
Voice Commands:
- "What are the latest news from Riksdagen?" → Search + TTS response
- "Summarize motion 2024:1234" → Document summary + audio playback
- "How did my MP vote on climate policy?" → Vote lookup + TTS response
- "Navigate to budget dashboard" → Voice navigation
- "Play the news about healthcare" → Audio content streaming
Accessibility Benefits:
- Visually impaired users (screen reader alternative)
- Hands-free operation (multitasking)
- Learning disabilities (audio-first experience)
- Language learners (pronunciation practice)
Privacy:
- Audio processing client-side (no server upload)
- Voice data never stored (ephemeral)
- Opt-in feature (explicit consent)
Objective: Process live parliamentary events with sub-second latency using streaming architecture.
flowchart TD
A[Start: Live Event Sources] --> B[Riksdag API WebSocket]
A --> C[Swedish Radio API]
A --> D[Riksdagen.se Scraper]
A --> E[Twitter/X Stream: #Riksdagen]
B --> F[Apache Kafka Topic: riksdag-events]
C --> F
D --> F
E --> F
F --> G[Apache Flink Stream Processing]
G --> H[Windowing: 10-Second Tumbling Windows]
H --> I{Event Type?}
I -->|Vote| J[Vote Aggregation]
I -->|Speech| K[Real-Time Transcription]
I -->|Document| L[Document Indexing]
I -->|Social Media| M[Sentiment Analysis]
J --> N[Update Vote Dashboard: Real-Time]
K --> O[Live Debate Feed]
L --> P[Search Index Update: Elasticsearch]
M --> Q[Social Media Sentiment Widget]
N --> R[TimescaleDB: Time-Series Storage]
O --> R
P --> R
Q --> R
R --> S[D3.js Real-Time Visualization]
S --> T[WebSocket Push to Clients]
T --> U[Browser Update: <1s Latency]
U --> V{Error Detected?}
V -->|Yes| W[Kafka Dead Letter Queue]
V -->|No| X[Continue Processing]
W --> Y[Manual Review Queue]
X --> Z{Session Active?}
Z -->|Yes| A
Z -->|No| AA[End: Archive Stream Data]
style A fill:#4caf50,color:#000000
style G fill:#ff9800,color:#000000
style S fill:#00bcd4,color:#000000
style T fill:#9c27b0,color:#ffffff
style AA fill:#4caf50,color:#000000
Key Technologies:
- Apache Kafka - Distributed event streaming (1M+ messages/day)
- Apache Flink - Stream processing with exactly-once semantics
- TimescaleDB - Time-series database for historical analytics
- WebSocket - Real-time browser updates (<1s latency)
- Elasticsearch - Real-time search index updates
Performance Requirements:
- Latency: <1 second from event to browser display
- Throughput: 10K events/second during peak (parliamentary sessions)
- Durability: 99.999% message delivery (exactly-once semantics)
- Retention: 7 days in Kafka, 10 years in TimescaleDB
Use Cases:
- Live vote results as they happen
- Real-time debate transcription
- Social media sentiment during sessions
- Breaking news alerts
Scalability:
- Kafka partitions: 10 (scale to 100 as needed)
- Flink parallelism: 8 task managers (auto-scaling)
- TimescaleDB sharding: By date (monthly chunks)
Objective: Integrate data from multiple Nordic parliaments (Sweden, Denmark, Norway, Finland) for comparative analysis.
flowchart TD
A[Start: Multi-Country Data Collection] --> B[Swedish Riksdag API]
A --> C[Danish Folketing API]
A --> D[Norwegian Storting API]
A --> E[Finnish Eduskunta API]
B --> F[Extract: Votes, Motions, MPs]
C --> G[Extract: Debates, Legislation, Committees]
D --> H[Extract: Budget, Voting Records]
E --> I[Extract: Parliamentary Questions]
F --> J[Schema Normalization]
G --> J
H --> J
I --> J
J --> K{Data Format?}
K -->|XML| L[Parse XML: lxml]
K -->|JSON| M[Parse JSON: Native]
K -->|HTML| N[Scrape HTML: BeautifulSoup]
K -->|PDF| O[Extract PDF: PyPDF2 + GPT-5]
L --> P[Unified Data Model]
M --> P
N --> P
O --> P
P --> Q[Entity Resolution: MPs]
Q --> R[Deduplication: Same Person, Different Names]
R --> S[Translation: 4 Languages → English Pivot]
S --> T[Cross-Country Alignment]
T --> U{Alignment Confidence?}
U -->|< 0.8| V[Manual Review Queue]
V --> T
U -->|>= 0.8| W[Store in Unified Database]
W --> X[PostgreSQL: Multi-Country Schema]
X --> Y[Comparative Analytics Engine]
Y --> Z[Cross-Country Comparison Dashboard]
Z --> AA[D3.js Visualization: 4-Country Heatmap]
AA --> AB{User Query?}
AB -->|Yes| AC[Generate Comparative Report]
AB -->|No| AD[End: Data Fusion Complete]
AC --> AE[GPT-5: Multi-Language Report]
AE --> AD
style A fill:#4caf50,color:#000000
style J fill:#ff9800,color:#000000
style S fill:#00bcd4,color:#000000
style Y fill:#9c27b0,color:#ffffff
style AD fill:#4caf50,color:#000000
Key Technologies:
- Multi-API Integration: 4 Nordic parliaments (different API standards)
- Schema Normalization: Unified data model for cross-country comparison
- Entity Resolution: GPT-5 for matching MPs/parties across countries
- Translation: Multi-language support (Swedish, Danish, Norwegian, Finnish, English)
- PostgreSQL: Unified database with country-specific schemas
Comparative Metrics:
- Voting patterns: Agreement/disagreement across countries
- Legislative productivity: Bills passed per session
- Committee effectiveness: Time to decision
- Gender/age diversity: Comparative demographics
- Budget priorities: Spending allocations by category
Challenges:
- API rate limits (respectful scraping)
- Data format inconsistencies (XML vs. JSON vs. HTML)
- Language variations (Danish/Norwegian/Swedish similarities, Finnish distinct)
- Missing data handling (not all countries publish same data)
Objective: Implement continuous learning for AI models with A/B testing, monitoring, and gradual rollout.
flowchart TD
A[Start: New Model Version] --> B[Model Training: Offline]
B --> C[Validation Dataset Testing]
C --> D{Performance Improvement?}
D -->|< 5%| E[Reject Model Version]
D -->|>= 5%| F[Shadow Mode Deployment]
E --> G[Analyze Failure]
G --> H[Feature Engineering Iteration]
H --> B
F --> I[Run in Parallel: No User Impact]
I --> J[Collect Performance Metrics: 7 Days]
J --> K{Real-World Performance?}
K -->|Worse| L[Rollback to Previous Model]
K -->|Better| M[A/B Testing Phase]
L --> G
M --> N[Traffic Split: 5% New Model, 95% Old Model]
N --> O[Monitor Key Metrics]
O --> P{User Satisfaction Delta?}
P -->|Negative| Q[Stop Rollout]
P -->|Neutral| R[Increase Traffic: 10%]
P -->|Positive| S[Increase Traffic: 25%]
Q --> L
R --> T[Monitor for 3 Days]
S --> U[Monitor for 5 Days]
T --> V{Still Neutral?}
U --> W{Still Positive?}
V -->|No| L
V -->|Yes| X[Increase Traffic: 50%]
W -->|No| L
W -->|Yes| Y[Full Rollout: 100%]
X --> Z[Monitor for 7 Days]
Z --> AA{Any Issues?}
AA -->|Yes| L
AA -->|No| Y
Y --> AB[Archive Old Model]
AB --> AC[Update Documentation]
AC --> AD[Announce to Users]
AD --> AE[End: New Model Live]
style A fill:#4caf50,color:#000000
style B fill:#9c27b0,color:#ffffff
style M fill:#ff9800,color:#000000
style Y fill:#4caf50,color:#000000
style AE fill:#4caf50,color:#000000
Key Technologies:
- Feature Flags: LaunchDarkly or custom implementation for gradual rollout
- A/B Testing: Statistical significance testing (p-value < 0.05)
- Monitoring: Prometheus + Grafana for real-time metrics
- Rollback: Automated rollback triggers on performance degradation
Key Metrics:
- Accuracy: Prediction correctness
- Latency: Response time (p95, p99)
- User Satisfaction: Explicit feedback (thumbs up/down)
- Engagement: Click-through rate, time on page
Rollout Stages:
- Shadow Mode (0% user traffic): 7 days validation
- Canary (5% traffic): 3 days monitoring
- Gradual Rollout (10%, 25%, 50%): Progressive increases
- Full Rollout (100%): After all stages pass
Automated Rollback Triggers:
- Error rate increase >10%
- Latency increase >50% (p95)
- User satisfaction drop >5%
- Manual override (emergency)
Objective: Train AI models on decentralized user data without centralizing sensitive information, using differential privacy.
flowchart TD
A[Start: Federated Learning Round] --> B[Central Server: Model Initialization]
B --> C[Distribute Model to Clients]
C --> D[Client 1: Browser]
C --> E[Client 2: Browser]
C --> F[Client N: Browser]
D --> G[Local Data: Reading History]
E --> H[Local Data: Preferences]
F --> I[Local Data: Interactions]
G --> J[Local Model Training: TensorFlow.js]
H --> K[Local Model Training: TensorFlow.js]
I --> L[Local Model Training: TensorFlow.js]
J --> M[Differential Privacy: Noise Injection]
K --> N[Differential Privacy: Noise Injection]
L --> O[Differential Privacy: Noise Injection]
M --> P[Upload Encrypted Gradients: Only]
N --> Q[Upload Encrypted Gradients: Only]
O --> R[Upload Encrypted Gradients: Only]
P --> S[Central Server: Secure Aggregation]
Q --> S
R --> S
S --> T[Aggregate Gradients: Weighted Average]
T --> U[Update Global Model]
U --> V{Convergence?}
V -->|No| W[Next Training Round]
W --> C
V -->|Yes| X[Validate Global Model]
X --> Y{Performance Acceptable?}
Y -->|No| Z[Increase Rounds or Clients]
Z --> B
Y -->|Yes| AA[Deploy Updated Model]
AA --> AB[Distribute to All Clients]
AB --> AC[End: Privacy-Preserving Model Updated]
style A fill:#4caf50,color:#000000
style M fill:#ff9800,color:#000000
style N fill:#ff9800,color:#000000
style O fill:#ff9800,color:#000000
style S fill:#9c27b0,color:#ffffff
style AC fill:#4caf50,color:#000000
Key Technologies:
- Federated Learning: Google's Federated Learning framework
- Differential Privacy: ε-differential privacy (ε = 1.0 for strong privacy)
- Secure Aggregation: Encrypted gradient uploads (no raw data)
- TensorFlow.js: Client-side model training (in-browser)
Privacy Guarantees:
- No Raw Data Upload: Only model updates (gradients) sent to server
- Differential Privacy: Noise injection (ε = 1.0) prevents individual inference
- Secure Aggregation: Encrypted gradients aggregated without decryption
- K-Anonymity: Minimum 100 clients per round (k = 100)
Use Cases:
- Personalized recommendations without centralized user data
- User behavior modeling (reading patterns, preferences)
- Content quality feedback (implicit signals)
Performance Trade-offs:
- Training time: 10x slower than centralized learning
- Model accuracy: -5% vs. centralized (acceptable for privacy gain)
- Communication overhead: 100MB per round per client (WiFi recommended)
Ethical Considerations:
- Transparent privacy policy (explain federated learning)
- Opt-in only (explicit consent required)
- Data minimization (only necessary gradients)
- Auditable (privacy audits by third parties)
Objective: Enable community-driven fact-checking with consensus voting, expert review, and gamification.
flowchart TD
A[Start: User Flags Content] --> B{Flag Reason?}
B -->|Factual Error| C[Submit Correction with Sources]
B -->|Bias| D[Submit Bias Report with Evidence]
B -->|Misleading| E[Submit Context/Clarification]
B -->|Spam/Abuse| F[Report to Moderators]
C --> G[Community Review Queue]
D --> G
E --> G
F --> H[Moderator Review: Immediate]
G --> I[Display to Reviewers: Random 5]
I --> J[Reviewer 1: Vote + Rationale]
I --> K[Reviewer 2: Vote + Rationale]
I --> L[Reviewer 3: Vote + Rationale]
I --> M[Reviewer 4: Vote + Rationale]
I --> N[Reviewer 5: Vote + Rationale]
J --> O[Aggregate Votes]
K --> O
L --> O
M --> O
N --> O
O --> P{Consensus Reached?}
P -->|< 60% Agreement| Q[Escalate to Expert Panel]
P -->|>= 60% Agreement| R[Consensus Decision]
Q --> S[Expert Review: Domain Specialists]
S --> T[Expert Verdict + Explanation]
T --> U[Final Decision: Expert Authority]
R --> V{Consensus Type?}
V -->|Approve Correction| W[Update Content]
V -->|Reject Flag| X[No Action]
V -->|Needs More Info| Y[Request Additional Evidence]
U --> Z{Expert Verdict?}
Z -->|Correction Valid| W
Z -->|Flag Invalid| X
Z -->|Inconclusive| Y
W --> AA[Publish Updated Content]
AA --> AB[Notify Original Flaggers]
AB --> AC[Reward Points: Successful Flag]
X --> AD[Notify Flaggers: Rejected]
Y --> AE[Community Discussion Thread]
AE --> G
AC --> AF[Leaderboard Update]
AF --> AG[End: Community Contribution Recorded]
style A fill:#4caf50,color:#000000
style O fill:#ff9800,color:#000000
style S fill:#9c27b0,color:#ffffff
style AA fill:#4caf50,color:#000000
style AG fill:#4caf50,color:#000000
Key Technologies:
- Blockchain (Optional): Immutable audit trail for fact-check decisions
- Reputation System: Stack Overflow-style points and badges
- Expert Panel: Domain specialists (political scientists, journalists, data analysts)
- Consensus Algorithm: Weighted voting (reputation-based)
Review Process:
- Community Review: 5 random reviewers (reputation >100 points)
- Consensus Threshold: 60% agreement (3 out of 5 votes)
- Expert Escalation: Controversial cases (< 60% consensus)
- Final Authority: Expert panel for complex disputes
Gamification:
- Points: +10 for successful flag, +5 for helpful review, -5 for rejected flag
- Badges: Fact-Checker (10 successful flags), Expert Reviewer (100 reviews), Top Contributor (1,000 points)
- Leaderboard: Monthly rankings with recognition
Quality Controls:
- Reviewer Selection: Random sampling to prevent gaming
- Reputation Weighting: Higher reputation = higher vote weight
- Expert Oversight: Spot-checks on 10% of community decisions
- Appeals Process: Users can appeal rejected flags
Ethical Considerations:
- Transparency: All decisions publicly visible with rationale
- No Censorship: Focus on corrections, not removals
- Diversity: Ensure reviewer diversity (political balance)
- No Harassment: Anti-brigading measures
Objective: Ensure all AI systems comply with Hack23 AB's AI Policy and Secure Development Policy.
flowchart TD
A[Start: New AI Feature Proposal] --> B[AI Impact Assessment: AIA]
B --> C{Risk Level?}
C -->|High Risk| D[Full AI Audit Required]
C -->|Medium Risk| E[Standard Review]
C -->|Low Risk| F[Self-Assessment]
D --> G[Audit Team: Security, Legal, Ethics]
E --> H[Security Team Review]
F --> I[Developer Self-Certification]
G --> J[Review AI Policy Checklist]
H --> J
I --> J
J --> K{Compliance Verified?}
K -->|No| L[Document Non-Compliance]
L --> M[Remediation Plan]
M --> N[Implement Controls]
N --> J
K -->|Yes| O[Document Compliance]
O --> P[AI System Classification]
P --> Q{System Type?}
Q -->|Generative AI| R[Content Moderation Required]
Q -->|Predictive AI| S[Explainability Required]
Q -->|Recommendation AI| T[Bias Testing Required]
R --> U[Implement Safety Controls]
S --> V[Implement Explainability Features]
T --> W[Implement Fairness Metrics]
U --> X[Continuous Monitoring Setup]
V --> X
W --> X
X --> Y[Deploy to Production]
Y --> Z[Quarterly Compliance Review]
Z --> AA{Still Compliant?}
AA -->|No| L
AA -->|Yes| AB[Renew Certification]
AB --> AC[End: AI System Compliant]
style A fill:#4caf50,color:#000000
style D fill:#f44336,color:#ffffff
style J fill:#ff9800,color:#000000
style X fill:#9c27b0,color:#ffffff
style AC fill:#4caf50,color:#000000
Key Policies:
- Hack23 AI Policy: ISMS-PUBLIC/AI_Policy.md
- Secure Development Policy: ISMS-PUBLIC/Secure_Development_Policy.md
- AI Risk Classification: High, Medium, Low (based on EU AI Act)
Compliance Checklist:
- ✅ Transparency: Users informed about AI usage
- ✅ Explainability: AI decisions can be explained
- ✅ Bias Testing: Fairness metrics monitored
- ✅ Data Privacy: GDPR-compliant, differential privacy
- ✅ Human Oversight: Human-in-the-loop for high-risk decisions
- ✅ Security: AI models protected from adversarial attacks
- ✅ Documentation: AI system documentation maintained
Risk Levels:
- High Risk: Election prediction, vote prediction (impacts democracy)
- Medium Risk: News generation, fact-checking (content moderation)
- Low Risk: Semantic search, personalization (minimal impact)
Client-Side Performance:
- Time to Interactive (TTI): <3 seconds (p95)
- First Contentful Paint (FCP): <1.5 seconds (p95)
- Largest Contentful Paint (LCP): <2.5 seconds (p95)
- Cumulative Layout Shift (CLS): <0.1
- TensorFlow.js inference: <100ms (p95)
Server-Side Performance:
- API response time: <200ms (p95)
- Database query time: <50ms (p95)
- Kafka throughput: 10K messages/second
- Flink processing latency: <1 second
- GPT-5 API latency: <2 seconds (p95)
Scalability Targets:
- Concurrent users: 100K (peak load)
- Requests per second: 10K (CDN-accelerated)
- Database size: 1TB (PostgreSQL + TimescaleDB)
- Knowledge graph: 10M nodes, 100M relationships (Neo4j)
- Vector database: 1M documents (Pinecone)
Cloud Costs (Monthly Estimates):
- AWS CloudFront: $500 (600+ edge locations)
- AWS S3: $100 (multi-region storage)
- GPT-5 API: $2,000 (100K requests/day)
- Pinecone: $500 (1M vectors)
- Neo4j Aura: $300 (10M nodes)
- Kafka/Flink: $1,000 (managed service)
- Total: ~$5,000/month (2027 estimate)
Optimization Strategies:
- CDN caching (99% hit rate target)
- Client-side AI (TensorFlow.js reduces server costs)
- Batch processing (off-peak GPT-5 usage)
- Data compression (gzip, Brotli)
- Query optimization (database indexes, caching)
- ARCHITECTURE.md - Current system architecture (C4 model)
- SECURITY_ARCHITECTURE.md - Current security controls
- DATA_MODEL.md - Current data structures (if exists)
- FUTURE_SECURITY_ARCHITECTURE.md - Security evolution roadmap
- FUTURE_ARCHITECTURE.md - Architectural vision (if exists)
- FUTURE_DATA_MODEL.md - Data model evolution (if exists)
- Hack23 ISMS-PUBLIC - Information Security Management System
- AI Policy - AI governance and ethics
- Secure Development Policy - SDLC security
- Classification Framework - Data and system classification
- CIA FUTURE_FLOWCHART.md - Parent platform flowcharts
- CIA Platform - Citizen Intelligence Agency (data source)
- EU AI Act - European AI regulation
- GDPR - General Data Protection Regulation
- ISO 27001 - Information security standard
- NIST AI RMF - AI risk management framework
graph TD
subgraph "Continuous Model Evaluation (Every ~2.3 Months)"
A[New Model Release<br/>Opus 4.8, 4.9, 5.0...] --> B{Benchmark Against<br/>Current Model}
B -->|Superior| C[Shadow Testing<br/>7-Day Parallel Run]
B -->|Equal/Inferior| D[Document Results<br/>Continue Current Model]
C --> E{Quality Gate<br/>Pass?}
E -->|Yes| F[Gradual Rollout<br/>5% → 25% → 100%]
E -->|No| G[Rollback<br/>Retain Current Model]
F --> H[Full Deployment<br/>Update Documentation]
end
subgraph "Annual Major Version Upgrade"
I[Major Version Release<br/>Opus 5.0, 6.0, 7.0...] --> J{Architecture<br/>Compatible?}
J -->|Yes| K[Feature Expansion<br/>Enable New Capabilities]
J -->|No| L[Platform Adaptation<br/>Architecture Update]
K --> M[Integration Testing<br/>All 14 Languages]
L --> M
M --> N[Production Deployment<br/>With Feature Flags]
end
subgraph "Competitor Evaluation (Quarterly)"
O[Review Competitors<br/>OpenAI, Google, Meta, EU AI] --> P{Better Model<br/>Available?}
P -->|Yes| Q[Multi-Model Strategy<br/>Via Amazon Bedrock]
P -->|No| R[Continue Current<br/>Provider Strategy]
Q --> S[A/B Test Models<br/>Compare Quality]
S --> T[Select Best Model<br/>Per Task Type]
end
subgraph "AGI Transition Planning (2033-2037)"
U[AGI Capability<br/>Assessment] --> V{AGI Level<br/>Reached?}
V -->|Yes| W[Autonomous Mode<br/>With Human Oversight]
V -->|Partial| X[Enhanced Mode<br/>Expanded Capabilities]
V -->|No| Y[Continue Evolution<br/>Annual Major Upgrades]
W --> Z[Global Platform<br/>195 Parliaments]
X --> Y
end
H --> I
N --> O
T --> U
style A fill:#00d9ff,color:#000000
style I fill:#ff006e,color:#ffffff
style O fill:#ffbe0b,color:#000000
style U fill:#9c27b0,color:#ffffff
| Year | Model Version | Update Cadence | Key Workflow Changes |
|---|---|---|---|
| 2026 | Opus 4.7-4.9 | Minor ~2.3mo, Major annual | News generation v2, 14 languages |
| 2027 | Opus 5.x | Minor ~2.3mo, Major annual | Predictive analytics, semantic search |
| 2028 | Opus 6.x | Minor ~2.3mo, Major annual | Multi-modal generation, real-time streams |
| 2029 | Opus 7.x | Minor ~2.3mo, Major annual | Autonomous pipeline, mobile app |
| 2030 | Opus 8.x | Minor ~2.3mo, Major annual | Near-expert analysis, 50+ languages |
| 2031-2033 | Opus 9-10.x | Accelerating cadence | Pre-AGI capabilities, global coverage |
| 2034-2037 | Post-Opus / AGI | Continuous evolution | Transformative platform, 195 parliaments |
Version History:
| Version | Date | Changes | Author |
|---|---|---|---|
| 1.0 | 2026-02-15 | Initial creation with 10+ comprehensive flowcharts | Hack23 Documentation Team |
| 2.0 | 2026-02-24 | Extended to 2037 vision, AI/LLM evolution flow, AGI planning | Hack23 Documentation Team |
Review Schedule:
- Quarterly review (Q2, Q4 annually)
- Updated as new features reach implementation milestones
- Aligned with FUTURE_SECURITY_ARCHITECTURE.md updates
Classification: Public
Distribution: Unrestricted
Repository: https://github.com/Hack23/riksdagsmonitor
Path: /FUTURE_FLOWCHART.md
Format: Markdown with Mermaid diagrams
Next Review: 2026-05-24
🌐 Riksdagsmonitor — Building the Future of Democratic Transparency
Powered by AI, Grounded in Privacy, Committed to Democracy
Website · GitHub · CIA Platform · ISMS
📋 Document Control:
✅ Approved by: James Pether Sörling, CEO
📤 Distribution: Public
🏷️ Classification:
📅 Effective Date: 2026-02-24
⏰ Next Review: 2026-05-24
🎯 Framework Compliance:
Baseline: the already-implemented IMF dataflow is documented in FLOWCHART.md §IMF. The diagram below shows how that baseline evolves with additional gates (vintage age UI badge, provider-mix telemetry) layered on top of today's client.
Authoritative hub:
analysis/imf/README.md·analysis/imf/agentic-integration.md·analysis/imf/indicators-inventory.json·analysis/imf/data-dictionary.md·.github/aw/ECONOMIC_DATA_CONTRACT.md
flowchart LR
classDef primary fill:#0a4f8f,color:#fff,stroke:#00d9ff,stroke-width:2px
classDef secondary fill:#3a3a3a,color:#ddd,stroke:#888
classDef gate fill:#ff006e,color:#fff,stroke:#fff
Start([news-* workflow trigger]) --> Domain{Identify economic class}
Domain -->|Macro · Fiscal · Monetary · External · Trade| IMF[(IMF SDMX 3.0 + Datamapper REST)]:::primary
Domain -->|Governance / Environment / Social residue| WB[(World Bank API)]:::secondary
Domain -->|Swedish-specific monthly / regional| SCB[(SCB PxWeb v2)]:::secondary
IMF --> Vintage{Vintage > 6 months?}:::gate
Vintage -->|Yes| Annotate[Annotate as stale + downgrade confidence]
Vintage -->|No| Cache[Cache: vintage-tagged · SHA-256 pinned]
Annotate --> Cache
Cache --> Provenance[Emit economicProvenance: {provider:imf, dataflow, indicator, vintage}]
WB --> Cache
SCB --> Cache
Provenance --> Compose[Article composition]
Compose --> Lint{IMF-first lint}:::gate
Lint -->|WB economic citation w/o IMF cross-ref| Reject([Block — open issue])
Lint -->|Pass| Publish([Publish article])
| Indicator class | Primary | Secondary | Why |
|---|---|---|---|
| Macro (GDP, growth, unemployment, inflation, fiscal balance, debt, current account) | IMF WEO + Fiscal Monitor | SCB (Sweden monthly) | Freshness + T+5 projections; SNA 2008 / GFSM 2014 / BPM6 cross-country comparability |
| Bilateral trade flows | IMF DOTS | — | Partner-country dimension, monthly cadence |
| Monthly inflation, policy rates | IMF IFS / MFS_IR | SCB / Riksbank | Standardised cross-country |
| Government spending by function (defence/health/education/social protection) | IMF GFS_COFOG | — | Committee-aligned (FöU/SoU/UbU/SfU) |
| Commodity prices, exchange rates | IMF PCPS / ER | — | Canonical benchmarks |
| Governance (CC.EST, RL.EST, VA.EST, GE.EST, RQ.EST, PV.EST) | World Bank WGI | — | IMF has no equivalent |
| Environment (CO2, renewables, forest, water) | World Bank | — | IMF has no equivalent |
| Social/education residue (literacy, school participation, gender ratios) | World Bank | GFS_COFOG 09 | IMF has no equivalent |
| Defence spending depth (long historicals) | World Bank MS.MIL.* | GFS_COFOG 02 | WB deeper history |
| Swedish ground truth (monthly labour, regional, budget execution) | SCB | — | National statistics authority |
Canonical rule. Every economic claim in a Riksdagsmonitor article cites an IMF dataflow first; World Bank citations are reserved for governance, environment and social residue (the classes IMF does not publish). SCB is the Swedish-specific ground truth layer. See ECONOMIC_DATA_CONTRACT.md v2.1 for the banned-phrase list and vintage discipline (>6 mo → annotation).