Traffic

Every commute in Microlandia is decided one trip at a time, by one citizen, using a generalized cost model. Every option (walk, bicycle, bus, car) is reduced to one number that stands in for the total felt cost of that trip. That number is in-vehicle travel time, plus a fare penalty for the bus, plus a daily or monthly fee spread out across the expected trips for the car. The citizen picks whichever option has the lowest generalized cost on that trip.

That is why most of the parameters on this page are conversion factors, like “one dollar of bus fare feels like three minutes of travel time,” or “the yearly car license fee gets spread across forty-four commutes per month.” Tune these and the city’s mode share shifts smoothly, not in sudden jumps.

Bus fare

Bus fare is the most visible lever you have. Because fare turns into perceived minutes, dropping the fare bends every commuter’s bus utility upward in proportion to how much they care about money. Raising it pushes the same commuters back toward cars, or onto foot if their walk is short enough.

When fare hits zero, a second mechanism turns on. A “free transit” bonus multiplier captures the friction that does not show up in the price alone: no tapping a card, no checking a balance, no thinking about it. The size of this extra bonus is a game assumption. The cited German experiment charged nine euros per month; it provides evidence about a large fare reduction, but does not isolate the effect of making fares exactly zero.

Street layouts and parking

Every street has one car lane each way, so every layout carries the same traffic at the same speed. What differs is what lies beside the lanes. A street parking street has a parking lane along each curb: six spaces per 20 meters of straight street, none at junctions, corners or ramps, and none on bridges. A street with only bike lanes, or with nothing but its lanes, parks no cars at all. Drivers who find no space near where they are going search longer, and that search is part of what a car trip costs them.

So the choice is a trade. Parking streets make driving easier for the people who live and work along them. Bike lane streets give that room to cyclists instead, and the 30 meter layout gives both. Riders load no street: a bicycle takes no space in the traffic the cars feel, so a street full of cyclists is as quick to drive as an empty one.

Garages

Some buildings bring their own parking. A house has a garage for one car, for the family who lives there. A corporate tower has two basement levels with 90 spaces, for the people who work there. A shopping center has 140 spaces under it and on its roof, for the people who work or shop there. Nobody else parks in these garages. A car that finds room in its own building’s garage never circles a full block looking for a space: it takes only the few minutes any car takes to park on an empty street. So where the streets nearby are busy, driving there gets quicker, and more of its people drive. (They still pay the street parking fee: it is a tax on driving to work, wherever the car ends up.)

The parking garage is the public one: 90 spaces for anyone going somewhere within 400 meters of it. When a building’s own garage is full, or it has none, its people’s cars try the nearest parking garage within that distance, then the street and the parking lots nearby. A car parked for a shopping trip or an outing holds its space for a couple of hours, so each space serves about four of them a day; a car parked at work or at home holds its space all day. A garage that no street a car can use reaches (a building that fronts only a promenade) stands empty.

Select a building to see its garage: how many spaces were taken on its busiest day this week, and how many more it needed that day. The toolbox shows the spaces before you build.

A household buys a car only where it can keep it. A house keeps as many cars as its garage holds, however much room the street has. Any other home buys a car unless the Traffic map marks its building with parking problems: in the last seven days someone going there found nowhere to park, or last night one of its residents’ cars found no space. A building the map marks “No parking” (cyan, or purple when its roads fail it too) gets no new cars, so the cure is the same as the warning: a parking lot, a parking garage, or a street with a parking lane.

A few subtleties

Three nuances are worth flagging:

  • License fees and parking fees only shift mode share for citizens who actually have an alternative: a bus, or a ride. Captive drivers can’t switch, so a higher parking fee on them is just a tax, not a behavioral lever.
  • A separate induced demand elasticity lets existing bus riders take more trips when fares drop, on top of any new riders the lower fare attracts. The total ridership response to a fare cut is the sum of the two effects.
  • Buses on a road slow down cars on that same road. So a dense bus network gradually nudges car owners onto transit even before you touch the fare.

The numbers on this page are calibrated against the academic transit-elasticity literature, especially the long-running collection by Litman at the Victoria Transport Policy Institute.

Parameters

Car speed limit km h

40

The speed limit for cars on roads, expressed in kilometers per hour. This affects the road capacity and probability of traffic congestion.

⚠️ Source pending

Bus network traffic car penalty

0.2

The amount of traffic bandwidth taken from roads where the bus network is operating. This usually means that car drivers will avoid roads with frequent bus traffic

⚠️ Source pending

Bus fare reference

$2

Baseline bus fare used as the pivot for fare-elasticity calculations. Roughly the median per-ride urban transit fare across benchmark North American and European cities, the elasticity formula treats this fare as the ‘no-change’ point.

Source: APTA Public Transportation Fact Book — typical urban fares

Bus fare perceived minutes per dollar

3

Mode-choice fare aversion: how many minutes of in-vehicle travel time a $1 bus fare ‘feels like’ to a rider when comparing bus against an alternative mode. Adds a fare-proportional disutility to the bus generalised cost so that mode choice responds continuously to any fare change, not only the $0 case. NOTE this is intentionally lower than the full value-of-time (~6 min/$ at a $10/h VoT) because mode-choice studies consistently find fare aversion is dampened relative to symmetric VoT, money disutility has diminishing marginal utility, fare salience is partial, and at high fares people don’t actually walk hours to save a few dollars. Only applied to riders who have a real alternative (a car); captive riders (no car) face no fare penalty in mode choice.

Source: Litman, T. — Transit Price Elasticities and Cross-Elasticities (Victoria Transport Policy Institute)

Car license fee perceived minutes per dollar

3

Per-trip share of the monthly car license fee converted into perceived-time disutility added to gcCar. Same value as the bus-fare counterpart for symmetric cash-vs-time tradeoffs; only applied when a bus alternative exists (captive drivers can’t switch). Without this term, fees are sunk-cost from a per-trip perspective and don’t shift mode share.

Source: Litman, T. — Transit Price Elasticities and Cross-Elasticities (Victoria Transport Policy Institute)

Car license fee amortization trips per month

44

Trip count used to spread the monthly fee across per-trip GC: 2 trips/day × 22 weekdays = 44. Excludes weekend discretionary trips, owners psychologically attribute fixed ownership costs to commuting.

⚠️ Source pending

Commute trips per workday

2

One trip to work + one trip home. Used to spread per-day fees (e.g. parking) across per-trip generalised cost. Separate from the per-month amortization constant for the license fee, which is paid annually.

⚠️ Source pending

Parking fee perceived minutes per dollar

3

Per-trip share of the daily parking fee converted into perceived-time disutility added to gcCar. Same elasticity as bus fare and car license fee, symmetric cash-vs-time tradeoff. The daily fee is split across 2 commute trips/day. Only applied when a bus alternative exists (captive drivers can’t switch). Without this term, parking is a sunk monthly tax that doesn’t shift mode share.

Source: Litman, T. — Parking Pricing Implementation Guidelines (Victoria Transport Policy Institute)

Fuel cost perceived minutes per dollar

3

Per-trip extra fuel cost in an oil crisis converted into perceived-time disutility added to gcCar. The same cash-vs-time tradeoff as the parking fee and the bus fare. Only applied when the driver could take the bus or ride a bicycle instead.

Source: Litman, T. — Parking Pricing Implementation Guidelines (Victoria Transport Policy Institute)

Bus induced demand elasticity

-0.15

Trip-frequency elasticity of existing bus riders to fare. A 1% drop in fare induces ~0.15% more discretionary bus trips by riders who would have ridden anyway. Multiplies per-trip ridership weights so that cheaper fares cause existing riders to make more trips, separate from the mode-shift effect captured by the GC fare-as-time term. Set near the lower end of Litman’s surveyed range because the mode-shift portion of total fare elasticity is already modelled via generalised cost.

Source: Litman, T. — Transit Price Elasticities and Cross-Elasticities (Victoria Transport Policy Institute)

Bus overcrowded threshold

0.85

Share of a bus line’s daily seat-trips consumed before the game calls it overcrowded. One number for the two surfaces a player reads together — the Transport panel’s line rows and the newspaper’s full-buses stories — so the paper can’t run a crowding story about a line the panel still shows as fine. Two related thresholds are deliberately NOT this one: the hiring gate uses a stricter smoothed figure (a company shouldn’t hire onto a seat that is usually gone), and the A-F network grade’s cliff sits higher still, because bottoming the grade out should mean a line is genuinely turning people away.

⚠️ Source pending

Bus congestion multiplier cap

4

Ceiling on how much road congestion can slow a bus, as a multiple of its free-flow travel time. Buses share the road with cars, so a jammed corridor drags them down with it — but the BPR congestion curve saturates around 13x, which would take a 25 km/h bus to walking pace and delete the line in a single bad day. 4x floors bus speed at ~6 km/h, the low end of what real mixed-traffic buses manage in gridlocked city corridors.

Source: TCRP Report 165 — Transit Capacity and Quality of Service Manual (mixed-traffic bus speeds)

Congestion ema alpha

0.4

Smoothing weight for the per-tile congestion signal that transit times read. Bus schedules degrade under sustained congestion, not from one busy afternoon, so today’s transit times price in a rolling average of recent weekdays rather than yesterday’s raw peak. 0.4 means a new jam is felt over ~2-3 weekdays and recovery takes about as long — responsive enough to reward a fix, damped enough that the congestion/ridership feedback loop settles instead of oscillating.

⚠️ Source pending

Slowed line threshold

1.3

How much slower than free flow a bus line’s round trip must run before the game calls it out as ‘slowed by traffic’ in the Transport panel and lets the newspaper report it. 1.3 is roughly the point where riders notice their commute got worse rather than merely varied.

⚠️ Source pending

Bus utilization smoothing window days

7

Rolling-window length used to smooth the bus fleet utilization figure shown in the Transport panel. Daily utilization swings naturally between weekday peaks and weekend troughs, which makes the raw current-cycle number flicker wildly in the UI. Averaging over a calendar week absorbs the weekday/weekend rhythm so the displayed % reflects how loaded the fleet really is, not which day of the week the player happened to look at it.

⚠️ Source pending

Car fee income share max

0.05

Maximum share of a citizen’s gross annual income that the car license fee ALONE can consume before they judge the car not worth keeping and sell it — but only if they have a viable commute alternative (a reachable, non-full bus, or a walkable job). 5% is deliberately well past real-world norms: US vehicle registration fees are typically under 1% of income, and TOTAL household transportation spend (vehicle purchase + fuel + insurance + fees combined) runs ~15-17% of income (BLS Consumer Expenditure Survey). Set this high so only a genuinely punitive, non-realistic fee drains the fleet; an ordinary registration fee never triggers a value sell. Captive owners (no alternative) keep their cars until the fee passes CAR_FEE_AFFORDABLE_INCOME_SHARE of their income, and the bankruptcy backstops still apply to them.

Source: U.S. Bureau of Labor Statistics — Consumer Expenditure Survey (transportation share of household spending)

Car market monthly sell fraction

0.25

Cap on the fraction of value-eligible car owners (those whose fee exceeds CAR_FEE_INCOME_SHARE_MAX of their income AND who have a commute alternative) that sell their car in any single month. Selling is gradual, not a cliff: a sustained punitive fee drains the affected fleet over roughly 4-6 months instead of dumping every car at once, so the player watches the sell-off build in the car-market ledger and has time to react (lower the fee, add buses). At least one eligible owner always sells so the drain can’t stall.

⚠️ Source pending

Savings safe withdrawal rate

0.04

The share of their savings a citizen can spend each year without running them down, counted as income when judging whether they can afford the car license fee (CAR_FEE_AFFORDABLE_INCOME_SHARE). $10M in the bank adds $33,333 a month to their means. 4% is the classic safe withdrawal rate: the share of a portfolio a retiree can draw each year and still not run out over 30 years.

Source: Trinity study (Cooley, Hubbard and Walz, 1998)

Travel failure window days

7

How long a building remembers that people failed to reach it. Failed arrivals (workers and customers turned away by full parking, gridlock, a severed road or a transit gap) are counted over this window to tint the traffic map and to flag a hard-to-reach company. A calendar week always contains at least five weekdays, so the count never collapses over a weekend, and a fix the player makes on Monday reads clean within the same game week.

⚠️ Source pending

Disrupted decay days

3

How long a building keeps its ‘Disrupted Service’ mark on the public transport map after the last rider failed to reach it, when no successful bus arrival clears it sooner. Citizens are sampled, so a building is not tested every single day; three days spans the sampling gaps and a weekend without the mark flickering, while still fading fast enough that adding a bus or connecting a line visibly heals the map.

⚠️ Source pending