Home › Biology, 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
| Parameter | Type | Unit | Required | Description |
|---|---|---|---|---|
initial_population | number | yes | Population size at period 0. Range: > 0, ≤ 1000000000000000 | |
growth_rate_percent | number | % | yes | Growth 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 |
periods | number | yes | Number of periods t (years, generations, hours – any unit, the same one the rate refers to). Range: > 0, ≤ 100000 | |
model | enum: exponential_discrete | exponential_continuous | logistic | default exponential_discrete | Growth model. The logistic model needs carrying_capacity. | |
carrying_capacity | number | no | Maximum sustainable population for the logistic model; ignored by the exponential models. Range: > 0, ≤ 1000000000000000000 |
Outputs
| Output | Type | Unit | Description |
|---|---|---|---|
model_used | string | The growth equation applied. | |
growth_rate_per_period | number | growth_rate_percent / 100. | |
final_population | number | P(t) from the chosen model. | |
absolute_growth | number | P(t) − P0. | |
growth_multiple | number | P(t) / P0. | |
doubling_time_periods | number | periods | ln 2 / ln(1 + r) (discrete) or ln 2 / r (continuous); only for exponential growth with r > 0. |
percent_of_carrying_capacity | number | % | 100 × P(t) / K (logistic model only). |
schedule | list | Rows 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
- API:
GET https://tttkmbb.com/api/v1/calculate/population-growth(query parameters) orPOSTwith a JSON body{"inputs": {...}} - Schema: https://tttkmbb.com/api/v1/calculators/population-growth · Markdown: https://tttkmbb.com/science/population-growth.md · JSON definition: https://tttkmbb.com/science/population-growth.json
- MCP: server
https://tttkmbb.com/mcp, toolrun_calculator with calculator_id="population-growth" - OpenAPI operationId:
calculate_population_growth - Freshness:
static. Authentication: none. Rate limit: fair use (see rate limits).
Sources
- Wikipedia – Population growth (reference)
- Wikipedia – Logistic function (reference)
- OpenStax Biology 2e – 45.3 Environmental Limits to Population Growth (textbook)
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
- Cell Doubling Time Calculator — Derive the growth rate and doubling time from two counts.
- Compound Interest Calculator — The same discrete formula applied to money.
- Half-Life Calculator — Exponential decrease expressed as a half-life.