V0.0.34: How Demographics Determine Party Popularity
The Coalition System
Every region in StateOS has different groups of voters called coalitions. Think of coalitions as voting blocs - groups of people who tend to vote similarly based on where they live, their age, education, and values.
The Five Demographic Dimensions
Each coalition is defined by five demographic characteristics:
1. Location - Where they live
urban - City centers (70%+ urbanization)
suburban - Suburbs and small cities (30-70% urbanization)
rural - Countryside and small towns (<30% urbanization)
mixed - Can be found anywhere
2. Age - Life stage
young - 18-35, students and young professionals
middle_aged - 35-55, established workers and parents
senior - 55+, retirees and empty-nesters
3. Education - Academic background
primary - Elementary education only
high_school - High school diploma
some_college - Some college, no degree
college - Bachelor's degree
graduate - Master's or higher
4. Occupation - What they do
professional - White collar (lawyers, doctors, engineers)
working_class - Blue collar (factory workers, tradespeople)
business_owner - Entrepreneurs and managers
farmer - Agricultural workers
service - Retail, hospitality, gig workers
public_servant - Government employees
retired - No longer working
student - Still in education
5. Culture - Values and identity (optional)
traditional - Religious, family-oriented
cosmopolitan - Urban, internationally-minded
nationalist - Strong national identity
progressive - Social change advocates
solidarity - Union and worker solidarity
And many more...
How Demographics Shape Coalition Size
When the game generates a region, it calculates how much of each coalition exists based on the region's actual demographics.
The Base Formula:
Adjusted Size = Base Size × Location Multiplier × Age Multiplier
Location Multiplier Example:
Urban Progressives have location: urban
If a region has 80% urbanization: multiplier = 80/50 = 1.6×
If a region has 20% urbanization: multiplier = 20/50 = 0.4×
Age Multiplier Example:
Young Socialists have age: young
If a region has 35% young voters: multiplier = 35/25 = 1.4×
If a region has 15% young voters: multiplier = 15/25 = 0.6×
Practical Example - San Francisco vs. Rural Mississippi:
Coalition | Base Size | San Francisco (90% urban, 40% young) | Rural MS (15% urban, 18% young) |
|---|---|---|---|
Urban Progressives | 8% | 8% × 1.8 × 1.6 = 23% | 8% × 0.3 × 0.7 = 1.7% |
Rural Conservatives | 18% | 18% × 0.14 = 2.5% | 18% × 1.7 = 30.6% |
Young Socialists | 10% | 10% × 1.8 × 1.6 = 29% | 10% × 0.3 × 0.7 = 2.1% |
Traditional Seniors | 13% | 13% × 0.9 = 12% | 13% × 1.5 = 19.5% |
After calculation, all coalition sizes are normalized to sum to 100%.
The Dynamic Weight System
Not all demographics matter equally everywhere. The game calculates dynamic weights based on what makes each region unique:
Weight Categories:
Ethnicity Weight (0.12 - 0.55) - How much ethnic background drives voting
Education Weight (0.15 - 0.45) - How much education level matters
Age Weight (0.10 - 0.30) - How much generation gaps matter
Industry Weight (0.08 - 0.40) - How much local economy matters
How Weights Change By Region Type:
Region Type | Ethnicity | Education | Age | Industry |
|---|---|---|---|---|
Very High Minority (55%+) | 0.55 | 0.20 | 0.12 | 0.13 |
High Minority (45-55%) | 0.45 | 0.25 | 0.15 | 0.15 |
Moderate Minority (20-45%) | 0.20 | 0.25 | 0.25 | 0.30 |
Rural (<20% minority, <30% urban) | 0.15 | 0.15 | 0.30 | 0.40 |
Suburban Educated | 0.15 | 0.30 | 0.20 | 0.35 |
Urban Educated | 0.12 | 0.45 | 0.15 | 0.28 |
What This Means:
In majority-African counties in the Deep South, ethnicity is the dominant factor (0.55 weight)
In rural farming communities, industry is the dominant factor (0.40 weight) - farmers vote as farmers
In educated suburbs of major cities, education is the dominant factor (0.30-0.45 weight) - college grads cluster together
Ethnic Affinities
Each coalition has specific ethnic affinities that boost or penalize its size based on the local population.
Examples from the code:
Rural Conservatives get boosted by:
German American: +2.0
Irish American: +2.0
Norwegian American: +2.2
Cuban American: +2.5
Rural Conservatives get penalized by:
African American: -2.0
Mexican American: -1.0
Puerto Rican: -1.2
Urban Liberals get boosted by:
African American: +2.0
Hispanic American: +1.2
Puerto Rican: +1.4
Industrial Social Democrats (Germany) get boosted by:
Turkish German: +4.0
Syrian German: +3.5
Polish German: +2.0
Greek German: +2.0
Bavarian Conservatives (Germany) get boosted by:
German: +3.0
Bavarian Conservatives get penalized by:
Turkish German: -1.5
Syrian German: -1.5
This means a county with 30% African American population will have a much larger Urban Liberal coalition and a smaller Rural Conservative coalition than the raw demographics would suggest.
Industry Contributions
Local industries boost certain coalitions:
Industry | Boosts These Occupations |
|---|---|
Agriculture | Farmers (+1.0), Working Class (+0.75) |
Manufacturing | Working Class (+0.75) |
Tech | Professionals (+1.0), Business Owners (+0.75) |
Finance | Professionals (+0.75), Business Owners (+0.9) |
Services | Business Owners (+0.75), Service Workers (+0.9) |
Mining/Oil & Gas | Resource Extraction Workers (+1.0) |
Example: A county dominated by oil and gas will have boosted Resource Sector Workers coalition (Canada) or Working Populists (USA).
Location Penalties
Coalitions get penalized when they're in the wrong place:
Coalition Location | Penalty When... |
|---|---|
Urban | Urbanization < 70%: penalty = max(0.50, urbanization/70) |
Suburban | Urbanization < 30% OR > 70%: penalty = max(0.60, ...) |
Rural | Urbanization > 30%: penalty = max(0.50, (100-urbanization)/70) |
Example: Urban Progressives in a 40% urban area get a 0.57× penalty (40/70 = 0.57).
Coalition Modifiers (Runtime)
Beyond demographics, each coalition instance has runtime modifiers:
1. Volatility (0.15 - 0.50) How much this coalition swings between elections.
Traditional Seniors: 0.15 (very stable)
Red Wall Swing Voters: 0.40 (wild swings)
Young Socialists: 0.45 (highly volatile)
2. Mobilization (0.0 - 1.0) How likely they are to actually vote.
Starts at 0.5 ± 0.15 random variation
Affects turnout and enthusiasm
3. Satisfaction (0.0 - 1.0) How happy they are with current politics.
Starts at 0.5 ± 0.10 random variation
Affects willingness to switch parties
4. Current Mood (-1.0 to 1.0) Short-term sentiment swings.
Starts at 0.0 ± 0.20 random variation
Responds to events and campaigns
Generic Coalitions (Used in USA)
Coalition | Base Size | Ideology | Location | Age | Education | Volatility |
|---|---|---|---|---|---|---|
Urban Progressives | 8% | Progressive | Urban | Young | College | 0.35 |
Urban Liberals | 11% | Liberal | Mixed | Middle | High School | 0.18 |
Suburban Moderates | 15% | Centrist | Suburban | Middle | College | 0.25 |
Rural Conservatives | 18% | Conservative | Rural | Middle | High School | 0.20 |
Working Class Populists | 12% | Populist | Mixed | Middle | High School | 0.40 |
Business Libertarians | 4% | Libertarian | Suburban | Middle | College | 0.30 |
Young Socialists | 10% | Socialist | Urban | Young | College | 0.45 |
Traditional Seniors | 13% | Conservative | Suburban | Senior | High School | 0.15 |
Tech Pragmatists | 7% | Pragmatist | Urban | Young | Graduate | 0.25 |
Minority Democrats | 12% | Liberal | Mixed | Middle | High School | 0.15 |
Country-Specific Coalitions
Germany (_de suffix):
Coalition | Base Size | Ideology | Key Demographics |
|---|---|---|---|
Bavarian Christian Social Union Base | 18% | Christian Democracy | Rural, Traditional, Middle Class |
Industrial Social Democrats | 21% | Social Democrat | Urban, Working Class, Solidarity culture |
Green Middle Class | 15% | Green | Urban, Young, Graduate, Progressive |
Eastern Left Coalition | 9% | Socialist | Urban, Working Class, Solidarity |
Business Liberals | 8% | Liberal | Urban, Graduate, Business |
Populist Right | 3% | Nationalist | Rural, Working Class, Traditional |
United Kingdom (_gb suffix):
Coalition | Base Size | Volatility | Key Demographics |
|---|---|---|---|
Working Class North | 16% | 0.25 | Urban, Working Class, Solidarity |
Home Counties Conservatives | 18% | 0.20 | Suburban, Middle Class, Traditional |
Shire Conservatives | 12% | 0.15 | Rural, Senior, Traditional |
Scottish Nationalists | 8% | 0.30 | Mixed, Nationalist culture |
Red Wall Swing Voters | 10% | 0.40 | Urban, Working Class, Traditional |
Liberal Professionals | 8% | 0.35 | Suburban, Graduate, Professional |
South Korea (_kor suffix):
Coalition | Base Size | Key Demographics |
|---|---|---|
Gyeongsang Conservatives | 35% | Rural, Senior, Traditional |
Jeolla Democratic Base | 26% | Rural, College, Regional culture |
Seoul Progressive Elite | 14% | Urban, Young, Graduate, Cosmopolitan |
Youth Democracy Movement | 6% | Urban, Young, Student, Activist |
Canada (various markers):
Coalition | Base Size | Key Demographics |
|---|---|---|
Resource Sector Workers | 16% | Mixed, Working Class, Western Alienation |
Quebec Nationalists | 15% | Mixed, College, Québécois culture |
Prairie Conservatives | 13% | Rural, Farmer, Western Conservative |
Metropolitan Elite | 12% | Urban, Graduate, Cosmopolitan |
West Coast Environmentalists | 9% | Suburban, Young, Environmental |
Putting It All Together: A Complete Example
Madison County, Mississippi:
45% African American population
25% urbanization (rural)
22% college educated
35% senior population
Dominant industry: Agriculture
Step 1: Determine Dynamic Weights
Moderate minority area (45%): Ethnicity=0.20, Education=0.25, Age=0.25, Industry=0.30
Step 2: Calculate Coalition Sizes
Coalition | Base | Location Mult | Age Mult | Ethnic Affinity | Final Estimate |
|---|---|---|---|---|---|
Rural Conservatives | 18% | 1.5× (rural fits) | 1.0× | -2.0 (African American penalty) | ~15% |
Minority Democrats | 12% | 1.0× | 1.0× | +2.0 (African American boost) | ~25% |
Traditional Seniors | 13% | 1.0× | 1.75× (35% seniors) | Neutral | ~18% |
Urban Progressives | 8% | 0.36× (penalty) | 0.8× | +0.05 (weak AA affinity) | ~2% |
Step 3: Party Alignment
Minority Democrats (25%) → 85% align with liberal/center-left parties
Rural Conservatives (15%) → 85% align with conservative parties
Traditional Seniors (18%) → 70% align with conservative parties
Result: Conservative parties likely win, but it's competitive due to the large Minority Democrat coalition.
Why This Matters for Gameplay
Campaign Strategy - Target coalitions where you can move the needle (high volatility, low satisfaction)
Regional Understanding - A county's demographics predict which coalitions exist and how they'll vote
Swing Voters - Working Populists (0.40 volatility) and Red Wall voters (0.40 volatility) are your targets for flipping regions
Safe Seats - Traditional Seniors (0.15 volatility) and Minority Democrats (0.15 volatility) rarely change - focus elsewhere
Country Differences - Germany's coalition landscape (CSU base, Industrial SPD, Greens) plays very differently from Korea's regional divide (Gyeongsang vs Jeolla)
