On this page
  1. Related
  2. Games
  3. References
  4. Sources

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.

  • SimCity (1989). Three valves pushed each second cycle by projected over current population, plus a tax term from +200 to −600.1,2,3

Games

GameYearHowNote
SimCity1989three 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

  1. ^ abEvery second cycle, SetValves projects 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.

    In the claim ledger

  2. ^ 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)revised
    How 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.

    In the claim ledger

  3. ^ 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)revised
    How 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.

    In the claim ledger

Sources

Code