Strasmore Research
Learn Matt ConnorBy Matt Connor

The 7-5-3-1 Rule in Mutual Funds, Tested

What the 7-5-3-1 rule for SIPs actually says, and a test of its 7-year claim against rolling seven-year S&P 500 returns, with the step-up arithmetic shown.

The 7-5-3-1 rule in mutual funds is a memory aid that Indian fund houses attach to systematic investment plans, or SIPs (a fixed purchase of fund units every month): stay invested for at least 7 years, spread the money across 5 equity buckets, expect 3 emotional phases along the way, and raise the instalment once a year. It is a marketing heuristic, and no part of it is a return guarantee. Three of the four digits are habits; only the 7 makes a claim that history can check, and the panels below run that check on rolling seven-year windows of the S&P 500.

What does the 7-5-3-1 rule mean?

Asset management companies (AMCs, the firms that run mutual funds) use the four digits as a script for new SIP investors.

7 years is the holding horizon. The pitch is that an equity SIP held for seven years or more has rarely finished with a loss in the past, and that an investor who commits to seven years up front is less likely to quit during a drawdown (a fall from a prior peak).

5 buckets is a diversification recipe, often called the five-finger framework: quality large caps, value stocks, growth at a reasonable price (GARP), mid and small caps, and international equity. The rule proposes roughly equal sleeves rather than one concentrated fund.

3 phases describes the emotional arc the AMC decks expect a SIP investor to pass through, and the decks name the phases exactly this way: the disappointment phase, when early returns land below what the investor imagined; the irritation phase, when the running return sits near what a bank deposit would have paid; and the panic phase, when the running return turns negative during a market fall. The rule's message is that all three are expected stops on the route rather than exits.

1 step-up is the instruction to raise the monthly instalment once a year, usually by 10% or by a fixed amount, in step with rising income.

The rule shares a family with the 8-4-3 rule of compounding, another AMC mnemonic. Both are sales-floor shorthand for the same habits (invest regularly, stay long, spread out, add more) dressed up as numbers.

Is 7 years long enough? The claim, tested on the S&P 500

The 7 is the only digit with a claim that data can test. The rule's home benchmark is India's Nifty 50, which sits outside the US-listed record behind this page, and the test here uses the S&P 500 through SPY, the exchange-traded fund that tracks it, on every daily close the record holds.

The method is a rolling window. Take the first trading session of each calendar month, note the SPY close, and compare it with the close on the first session of the month exactly 84 months later. Repeat for every month with a full seven years of history ahead of it. Two returns are shown per window: the price change alone, and the price change with every SPY cash dividend that went ex-dividend inside the window added back at face value. The second figure understates a true total return, which would have compounded those dividends into more units, and it is the one used for the counts below.

QueryRolling seven-year returns on SPY, one window per start month
193 rows (showing 20)
start_dateopenedclosedprice_return_pctwith_dividends_pct
2003-09-10Sep 2003Sep 20106.414.8
2003-10-01Oct 2003Oct 201012.321.3
2003-11-03Nov 2003Nov 201011.820.5
2003-12-01Dec 2003Dec 201012.521
2004-01-02Jan 2004Jan 201114.223.1
2004-02-02Feb 2004Feb 201114.723.4
2004-03-01Mar 2004Mar 201112.721.2
2004-04-01Apr 2004Apr 20111726.2
2004-05-03May 2004May 201121.530.8
2004-06-01Jun 2004Jun 20111726.2
2004-07-01Jul 2004Jul 201118.628.4
2004-08-02Aug 2004Aug 201115.925.9
2004-09-01Sep 2004Sep 20118.618.6
2004-10-01Oct 2004Oct 2011-3.37
2004-11-01Nov 2004Nov 20117.517.8
2004-12-01Dec 2004Dec 20114.814.6
2005-01-03Jan 2005Jan 2012616.3
2005-02-01Feb 2005Feb 201211.421.9
2005-03-01Mar 2005Mar 201213.623.9
2005-04-01Apr 2005Apr 201220.831.9
The exact SQL behind every number
WITH
    monthly AS
    (
        SELECT
            toStartOfMonth(date)            AS month_start,
            toDate(min(date))               AS first_session,
            argMin(toFloat64(close), date)  AS first_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
        GROUP BY month_start
    ),
    divs AS
    (
        SELECT
            toStartOfMonth(ex_dividend_date) AS month_start,
            sum(cash)                        AS month_cash
        FROM
        (
            SELECT
                ex_dividend_date,
                max(toFloat64(cash_amount)) AS cash
            FROM global_markets.stocks_dividends
            WHERE ticker = 'SPY'
            GROUP BY ex_dividend_date
        )
        GROUP BY month_start
    ),
    grid AS
    (
        SELECT
            m.month_start                AS month_start,
            m.first_session              AS first_session,
            m.first_close                AS first_close,
            addMonths(m.month_start, 84) AS end_month,
            sum(ifNull(d.month_cash, 0)) OVER (ORDER BY m.month_start ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS cash_before
        FROM monthly AS m
        LEFT JOIN divs AS d ON d.month_start = m.month_start
    )
SELECT
    toString(s.first_session)                            AS start_date,
    formatDateTime(s.first_session, '%b %Y')             AS opened,
    formatDateTime(e.first_session, '%b %Y')             AS closed,
    round((e.first_close / s.first_close - 1) * 100, 1)  AS price_return_pct,
    round(((e.first_close + e.cash_before - s.cash_before) / s.first_close - 1) * 100, 1) AS with_dividends_pct
FROM grid AS s
INNER JOIN grid AS e ON e.month_start = s.end_month
ORDER BY s.month_start
Run this yourself

The series holds 193 seven-year windows, the first opening in Sep 2003 and the latest in Sep 2019. The first window returned 14.8% with dividends counted; the latest returned 177.6%. The line is the shape the rule is betting on: a seven-year return that swings widely with the start month and spends most of its time above zero.

How many 7-year windows lost money?

Sorting every window into return bands answers the rule's central question directly.

QueryWhere the seven-year windows landed: SPY windows by return band, dividends counted
bucketwindow_countshare_pct
Below 0%00
0% to 25%178.8
25% to 50%3417.6
50% to 100%136.7
Above 100%12966.8
The exact SQL behind every number
WITH
    monthly AS
    (
        SELECT
            toStartOfMonth(date)            AS month_start,
            toDate(min(date))               AS first_session,
            argMin(toFloat64(close), date)  AS first_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
        GROUP BY month_start
    ),
    divs AS
    (
        SELECT
            toStartOfMonth(ex_dividend_date) AS month_start,
            sum(cash)                        AS month_cash
        FROM
        (
            SELECT
                ex_dividend_date,
                max(toFloat64(cash_amount)) AS cash
            FROM global_markets.stocks_dividends
            WHERE ticker = 'SPY'
            GROUP BY ex_dividend_date
        )
        GROUP BY month_start
    ),
    grid AS
    (
        SELECT
            m.month_start                AS month_start,
            m.first_session              AS first_session,
            m.first_close                AS first_close,
            addMonths(m.month_start, 84) AS end_month,
            sum(ifNull(d.month_cash, 0)) OVER (ORDER BY m.month_start ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS cash_before
        FROM monthly AS m
        LEFT JOIN divs AS d ON d.month_start = m.month_start
    ),
    windows AS
    (
        SELECT
            ((e.first_close + e.cash_before - s.cash_before) / s.first_close - 1) * 100 AS ret
        FROM grid AS s
        INNER JOIN grid AS e ON e.month_start = s.end_month
    ),
    stats AS
    (
        SELECT
            count()                           AS total,
            countIf(ret < 0)                  AS below_zero,
            countIf(ret >= 0  AND ret < 25)   AS to_25,
            countIf(ret >= 25 AND ret < 50)   AS to_50,
            countIf(ret >= 50 AND ret < 100)  AS to_100,
            countIf(ret >= 100)               AS above_100
        FROM windows
    )
SELECT
    tupleElement(band, 1) AS bucket,
    tupleElement(band, 2) AS window_count,
    tupleElement(band, 3) AS share_pct
FROM stats
ARRAY JOIN
    [
        ('Below 0%',    below_zero, round(below_zero / total * 100, 1)),
        ('0% to 25%',   to_25,      round(to_25 / total * 100, 1)),
        ('25% to 50%',  to_50,      round(to_50 / total * 100, 1)),
        ('50% to 100%', to_100,     round(to_100 / total * 100, 1)),
        ('Above 100%',  above_100,  round(above_100 / total * 100, 1))
    ] AS band
Run this yourself

Of the 193 windows, 0 finished below their starting value with dividends counted, a 0% share. At the other end, 129 windows more than doubled.

Two cautions on reading that count. First, the sample begins in Sep 2003; a window that opened before that date is not in the test, and a small number here means "few in this sample" rather than "few in all of history". Longer US records do contain losing seven-year stretches, and the windows that opened in 2001 and 2002 and closed into the 2008 to 2009 bear market are the usual modern examples. Second, overlapping windows are not independent trials. A single bear market pulls down every window that ends inside it, and a cluster of losing windows usually describes one episode rather than several.

What was the worst 7-year window?

QueryThe eight weakest seven-year windows on SPY, dividends counted as cash
start_labelend_labelstart_closeend_closeprice_return_pctwith_dividends_pct
Oct 2004Oct 2011113.65109.93-3.37
Dec 2004Dec 2011119.23124.974.814.6
Sep 2003Sep 2010101.96108.466.414.8
Jan 2005Jan 2012120.3127.5616.3
Jun 2005Jun 2012120.5128.166.417.2
Nov 2004Nov 2011113.511227.517.8
Sep 2004Sep 2011111.32120.948.618.6
Nov 2003Nov 2010105.99118.5311.820.5
The exact SQL behind every number
WITH
    monthly AS
    (
        SELECT
            toStartOfMonth(date)            AS month_start,
            toDate(min(date))               AS first_session,
            argMin(toFloat64(close), date)  AS first_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
        GROUP BY month_start
    ),
    divs AS
    (
        SELECT
            toStartOfMonth(ex_dividend_date) AS month_start,
            sum(cash)                        AS month_cash
        FROM
        (
            SELECT
                ex_dividend_date,
                max(toFloat64(cash_amount)) AS cash
            FROM global_markets.stocks_dividends
            WHERE ticker = 'SPY'
            GROUP BY ex_dividend_date
        )
        GROUP BY month_start
    ),
    grid AS
    (
        SELECT
            m.month_start                AS month_start,
            m.first_session              AS first_session,
            m.first_close                AS first_close,
            addMonths(m.month_start, 84) AS end_month,
            sum(ifNull(d.month_cash, 0)) OVER (ORDER BY m.month_start ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS cash_before
        FROM monthly AS m
        LEFT JOIN divs AS d ON d.month_start = m.month_start
    )
SELECT
    formatDateTime(s.first_session, '%b %Y')             AS start_label,
    formatDateTime(e.first_session, '%b %Y')             AS end_label,
    round(s.first_close, 2)                              AS start_close,
    round(e.first_close, 2)                              AS end_close,
    round((e.first_close / s.first_close - 1) * 100, 1)  AS price_return_pct,
    round(((e.first_close + e.cash_before - s.cash_before) / s.first_close - 1) * 100, 1) AS with_dividends_pct
FROM grid AS s
INNER JOIN grid AS e ON e.month_start = s.end_month
ORDER BY with_dividends_pct ASC, s.month_start ASC
LIMIT 8
Run this yourself

The weakest window in the sample opened in Oct 2004 and closed in Oct 2011. SPY moved from $113.65 to $109.93, a price return of -3.3%, and 7% once dividends are added back. The gap between those two columns, visible on every row, is the part of a seven-year return that a price chart never shows.

One more point about what a rolling window measures: it is the return on a single lump sum held for the full seven years. A SIP spreads the money over 84 purchases, and the last of those has been invested for a month rather than seven years, so the SIP's seven-year outcome is a blend of windows of shrinking length, weighted toward the recent ones. Dollar-cost averaging describes the same mechanism, and it cuts both ways: a fall late in the seven years hits most of the money, a fall early hits little of it. The lump-sum test above is a generous version of the rule's claim rather than a strict one.

What does a 10% annual step-up do to a SIP?

The 1 in the rule is arithmetic, and it holds whatever markets do. Start with 500 a month, in any currency, and raise it 10% each year. The panel below sets ten years of that against a flat 500.

QueryA flat 500-a-month SIP against the same plan stepped up 10% a year, contributions only
yearstep_up_instalmentflat_invested_kstep_up_invested_kextra_invested_pct
1500 a month660
2550 a month1212.65
3605 a month1819.910.3
4666 a month2427.816
5732 a month3036.622.1
6805 a month3646.328.6
7886 a month4256.935.5
8974 a month4868.642.9
91072 a month5481.550.9
101179 a month6095.659.4
The exact SQL behind every number
SELECT
    year,
    concat(toString(toUInt32(round(500 * pow(1.10, year - 1)))), ' a month') AS step_up_instalment,
    round(6000 * year / 1000, 1)                                               AS flat_invested_k,
    round(6000 * (pow(1.10, year) - 1) / 0.10 / 1000, 1)                       AS step_up_invested_k,
    round(((pow(1.10, year) - 1) / 0.10 / year - 1) * 100, 1)                  AS extra_invested_pct
FROM
(
    SELECT arrayJoin(range(1, 11)) AS year
)
ORDER BY year
Run this yourself

By year ten the instalment has grown to 1179 a month. Total contributions reach 95.6 thousand against 60 thousand for the flat plan, 59.4% more money put to work; at the halfway mark, year five, the gap is 22.1%. Every unit of that extra total is a contribution, and no return is assumed anywhere in the table. The step-up changes how many fund units the investor buys and keeps the instalment in step with a salary that also rises; the return on each unit is unaffected. AMC illustrations usually add an assumed growth rate on top, and that layer is an assumption rather than arithmetic.

What the three phases describe, and what they do not

Disappointment, irritation and panic are labels from AMC decks rather than measurements. They describe how a running SIP return feels at different levels, and the rule names them in advance as a way of making them feel expected. The rolling series above shows why the labels find an audience: the same seven-year holding reads as a triumph or a letdown depending on the month it began. The missing the best days argument is the other half of the same script, a case for staying put built on how concentrated index returns are in a few sessions.

Two practical notes round this out. SIP purchases fill at that day's net asset value (NAV), the once-a-day price at which a fund transacts, and when mutual funds trade walks through the cut-off mechanics. The 7% sell rule sits at the opposite pole, a rule for exiting fast rather than holding long. Both are heuristics, and neither carries a forecast.

FAQ

What is the 7-5-3-1 rule in mutual funds?

A SIP mnemonic used by Indian fund houses: invest for at least 7 years, diversify across 5 equity buckets, expect 3 emotional phases (disappointment, irritation, panic), and step up the instalment once a year. It is a behavioural guide and carries no performance promise.

Does the 7-5-3-1 rule guarantee no loss after 7 years?

No. In the S&P 500 sample above, 0 of 193 monthly seven-year windows ended below their starting value with dividends counted, and the sample only reaches back to Sep 2003. Longer records include losing seven-year stretches. A longer horizon lowers the odds of a loss without removing them.

What are the three phases in the 7-5-3-1 rule?

The disappointment phase (early returns below expectations), the irritation phase (a running return close to a bank deposit) and the panic phase (a negative running return during a market fall). They describe investor mood at different return levels and have no fixed dates.

How much more does a 10% step-up SIP invest over 10 years?

About 59.4% more in contributions. A 500-a-month plan stepped up 10% a year puts in 95.6 thousand over ten years against 60 thousand for a flat plan. That is contributions only; investment returns are a separate question.

How is the 7-5-3-1 rule different from the 8-4-3 rule?

The 8-4-3 rule describes a compounding pattern: how a balance growing at an assumed rate accelerates across three blocks of years. The 7-5-3-1 rule is about behaviour: horizon, diversification, temperament and contributions. Neither is a forecast.


Every panel above carries its SQL underneath. To rerun the seven-year test on another ticker or change the step-up rate, open the query on the Strasmore terminal and edit the constants.

#mutual funds#sip#7-5-3-1 rule#rules of thumb#long-term investing