HomeBiology, Earth & Space › Population Growth Calculator

Population Growth Calculator

Projects a population over a number of periods with discrete exponential growth P0(1 + r)^t, continuous exponential growth P0·e^(rt) or the logistic model with a carrying capacity K, and reports the final size, growth multiple, doubling time and a period-by-period schedule.

When to use

You need the future size of a population (organisms, cells, people, users) from a starting size and a per-period growth rate, with or without a carrying capacity, or its doubling time.

Do not use when: You are modelling money (use compound-interest), radioactive or first-order decay (use half-life), or want the doubling time from two cell counts (use cell-doubling-time).

Formula

Discrete: P(t) = P0 × (1 + r)^t, doubling time = ln 2 / ln(1 + r); continuous: P(t) = P0 × e^(rt), doubling time = ln 2 / r; logistic: P(t) = K / (1 + ((K − P0) / P0) × e^(−rt)), with r = growth_rate_percent / 100

The discrete model compounds once per period (as in annual census data); the continuous model is its instantaneous-rate counterpart. The logistic (Verhulst) model uses the continuous intrinsic rate r and approaches K asymptotically, so no doubling time is reported for it.

Inputs

ParameterTypeUnitRequiredDescription
initial_populationnumberyesPopulation size at period 0. Range: > 0, ≤ 1000000000000000
growth_rate_percentnumber%yesGrowth rate r per period in percent (3 means 3 % per period); negative for decline. For the logistic model this is the intrinsic rate r. Range: > -100, ≤ 10000
periodsnumberyesNumber of periods t (years, generations, hours – any unit, the same one the rate refers to). Range: > 0, ≤ 100000
modelenum: exponential_discrete | exponential_continuous | logisticdefault exponential_discreteGrowth model. The logistic model needs carrying_capacity.
carrying_capacitynumbernoMaximum sustainable population for the logistic model; ignored by the exponential models. Range: > 0, ≤ 1000000000000000000

Outputs

OutputTypeUnitDescription
model_usedstringThe growth equation applied.
growth_rate_per_periodnumbergrowth_rate_percent / 100.
final_populationnumberP(t) from the chosen model.
absolute_growthnumberP(t) − P0.
growth_multiplenumberP(t) / P0.
doubling_time_periodsnumberperiodsln 2 / ln(1 + r) (discrete) or ln 2 / r (continuous); only for exponential growth with r > 0.
percent_of_carrying_capacitynumber%100 × P(t) / K (logistic model only).
schedulelistRows of period and population from 0 to t (every period up to 50 periods, then evenly spaced steps; at most 52 rows).

Example

1,000 at 3 % per year for 10 years (discrete): {"initial_population":1000,"growth_rate_percent":3,"periods":10,"model":"exponential_discrete"}{"final_population":1343.92,"absolute_growth":343.92,"growth_multiple":1.3439,"doubling_time_periods":23.45}

Logistic: P0 1,000, K 10,000, r 30 % for 10 periods: {"initial_population":1000,"growth_rate_percent":30,"periods":10,"model":"logistic","carrying_capacity":10000}{"final_population":6905.68,"growth_multiple":6.9057,"percent_of_carrying_capacity":69.06}

GET https://tttkmbb.com/api/v1/calculate/population-growth?initial_population=1000&growth_rate_percent=3&periods=10&model=exponential_discrete

Machine access

Sources

FAQ

Discrete or continuous?

Use discrete when growth is reported per period (e.g. 3 % per year from census data); use continuous for a rate defined instantaneously (r in dN/dt = rN). At 3 % the two differ by less than 0.5 % after 10 periods, but the gap grows with the rate.

Why is there no doubling time for the logistic model?

Logistic growth slows as the population approaches K, so the time to double depends on the current size; it is only well defined for exponential growth.

Can the population decline?

Yes: a negative growth rate gives a shrinking population (down to −100 % exclusive for the discrete model); no doubling time is reported then.

Related calculators