Population Infrastructure
Need Fulfillment
General Need Fulfillment Formula
Need Fulfillment = Needs Provided / Needs Needed
Needs Needed
The needs needed by a planetary population are a weighted sum of the current population and the need fulfillment weights listed below.
Type | Life Support | Safety | Health | Comfort | Culture | Education |
---|---|---|---|---|---|---|
Pioneer | 0.50 | 0.25 | 0.15 | 0.05 | 0.03 | 0.02 |
Settler | 0.35 | 0.30 | 0.20 | 0.05 | 0.05 | 0.05 |
Technician | 0.15 | 0.20 | 0.30 | 0.20 | 0.10 | 0.05 |
Engineer | 0.10 | 0.10 | 0.15 | 0.35 | 0.20 | 0.10 |
Scientist | 0.05 | 0.10 | 0.10 | 0.20 | 0.25 | 0.30 |
Needs Provided
Provided needs come from 3 sources, the fertility of a planet, bases on a planet and population infrastructure.
Fertility
Planets that are fertile (no matter the percentage) have 100% life support at all times.
Bases
Bases provide some safety and health for their populations. The habitations on those bases also provide life support. The safety provided by bases is given by:
Safety = 50 * # of Bases
The health provided by bases is given by:
Health = 50 * # of Bases
Do note that on large planets with many bases added and removed each week, the actual value may differ slightly from this prediced value.
Population Infrastructure
When fully filled, a small population infrastructure project (SST, INF, etc.) provides 2,500 of their need. A mixed population infrastructure building (EMC, PBH, etc.) provides 1,000 for each need. A large population infrastructure building (SDP, HOS, etc.) provides 5,000 for each need.
The effect of the POPI is directly proportional to the amount of upkeep it receives in a week. All inputs are weighted equally and only count towards fulfillment once consumed on a consumption tick.
For example: An SST provided with only DW (1 out of 3 consumables) for 4 out of 7 days will provide: 1/3 * 4/7 = 4/21
the benefit a full SST would.
The amount consumed each period can be deduced from the reserve amount. The reserve amount provides enough material for 30 days. In the case of materials consumed every 3 days, divide the reserve by 10 to get the consumption every 3 days. In the case of materials consumed every 10 days, divide the reserve by 3.
POPI upgrades increase in cost by 20% each level, to a maximum of 10 levels on any project.
Capping of Higher Tier Needs
The types of need fulfillment are split into 4 tiers:
- Life Support
- Safety & Health
- Comfort & Culture
- Education
Needs of a higher tier can only be fulfilled as well as the worst fulfilled need of the tier below.
Population Happiness
There are two types of happiness, True Happiness and Averaged Happiness. For this document, whenever Happiness is used on its own, it refers to Averaged Happiness. The Averaged Happiness is the value displayed in the game.
Averaging Happiness
The happiness displayed is the weighted average of the True Happiness of the previous 5 weeks. The weights are, going from the previous week to 5 weeks ago: 0.4, 0.25, 0.2, 0.1, 0.05
H = 0.4 * h0 + 0.25 * h1 + 0.2 * h2 + 0.1 * h3 + 0.05 * h4
Missing Data
When not all 5 weeks are available to average, such as in the first 4 weeks since a planet’s settlement, the missing terms are ignored and the final result is divided by the sum of the weights that were counted.
True Happiness
True (unaveraged) happiness is affected by need fulfillment, unemployment, and explorer’s grace. It is capped between 0 and 1. In general, it follows this formula:
h = Weighted Sum of Need Fulfillment + Explorer's Grace - Unemployment
Need Fulfillment in Happiness
The table found in Needs Needed provides the weights used in the weighted sum for each population tier.
Explorer’s Grace
The “Explorer’s Grace” boon takes place during the first 4 weeks after a new planet is settled. The true happiness of all tiers is increased by 50% (although still capped at 100%) for those 4 weeks. In the case of the formula above, Explorer’s Grace is a +50% addition.
Unemployment
When no open jobs are present, unemployment is listed on the POPR screen. That value is plugged directly into the above formula. That value is calculated as: # of Unemployed / Current Population
When open jobs are present, the unemployment rate is given by: - # of Open Jobs / Current Population
(see Current Population)
The boost from unemployment is capped. The maximum boost given is 30% of the happiness generated from need fulfillment alone.
Population Growth
Population growth due to happiness is split into 2 types, migration and education.
Migration
Migration occurs both in and out. Migration in only occurs for PIO, SET, and TEC, while migration out occurs for all tiers.
Migration In
Migration in only occurs when Happiness > 70%
The formula is given by:
Migration In = Current Population * (Happiness - 0.7)
(see Current Population)
Migration Out
Migration out occurs when Happiness < 50%
The formula is given by:
Migration Out = 0.8 * Current Population * (0.5 - Happiness)
(see Current Population)
Education
Education growth is when population from one tier leaves and moves up to the next tier. Education growth can only be positive. The formula is given by:
Education = S * Current Population of Previous Tier * Happiness of Current Tier
Where S is a constant depending on the tiers involved
Transition | S |
---|---|
PIO -> SET | 0.020 |
SET -> TEC | 0.015 |
TEC -> ENG | 0.010 |
ENG -> SCI | 0.0 |
Infrastructure Bonus
Education infrastructure (PBH, LIB, UNI) gives an additive bonus to education growth rates. It provides this bonus regardless of the upkeep status of those projects. The PBH increases the growth rate by 0.001, the LIB by 0.002, and the UNI by 0.004. Lowering the infrastructure level will lower the EDU bonus. Advanced Education III will double the EDU bonus.
For example, with 1 PBH and 1 UNI on a planet, the ENG growth rate from the table above becomes:
0.010 + 0.001 + 0.004 = 0.015
Fractional Population
Fractional population do exist, they are not counted towards the workforce of a player until 1 full worker has been achieved. They do not contribute to education or migration into the next tier.
Workforce Reserve Pool
The workforce reserve pool is the portion of the workforce that can be pulled by players between POPR. The population reserve is given by:
Reserve = 0.1 * (Current Population * U + Population Change)
(see Current Population)
Where U is unemployment. If the value is larger that the number of jobs available (such as in the case of open jobs) the reserve pool is not zero, but the formula is unknown.
Returning Workers to Pool
25% of one’s workers return to the pool each POPR to be redistributed. When they are redistributed, it is done in a round-robin style distribution.
Modeling
Everything up to this point has been about determining the formulas programmed by the developers. This is not sufficient to predict POPI into the future. The main free variables are:
- The amount of population each player employs
- The amount of bases on each planet
- The population infrastructure and upkeep on each planet
All three items are hard to predict. Logarithmic models tend to perform best, but guessing by hand often works better.
Known Bugs
When building a new population infastructure building, if previous active levels of that building exist, the amount of needs provided at the end of the week is calculated as if all the buildings, including the new inactive one, contributed. For example if 1 SST fed at 100% was present on a planet, and 1 more SST was built that week, the 2nd SST wouldn’t consume materials, but at the end of the week, the planet would receive the benefit from 2 SST filled at 100%.
Definitions
Current Population
Current Population is used in this paper to mean the population immediately before the POPR. In the case of SET, TEC, ENG, SCI, this is the population displayed on the previous population report.
In the case of PIO, this is the population displayed on the previous population report plus the number of PIO added or removed via new bases. The current pioneer population is given by:
Current PIO Population = Next PIO Population - PIO Change = Previous PIO Population + 200 * # of Bases Added or Removed