# Is it worth waiting for dividends with regular investments?

**URL:** https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013
**Category:** Investing / Portfolios
**Created:** [February 24, 2024, 12:31pm UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013 "2024-02-24T12:31:51Z")
**Posts on this page:** 13
**Page:** 1

<div class="post-metadata">

### Author: ![nugget](https://forum.mustachianpost.com/user_avatar/forum.mustachianpost.com/nugget/32/57_2.png) [@nugget](https://forum.mustachianpost.com/u/nugget)
#### Post date: [February 24, 2024, 12:31pm UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/1 "2024-02-24T12:31:51Z")

</div>

> [@How do you determine and invest new contributions?](https://forum.mustachianpost.com/t/how-do-you-determine-and-invest-new-contributions/12002/5):
>
> I buy VT 4 times a year. End of March, June, September and December, after the dividends and salary.

I was intrigued by the title question. So I ran a small backtest.  
Result: no, it is not worth timing the dividends vs. naive monthly investing it by a tiny amount.

Assumptions:

- $1000 monthly budget
- only invest in VT
- time horizon: 2013+, where VT starts distributing quarterly
- $0.33 transaction fees (IB-style)
- 30% income tax applies to dividend distributions
- buy shares at End of Month. in case of the wait-for-dividends, only in case of a distribution within the month

_\_m_ is the naive monthly, _\_d_ the waiting for dividends

 ![image](https://forum.mustachianpost.com/uploads/default/original/2X/b/b60265cd30822cd7c1f5b9a2945cd816b5867217.png)

| A | Date | Close | feed | EoM\_m | EoM\_d | diff |
| --- | --- | --- | --- | --- | --- | --- |
| 2410 | 2022-07-29 00:00:00-04:00 | 88.238220 | 1000 | 188138.655674 | 187085.197117 | -1053.458557 |
| 2433 | 2022-08-31 00:00:00-04:00 | 84.662292 | 1000 | 181514.447745 | 180547.141453 | -967.306291 |
| 2454 | 2022-09-30 00:00:00-04:00 | 76.594856 | 1000 | 165830.142229 | 165135.322705 | -694.819524 |
| 2475 | 2022-10-31 00:00:00-04:00 | 81.479149 | 1000 | 177404.305714 | 176660.973264 | -743.332450 |
| 2496 | 2022-11-30 00:00:00-05:00 | 88.227806 | 1000 | 193095.802496 | 192204.329587 | -891.472909 |
| 2517 | 2022-12-30 00:00:00-05:00 | 84.312820 | 1000 | 186506.644679 | 185729.628497 | -777.016182 |
| 2537 | 2023-01-31 00:00:00-05:00 | 90.759285 | 1000 | 201765.894238 | 200924.743411 | -841.150828 |
| 2556 | 2023-02-28 00:00:00-05:00 | 87.873535 | 1000 | 196350.542395 | 195570.322314 | -780.220081 |
| 2579 | 2023-03-31 00:00:00-04:00 | 90.378075 | 1000 | 203391.036615 | 202524.287270 | -866.749345 |
| 2598 | 2023-04-28 00:00:00-04:00 | 91.663734 | 1000 | 207283.441143 | 206404.165200 | -879.275943 |
| 2620 | 2023-05-31 00:00:00-04:00 | 90.554733 | 1000 | 205775.659521 | 204920.002602 | -855.656919 |
| 2641 | 2023-06-30 00:00:00-04:00 | 95.814117 | 1000 | 219758.410322 | 218719.893110 | -1038.517212 |
| 2661 | 2023-07-31 00:00:00-04:00 | 99.380714 | 1000 | 228936.287208 | 227858.867430 | -1077.419778 |
| 2684 | 2023-08-31 00:00:00-04:00 | 96.555099 | 1000 | 223428.566026 | 222410.814161 | -1017.751865 |
| 2704 | 2023-09-29 00:00:00-04:00 | 92.446899 | 1000 | 215579.499857 | 214684.115994 | -895.383863 |
| 2726 | 2023-10-31 00:00:00-04:00 | 89.748299 | 1000 | 210288.731464 | 209417.965008 | -870.766456 |
| 2747 | 2023-11-30 00:00:00-05:00 | 97.834183 | 1000 | 230233.627897 | 229193.387875 | -1040.240022 |
| 2767 | 2023-12-29 00:00:00-05:00 | 102.879997 | 1000 | 244425.426549 | 243211.384577 | -1214.041972 |
| 2788 | 2024-01-31 00:00:00-05:00 | 102.879997 | 1000 | 245425.096549 | 244211.384577 | -1213.711972 |
| 2804 | 2024-02-23 00:00:00-05:00 | 107.519997 | 1000 | 257491.165093 | 256180.343134 | -1310.821959 |

here the working example:

```auto
import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
import numpy as np

pd.set_option('display.max_columns', None)

# Fetch historical data
vt = yf.Ticker('VT')
end_date = pd.Timestamp.now()
start_date = datetime.date(2013,1,1)
hist= vt.history(start=start_date.strftime('%Y-%m-%d'), end=end_date.strftime('%Y-%m-%d')).reset_index()
hist['yield'] = (hist["Dividends"]/hist["Open"])

# get End of Month data (will be used in purchasing & Net worth calculation)
df_EoM = hist.filter(hist['Date'].dt.to_period('M').drop_duplicates(keep='last').index, axis = 0)

# global parameters 
div_tax = 0.3 # fraction of dividends you owe to the government. consider your marginal income tax rate
tansaction_fees = 0.33 # transaction fees. for IB, around 1/3rd of a $

# prepare the data. _m for the monthly staratedy, _d for waiting for dividends
df = hist.filter(hist['Date'].dt.to_period('M').drop_duplicates(keep='last').index, axis = 0)
df["cash_m"] = 0
df["distribution_m"] = 0
df["feed"] = 1000
df["shares_bought_m"]=0
df["shares_m"]=0
df["EoM_m"]=0
df["fees_m"]=0
shares_m = 0
cash_available_m = 0

df["cash_d"] = 0
df["distribution_d"] = 0
df["shares_bought_d"]=0
df["shares_d"]=0
df["EoM_d"]=0
df["fees_d"]=0
shares_d = 0
cash_available_d = 0

# let's go
for i, (idx, row) in enumerate(df.iterrows()):
    year = row.Date.year
    month = row.Date.month
    price = df_EoM[(df_EoM.Date.dt.year == year) & (df_EoM.Date.dt.month == month)].Close.values[0] # close price at the end of the month
    div_yield = hist[(hist.Date.dt.year == year) & (hist.Date.dt.month == month)].Dividends.sum()*(1-div_tax) # dividend yield of a month, minus tax
    
    # first monthly investing
    # collect cash
    distribution_m = shares_m * div_yield
    cash_available_m = cash_available_m + row.feed + distribution_m # available cash for purchase
    
    # buy shares
    shares_bought_m, cash_available_m = divmod(cash_available_m,price) 
    shares_m += shares_bought_m
    cash_available_m -= tansaction_fees

    # Net Worth End of Month
    EoM_m = shares_m * price + cash_available_m
    
    df.at[idx,"distribution_m"] = distribution_m
    df.at[idx,"shares_bought_m"] = shares_bought_m
    df.at[idx,"cash_m"] = cash_available_m
    df.at[idx,"shares_m"] = shares_m
    df.at[idx,"EoM_m"] = EoM_m
    df.at[idx,"fees_m"] = tansaction_fees
    
    # second the dividend cycle invest
    # collect cash
    distribution_d = shares_d * div_yield
    cash_available_d = cash_available_d + row.feed + distribution_d # available cash for purchase
    
    # buy shares
    if div_yield > 0:
        shares_bought_d, cash_available_d = divmod(cash_available_d,price)
        shares_d += shares_bought_d
        cash_available_d -= tansaction_fees
        df.at[idx,"fees_d"] = tansaction_fees
    else:
        shares_bought_d = 0

    # Net Worth End of Month
    EoM_d = shares_d * price + cash_available_d
    
    df.at[idx,"distribution_d"] = distribution_d
    df.at[idx,"shares_bought_d"] = shares_bought_d
    df.at[idx,"cash_d"] = cash_available_d
    df.at[idx,"shares_d"] = shares_d
    df.at[idx,"EoM_d"] = EoM_d
df["diff"] = (df.EoM_d-df.EoM_m) 

df.plot(x="Date",y=["EoM_m","EoM_d"],title="Net worth")
df.plot(x="Date",y=["diff"],title='Difference')
keepcols = ['Date', 'Close',
      'cash_m', 'distribution_m',
       'feed', 'shares_bought_m', "fees_m", 'shares_m', 'EoM_m', 'cash_d',
       'distribution_d', 'shares_bought_d', "fees_d", 'shares_d', 'EoM_d', 'diff']
df[keepcols].tail(20)

```

follow-up question:

- 2013-2024 is one of the strongest bull markets in history. would we have the same results in a sidways-or bear market?

---

<div class="post-metadata">

### Author: ![Mirager](https://forum.mustachianpost.com/user_avatar/forum.mustachianpost.com/mirager/32/12344_2.png) [@Mirager](https://forum.mustachianpost.com/u/Mirager)
#### Post date: [February 24, 2024, 1:21pm UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/2 "2024-02-24T13:21:29Z")

</div>

Great question and test, which sideways market will you pick? That could be trickier because VT itself is not that old. You could pick something like VTSAX or SPDR for simplicity but these are US-only as you know.

---

<div class="post-metadata">

### Author: ![Brndete](https://forum.mustachianpost.com/user_avatar/forum.mustachianpost.com/brndete/32/12723_2.png) [@Brndete](https://forum.mustachianpost.com/u/Brndete)
#### Post date: [February 24, 2024, 1:51pm UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/3 "2024-02-24T13:51:11Z")

</div>

Nice exercise.

> [@nugget](#):
>
> would we have the same results in a sidways-or bear market?

In a long bear market, the best result would be to not invest at all or go short.

On average, even an expected return of 5% per year for time in the market will beat tax savings of 40% for a 0.5% quarterly dividend. Of course, the time period is too short to make reasonable assumptions of average returns.

Quarterly investment seem valid for convenience or when facing high fees for smaller purchases, though.

---

<div class="post-metadata">

### Author: ![Dr.PI](https://forum.mustachianpost.com/user_avatar/forum.mustachianpost.com/dr.pi/32/5299_2.png) [@Dr.PI](https://forum.mustachianpost.com/u/Dr.PI)
#### Post date: [February 24, 2024, 2:14pm UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/4 "2024-02-24T14:14:45Z")

</div>

> [@nugget](#):
>
> $0.33 transaction fees (IB-style)

Nice exercise and you can throw results away 😆. I think the only reason to wait for dividends before investing is because the transaction fees are significant.

---

<div class="post-metadata">

### Author: ![fittim](https://forum.mustachianpost.com/letter_avatar_proxy/v4/letter/f/3be4f8/32.png) [@fittim](https://forum.mustachianpost.com/u/fittim)
#### Post date: [February 24, 2024, 5:22pm UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/5 "2024-02-24T17:22:02Z")

</div>

Nice, thanks. Very interesting.  
There is another reason for buying only 4 times a year: peace of mind. You have to send money to IB, go change the currency, wait for 2 days to settle, log in again and place the order. And in March the next year you have to fill out a lot of transactions in the tax declaration. So basically, I’m just lazy. But I was thinking about investing more often, as salary and saving rate is increasing.

---

<div class="post-metadata">

### Author: ![Brndete](https://forum.mustachianpost.com/user_avatar/forum.mustachianpost.com/brndete/32/12723_2.png) [@Brndete](https://forum.mustachianpost.com/u/Brndete)
#### Post date: [February 24, 2024, 5:57pm UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/6 "2024-02-24T17:57:43Z")

</div>

Fair enough, that’s what I meant with convenience.  
Hopefully, it won’t change your life whether you end with 257k or 256k in Nuggets example.

---

<div class="post-metadata">

### Author: ![ma0](https://forum.mustachianpost.com/user_avatar/forum.mustachianpost.com/ma0/32/3259_2.png) [@ma0](https://forum.mustachianpost.com/u/ma0)
#### Post date: [February 24, 2024, 6:02pm UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/7 "2024-02-24T18:02:43Z")

</div>

> [@fittim](#):
>
> wait for 2 days to settle

That’s not true. I change and buy immediately.

---

<div class="post-metadata">

### Author: ![fittim](https://forum.mustachianpost.com/letter_avatar_proxy/v4/letter/f/3be4f8/32.png) [@fittim](https://forum.mustachianpost.com/u/fittim)
#### Post date: [February 24, 2024, 6:14pm UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/8 "2024-02-24T18:14:18Z")

</div>

It’s true for me. Not always, but more than 50% of the time. Not sure, why, though.

---

<div class="post-metadata">

### Author: ![yetanothername](https://forum.mustachianpost.com/letter_avatar_proxy/v4/letter/y/f4b2a3/32.png) [@yetanothername](https://forum.mustachianpost.com/u/yetanothername)
#### Post date: [February 25, 2024, 11:54am UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/9 "2024-02-25T11:54:24Z")

</div>

> [@fittim](#):
>
> There is another reason for buying only 4 times a year: peace of mind. You have to send money to IB, go change the currency, wait for 2 days to settle, log in again and place the order.

If you set up a recurring investment and automatic reinvestment of dividends, you have to log in about twice a year to manually invest the leftovers from improvise currency exchange.  
You can invest monthly without exchange fees.

---

<div class="post-metadata">

### Author: ![Dr.PI](https://forum.mustachianpost.com/user_avatar/forum.mustachianpost.com/dr.pi/32/5299_2.png) [@Dr.PI](https://forum.mustachianpost.com/u/Dr.PI)
#### Post date: [February 25, 2024, 10:12pm UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/10 "2024-02-25T22:12:37Z")

</div>

2 posts were merged into an existing topic: [IBKR: Recurring Investments available!](https://forum.mustachianpost.com/t/ibkr-recurring-investments-available/9664/99)

---

<div class="post-metadata">

### Author: ![prodent](https://forum.mustachianpost.com/user_avatar/forum.mustachianpost.com/prodent/32/7167_2.png) [@prodent](https://forum.mustachianpost.com/u/prodent)
#### Post date: [February 26, 2024, 9:25am UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/11 "2024-02-26T09:25:04Z")

</div>

A side note, but my lazy-ish / peace of mind / “I like round numbers” approach is

1. check how much USD I need for a nice round number of VT
2. log in to bank account to transfer (roughly) equivalent CHF amount to IB
3. log in to IB in the afternoon, execute market order, close negative USD balance

1 login to the bank, 1 login to IB, doesn’t take more than a few minutes overall.

I’ve had recurring transfers and investments set up, but still ended up canceling them and performing this “ritual” as soon as the next salary arrived 🙃

---

<div class="post-metadata">

### Author: ![xmj](https://forum.mustachianpost.com/user_avatar/forum.mustachianpost.com/xmj/32/9471_2.png) [@xmj](https://forum.mustachianpost.com/u/xmj)
#### Post date: [February 26, 2024, 9:32am UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/12 "2024-02-26T09:32:05Z")

</div>

Margin vs cash account

---

<div class="post-metadata">

### Author: ![fittim](https://forum.mustachianpost.com/letter_avatar_proxy/v4/letter/f/3be4f8/32.png) [@fittim](https://forum.mustachianpost.com/u/fittim)
#### Post date: [February 26, 2024, 9:42am UTC](https://forum.mustachianpost.com/t/is-it-worth-waiting-for-dividends-with-regular-investments/12013/13 "2024-02-26T09:42:37Z")

</div>

Thanks, yes, I thought that.
