Strasmore Research
Learn Matt ConnorBy Matt Connor

The Rule of 72 (and Where It Breaks)

The Rule of 72 turns a return into a doubling time by simple division. Here is the exact formula behind it, and the volatility drag that makes it optimistic.

The Rule of 72 is the fastest arithmetic in personal finance: divide 72 by an annual percentage return and the answer is roughly how many years money takes to double. At 8% a year it says nine years, and the exact figure is 9.01. The shortcut is reliable in the band where people actually use it, and it has one failure mode that most explanations skip: real portfolios never earn the same return twice.

What is the Rule of 72?

Doubling time is a pure compounding question. Money growing at rate r multiplies by (1 + r) every year, so after t years it has grown by (1 + r) to the power t. Set that equal to 2 and the answer is exact: t = ln(2) / ln(1 + r), where ln is the natural logarithm.

ln(2) is 0.693. At small rates ln(1 + r) sits close to r itself, so the exact formula collapses to 0.693 divided by r, or 69.3 divided by the rate written as a percentage. That is the honest numerator. Under continuous compounding, where interest is credited every instant instead of once a year, 69.3 stops being an approximation and becomes the answer.

Why is it 72 and not 69.3?

Two reasons, neither of them theoretical. Mental arithmetic comes first: 72 divides cleanly by 2, 3, 4, 6, 8, 9 and 12, so the division works in your head at any rate a person is likely to quote, while 69.3 divides cleanly by nothing. Then there is where the error lands. The correction inside ln(1 + r) grows with the rate, so the numerator that would make the shortcut exact is not fixed: about 70 at 2% a year, 72.7 at 10%, near 76 at 20%. Choosing 72 centres the shortcut just under 8% a year, the middle of the range in which long-run equity returns get quoted.

How accurate is the Rule of 72?

The panel runs both calculations across eleven annual rates: the shortcut, the exact answer, and the distance between them in years.

QueryRule of 72 against the exact doubling time, by annual return
annual_returnrule_of_72_yearsexact_yearsgap_years
1%7269.662.34
2%36351
3%2423.450.55
4%1817.670.33
6%1211.90.1
8%99.010.01
10%7.27.270.07
12%66.120.12
15%4.84.960.16
20%3.63.80.2
25%2.883.110.23
The exact SQL behind every number
SELECT
    concat(toString(annual_pct), '%')        AS annual_return,
    round(72.0 / annual_pct, 2)              AS rule_of_72_years,
    round(exact, 2)                          AS exact_years,
    round(abs(72.0 / annual_pct - exact), 2) AS gap_years
FROM
(
    SELECT
        annual_pct,
        log(2) / log(1 + annual_pct / 100.0) AS exact
    FROM
    (
        SELECT arrayJoin([1, 2, 3, 4, 6, 8, 10, 12, 15, 20, 25]) AS annual_pct
    )
)
ORDER BY annual_pct ASC
Run this yourself

The error has a shape. At 8% a year the shortcut answers 9 years against an exact 9.01, a distance of 0.01 years. Anywhere from 4% to 15% the gap stays at or under 0.33 years, a few weeks of error on a decade-long question.

Below that band it opens up. At 2% a year the two answers sit 1 years apart, and at 1% they sit 2.34 years apart. Slow compounders are where that bites: a savings rate or an inflation rate has a doubling horizon measured in decades, and a year of error stays a year of error.

Above the band the sign flips. At 25% a year the shortcut answers 2.88 years and the exact calculation 3.11 years, so the fast answer is now the shorter one. The absolute gap stays modest, 0.2 years at 20%, though it is a visible slice of an answer that small.

Where the Rule of 72 breaks

Everything above assumes an identical return every year. No portfolio does that, and the distance between the two kinds of average is where the rule quietly fails.

The arithmetic average adds the yearly returns and divides by the count. The compound average, also called the compound annual growth rate, is the single fixed rate that would carry a starting balance to the ending balance. Only the second one moves money, and for any series that moves around it is the smaller of the two. Our note on how monthly returns are measured walks through that bookkeeping.

The size of the shortfall tracks variance. Volatility is the standard deviation of returns, the usual measure of how widely a series scatters around its own average, and variance is volatility squared. The working approximation: compound return sits near the arithmetic average minus half the variance. An 8% average with 20% volatility gives up half of 0.20 squared, which is 2 percentage points, leaving roughly 6% to compound. The panel holds the average at 8% and turns volatility up.

QueryAn 8% average return at rising volatility: compound rate and doubling time
annual_volatilitycompound_return_pctdoubling_years
0%89
5%7.889.1
10%7.59.6
15%6.8810.4
20%611.9
25%4.8814.6
30%3.520.1
35%1.8837.3
The exact SQL behind every number
SELECT
    concat(toString(vol_pct), '%')       AS annual_volatility,
    round(compound * 100, 2)             AS compound_return_pct,
    round(log(2) / log(1 + compound), 1) AS doubling_years
FROM
(
    SELECT
        vol_pct,
        0.08 - 0.5 * pow(vol_pct / 100.0, 2) AS compound
    FROM
    (
        SELECT arrayJoin([0, 5, 10, 15, 20, 25, 30, 35]) AS vol_pct
    )
)
ORDER BY vol_pct ASC
Run this yourself

With volatility at 0% the doubling time is 9 years, which is the Rule of 72's answer and the only case it was built for. At 20% volatility the compound rate falls to 6% and the doubling time stretches to 11.9 years. At 35% the same 8% average compounds at 1.88% and needs 37.3 years. The average return never changed. This is the mechanism behind a familiar complaint: the average was delivered, and the balance still took longer to double. Real returns against random walks follows the same thread.

Volatility drag in real price histories

The next two panels measure the same effect on five real price histories across the ten calendar years from 2015 through 2024. None of the five carried a stock split inside that window, so every daily move on the tape is a real move. These are price series only: dividends are not reinvested here, so a dividend payer's full compound return runs above the figure shown. The distance between the two averages, which is the subject, barely moves with that choice.

QueryAverage return against compound return, five price histories, 2015 through 2024
tickerannual_vol_pctaverage_return_pctcompound_return_pct
SPY17.712.0811.08
QQQ21.818.4517.42
MSFT27.225.7324.65
ARKK3817.6510.96
AMD58.754.9646.41
The exact SQL behind every number
WITH daily AS
(
    SELECT
        ticker,
        date,
        toFloat64(max(close)) AS close_px
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'MSFT', 'ARKK', 'AMD')
      AND date >= '2015-01-02'
      AND date <= '2024-12-31'
      AND close > 0
    GROUP BY ticker, date
),
rets AS
(
    SELECT
        ticker,
        close_px / nullIf(lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY date ASC), 0) - 1 AS r
    FROM daily
)
SELECT
    ticker,
    round(stddevSamp(r) * sqrt(252) * 100, 1)        AS annual_vol_pct,
    round(avg(r) * 252 * 100, 2)                     AS average_return_pct,
    round((exp(avg(log(1 + r)) * 252) - 1) * 100, 2) AS compound_return_pct
FROM rets
WHERE r IS NOT NULL
  AND isFinite(r)
GROUP BY ticker
ORDER BY annual_vol_pct ASC
Run this yourself

Rows run from calmest to widest scatter. SPY moved 17.7% a year and turned an arithmetic average of 12.08% into 11.08% compounded. AMD, at 58.7%, turned 54.96% into 46.41%. Every row has the compound figure sitting below the average. That is the half-variance term, showing up on a real tape.

Now run the shortcut on both numbers.

QueryYears to double: the Rule of 72 on the average against the compounded path
tickerrule_of_72_yearscompounded_yearsextra_yearsextra_time_pct
ARKK4.086.662.5863.3
SPY5.966.60.6410.7
AMD1.311.820.5138.8
QQQ3.94.320.4110.6
MSFT2.83.150.3512.4
The exact SQL behind every number
WITH daily AS
(
    SELECT
        ticker,
        date,
        toFloat64(max(close)) AS close_px
    FROM global_markets.stocks_daily_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'MSFT', 'ARKK', 'AMD')
      AND date >= '2015-01-02'
      AND date <= '2024-12-31'
      AND close > 0
    GROUP BY ticker, date
),
rets AS
(
    SELECT
        ticker,
        close_px / nullIf(lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY date ASC), 0) - 1 AS r
    FROM daily
),
stats AS
(
    SELECT
        ticker,
        avg(r) * 252          AS arith_annual,
        avg(log(1 + r)) * 252 AS log_annual
    FROM rets
    WHERE r IS NOT NULL
      AND isFinite(r)
    GROUP BY ticker
)
SELECT
    ticker,
    round(72.0 / (arith_annual * 100), 2)                                       AS rule_of_72_years,
    round(log(2) / log_annual, 2)                                               AS compounded_years,
    round(log(2) / log_annual - 72.0 / (arith_annual * 100), 2)                 AS extra_years,
    round((log(2) / log_annual) / (72.0 / (arith_annual * 100)) * 100 - 100, 1) AS extra_time_pct
FROM stats
ORDER BY extra_years DESC
Run this yourself

The first column divides 72 by the arithmetic average. The second is the doubling time implied by the rate the price history actually compounded at. The widest spread belongs to ARKK: the shortcut says 4.08 years, the compounded path 6.66 years, 63.3% longer. Even the tightest row, MSFT, runs 0.35 years past the shortcut's answer. A high average paired with a wide scatter is where the rule is least useful: the arithmetic average is the number in the pitch, the compounded rate is the number in the account.

Two uses that stay honest

The first is inflation. A price index compounds at a low and fairly steady rate, which is the regime the shortcut handles best. Divide 72 by an inflation rate and the answer is the years for prices to double, which is the same statement as the years for a dollar's purchasing power to halve.

QueryTen-year US inflation rate and the time to halve a dollar's purchasing power
26 rows (showing 20)
yearinflation_rate_pctexact_halving_yearsrule_of_72_years
20002.825.125.7
20012.6626.427.1
20022.5127.928.6
20032.4528.729.4
20042.4528.629.3
20052.512828.7
20062.5427.628.4
20072.5927.127.8
20082.8224.925.5
20092.5627.428.1
20102.3929.330.1
20112.422929.7
20122.4728.429.1
20132.3929.430.2
20142.2830.731.6
20151.9635.836.8
20161.7639.740.9
20171.6941.442.7
20181.554546.4
20191.7739.640.7
The exact SQL behind every number
WITH yearly AS
(
    SELECT
        toYear(date)        AS year,
        toYear(date) + 10   AS decade_later,
        avg(toFloat64(cpi)) AS cpi_avg
    FROM global_markets.inflation
    WHERE date >= '1990-01-01'
      AND date <  '2026-01-01'
      AND cpi > 0
    GROUP BY year, decade_later
),
windows AS
(
    SELECT
        recent.year                             AS year,
        pow(recent.cpi_avg / base.cpi_avg, 0.1) AS annual_factor
    FROM yearly AS base
    INNER JOIN yearly AS recent ON recent.year = base.decade_later
)
SELECT
    year,
    round((annual_factor - 1) * 100, 2)          AS inflation_rate_pct,
    round(log(2) / log(annual_factor), 1)        AS exact_halving_years,
    round(72.0 / ((annual_factor - 1) * 100), 1) AS rule_of_72_years
FROM windows
ORDER BY year ASC
Run this yourself

Each row annualizes US consumer price inflation over the ten calendar years ending in that row's year, then answers the halving question twice. Over the ten years ending 2025, prices compounded at 3.11% a year: the shortcut gives 23.1 years to halve a dollar, the exact formula 22.6. The oldest window on the panel, ending 2000, compounded at 2.8% for an exact halving time of 25.1 years. The two methods stay within about a year of each other down the whole panel, which is the behaviour the error table above describes at rates this low.

The second honest use is the head-check. Someone quotes a return, you divide 72 by it, and a doubling horizon appears with no spreadsheet. A 24% annual return claims a double every three years, which compounds to sixteen times the money in twelve years, and that is usually enough to end the conversation. It runs backwards too: a fund that genuinely doubled in six years compounded at about 12% a year. In that register the rule is a filter on arithmetic rather than a forecast, which is also how the 7 percent sell rule and the 3-5-7 rule in options earn their keep.

How these numbers were calculated
  • The two theory panels hold no market data. They evaluate ln(2) / ln(1 + r) and the half-variance approximation directly.
  • The equity panels read daily closes for the five tickers from 2015-01-02 through 2024-12-31, deduplicated to one close per ticker and session, with simple returns taken from the prior session's close and annualized on 252 sessions. Volatility is the sample standard deviation of daily returns times the square root of 252. The arithmetic average is the mean daily return times 252. The compound return is the mean daily log return times 252, exponentiated. Doubling time on the compounded path is ln(2) divided by the annual log return, which is exact for that rate.
  • Compound return equals arithmetic average minus half the variance only as an approximation, and it loosens as returns get large, so both figures are measured directly rather than derived from one another. The inflation panel averages the consumer price index over each calendar year and annualizes the ratio against the year ten years earlier.

FAQ

What is the Rule of 72 formula?

Divide 72 by the annual percentage rate of return and the result is the approximate number of years for a balance to double. The exact version is t = ln(2) / ln(1 + r), with r written as a decimal.

Is the Rule of 72 accurate?

Near 8% a year it is accurate to a rounding error: the panel above puts the two answers 0.01 years apart. The gap widens toward low rates, reaching 2.34 years at 1% a year, and above roughly 8% the shortcut's answer becomes the shorter of the two.

Why is the number 72 instead of 69.3?

69.3 is the mathematically clean numerator, and it survives no mental arithmetic. 72 divides evenly by 2, 3, 4, 6, 8, 9 and 12, and the small upward adjustment lands the shortcut almost exactly on the exact answer just under 8% a year.

Does the Rule of 72 work for inflation?

Yes, and it is one of the better uses. Dividing 72 by an inflation rate gives the years for prices to double, which is the years for purchasing power to halve. At the 3.11% ten-year rate ending 2025, that is 23.1 years.

Why does a portfolio double later than the Rule of 72 says?

The rule assumes one constant return. A volatile series compounds at roughly its arithmetic average minus half its variance, so the realized doubling time runs longer. Across the five price histories above, the smallest overrun was 0.35 years and the largest 2.58 years. Spreading purchases over time, as in dollar cost averaging, changes the cash-flow pattern rather than the compounding math.


Every panel on this page ships the SQL that produced it, so the distance between a shortcut and an exact answer is auditable rather than asserted. The same doubling-time questions can be asked in plain English on the Strasmore terminal.

#compounding#returns#named rules#volatility#math