liveBook · Manning

Dividend growth rate

As explained in Investing for Programmers

The dividend growth rate is the percentage rate at which a company's dividend per share increases over time.

Dividend growth rate measures how quickly a company increases its dividend per share over time. It complements dividend yield, annual payout, payout ratio, and the number of consecutive years of dividend increases. section 5.1 section 5.5

For a multi-year history, calculate the compound annual growth rate (CAGR) from the first and last annual dividend: (last dividend / first dividend)^(1 / years) − 1. Summing payments by year avoids confusing payment frequency with annual growth. section 5.1

A practical dividend-growth analysis can proceed as follows:

  • Count payments per year and average the counts to estimate payout frequency separately from growth. section 5.1
  • Combine growth with yield, payout ratio, market capitalization, and payment history rather than treating one percentage as a complete investment decision. section 5.1 section 2.4.6
Listing 5.1 Calculating dividend growth
def calc_div_growth_rate (stock):
    try:
        dividends = stock.dividends

        if dividends.empty:
            return None, None

        dividends_by_year = dividends.resample('YE').sum()   #1

        if len(dividends_by_year) > 1:                       #2
            first_year = dividends_by_year.index[0].year     #2
            last_year = dividends_by_year.index[-1].year     #2
            first_dividend = dividends_by_year.iloc[0]       #2
            last_dividend = dividends_by_year.iloc[-1]       #2
            num_years = last_year - first_year               #2
            cagr = ((last_dividend / first_dividend)  #2
                ** (1 / num_years)) - 1                      #2
        else: #2
            cagr = None

        payouts_per_year = dividends.resample('YE').
                count().mean()                          #3
        if payouts_per_year > 3.5:                      #3
            payout_frequency = "Quarterly"              #3
        elif payouts_per_year > 1.5:                    #3
            payout_frequency = "Semi-Annual"            #3
        elif payouts_per_year > 0.5:                    #3
            payout_frequency = "Annual"                 #3
        else: #3
            payout_frequency = "Irregular"
        return cagr, payout_frequency
    except Exception as e:
        print(f"Error processing {stock}: {e}")
        return None, None

Use the executable pattern to inspect dividend histories, aggregate annual payouts, calculate CAGR, and estimate payout frequency. section 5.1

Comparing growth profiles

A dividend scorecard can reveal different strategies: Microsoft combines a 0.71% yield with 10.24% five-year dividend growth, while Altria combines a 6.89% yield with 4.00% growth. NVIDIA shows 20.11% growth but only one consecutive year of increases, so a high growth figure alone does not establish a long record.

Interpret the metric cautiously. Larger, mature companies may raise dividends more slowly; a low payout ratio can leave room for reinvestment, while payment dates and taxation can affect an income plan. Dividend growth is historical evidence, not a guarantee of future increases. section 5.1 section 2.4.6

How Investing for Programmers covers it

How deep it goes
Explains annual aggregation, CAGR, and payout-frequency estimation in Python, but stops short of forecasting future dividend increases.
Examples
Compares Apple, Altria, Microsoft, NVIDIA, Sempra, Walmart, and Coca-Cola using yield, payout ratio, growth, and continuity.
What it assumes
Assumes basic dividend vocabulary while teaching annual aggregation, payment-frequency counting, yield, and payout-ratio comparison.
What you can do after
Build it from scratch with pandas-style resampling to calculate annual dividend CAGR and estimate payout frequency from payment histories.
How it connects
Connects dividend growth rate with dividend yield, annual payout, payout ratio, payment frequency, buybacks, REITs, and bonds.

This explainer was generated by Manning's knowledge graph from the text of Investing for Programmers. The section links point to the parts of the book it draws on.