Demand meter
A city-wide gauge of how much each zone type wants to grow, which the simulation also uses to drive growth.
On this page
A demand meter shows how much a city wants more of each zone type. In SimCity the meter shows three valves that SetValves pushes every second cycle by how far each type’s projected population runs ahead of its current one, plus a tax term1,2. A missing stadium, seaport, or airport holds a valve at zero once the city passes a size3.
Games
| Game | Year | How | Note |
|---|---|---|---|
| SimCity | 1989 | three valves pushed each second cycle by projected over current population, plus a tax term from +200 to −600 |
Every claim about this mechanic, by game (3)
References
- ^ abEvery second cycle,
SetValvesprojects each zone type's population. Residential: the current figure (ResPop / 8) plus migration, that figure times (jobs per resident − 1), where jobs are the commercial and industrial populations at the previous census, plus 2% births. Commercial: (residential + commercial + industrial) / 3.7, times the labor base, residents per job at the previous census, held to 0–1.3. Industrial: the industrial population times the labor base times 1.2, 1.1, or 0.98 at game levels 0, 1, and 2 (starting funds $20,000, $10,000, $5,000), and at least 5. Each projection over the current population, capped at 2, is the type's ratio.CodeMicropolis (SimHacker/micropolis)How we know
447 Migration = NormResPop * (Employment - 1);micropolis-activity/src/sim/s_sim.c lines 440–449 at c98f6b0 · upstream ↗ 458 IntMarket = (NormResPop + ComPop + IndPop) / 3.7;micropolis-activity/src/sim/s_sim.c lines 451–477 at c98f6b0 · upstream ↗ 479 if (NormResPop) Rratio = (PjResPop / NormResPop); /* projected -vs- actual */micropolis-activity/src/sim/s_sim.c lines 479–488 at c98f6b0 · upstream ↗ 580 ResHis[0] = ResPop / 8;micropolis-activity/src/sim/s_sim.c lines 578–582 at c98f6b0 · upstream ↗ 190 SetFunds(5000);micropolis-activity/src/sim/w_util.c lines 177–192 at c98f6b0 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Checked by a second AI model, 2026-10-21.
- ^ abEach ratio becomes a step: (ratio − 1) × 600 plus
TaxTable[tax rate + game level](index capped at 20), which at game level 0 runs from +200 at 0% through 0 at 7% to −600 at 20%; each higher level shifts the index up one. The step is added to the type's valve, which is held to ±2000 for residential and ±1500 for commercial and industrial.CodeMicropolis (SimHacker/micropolis)revisedHow we know
417 200, 150, 120, 100, 80, 50, 30, 0, -10, -40, -100,micropolis-activity/src/sim/s_sim.c lines 416–418 at c98f6b0 · upstream ↗ 492 Rratio = ((Rratio -1) * 600) + TaxTable[z]; /* global tax/Glevel effects */micropolis-activity/src/sim/s_sim.c lines 490–494 at c98f6b0 · upstream ↗ 509 if (RValve > 2000) RValve = 2000;micropolis-activity/src/sim/s_sim.c lines 496–514 at c98f6b0 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Revised after a check by a second AI model, 2026-10-21.
- ^ abA valve is held at zero or below while the city lacks a building it needs: residential once the raw residential count (
ResPop, eight times the figure the demand projection uses) passes 500 with no stadium, industrial past 70 with no seaport, and commercial past 100 with no airport. The check runs once every 64 clock ticks, one type at a time.CodeMicropolis (SimHacker/micropolis)revisedHow we know
92 z = CityTime & 63;micropolis-activity/src/sim/s_msg.c lines 92–94 at c98f6b0 · upstream ↗ 121 if ((ResPop > 500) && (StadiumPop == 0)) {micropolis-activity/src/sim/s_msg.c lines 120–141 at c98f6b0 · upstream ↗ 516 if ((ResCap) && (RValve > 0)) RValve = 0; /* Stad, Prt, Airprt */micropolis-activity/src/sim/s_sim.c lines 516–518 at c98f6b0 · upstream ↗ Checked against the evidence by its author, an AI model, 2026-10-21.
Revised after a check by a second AI model, 2026-10-21.
Sources
Code
- Wright, Will, Don Hopkins, and Electronic Arts. 2026. “Micropolis: the GPL release of the SimCity engine (SimHacker/micropolis).” Commit c98f6b0. SimHacker/micropolis @ c98f6b0 · licence, all uses