International Population's population projection model is simplistic but sufficient for the purpose of teaching basic demographics. The model maintains an array of one year cohorts, starting with the 0th year (infant) and ending with all population age 80 or over grouped in the 80th year.
Initial country selection loads the age array with 1990 populations derived from the 1990 five year age cohort populations as stored in the database. Where information on population age, birth and deathrate distributions are not available for any country, it is approximated by using the distribution from a similar country.
Internally, the simulation model works in one year time steps. Each step of the simulation "ages" the population by updating the age array and deriving the projected age group populations and total population from the updated array. Every fifth year, the new projection is used to update the Country Display. The "aging" process subtracts the number of deaths from each age, ages the population one year by shifting every value up one year in the array, and adds the new births to the 0 age group. Note that the 80+ age group is the sum of the surviving 79 and 80+ age groups from the previous year.
The model uses the current birth rates to calculate the number of births resulting from each age group. The number of new births for the year is then calculated as the sum of these numbers of births. The following formula calculates the numbers of births:
new births due to an age group = (age group birth rate / 1000 females) * age group female population
The model uses the current death rates to calculate the number of deaths occurring in each age. The number of deaths occurring in the 0 age group is calculated as a special case using the infant mortality rate. This is necessary to accurately reflect the large proportion of yearly deaths in a population that result from infant deaths. The following formula calculates the numbers of deaths:
number of deaths in an age = (death rate of age group / 1000) * population of group
The populations of each age then decrease by these numbers.
When a student selects a country for display, the program uses the current birth rates stored for that country to calculate an estimated total fertility rate. The total fertility rate is the total number of children a woman is expected to bear in her lifetime. The program calculates this value by summing the birth rates for the 10-19, 20-29, 30-39, 40-49, and 50-59 age groups and dividing the sum by (rate per thousand women for 10 years).
Once initial data for a country are displayed, the program allows the student to directly modify the birth rate for each age group. Since the completed family size is based on these birth rates, modification to any birth rate dictates recalculation of the completed family size.
If a student selects the "Reset simulation" option, the program reinitializes the data displayed in the Country Display. It recalculates the original values for the birth rates, and recalculates the completed family size as well to correctly reflect these original rates.
When a student selects a country for display, the program uses the current death rates stored for that country to calculate an estimated life expectancy for people born this year. Life expectancy is defined as the expected number of years to be lived for a child at birth. Calculations begin with a working population of 100,000 people.
The program calculates the number of people who die at each age, ranging from age 0 through age 110, according to the following formula:
number of deaths = (death rate of the age group containing the age / 1000) * working population
The working population decreases by each calculated number of deaths before the next calculation occurs. The program multiplies each number of deaths by a half less than the current age, and accumulates these values. The deaths at age 0 represent the infant deaths, thus the program multiplies this number by 0. Subsequent averaging of the accumulated values produces the estimated life expectancy.
Birth and death rates for each of the age groups are necessary to model population projections. These data are not available from our source, and must be derived from data which are available.
The program can retrieve the number of total births and deaths occurring in selected age groups from arbitrary years directly from the database, as well as midyear population estimates for selected years. If midyear population estimates exist for the arbitrary years from which the numbers of births and deaths come, these data can be used to derive birth and death rate figures.
The numbers of births resulting from the females in selected age groups exist in the database in the following intervals: 0-15, 15-19, 20-24, 25-29, 30-34, 35-39, 40-44, 45-49, and 50+. These numbers typically come from census surveys conducted in a specific year, as indicated in the database. Birth rates are derived for the following ten year intervals: 10-19, 20-29, 30-39, 40-49, and 50-59. Thus it is necessary to convert these numbers of births from groups in the database into the numbers of births for age groups used by the simulation. If this information were stored in the database in the age groups required by the simulation, no conversion would be necessary. We do not store the age groups required directly in the database, however, because we want to use whatever data are actually available in the database. This prevents the database from becoming degraded, and retains the extra level of data resolution for future changes to the simulation. The model assumes a zero birth rate for the remaining age groups.
In order for the program to derive birth rates for the age groups used in the simulation, the population of each of these age groups for the specific year indicated in the database must be known. Only the midyear population for this year exists in the database, so these age group populations must be derived as well. The program derives them from 1990 age group populations such that their distribution is similar to that of the 1990 distribution. The following formula calculates these age group populations:
age group population for the arbitrary year = (age group population for 1990 / 1990 population) * arbitrary year population
The following formula then determines the birth rate figures:
age group birth rate = (number of births occurring in the arbitrary year / 1000) * age group population for the arbitrary year
These formulas produce birth rates which are the number of births per 1,000 people. The implementation maintains these birth rates as the number of births per 1,000 women, as is traditional. The population model assumes that half of each age group population is female, thus each of the age group birth rates doubles to produce the correct figure.
The numbers of deaths occurring in selected age groups for a specific year exist in the database in the following intervals: Infant, 1-4, 4-9, 10-14, ..., 74-49, and 80+. Death rates are derived for infants and for the following age groups: 1-9, 10-19, 20-29, ..., and 80+. Once again we must convert from database age groups to simulation age groups.
A derivation of death rates for each of the age groups is done in a fashion similar to that used to derive birth rates. The implementation maintains death rates as the number of deaths per 1,000 people, as is traditional.
The Net Migration Rate for a country represents the average number of people moving into or out of that country per year. A positive migration value will mean a yearly increase in population. A negative migration value will mean a yearly decrease in population.