Population Simulator for SF Authors

Francis Turner November 2003

A common SF scenario involves a colony world which starts with a low initial population and then is either abandoned or at least does not undergo significant immigration/emmigration. It has always bothered me that it is hard to determine reasonable population growth rates and starting sizes so I decided to create a model that could help calculate such things. The model is relatively simple, requiring just initial population age distribution, birth rate and death rates to set going, however it produces numbers which seem to match those observed on this earth. For example the zero population growth lifetime birth rate of 2.1 children/woman as observed in today's mature societies is entirely consistent with the annualized death rates  for age ranges similar to those in such societies as well. I

You can experiment with the web(javascript) version of the calulator is available for here, and there is an Excel version to download

Assumptions

The biggest assumption is that human lifespan remains similar to that observed on this planet. Modifications are required to deal with societies where human lifespan differs from this, particularly if this results in a significantly extended period of fertility and a consequent increase in the average number of births/woman.

Population growth is assmed to be dependant solely on the number of women under 40 with children being born solely to women aged between 20 and 40. Although this is not correct for primitive societies, this does match the observed pattern in many more advanced societies where teenage pregnancy was uncommon despite the absence of contraception. Moreover, even if the starting age is high for primitive societies so too is the end - women in primative societies rarely survived beyond 35-40 thus the 2 decade span for pregnancy remains even if it starts slightly earlier in some societies. Population across age ranges is assumed to be uniform (so that if there are assumed to be 20,000 women between 20 and 40 that means 2,000 are 20-21, 2,000 are 21-22 etc).

The other major simplification is that it is assumed that the male:female ratio is 1:1 for births and that death rates are identical for both (i.e. for any age range it is assumed that 50% is female). This does lead to slightly incorrect numbers for the total population numbers but the error does not propagate over generations since males are unable to bear children. From examination of historical data it would seem that the ratio for males:females for a given age is always within a few percentage points of 1:1 so the error is likely to be under 10%

Parameters and Method

The population is broken down by age into 4 categories: under 20 yeare, 20-40, 40-60 and over 60. Separate death rates are given for each range and the birthrate is applied soley to women aged 20-40. Woman under 20 and over 40 are assumed to be infertile. The calculation of the new population is made every decade. Thus in each snapshot half the people in one age range (less deaths) move up to the next. The calculation of the next decades population uses only the women (with the assumption noted above that 50% of any segment of the population is female). Unless you change the rate each decade uses the same death-rates and birth-rate as the previous decade. You can model improving health (lower infant mortality), declining fertility etc. by changing the rates at each step.

Calculations

At Decade T(n)

A(n) adolescents, B(n) breeding age, C(n) middle aged and D(n) elderly.
Total population P(n) = A(n)+B(n)+C(n)+D(n)
B(n)/2 are women who may give birth.

Annual death-rates (nnn/100,000) for each population are dA(n), dB(n) etc.
Birthrate is b(n) for live births/female in this decade.

We need to convert dX(n) and b(n) to decade rates (and change dX(n) to sX(n) the proportion of the population that survives the decade.

Since breeding time is 2 decades, decade birthrate is b(n)/2

Decade survival rate = 1-(dX(n) / 10000)

Hence at Decade T(n+1):

A(n+1) = b(n)/2 * B(n)/2 + A(n)/2*(1-(dA(n) / 10000))
B(n+1) = A(n)/2*(1-(dA(n) / 10000)) + B(n)/2*(1-(dB(n) / 10000))
C(n+1) = B(n)/2*(1-(dB(n) / 10000)) + C(n)/2*(1-(dC(n) / 10000))
D(n+1) = C(n)/2*(1-(dC(n) / 10000)) + D(n)*(1-(dD(n) / 10000))

Examples

Assume a colony starts with 100,000 people split 35% Adolescent, 30% Breeding, 25% Middle Aged and 10% elderly (to make the figures smaller I have divided all populations by 1000 in the tables).

Steady State

Assume death rates of 195/100k/yr for Adolescents, 100 for Breeding, 500 for Middle Aged and 5000 for Elderly - these death rates are approximately the numbers for North America today. Assume a birth rate is 2.1.

Year
Birth rate
Adolescent
Population
Adolescent
Death Rate
Breeding Age
Population
Breeding Age
Death Rate
Middle-Aged
Population
Middle-Aged
Death Rate
Elderly
Population
Elderly Death Rate
Total
0 2.1 35 195 30 100 25 500 10 5000 100
10 2.1 33 195 32 100 27 500 17 5000 109
20 2.1 33 195 32 100 29 500 21 5000 115
30 2.1 33 195 32 100 29 500 24 5000 118
40 2.1 33 195 32 100 30 500 26 5000 121
50 2.1 33 195 32 100 30 500 27 5000 122
60 2.1 33 195 32 100 30 500 28 5000 123
70 2.1 33 195 32 100 30 500 28 5000 123
80 2.1 33 195 32 100 30 500 28 5000 123
90 2.1 33 195 32 100 30 500 29 5000 124
100 2.1 33 195 32 100 30 500 29 5000 124
110 2.1 33 195 32 100 30 500 29 5000 124
120 2.1 33 195 32 100 30 500 29 5000 124
130 2.1 33 195 32 100 30 500 29 5000 124
140 2.1 33 195 32 100 30 500 29 5000 124
150 2.1 33 195 32 100 30 500 29 5000 124
160 2.1 33 195 32 100 30 500 29 5000 124
170 2.1 33 195 32 100 30 500 29 5000 124
180 2.1 33 195 32 100 30 500 29 5000 124
190 2.1 33 195 32 100 30 500 29 5000 124
200 2.1 33 195 32 100 30 500 29 5000 124

Slow Growth

Assume that women are more fertile and that death rates are higher: death rates of 400/100k/yr for Adolescents, 200 for Breeding, 1000 for Middle Aged and 5000 for Elderly and a birth rate is 3. This might be reasonable for a high tech colony.

Year
Birth rate
Adolescent
Population
Adolescent
Death Rate
Breeding Age
Population
Breeding Age
Death Rate
Middle-Aged
Population
Middle-Aged
Death Rate
Elderly
Population
Elderly Death Rate
Total
0 3 35 400 30 200 25 1000 10 5000 100
10 3 39 400 32 200 26 1000 16 5000 113
20 3 42 400 34 200 27 1000 20 5000 124
30 3 46 400 37 200 29 1000 22 5000 134
40 3 50 400 40 200 31 1000 24 5000 146
50 3 54 400 44 200 34 1000 26 5000 158
60 3 59 400 48 200 37 1000 28 5000 171
70 3 64 400 52 200 40 1000 31 5000 186
80 3 69 400 56 200 43 1000 33 5000 202
90 3 75 400 61 200 47 1000 36 5000 219
100 3 82 400 66 200 51 1000 39 5000 237
110 3 89 400 71 200 55 1000 42 5000 258
120 3 96 400 78 200 60 1000 46 5000 280
130 3 104 400 84 200 65 1000 50 5000 303
140 3 113 400 91 200 70 1000 54 5000 329
150 3 123 400 99 200 76 1000 59 5000 357
160 3 133 400 107 200 83 1000 64 5000 387
170 3 145 400 117 200 90 1000 69 5000 420
180 3 157 400 127 200 98 1000 75 5000 456
190 3 170 400 137 200 106 1000 81 5000 495
200 3 185 400 149 200 115 1000 88 5000 537
210 3 200 400 162 200 125 1000 96 5000 583
220 3 217 400 175 200 135 1000 104 5000 632
230 3 236 400 190 200 147 1000 113 5000 686
240 3 256 400 206 200 159 1000 123 5000 744
250 3 278 400 224 200 173 1000 133 5000 807
260 3 301 400 243 200 188 1000 144 5000 876
270 3 327 400 264 200 203 1000 157 5000 951
280 3 355 400 286 200 221 1000 170 5000 1031
290 3 385 400 310 200 240 1000 184 5000 1119
300 3 418 400 337 200 260 1000 200 5000 1214
310 3 453 400 365 200 282 1000 217 5000 1317
320 3 492 400 397 200 306 1000 235 5000 1429
330 3 533 400 430 200 332 1000 255 5000 1551
340 3 579 400 467 200 360 1000 277 5000 1683
350 3 628 400 507 200 391 1000 301 5000 1826
360 3 681 400 550 200 424 1000 326 5000 1981
370 3 739 400 596 200 460 1000 354 5000 2150
380 3 802 400 647 200 499 1000 384 5000 2332
390 3 870 400 702 200 542 1000 417 5000 2531
400 3 944 400 762 200 588 1000 452 5000 2746

Malthusian Growth

However assume that women are much more fertile and that death rates are also worse: 600/100k/yr for Adolescents, 300 for Breeding, 2000 for Middle Aged and 7000 for Elderly and a birth rate is 5. This is not at all dissimilar to observed population growth in developing countries in the last hundred years or so and is not unreasonable for medium tech colonies or colonies who lose their technology over time.

Year
Birth rate
Adolescent
Population
Adolescent
Death Rate
Breeding Age
Population
Breeding Age
Death Rate
Middle-Aged
Population
Middle-Aged
Death Rate
Elderly
Population
Elderly Death Rate
Total
0 5 35 600 30 300 25 2000 10 7000 100
10 5 54 600 31 300 25 2000 13 7000 123
20 5 64 600 40 300 25 2000 14 7000 143
30 5 81 600 50 300 30 2000 14 7000 174
40 5 100 600 62 300 36 2000 16 7000 214
50 5 125 600 77 300 44 2000 19 7000 265
60 5 155 600 96 300 55 2000 24 7000 330
70 5 193 600 119 300 69 2000 29 7000 410
80 5 240 600 148 300 85 2000 36 7000 510
90 5 298 600 185 300 106 2000 45 7000 634
100 5 371 600 230 300 132 2000 56 7000 789
110 5 462 600 286 300 164 2000 70 7000 981
120 5 574 600 356 300 204 2000 87 7000 1220
130 5 714 600 442 300 254 2000 108 7000 1518
140 5 889 600 550 300 316 2000 134 7000 1889
150 5 1105 600 684 300 393 2000 167 7000 2350
160 5 1375 600 851 300 489 2000 207 7000 2923
170 5 1711 600 1059 300 609 2000 258 7000 3636
180 5 2128 600 1318 300 757 2000 321 7000 4524
190 5 2647 600 1639 300 942 2000 399 7000 5628
200 5 3293 600 2039 300 1172 2000 497 7000 7001

Genteel Decay

Assume that women are less fertile and that death rates are lower: death rates of 150/100k/yr for Adolescents, 70 for Breeding, 200 for Middle Aged and 3000 for Elderly and a birth rate is 1.4. This is similar to Japan today. This is interesting also in that you get to see how the ratio of elderly people to working people increases over time. At the start there is 1 elderly person (pensioner) for every 5.5 working age, after 70 years the ratio is 1:1 and then stabilizes at around 1.2:1 (elderly:working).

Year
Birth rate
Adolescent
Population
Adolescent
Death Rate
Breeding Age
Population
Breeding Age
Death Rate
Middle-Aged
Population
Middle-Aged
Death Rate
Elderly
Population
Elderly Death Rate
Total
0 1.4 35 150 30 70 25 200 10 3000 100
10 1.4 28 150 32 70 27 200 19 3000 106
20 1.4 25 150 30 70 29 200 27 3000 111
30 1.4 23 150 27 70 29 200 33 3000 112
40 1.4 21 150 25 70 28 200 37 3000 110
50 1.4 19 150 22 70 26 200 40 3000 106
60 1.4 17 150 20 70 24 200 40 3000 101
70 1.4 15 150 18 70 22 200 40 3000 96
80 1.4 14 150 17 70 20 200 39 3000 89
90 1.4 13 150 15 70 18 200 37 3000 83
100 1.4 12 150 14 70 16 200 35 3000 77
110 1.4 11 150 13 70 15 200 32 3000 70
120 1.4 10 150 12 70 14 200 30 3000 65
130 1.4 9 150 10 70 12 200 28 3000 59
140 1.4 8 150 10 70 11 200 25 3000 54
150 1.4 7 150 9 70 10 200 23 3000 49
160 1.4 7 150 8 70 9 200 21 3000 45
170 1.4 6 150 7 70 8 200 19 3000 41
180 1.4 5 150 7 70 8 200 18 3000 38
190 1.4 5 150 6 70 7 200 16 3000 34
200 1.4 5 150 5 70 6 200 15 3000 31