Developer Resource

Data Sources

Historical data behind Millennium Dawn's starting country values.

Sources for players who want to check the numbers behind the mod’s starting conditions. These are starting values, not forecasts. Gameplay changes them after the game begins.

Starting inflation

The January 2000 start uses 1999 annual-average consumer price inflation where a reported figure is available. This is the change in the year’s average Consumer Price Index (CPI), not December-to-December inflation.

How the values are used

  • Rates are stored as fractions, rounded to five significant digits. For example, the US rate of about 2.188% becomes inflation_rate_var = 0.02188.
  • Negative rates remain negative. Countries without a sourced figure receive no historical seed; a starting zero is not evidence that their real-world inflation was zero.
  • Each country’s starting rate fills the four-quarter tracker at startup. Later quarterly calculations replace one entry at a time, smoothing the first updates.
  • Angola and the Democratic Republic of the Congo have reported rates above 200%. Their historical seeds are retained, but the quarterly calculation clamps inflation to 200%.
  • Belarus previously used a 32.6% end-of-period rate instead of the 1999 annual average. Its starting rate is now 20%; Russia starts at 21.5% after a 36.5% seed.
  • Iran starts at 17% after a 20.071% seed, and Turkey starts at 35% after a 64.867% seed. These four lower rates are gameplay adjustments to output penalties.
  • The World Bank’s Serbia series is not copied to Kosovo or Montenegro. Its combined West Bank and Gaza series is used for Palestine, not Israel or a separate Gaza tag.

Starting policy rate

cb_policy_rate is the central bank policy rate in whole percentage points. The GUI steps it by 1 and clamps it to -10 to 30. The quarterly AI uses one-point or three-point steps toward its policy rate target, can cut to -10, and keeps its 20% hike ceiling. The January 2000 start uses the official policy rate in force on 2000.1.1 where that instrument is documented. Half-percentage values round half up (5.50 becomes 6). Rates above 30 are stored as 30. Ukraine starts at that cap. Russia, Turkey, and Romania stay at 20 from the previous gameplay ceiling.

Euro-area founding members already sat at 3, which matches the ECB main refinancing rate of 3.00%. Sweden (3.25%) and Denmark (about 3.3%, euro peg) also round to 3, so those files are unchanged. Countries without a sourced 2000.1.1 policy rate keep the existing default of 3. That is a fallback, not a claim that their central bank was at 3%. Formables, rebels, and breakaway tags are not copied from a parent.

Historical seed data remains nonnegative. During play, rates can fall to -10%. During deflation, the AI target uses the actual negative inflation rate rather than the positive low-inflation baseline. Negative rates then provide additional inflation stimulus below the neutral rate.

Seeded values

TagSeedRate in force on 2000.1.1
JAP0BoJ overnight call about 0.03% (ZIRP)
SWI2SNB 3-month Libor target midpoint 1.75%
SIA2BOT 14-day RP about 1.5%
CAN5Bank of Canada overnight target 4.75%
AST5RBA cash rate 5.00%
NZL5RBNZ OCR 5.00%
CZE5CNB 2-week repo 5.25%
KOR5BoK overnight call about 4.75%
USA6Fed funds target 5.50%
ENG6BoE Bank Rate 5.50%
NRY6Norges Bank deposit rate 5.50%
CHI6PBOC 1-year lending rate 5.85%
MAY6BNM intervention rate 5.50%
HKG7HKMA Base Rate 7.00% (Fed + 150 bp)
RAJ8RBI Bank Rate 8%
GRE11Bank of Greece 14-day intervention 10.75%
ISR11Bank of Israel declared rate 10.7%
SAF12SARB repo about 12% at end-1999
IND13Bank Indonesia 30-day SBI about 13%
HUN15MNB base rate 14.50%
POL17NBP reference rate 16.50%
BRA19Copom SELIC target 19%
SOV20CBR refinancing rate 55% (gameplay 20)
TUR20CBRT overnight well above 20%
ROM20NBR 1999 policy rates above 20%
UKR30NBU discount rate 45% (clamped)

Greece had not yet joined the euro. The 10.75% rate is the 14-day intervention rate still in force on 2000.1.1. The Bank of Greece cut it to 9.75% on 26 January 2000. The Bank of England raised Bank Rate to 5.75% on 13 January 2000. Both files use the New Year’s Day setting.

Thailand adopted inflation targeting and an official 14-day RP policy rate in May 2000. The seed uses the end-1999 14-day repurchase rate, which was already the money-market signal. Hong Kong’s Base Rate is mechanical under the currency board (US federal funds target plus 150 basis points). Chile is omitted: the 1999 TPM was a real rate, not a nominal policy rate.

Sources

The seed sits on the next line after inflation_rate_var when that country has a historical inflation value. New tags and later history files should keep cb_policy_rate = 3 unless a 2000.1.1 source exists. Runtime startup still writes 3 when the variable is missing.

Rail Terminal Placement

Before this pass no state in Millennium Dawn started with a rail_terminal, so every real-world freight and passenger hub began the game at zero. 81 states now start with one. This page records the tier criteria, the sources the selection was drawn from, and the specific hub behind each state, so a later balance or accuracy pass can argue with the picks instead of guessing at them.

The values live in history/states/<id>-<name>.txt inside the buildings block. Modding rules for those files are in the state README (opens in new tab).

Data sources

The selection is a curated list, not a mechanical import of one dataset. There is no single global register of rail terminal capacity that covers 2000 to today, so each pick is anchored to a documented claim about the facility named in its entry:

For the gameplay mechanics, see the Economy Guide.