Explore the Ideological Landscape
Standard political analysis places voters on a single liberal-conservative axis. The survey data tells a different story. A meaningful share of the 2024 electorate holds views that cut across those lines in ways that defy simple labels.
Some clusters favor abortion rights but also want strict immigration enforcement and voted for Trump. Others support a government jobs guarantee (a traditionally left position) while opposing transgender protections (a traditionally right one). These are not contradictions or errors — they are the actual policy combinations that exist in the electorate, and they matter for understanding who voted how and why.
The chart below maps all 15 clusters across any three policy dimensions simultaneously. Rotating it reveals which clusters align on some axes but split on others. Use the preset views to jump straight to the most revealing combinations. Dot size = population share. Color = party ID (blue = Democratic lean, red = Republican lean). Hover over any dot for vote shares and demographics.
Find Your Cluster
The 2024 US electorate is not just "red" or "blue." A clustering analysis of 51 policy questions from the ANES 2024 survey reveals 15 distinct ideological groups with combinations of views that go far beyond a simple left-right spectrum. Some align with traditional party lines; others cut across them in unexpected ways.
The 10 questions below were selected by machine learning as the strongest predictors of which group someone belongs to. They are not about party identity or ideology directly. Answering them reveals which of the 15 clusters fits your particular mix of policy views. From there, chat with an AI persona representing that cluster, or watch personas from opposing clusters deliberate a political topic in real time.
Answer these 10 questions to discover which ideological cluster you belong to.
Chat with a Cluster Persona
These are simulated, fictional characters representing each cluster's statistical profile. Ask them about political issues.
Each persona's opinions come directly from real survey responses — the AI does not make them up. Before answering, it looks at which of the persona's actual policy positions are relevant to your question, considers how strongly each one applies, and responds as a typical member of that group would — not as an extreme case. It will not soften disagreements or pretend to agree. See how the instructions are written.
View reasoning: below each response you can click "View reasoning" to see the thinking behind it — which positions the AI considered and how it weighed them before answering.
💡 LLM chat provides dynamic, conversational responses powered by Anthropic Claude Sonnet 4.5. Uncheck to use rule-based keyword matching instead.
Deliberation
Select 2 or 3 voter personas and enter a topic. The personas will debate their differences across four structured phases, then a mediator will identify agreements, disagreements, and common ground.
Each response is grounded in the persona's stored survey positions.
Each persona states their view
They challenge each other
They propose middle ground
A mediator synthesizes
Enter a topic above to enable the button.
⏱ Takes about 30–60 seconds. Each response is grounded in the persona's actual survey stances.
About This Project
Last updated: March 24, 2026
Overview
K-means clustering applied to ~50 policy attitude questions from the ANES 2024 Time Series Study reveals 15 distinct ideological groups in the American electorate. The analysis covers how voters combine positions across abortion, immigration, fiscal policy, environment, healthcare, crime, Israel/Palestine, and foreign affairs.
Rather than forcing voters into simple "liberal" or "conservative" boxes, the approach discovers natural groupings based on actual policy combinations. Some clusters align closely with traditional party platforms. Others represent cross-cutting coalitions: voters who support abortion rights but favor strict immigration enforcement, or who want a government jobs guarantee while opposing transgender protections. Each of the 15 clusters is named by what distinguishes it from neighboring clusters, not by its absolute position on a left-right axis.
The site also includes a Deliberation feature: select any two or three personas and a political topic, and an AI-orchestrated structured debate runs automatically across four phases (positions, mutual challenges, compromise proposals, and a mediator synthesis). Every argument is grounded in each persona's actual survey stances, not invented opinions.
Methodology
- Universe: "Likely voters" (respondents who definitely or probably will vote in 2024)
- Features: 49 pre-core policy variables (V241xxx) spanning abortion/gender, immigration, fiscal policy, environment, healthcare, crime, Israel/Palestine, education, trust in government, and political rights
- Feature Selection: Variables with >25% missing data excluded; all scales preserved in original direction (no flipping)
- Preprocessing: Median imputation for missing values, z-score standardization to ensure equal weighting across different scales
- Distance Metric: Variance-weighted Euclidean distance (features with higher variance receive proportionally higher weight: weight = √variance)
- Algorithm: K-means clustering with k-means++ initialization, 50 random restarts
- K Selection: K=15 selected from range [8-20] using silhouette score with a small penalty for distance from target K=15 (a design choice favoring granularity over parsimony; see technical note for details)
- Cluster separation: Silhouette score is 0.045 and stability ARI is 0.54, indicating soft, overlapping clusters. These are best understood as fuzzy ideological prototypes, not hard-edged voter "types"
- Quiz: 10 features selected by Random Forest feature importance to predict cluster membership (61% accuracy vs 79% with all 49 features)
- Persona Stances: Cluster-level means computed directly from survey data; LLM chat uses explicit directional stances to ensure consistency (see example prompt)
- Cluster Names: Each cluster was named using a differential z-score approach. For each cluster, the variables with the largest z-score deviation relative to its nearest neighbors (not absolute position) were identified, then passed to an LLM (Claude Sonnet) to propose a short descriptive label. Names reflect what makes a cluster distinct, not what all clusters share.
LLM Validation Experiment
To validate the persona chat approach, a held-out experiment tested whether Claude Sonnet 4.6 using the same prompt framing as the live chat (roleplay as this voter, 4-step reasoning process, stay true to the data) can predict crime policy positions (urban unrest response, death penalty, federal crime spending) from the remaining 46 policy variables. Four methods were compared against a random-guessing benchmark:
- (A) Cluster-LLM (clean combo): LLM given each cluster's average policy profile with visible chain-of-thought and modal prediction (15 API calls, applied to all 4,670 valid respondents)
- (B) Cluster-LLM (modal only): Same cluster profiles but asking only for the modal response, no CoT (15 API calls)
- (C) Individual LLM -- ideology only: LLM given each respondent's own 46 policy responses (200 respondents)
- (D) Individual LLM + demographics: Same as (C) plus gender, age, education, race
Results (95% bootstrap CIs on C and D):
| Question | Random Benchmark |
(A) Cluster Clean Combo Correct / Within±1 |
(B) Cluster Modal Correct / Within±1 |
(C) Indiv. Ideo. Correct / Within±1 |
(D) Indiv. +Demog. Correct / Within±1 |
|---|---|---|---|---|---|
| Urban Unrest (1-7) | 14% / 37% | 28% / 67% | 36% / 65% | 30.5% / 67% [24-37% / 61-73%] |
32% / 67% [26-39% / 60-74%] |
| Death Penalty (1-4) | 25% / 61% | 47% / 81% | 46% / 72% | 46.5% / 85% [40-53% / 80-90%] |
47.5% / 85% [41-55% / 80-90%] |
| Crime Spending (1-5) | 20% / 51% | 23% / 83% | 26% / 57% | 44.5% / 90% [38-52% / 86-94%] |
41% / 90% [34-49% / 86-94%] |
Takeaway: All four methods beat random guessing. The clean combo cluster-LLM (A) achieves 67-83% within-±1 on two of three questions, competitive with individual-level methods at a fraction of the cost. Exact-match accuracy tops out around 47%, meaning more than half of individual responses are still wrong. These results confirm that the chat feature captures real ideological signal, but they also show it should not be treated as ground truth for any individual voter. Scaling individual prediction to the full ANES sample (4,670 respondents) would require ~4,670 API calls, over 300× more expensive than the cluster approach, which needs exactly 15. Demographics add modest value with overlapping CIs, so the effect is not conclusive. I am currently working on incorporating external datasets (voter files, precinct returns, validated panel data) to improve individual-level prediction accuracy and enrich the chat and deliberation experience.
Technical Details
For comprehensive documentation covering the complete analysis pipeline (data universe definition, feature selection criteria, variance weighting methodology, clustering algorithm details, stability analysis, and persona generation), see:
Feedback & Suggestions
This is an ongoing research project. If you have feedback, find errors, or have suggestions for improvement, please reach out via:
- GitHub: Submit an issue
- LinkedIn: Send a message
Data & Code
Data Source: ANES 2024 Time Series Study
Code Repository: GitHub (Python clustering pipeline + static site generator)
License: MIT (code) / ANES data subject to ANES terms of use
Acknowledgments
This project uses data from the American National Election Studies (ANES). The ANES is a collaboration of Stanford University, the University of Michigan, and funded by the National Science Foundation.
Disclaimer: This is an independent educational project. Any opinions, findings, and conclusions or recommendations expressed here are those of the author and do not necessarily reflect the views of ANES or the NSF.