In this update13
Full notes
Full StateOS: The Political Sandbox update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Maps
- Gameplay
- Balance
- Events
StateOS: The Political Sandbox changes
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:
Location - Where they live
[c]urban[/c] - City centers (70%+ urbanization)
[c]suburban[/c] - Suburbs and small cities (30-70% urbanization)
[c]rural[/c] - Countryside and small towns (<30% urbanization)
[c]mixed[/c] - Can be found anywhere
Age - Life stage
[c]young[/c] - 18-35, students and young professionals
[c]middle_aged[/c] - 35-55, established workers and parents
[c]senior[/c] - 55+, retirees and empty-nesters
Education - Academic background
[c]primary[/c] - Elementary education only
[c]high_school[/c] - High school diploma
[c]some_college[/c] - Some college, no degree
[c]college[/c] - Bachelor's degree
[c]graduate[/c] - Master's or higher
Occupation - What they do
[c]professional[/c] - White collar (lawyers, doctors, engineers)
[c]working_class[/c] - Blue collar (factory workers, tradespeople)
[c]business_owner[/c] - Entrepreneurs and managers
[c]farmer[/c] - Agricultural workers
[c]service[/c] - Retail, hospitality, gig workers
[c]public_servant[/c] - Government employees
[c]retired[/c] - No longer working
[c]student[/c] - Still in education
Culture - Values and identity (optional)
[c]traditional[/c] - Religious, family-oriented
[c]cosmopolitan[/c] - Urban, internationally-minded
[c]nationalist[/c] - Strong national identity
[c]progressive[/c] - Social change advocates
[c]solidarity[/c] - 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 [c]location: urban[/c]
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 [c]age: young[/c]
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:
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)
Mobilization (0.0 - 1.0) How likely they are to actually vote.
Starts at 0.5 ± 0.15 random variation
Affects turnout and enthusiasm
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
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 ([c]_de[/c] 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 ([c]_gb[/c] 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 ([c]_kor[/c] 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)
Source
Changelog.gg summarizes and formats this update. How we read updates.
