Rule of 70 Population Calculator
A population growing 2 % a year doubles in about 35 years: the rule of 70 turns a constant annual growth rate into a doubling time for lessons, community profiles and quick checks of growth claims. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Growth rate
- 2
- Annual growth rate percent
- 2
- Doubling time years
- 35
- Precision
- 6
This rule of 70 population calculator estimates how many years a population would take to double when its annual percentage growth rate remains constant. Enter the rate in percent points, so 2 means two percent per year, and the calculator divides seventy by that value. The result is a transparent planning approximation for demographic lessons, community profiles, environmental studies, and quick checks of population-growth claims. It does not require a starting population because doubling time depends on the rate rather than the initial count. The calculation is deterministic, runs without network access, and produces the same rounded result for the same input every time.
Understand what the rule of 70 estimates
The rule of 70 is a mental-math shortcut for translating a constant annual percentage growth rate into an approximate doubling time. Divide seventy by the rate expressed in percent points: a population growing at two percent per year doubles in about thirty-five years, while one growing at one percent doubles in about seventy years. This relationship helps turn an abstract rate into a time span that is easier to discuss in a classroom, report, or planning meeting.
The calculator returns the normalized annual growth rate, the estimated doubling time in years, the selected output precision, and labels identifying the method and formula. It does not need the present population because any starting amount has the same approximate doubling time under the same constant proportional rate. The estimate assumes uninterrupted positive growth at the entered rate.
Real populations rarely follow one rate forever, so interpret the answer as a compact scenario rather than a forecast or a promise about a particular place. Census revisions, changing fertility, mortality, migration, policy, conflict, resource limits, and measurement uncertainty can all alter the observed path before doubling occurs.
Use the estimate responsibly in population work
The calculator is useful when a demographic table gives an annual growth percentage but readers need an intuitive time horizon. A teacher can compare regions with different rates, an analyst can add a doubling-time column to a profile, and an environmental researcher can make the scale of a hypothetical sustained trend easier to communicate. It also works well as a screening calculation before building a richer cohort-component or exponential projection.
The rule of 70 is approximate: exact doubling under discrete annual compounding uses logarithms, and continuous-growth models use a related but distinct equation. Differences are usually acceptable for fast interpretation, yet they may matter in formal projections, high-rate scenarios, or decisions involving capacity, infrastructure, public health, or conservation. Do not treat the output as evidence that a population actually will double.
Check the source, reference period, uncertainty, and whether the published rate is annualized before calculating. Use scenario ranges when rates vary, and pair the estimate with local demographic expertise for consequential work. Both paths use the same deterministic function, so a tested browser example can be reproduced in a script without changing the formula or silently fetching outside data.
What you can do with it
Compare demographic growth rates
Convert annual percentages for several regions into intuitive approximate years to double.
Prepare classroom examples
Create reproducible exercises that connect percentage growth with long-term population change.
Screen planning scenarios
Add a quick time-horizon check before building a detailed demographic or resource model.
FAQ
What does the calculator cost?
It is free to use in the browser.
Should I enter 2 or 0.02 for two percent?
Enter 2. The input is measured in percent points, so 0.02 means 0.02 percent per year.
Why is no starting population required?
Under constant proportional growth, the approximate time to double depends on the percentage rate, not the initial population size.
Is the result an exact population forecast?
No. It is a quick approximation that assumes a constant rate; real demographic rates change and exact compounding uses logarithms.
How long does a population growing 1% a year take to double?
About 70 years. The rule of 70 divides 70 by the annual growth rate in percent, so 1 % gives roughly 70 years and 2 % gives roughly 35 years, provided the rate stays constant.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/bio/rule-of-70-population \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"growth_rate":2}'const res = await fetch("https://api.kit.forhosting.com/bio/rule-of-70-population", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"growth_rate": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/bio/rule-of-70-population",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"growth_rate": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/bio/rule-of-70-population", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"growth_rate":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"growth_rate":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/bio/rule-of-70-population", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"growth_rate": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "bio.rule_of_70_population",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_growth_rate_percent | 1000000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Enter the annual percentage rate correctly
Enter 2 for two percent, 0.5 for one-half percent, and 3.25 for three and one-quarter percent. The rate must be a finite number greater than zero. Zero is rejected because division would not yield a finite doubling time, and a negative rate represents decline rather than doubling under this rule. Extremely large values above the declared numeric ceiling are also rejected so calculations remain within a clear supported domain. Supply growth_rate as an annual percentage, not as a decimal multiplier. The documented aliases annual_growth_rate, rate, percent, and pct are accepted for integrations that already use those field names. By default, numeric results use six decimal places of precision; precision or its decimals alias can request any whole number from zero through twelve. Rounding affects the displayed JSON value, not the underlying formula. For a quick reasonableness check, multiply the returned years by the entered percentage rate: the product should be approximately seventy apart from display rounding. This explicit unit convention matters because entering 0.02 for a rate intended to mean two percent would describe 0.02 percent annual growth and produce 3,500 years, a mathematically consistent but semantically wrong result.
Use the estimate responsibly in population work
Interactive calculations on this page are free; automated API requests cost $0.002 each.
Technical questions
Can I enter zero or a negative rate?
No. The rule of 70 has no finite population doubling time for a non-positive growth rate, so those inputs return invalid_input.