Doubling Time Calculator
The doubling time calculator converts a positive percentage growth rate into the number of time periods required for an exponentially growing quantity to become twice as large.
Run — free
Enter the rate for one consistent period, such as a year, month, day, or hour, and select whether growth compounds once per period or continuously. The result uses logarithms rather than a rough shortcut, so it remains useful across small and large rates and clearly states the growth model applied.
Enter a rate tied to one consistent period
Start with the percentage increase that applies during one time period. If a population grows by 5 percent each year, enter 5 and interpret the answer in years. If a culture grows by 12 percent each hour, enter 12 and read the answer in hours. The calculator deliberately returns periods rather than assuming a calendar unit, because the mathematical formula only knows the interval represented by the rate. Keep the rate and the desired answer aligned: a monthly rate produces a result in months, while a daily rate produces a result in days. Enter the percentage itself, not its decimal form, so 4.5 percent is entered as 4.5 rather than 0.045. The rate must be positive because a stable or declining quantity does not have a finite forward doubling time under this model. The calculation assumes the same proportional rate continues throughout the interval. If the real rate changes from period to period, the result is a projection based on the constant rate supplied, not a forecast that accounts for those later changes.
Choose discrete or continuous compounding
Use discrete compounding when growth is applied once at the end of each period. The calculator then solves the exponential equation (1 + r)^t = 2, where r is the percentage rate divided by 100 and t is the number of periods. Taking logarithms gives t = ln(2) / ln(1 + r). This is the usual choice for annually compounded balances, period-by-period user growth, and other quantities updated at regular intervals. Choose continuous compounding when the model says growth accumulates at every instant. In that case the equation is e^(rt) = 2, so the exact result is t = ln(2) / r. The two answers are close at very small rates but are not identical, and the difference grows as the rate increases. Selecting the model explicitly prevents a common hidden assumption. The output repeats the selected compounding method and formula, making it easier to audit the result or reproduce it in a spreadsheet, report, or program.
Interpret the logarithmic result responsibly
A doubling time can include a fractional period. For example, 14.21 yearly periods means the modeled quantity reaches exactly twice its starting value partway through the fifteenth year, not only after fourteen complete updates. The starting amount does not appear in the formula because exponential doubling time depends on the proportional growth rate, not the initial scale. Ten items and ten million items therefore have the same modeled doubling time when both grow at the same constant percentage rate. This result should not be confused with the Rule of 70 or Rule of 72, which are mental approximations mainly suited to modest percentage rates. The calculator evaluates the logarithmic expression directly and reports a stable numeric result. Real systems may face capacity limits, seasonal variation, withdrawals, changing rates, or measurement uncertainty, so use the answer as the implication of a constant-rate exponential model. For automated calculations, the API price is $0.002 per request, and the deterministic response includes the normalized inputs and exact formula used.
What you can do with it
Project population growth
Convert a constant annual population growth percentage into the modeled number of years required to double.
Estimate business metric expansion
Translate a stable monthly user, subscriber, or revenue growth rate into a comparable doubling interval.
Analyze continuous growth models
Calculate doubling time for continuously compounded scientific, financial, or engineering models without using a shortcut.
FAQ
What formula does the calculator use?
For discrete compounding it uses ln(2) divided by ln(1 + r). For continuous compounding it uses ln(2) divided by r, where r is the percentage rate divided by 100.
What unit is the doubling time in?
It is in the same periods used by the growth rate. An annual rate gives years, a monthly rate gives months, and an hourly rate gives hours.
Should I enter 5 or 0.05 for a 5 percent rate?
Enter 5. The growth_rate input is a percentage, and the calculator converts it to 0.05 internally.
Why can I not enter zero or a negative rate?
A quantity with zero growth never doubles, and a quantity with a negative constant rate declines. Neither has a finite forward doubling time in this growth model.
Is this the same as the Rule of 72?
No. The Rule of 72 is a convenient approximation. This calculator evaluates the logarithmic formula directly and supports both discrete and continuous compounding.
How much does an API calculation cost?
Each API request costs $0.002. The same deterministic calculation can also run in the browser.
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/algebra/doubling-time \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"growth_rate":5}'const res = await fetch("https://api.kit.forhosting.com/algebra/doubling-time", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"growth_rate": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/doubling-time",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"growth_rate": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/doubling-time", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"growth_rate":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"growth_rate":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/doubling-time", 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": 5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.doubling_time",
"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.
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. |