Apply comparative politics, political behavior, public policy analysis, and democratic theory frameworks to Swedish political data
This skill MUST be applied with the AI FIRST principle: never accept first-pass quality. ALL analysis and content MUST go through minimum 2 complete iterations. After first pass, read ALL output back completely and systematically improve every section β strengthen evidence, deepen analysis, add specific citations, broaden perspectives. Spend ALL allocated time on real work. Single-pass output is NEVER acceptable. NO SHORTCUTS.
This skill provides rigorous political science methodologies and analytical frameworks for interpreting political data collected by the Riksdagsmonitor platform. It bridges quantitative data analysis with political theory, enabling evidence-based assessments of democratic accountability, institutional performance, and political behavior.
Apply this skill when:
Do NOT use for:
Purpose: Systematically compare political actors, institutions, and outcomes across time and space.
Comparative Dimensions:
Actor Level Comparisons:
ββ Individual Politicians
β ββ Voting records (discipline, independence)
β ββ Legislative productivity (bills, amendments, questions)
β ββ Committee participation (attendance, contributions)
β ββ Constituency representation (district alignment)
ββ Political Parties
β ββ Electoral performance (vote share, seats)
β ββ Coalition behavior (agreement rates, stability)
β ββ Policy positions (left-right, GAL-TAN)
β ββ Organizational strength (membership, funding)
ββ Institutions
ββ Parliamentary committees (productivity, influence)
ββ Government ministries (budget, effectiveness)
ββ Electoral districts (turnout, competitiveness)
CIA Platform Implementation:
-- Example: Comparative party discipline analysis
SELECT
p.party,
COUNT(DISTINCT vr.ballot_id) as total_votes,
COUNT(DISTINCT CASE WHEN vr.vote = party_line.vote THEN vr.ballot_id END) as party_line_votes,
ROUND(100.0 * COUNT(DISTINCT CASE WHEN vr.vote = party_line.vote THEN vr.ballot_id END) /
NULLIF(COUNT(DISTINCT vr.ballot_id), 0), 2) as discipline_rate,
-- Comparative metrics
AVG(discipline_rate) OVER () as avg_discipline,
discipline_rate - AVG(discipline_rate) OVER () as deviation_from_mean
FROM view_politician_voting_record vr
JOIN politician p ON vr.politician_id = p.id
JOIN (
-- Determine party line (majority vote within party)
SELECT ballot_id, party, vote, COUNT(*) as vote_count
FROM view_politician_voting_record vr2
JOIN politician p2 ON vr2.politician_id = p2.id
GROUP BY ballot_id, party, vote
-- Note: QUALIFY is supported in Snowflake, BigQuery, DuckDB. For standard SQL, wrap this subquery in a CTE and filter with WHERE row_num = 1.
QUALIFY ROW_NUMBER() OVER (PARTITION BY ballot_id, party ORDER BY vote_count DESC) = 1
) party_line ON vr.ballot_id = party_line.ballot_id AND p.party = party_line.party
WHERE vr.vote_date >= '2022-01-01'
GROUP BY p.party
ORDER BY discipline_rate DESC;
Purpose: Understand individual and collective political actions using behavioral science.
Key Behavioral Indicators:
| Behavior Type | Indicators | Data Sources | Interpretation |
|---|---|---|---|
| Legislative Behavior | Vote patterns, bill sponsorship, amendments | view_politician_voting_record, view_riksdagen_document | Activity level, policy priorities |
| Coalition Behavior | Coalition voting agreement, cross-party cooperation | view_coalition_alignment_matrix | Party discipline, coalition stability |
| Constituency Behavior | District representation, constituent engagement | view_electoral_district_data | Responsiveness to voters |
| Committee Behavior | Attendance, contributions, influence | view_committee_participation | Policy expertise, influence |
| Strategic Behavior | Timing of actions, position-taking | view_temporal_voting_patterns | Electoral strategy, political calculation |
Behavioral Analysis Pattern:
@Service
public class PoliticalBehaviorAnalysisService {
/**
* Analyze voting independence vs. party loyalty
*/
public BehaviorProfile analyzeLegislativeBehavior(String politicianId, LocalDate startDate, LocalDate endDate) {
// Retrieve voting record
List<VotingRecord> votes = votingRepository.findByPoliticianAndDateRange(politicianId, startDate, endDate);
// Calculate behavioral metrics
double partyDiscipline = calculatePartyDiscipline(votes);
double independenceIndex = 1.0 - partyDiscipline;
double legislativeActivity = calculateActivityLevel(votes);
double crossPartyCooperation = calculateCrossPartyVoting(votes);
// Contextual interpretation
String interpretation = interpretBehaviorProfile(
partyDiscipline,
independenceIndex,
crossPartyCooperation
);
return BehaviorProfile.builder()
.politicianId(politicianId)
.period(new Period(startDate, endDate))
.partyDiscipline(partyDiscipline)
.independenceIndex(independenceIndex)
.legislativeActivity(legislativeActivity)
.crossPartyCooperation(crossPartyCooperation)
.interpretation(interpretation)
.build();
}
private String interpretBehaviorProfile(double discipline, double independence, double crossParty) {
if (discipline > 0.95 && crossParty < 0.05) {
return "Highly disciplined party loyalist with minimal cross-party cooperation";
} else if (independence > 0.20 && crossParty > 0.15) {
return "Independent-minded politician with significant cross-party engagement";
} else if (discipline > 0.85 && crossParty > 0.10) {
return "Generally loyal to party but willing to cooperate across party lines";
} else {
return "Moderate party loyalty with selective independence";
}
}
}
Purpose: Assess policy development, implementation, and outcomes.
Policy Cycle Analysis:
1. Problem Identification
ββ Issue salience (media mentions, questions)
ββ Stakeholder mobilization (pressure groups)
ββ Political attention (parliamentary debates)
2. Policy Formulation
ββ Committee deliberations
ββ Expert consultations
ββ Draft legislation
3. Decision Making
ββ Parliamentary debate quality
ββ Voting outcomes
ββ Coalition agreement
4. Implementation
ββ Budget allocation
ββ Agency assignment
ββ Regulatory framework
5. Evaluation
ββ Outcome metrics
ββ Cost-benefit analysis
ββ Public satisfaction
CIA Platform Policy Tracking:
-- Example: Track policy lifecycle from proposal to implementation
CREATE MATERIALIZED VIEW mv_policy_lifecycle AS
SELECT
doc.id as proposal_id,
doc.title as policy_title,
doc.submitted_date as proposal_date,
doc.status as current_status,
-- Committee phase
committee.name as assigned_committee,
committee.review_duration_days,
-- Voting phase
ballot.vote_date,
ballot.yes_votes,
ballot.no_votes,
ballot.abstain_votes,
CASE WHEN ballot.yes_votes > ballot.no_votes THEN 'PASSED' ELSE 'REJECTED' END as outcome,
-- Implementation phase
budget.allocated_amount,
ministry.responsible_ministry,
ministry.implementation_start_date,
-- Policy cycle duration
(ballot.vote_date - doc.submitted_date) as deliberation_duration,
(ministry.implementation_start_date - ballot.vote_date) as implementation_lag
FROM riksdagen_document doc
LEFT JOIN committee_review committee ON doc.id = committee.document_id
LEFT JOIN ballot ballot ON doc.ballot_id = ballot.id
LEFT JOIN budget_allocation budget ON doc.id = budget.policy_id
LEFT JOIN ministry_assignment ministry ON doc.id = ministry.policy_id
WHERE doc.type = 'PROPOSITION'
ORDER BY doc.submitted_date DESC;
Purpose: Evaluate democratic quality and accountability mechanisms.
Democratic Quality Indicators:
| Dimension | Indicators | Measurement | Target |
|---|---|---|---|
| Electoral Accountability | Turnout, competitiveness, representation | view_electoral_participation | High turnout, competitive elections |
| Legislative Responsiveness | Constituency alignment, question activity | view_politician_district_alignment | Strong constituent representation |
| Government Transparency | Data availability, reporting frequency | Platform completeness metrics | 100% data availability |
| Institutional Effectiveness | Policy output, implementation success | view_committee_productivity | High legislative productivity |
| Checks and Balances | Opposition activity, oversight effectiveness | view_parliamentary_oversight | Active opposition, robust oversight |
| Political Equality | Representation diversity, access equity | view_representation_demographics | Proportional representation |
Democratic Accountability Assessment:
@Service
public class DemocraticAccountabilityService {
public DemocracyScorecard assessDemocraticQuality(String period) {
DemocracyScorecard scorecard = new DemocracyScorecard();
// 1. Electoral Accountability
double turnoutRate = electoralService.calculateTurnoutRate(period);
double competitivenessIndex = electoralService.calculateCompetitiveness(period);
scorecard.setElectoralAccountability(
(turnoutRate * 0.5) + (competitivenessIndex * 0.5)
);
// 2. Legislative Responsiveness
double questionActivity = parliamentaryService.calculateQuestionRate(period);
double constituencyAlignment = parliamentaryService.calculateAlignmentScore(period);
scorecard.setLegislativeResponsiveness(
(questionActivity * 0.4) + (constituencyAlignment * 0.6)
);
// 3. Government Transparency
double dataCompleteness = platformService.calculateDataCompleteness(period);
double reportingFrequency = platformService.calculateReportingRate(period);
scorecard.setGovernmentTransparency(
(dataCompleteness * 0.6) + (reportingFrequency * 0.4)
);
// 4. Institutional Effectiveness
double legislativeProductivity = parliamentaryService.calculateProductivity(period);
double policyImplementationRate = governmentService.calculateImplementationRate(period);
scorecard.setInstitutionalEffectiveness(
(legislativeProductivity * 0.5) + (policyImplementationRate * 0.5)
);
// 5. Overall Democracy Score (0-100)
scorecard.setOverallScore(
(scorecard.getElectoralAccountability() * 0.30) +
(scorecard.getLegislativeResponsiveness() * 0.25) +
(scorecard.getGovernmentTransparency() * 0.20) +
(scorecard.getInstitutionalEffectiveness() * 0.25)
);
return scorecard;
}
}
Riksdag (Swedish Parliament):
Government Formation:
Election Results
β
Speaker Nomination (Talman)
β
Formateur Appointed (Prime Minister Candidate)
β
Coalition Negotiations
β
Government Formation
β
Investiture Vote (Negative Parliamentarism)
β
Government Sworn In
Negative Parliamentarism: Prime Minister confirmed unless absolute majority votes against.
Swedish Party Spectrum (Left β Right):
Coalition Patterns:
-- Historical coalition analysis
CREATE MATERIALIZED VIEW mv_coalition_history AS
SELECT
gov.start_date,
gov.end_date,
ARRAY_AGG(party.name ORDER BY party.seat_count DESC) as coalition_parties,
SUM(party.seat_count) as total_seats,
ROUND(100.0 * SUM(party.seat_count) / 349, 2) as seat_percentage,
gov.stability_index,
gov.duration_months
FROM government gov
JOIN government_party gp ON gov.id = gp.government_id
JOIN party party ON gp.party_id = party.id
GROUP BY gov.id, gov.start_date, gov.end_date, gov.stability_index, gov.duration_months
ORDER BY gov.start_date DESC;
Statistical Techniques:
Example: Regression Analysis of Voting Behavior:
import pandas as pd
import statsmodels.api as sm
# Load voting data
voting_data = pd.read_sql("""
SELECT
politician_id,
party,
district_urbanization_rate,
district_unemployment_rate,
vote_yes_rate,
vote_no_rate,
vote_abstain_rate
FROM view_politician_voting_summary
""", connection)
# Prepare independent variables
X = voting_data[['district_urbanization_rate', 'district_unemployment_rate']]
X = sm.add_constant(X)
# Dependent variable
y = voting_data['vote_yes_rate']
# Run regression
model = sm.OLS(y, X).fit()
print(model.summary())
# Interpretation: How do district characteristics affect voting patterns?
Case Study Analysis:
Content Analysis:
Elite Interviews: (Future capability)
START: Political Analysis Task
β
βββ What is the research question?
β βββ Descriptive: Use descriptive statistics, visualizations
β βββ Explanatory: Use regression, causal inference methods
β βββ Predictive: Use time series, machine learning models
β
βββ What is the unit of analysis?
β βββ Individual politician: Focus on voting records, activity
β βββ Political party: Focus on electoral performance, coalition behavior
β βββ Institution: Focus on committee productivity, ministry effectiveness
β βββ Policy: Focus on legislative lifecycle, implementation outcomes
β
βββ What is the time frame?
β βββ Single event: Use case study, qualitative methods
β βββ Short term (weeks/months): Use descriptive statistics
β βββ Medium term (years): Use trend analysis, comparative methods
β βββ Long term (decades): Use time series, historical analysis
β
βββ What is the goal?
β βββ Academic research: Emphasize rigor, theory testing
β βββ Journalism: Emphasize timeliness, public interest
β βββ Public transparency: Emphasize accessibility, accountability
β βββ Political consulting: Emphasize actionability, strategic insight
β
βββ Apply appropriate framework
βββ Comparative Politics Framework
βββ Political Behavior Framework
βββ Public Policy Analysis Framework
βββ Democratic Theory Framework
Review these policies before political science analysis:
Track these KPIs to measure analytical quality: