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, Belarus, 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%.
  • 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 and the quarterly AI step it by 1 and clamp it to 0-20. 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 20 are stored as 20.

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.

Negative policy rates are out of scope. The clamp still bottoms out at 0.

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% (clamped)
TUR20CBRT overnight well above 20% (clamped)
UKR20NBU discount rate 45% (clamped)
ROM20NBR 1999 policy rates above 20% (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.