Rule of 72 Calculator
Calculate investment doubling time using the Rule of 72.
The Rule of 72 is a simple way to estimate doubling time: divide 72 by the annual interest rate.
Doubling Time
10.3
years (Rule of 72 estimate)
Exact (compound): 10.24 years
About this tool
The Rule of 72 is a simple mathematical shortcut that helps you estimate how long it will take for an investment to double in value at a given annual return rate. Instead of using complex logarithmic formulas, you divide 72 by your annual interest or return rate to get an approximate number of years. This elegant rule works remarkably well for typical investment returns and is a favorite among investors, financial planners, and students learning about compound growth.
To use the calculator, enter your annual return rate (as a percentage) and it immediately shows how many years your money would take to double. For example, if you expect 8% annual returns, the Rule of 72 suggests your investment doubles in about 9 years. This is useful for comparing savings accounts, investment portfolios, inflation effects, or even loan growth. The tool works in reverse as well: enter a timeframe and discover what annual return rate would be needed to double your money in that period.
The Rule of 72 is most accurate for returns between 5% and 10%, though it provides reasonable estimates across a wide range of rates. Remember that this is an approximation—actual doubling time depends on how often returns are compounded (daily, monthly, yearly) and real-world variables like fees or market volatility. It remains one of the most practical mental-math tools in personal finance, helping you make quick, informed decisions without a calculator in hand.
Frequently Asked Questions
Code Implementation
import math
def rule_of_72(rate: float) -> float:
"""Estimate years to double using Rule of 72."""
if rate <= 0:
raise ValueError("Rate must be positive")
return 72 / rate
def exact_doubling_time(rate: float) -> float:
"""Exact years to double using logarithm formula."""
if rate <= 0:
raise ValueError("Rate must be positive")
return math.log(2) / math.log(1 + rate / 100)
# Example
rate = 6 # 6% annual return
years_72 = rule_of_72(rate)
years_exact = exact_doubling_time(rate)
print(f"Rule of 72: {years_72:.1f} years") # 12.0 years
print(f"Exact formula: {years_exact:.2f} years") # 11.90 years
# Table for common rates
print("\nRate | Rule of 72 | Exact")
for r in [2, 4, 6, 8, 10, 12]:
print(f" {r:2d}% | {rule_of_72(r):5.1f} yrs | {exact_doubling_time(r):.2f} yrs")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.