Civics & Politics

A political layer between the surveyor's commit and the city actually building the plat. Councils, votes, mayors, and the occasional development hell.

Macroscopic SimulationCitizensCivicsPolitics

This doc has ballooned past a plan review pipeline into many semi-independent systems, all sharing one page: player hats, mayoral succession, an authoritarian endgame, election types, a subsidy taxonomy —

Split it up:

Player hats are now in their own Player Stories doc. Elections and subsidies are still on this page; the same split applies to them when they're ready. Trim the Questions list to what's actually blocking implementation next, and park the rest as speculative.

Use the "Civics" and/or "Politics" tags from the design map's Subject list, so future splits (Elections, Subsidies, etc.) have a home in the index.

Overview

Committing a plat (see 3D & Grids) doesn't build it. It submits it. From there, a plat moves through a political review pipeline that decides whether and when it actually gets built: a city council weighs it, a mayor can lean on it, a general election can put it on the ballot, and a few plans get stuck in development hell along the way. The review pipeline is the bridge between the surveyor's planning-mode optimism and the macro sim's land-value / RCI reality.

The political layer is deliberately not a binary approve/deny: the player is meant to feel the gears of approval — who is in office, who is up for re-election, what the current controversy is — the same way they feel the gears of zoning. A plat sitting in a review queue for six in-game months is a real outcome, and a plat that goes to a vote is a real event.

Legislative Pipeline

Every committed plat lands on a single linear pipeline, with three exit points:

  1. Submitted. The plat enters the city clerk's queue. The city clerk is procedural: it stamps a submission date, attaches a cost estimate from the plat's roads + parcels, and assigns a controversy score (see below).
  2. Council review. The city council weighs the plat. Most plats exit here — either approved (the plat goes to construction) or denied (the plat is shelved, the player can revise and re-submit).
  3. Vote. Plans the council refuses to decide on its own go on the ballot at the next general election. The vote decides.

A plan can also be stuck in development hell: neither approved, denied, nor on a ballot, but bogged down by cost overruns, environmental review, litigation, or a funding gap. The player can choose how to deal with stuck plans: Revive, Withdraw, or left to rot. (Old rotten plans get their own visual indicator, be it a future filter type icon, e.g. stinky rotting garbage, or a tag used in a list of plans.)

Approval Tiers

Not every plat needs the full pipeline. The city clerk routes plats by tier:

Tier Trigger Path
Minor Small footprint, low controversy, low cost Approved by city staff on a fast track. Days, not months.
Standard Typical plat City council review. Outcomes: approved, denied, or kicked to the next election.
Major High cost, large footprint, or controversy above a threshold City council review with a mandatory public-comment period, then either decided or put on the next election's ballot.
Contested Controversy above a higher threshold, or a council deadlock Ballot at the next general election. The council cannot decide this on its own.

The thresholds (cost, footprint, controversy) are tuning constants, not part of the player-facing UI: the player sees the tier their plat lands in, the cost estimate, and the controversy score, then watches the pipeline.

Controversy

Every plat gets a controversy score computed from a few signals on the plat and in the city:

Controversy drives the approval tier (above) and, in the council, how a contested plat is framed in the public-comment period. A high-controversy plat can be approved on a fast track by a popular mayor, or stalled indefinitely by an unpopular one.

Development Hell

Some plans get stuck. The development-hell state is not a single failure mode — it's a portfolio of them, each surfacing in the city UI as a different kind of delay:

Each kind of hell is visible to the player in the city's review queue, with a clear "what's blocking this" tooltip. A plat can be in multiple hells at once (a cost overrun on a litigated plat), and the hell-state of a plan can be the lever the player uses to time the rest of their program (above).

Development Subsidies

This section is primarily research. Let's iterate and narrow the scope here. This is a game, after all.

Not every plat is paid for out of general fund cash. A city can lean on a handful of financing tools to make a plat happen sooner, or at all — each with a different risk/reward shape the player learns to read:

Which of these are worth modeling — and how they'd hook into a plat's cost estimate, funding-gap risk, and the Economy & Zoning ledger — is still open.

Election Day

Contested plats — the ones the council won't or can't decide — go on the ballot at the next general election, alongside any other contested matters the council has accumulated. A general-election ballot looks like:

Each ballot measure is yes/no: "Should the <PlatName> plat be approved and built?" A "yes" vote means the plat goes to construction at the start of the next term. A "no" vote means the plat is shelved, and the player has to redesign or abandon it.

The ballot question's framing is a real signal: a high-controversy plat with a popular mayor's endorsement lands on the ballot with the mayor's "yes" recommendation attached, and a low-controversy plat with an unpopular mayor lands with a "no" recommendation. The recommendation is a UI element, not a numerical bonus, but the citizenry reads it.

The player enters the city wearing a hat — a private citizen, a developer/speculator flipping plats for profit, a lobbyist working the council from outside, a city planner — and the hat is what most of this doc has assumed by default. See Player Role for how hats work and how a hat-wearing player can run for mayor.

Elections

Elections are a fixed-cadence macro event. They:

The results are not fully under the player's control, and they shouldn't be: a player who could perfectly predict and steer every election would game the system. The mayoral race's outcome is a function of favorability, with a small random factor. A mayor with very low favorability loses even with a controversial plat on the ballot; a mayor with very high favorability wins despite one. The interesting range — favorability around 0.4-0.6 — is where elections feel alive.

Types

General elections are the standard election type, resolving a mayoral race and any ballot measures accumulated since the last election.

Special elections are one-off elections that occur when the council presents "Major" or "Contested" (See Approval Tiers) plans to the electorate in lieu of a council decision or waiting for a general election. These are for plans that are too controversial to wait, or for plans that are unfavorable to the council.

Effects

A change in mayor or council composition is a real change in the city: a new mayor can re-tier the approval queue (faster tracks for low-controversy plats, slower tracks for high-controversy ones), and a new council can be more or less friendly to the player's planning style.

Mayors

A mayor is the city's elected executive. Normally an NPC — but see Player Role for when the player runs for and holds the office themselves. NPC or player, the mayor is a real game character with:

When the mayor is an NPC, they're not a Sim: the player doesn't run their personal life. The favorability bar is a single read on the mayoral portrait in the city UI, and a tooltip explains what moved it last.

Player Role

The full roster of hats — developer, civic authority, private equity flipper, and the rest — lives in the Player Stories doc, along with each hat's goal, verb set, and position relative to the city. This section is the short version: how a hat-wearing player interacts with the pipeline above.

The player picks a hat at campaign start — a private citizen, a developer/speculator flipping plats for profit, a lobbyist working the council from outside, a city planner/manager — and the hat sets their verb list and their relationship to the pipeline above. A speculator submits plats to flip for profit and reads the queue for arbitrage timing; a lobbyist doesn't submit plats at all, but spends influence nudging council votes and mayoral endorsements; a planner (the default framing used elsewhere in this doc) submits, reads, withdraws, and waits:

Whatever hat the player wears, they can run for mayor. Winning the race hands them the office for a term (see Mayors and Elections) — they campaign, endorse or oppose ballot measures, and hold favorability, on top of (or instead of) their hat's usual verbs. When the term ends, the player reverts to their original hat; a mayoral term is a detour, not a permanent class change.

One exception, and a fun end-game "evil" goal: an authoritarian mayor can move to abolish elections — theirs, the council's, or both — and never revert. That's a distinct, highly controversial decision rather than a normal mayoral term, and it's the kind of run that turns "city planner" into "The Sims"-style villainy for players who make that choice.

A choice to make when the mayor's term ends:

  • 👌 Concede
  • 👎 Contest the Election
  • 💥 Overthrow the Government!

Conceding is the low-drama happy path. Power changes hands cleanly, with little to no hit to the outgoing mayor's favorability, since there's nothing for the citizenry to react to.

Contesting is the drama-queen path. There's no coup — just the region's recount-and-lawsuit process playing out as a time delay — but political careers are made and broken on drama like this, so it swings favorability harder in both directions, good or bad, depending on how the city's factions line up behind the contest.

Data Model

Entity Fields
Plat (existing) id, roads, blocks, parcels, zoneIntent, grid tuning
Submission platId, submittedAt, costEstimate, controversyScore, tier, status, currentHell?: Hell
Status submitted | council-review | approved | denied | ballot | development-hell | shelved
Hell kind: cost-overrun | environmental | litigation | funding | opposition, startedAt, resolvedAt?, notes
BallotMeasure submissionId, ballotId, recommendation, framing
Mayor id, portrait, favorability, termStartedAt, termLengthYears, status: incumbent | candidate | former
Election date, mayorCandidates, councilSeats[], ballotMeasures[]

The plat from the surveyor is immutable after submission — the city holds a copy, not a reference. The player can revise the plat in the surveyor and re-submit, but the new submission is a new Submission pointing at a new (or modified) plat; the old submission is shelved.

Questions