
(I've switched from using ImportHTML to a script I wrote that can pull multiple years of SEC yields from the Vanguard web site)
Observations?
Kevin
Yes, I have one. Rates have gone up.
My initial reaction to the last part of this was "I don't think so", but looking a little more closely it changed to "maybe". It occurred to me that changing the vertical scale to logarithmic should give us better insight into this. I did that, but cut off the months before the Muni MM yields spiked from about 0% to about 0.2-0.25% and stabilized for a bit. This allows us to expand the vertical axis to see only the interesting stuff. This chart starts on 4/16/2016:neurosphere wrote: ↑Sun Dec 02, 2018 4:32 pm-- The swings in muni yields were greater during 2018 compared to about two years ago (which was my main point in the previous post where), HOWEVER those 2017 swings are still fairly large (larger than I remembered) and maybe even the same when described as a "percent of fluctuation" compared to the baseline at the time.
Good idea on using the log scare. I was thinking more in terms of taking the absolute trough to peak difference (of each peak), divided by the average of the trough to peak. But I think using a log scale accomplishes a similar thing and is less work! I agree that maybe the more recent peaks are maybe bigger, but on average the 4 more recent peaks are "in the ballpark" of the prior ones. Would it make a difference to use absolute yields instead of TEY? It's been a long time since my engineering days, but I think not.Kevin M wrote: ↑Sun Dec 02, 2018 6:17 pmMy initial reaction to the last part of this was "I don't think so", but looking a little more closely it changed to "maybe". It occurred to me that changing the vertical scale to logarithmic should give us better insight into this.neurosphere wrote: ↑Sun Dec 02, 2018 4:32 pm-- The swings in muni yields were greater during 2018 compared to about two years ago (which was my main point in the previous post where), HOWEVER those 2017 swings are still fairly large (larger than I remembered) and maybe even the same when described as a "percent of fluctuation" compared to the baseline at the time.
For whatever reason, the rule of thumb doesn't seem to be right for money-market funds; the break-even tax rate is much higher than for intermediate-term bond funds. A possible reason is that investors in moderate tax brackets are unlikely to have enough in money-market funds for the tax issues to matter; it's common for an investor in the 24% bracket (old 28% bracket) to have $100K in an intermediate-term muni fund, but not common to have $100K in cash for long.Kevin M wrote: ↑Fri Dec 14, 2018 1:08 pmI thought some might be interested to see history since SEC yield was first published by Vanguard on 1/4/1993. Here I show Prime MM and Muni MM SEC yield, along with Muni MM taxable-equivalent yield at a federal marginal rate of 25%. I used 25% because this was the pre-2018 grabiner rule of thumb rate at which muni funds should be competitive with taxable funds.
Thanks for the input. It also seems to vary over time at large frequencies, and it's hard to say what's reasonable given the extreme volatility of the muni yield at short frequencies.grabiner wrote: ↑Fri Dec 14, 2018 10:37 pmFor whatever reason, the rule of thumb doesn't seem to be right for money-market funds; the break-even tax rate is much higher than for intermediate-term bond funds. A possible reason is that investors in moderate tax brackets are unlikely to have enough in money-market funds for the tax issues to matter; it's common for an investor in the 24% bracket (old 28% bracket) to have $100K in an intermediate-term muni fund, but not common to have $100K in cash for long.Kevin M wrote: ↑Fri Dec 14, 2018 1:08 pmI thought some might be interested to see history since SEC yield was first published by Vanguard on 1/4/1993. Here I show Prime MM and Muni MM SEC yield, along with Muni MM taxable-equivalent yield at a federal marginal rate of 25%. I used 25% because this was the pre-2018 grabiner rule of thumb rate at which muni funds should be competitive with taxable funds.
At 32% bracket roughly 2.35 tey. Not sure its worth switching to prime?UpperNwGuy wrote: ↑Thu Dec 27, 2018 4:59 pmWe're up to 1.60% on the Municipal Money Market as of December 27. For comparison the Prime Money Market is at 2.41%. Seems to me that Prime is the better deal for most folk.
Muni MM had a little dip in December: it was at 1.60% as far back as 11/26, dropped to 1.57% from 12/12 through 12/20, now up to 1.61%. During that same period, Prime MM climbed from 2.29% on 11/26 to 2.41% today.UpperNwGuy wrote: ↑Thu Dec 27, 2018 4:59 pmWe're up to 1.60% on the Municipal Money Market as of December 27. For comparison the Prime Money Market is at 2.41%. Seems to me that Prime is the better deal for most folk.
I assume your script works on Google Sheets?
Correct.
I don't mind just sharing the script code. This only works for Vanguard mutual funds. The URL is slightly different for Vanguard ETFs, but it should be fairly easy to modify for Vanguard ETFs--perhaps by adding an optional flag parameter (e.g., missing or 0 for mutual funds, 1 for ETFs). I wrote this a few years ago, and haven't done any scripting since, so, not sure I'd want to bother.GrowthSeeker wrote: ↑Thu Dec 27, 2018 9:08 pmCould you give a hint as to what function(s) your script uses? Thanks.
(apologies for going off topic)
Code: Select all
function getDateStringPairs(sDateStart, sDateEnd) {
// Input parameters are start-date and end-date STRINGS.
// Return 2-dim array of date-string pairs, formatted for concatenating to URL.
// One formatted date-string pair for each year or partial year.
var d1 = new Date(sDateStart);
var d2 = new Date(sDateEnd);
var oneDay=1000*60*60*24;
var dDiff = (d2 - d1) / oneDay; //std year: lastDay - firstDay = 364.
var p = Math.ceil(dDiff / 365); // 364/365 = 1 (std year); 365/365 = 1 (leap year); 366/365 = 2.
var aDates = [];
aDates.push(d1);
aDates.push(d2);
//if more than one page, fill date array with pairs of dates one year apart,
//each date-pair starts with date one day after second date in previous pair
if (p > 1) {
var lastDate = aDates.pop() //pop last date off stack and store
for (i = 0; i < p-1; i++) {
//set new date = last date on stack, then add 365 days to it and push it on stack
var addDate = new Date(aDates[aDates.length - 1].getTime());
addDate.setDate(addDate.getDate() + 364);
//if ( addDate.getTime() >= lastDate.getTime() ) break; // handle corner cases if necessary
aDates.push(addDate);
//now do same but add 1 day; this will be first date of next date-pair
var addDate = new Date(aDates[aDates.length - 1].getTime());
addDate.setDate(addDate.getDate() + 1);
aDates.push(addDate);
}
}
//push last date back onto stack
aDates.push(lastDate);
//pull each date pair from bottom of stack, format date strings
//and push date pair string into array
var aDatePairs = []; // 2-dim array to hold date pairs
while (aDates[0] != null) {
var aDatePair = []; // 1-dim array to hold one date pair
for (var i = 0; i < 2; i++) { //once for each date in date pair
var date = aDates.shift(); //pull date off bottom of stack
var m = date.getMonth() + 1;
var d = date.getDate();
var y = date.getFullYear();
aDatePair.push(m + '%2F' + d + '%2F' + y);
} // now we have one date pair in aDatePair
aDatePairs.push(aDatePair); // push aDatePair into next row of aDatePairs
}
return aDatePairs;
}
Code: Select all
/**
* Retrieve price and yield history for a Vanguard mutual fund.
*
* @param {string} fund_id ID of Vanguard fund.
* @param {date} start_date First date for which to retrieve price and yield.
* @param {date} end_date Last date for which to retrieve price and yield.
* @return Vanguard fund date, price, yield as strings returned from VG web.
* @customfunction
*/
function getVanguardPriceYield(fund_id, start_date, end_date) {
// Works with either string or numeric fund ID, and dates as dates or strings.
// Set default parameters for debugging.
var fundID = (fund_id ? fund_id : "0084");
var sStartDate = (start_date ? start_date : "12/28/1992");
var sEndDate = (end_date ? end_date : "01/04/1993");
// fund ID fund name # of holdings
// --------- -------------------------------------- -------------
// 0035/0535 Int Term Treasury (VFITX/VFIUX) 80
// 0084/0584 TBM (VBMFX/VBTLX) 6979
// 5314 Int-Term Bond Index (Adm) 1600
// 1946 Int-Term Corp Bond Index (Adm) 1493
// 0071/0571 Int-Term Inv-Grade (VFICX/VFIDX) 1850
// 0028/0568 Long-Term Inv-Grade (VWESX/VWETX) 746
// 0029/0529 High-Yield Corp (VWEHX/VWEAX) 394
// 0100/5100 CA Int Term Tax-Exempt (VCAIX/VCADX) 1505
// 0075/0575 CA Long-Term Tax-Exempt (VCITX/VCLAX) 592
// 0042 Int-Term Tax-Exempt (Inv) 4341
// 0043 Long-Term Tax-Exempt (Inv) 1195
// 0044 High-Yield Tax-Exempt (Inv) 1066
// 0041 Short-term Tax-Exempt (Inv) 1626
// 0031/0531 Limited-Term Tax-Exempt (Inv/Adm) 2652
// Get array of start date, end date for each year/page of data
var aDateStringPairs = getDateStringPairs(sStartDate, sEndDate);
//URL with everything except start date and end date
var urlBase = "https://personal.vanguard.com/us/funds/tools/pricehistorysearch?radio=1&results=get&FundId="
+ fundID + "&radiobutton2=1";
var aValues = []; // array to hold values from all pages
// loop through Vanguard web pages of prices/yields, one page per pair of dates;
for (var p in aDateStringPairs) {
//add dates to URL and retrieve data
var url = urlBase + "&beginDate=" + aDateStringPairs[p][0] + "&endDate=" + aDateStringPairs[p][1];
var sContent = UrlFetchApp.fetch(url).getContentText();
// Get data rows that look like one of the following (2nd one is for missing SEC yield prior to 1993):
//<tr class="wr"><td align="left">01/04/2010</td><td>$11.03</td><td class="nr">1.46%</td></tr>
//<tr class="wr"><td align="left">12/28/1992</td><td>$9.87</td><td class="nr">—</td></tr>
var aDataTable = sContent.match(/<tr.*\d\/.*\$\d.*[%;]<\/td><\/tr>/g);
// Loop through html rows, extract data values for each row into array,
// and push into array returned by function.
for (var i in aDataTable) {
aValues.push(aDataTable[i].replace("—","").match(/\$?[\d]+[\d\/\.\$\%]*/g));
Logger.log(aValues[i]);
}
}
//insert prices/yields into sheet PRICE_YIELD
return aValues;
}
Wow, thank you, Kevin. I will check this out when I get home. You’re the best!
That's what I'm thinking, too. The gap between money market rates always seems to be greater than similar gaps on the bond side.am wrote: ↑Thu Dec 27, 2018 7:58 pmAt 32% bracket roughly 2.35 tey. Not sure its worth switching to prime?UpperNwGuy wrote: ↑Thu Dec 27, 2018 4:59 pmWe're up to 1.60% on the Municipal Money Market as of December 27. For comparison the Prime Money Market is at 2.41%. Seems to me that Prime is the better deal for most folk.
FYI, I have a MacBook Pro (MacOS Mojave Version 10.14.2) with Safari and Chrome. I've been running the spreadsheet on Safari. I copied my URL from Safari to Chrome. It worked without crashing. Graphs displayed as expected. I'm using Chrome Version 71.0.3578.98 (Official Build) (64-bit).Kevin M wrote: ↑Sun Jan 13, 2019 2:43 pmI received a PM saying that the Google spreadsheet I shared that uses ImportHTML to get the SEC yields was crashing. I checked, and it was working fine for me. A subsequent PM indicated that it was crashing Chrome, but not FireFox (I have been using mostly Firefox lately). I verified that it is crashing the Chrome browser for me too.
If we don't pay state taxes, then Prime MM is the best gig?Kevin M wrote: ↑Sun Jan 13, 2019 2:43 pmI received a PM saying that the Google spreadsheet I shared that uses ImportHTML to get the SEC yields was crashing. I checked, and it was working fine for me. A subsequent PM indicated that it was crashing Chrome, but not FireFox (I have been using mostly Firefox lately). I verified that it is crashing the Chrome browser for me too.
I figured out that it is the chart that is causing Chrome to crash. After deleting the chart, it doesn't crash. Of course the chart is the primary output, so that's a problem. I'll continue to investigate (e.g., reinstall Chrome, delete extensions) as I have time, but if anyone else figures out how to fix the problem in Chrome, please let us know.
I've made a few changes to the sheet, and added some notes. Here again is the link to the spreadsheet, which is shared as view only, so make a copy if you want to edit (e.g., to enter your marginal tax rates, switch out CA MM fund for you own state fund, etc.): https://docs.google.com/spreadsheets/d/ ... sp=sharing.
Here is the latest chart showing about the last year (as always, TEYs are for my expected 2019 marginal tax rates of 27% fed and 8% state):
Treasury MM continues to be the best choice for me at 2.30%, which is 2.58% TEY for me. One can do a little better with a 1-month Treasury, at about 2.4% as of Friday.
Kevin
Most likely--not paying state taxes makes it easier to compare, but you still need to factor in your federal tax rate to see if the muni MM is better or not. I just quickly modeled it and, as of now, VMMXX is the best for folks in states with no income tax at any tax rate up to 35%. This could change as rates change, of course.WanderingDoc wrote: ↑Sun Jan 13, 2019 5:00 pm
If we don't pay state taxes, then Prime MM is the best gig?
Does this calculation include the possibility of paying the 3.8% NIIT?deskjockey wrote: ↑Mon Jan 14, 2019 2:28 amMost likely--not paying state taxes makes it easier to compare, but you still need to factor in your federal tax rate to see if the muni MM is better or not. I just quickly modeled it and, as of now, VMMXX is the best for folks in states with no income tax at any tax rate up to 35%. This could change as rates change, of course.WanderingDoc wrote: ↑Sun Jan 13, 2019 5:00 pm
If we don't pay state taxes, then Prime MM is the best gig?
Yes, it does. If you live in a state without an income tax, only the top-most bracket really benefits from the muni MM fund with rates as they stand today (well, as they stood Friday). That can change, as the graph shows.Random Poster wrote: ↑Mon Jan 14, 2019 9:46 am
Does this calculation include the possibility of paying the 3.8% NIIT?
RetiredArtist wrote: ↑Mon Jan 14, 2019 1:48 pmKevin, I have read all your posts, & have learned a lot about bonds & bond funds. Thank you!
Children's author James Marshall could write a book in his Stupeds series about me- "The Stupeds Learn Investing".
My questions are tax related (so I can use your spreadsheet correctly):
Your spreadsheet shows a federal marginal tax rate of 27%. On charts I find online (CNBC, Forbes), the 2019 rates jump from 24% to 32%. Is your 27% federal rate a blend you that calculated, taking into account income above the 24% rate?
For that matter, when referring to the tax rate charts, do I use Adjusted Gross Income as "income"?
deskjockey wrote: ↑Mon Jan 14, 2019 3:19 pmUse whatever marginal rate applies to you. In my case, it's 24% plus the NIIT (3.8%), which brings my marginal rate to 27.8%.
I must be missing something.deskjockey wrote: ↑Mon Jan 14, 2019 11:15 amYes, it does. If you live in a state without an income tax, only the top-most bracket really benefits from the muni MM fund with rates as they stand today (well, as they stood Friday). That can change, as the graph shows.Random Poster wrote: ↑Mon Jan 14, 2019 9:46 am
Does this calculation include the possibility of paying the 3.8% NIIT?
You need to extend the formulas for Prime MM to the end of the data series to get the graphic to display everything. As it is currently shared, the formulas only go to row 254, but they need to go to row 260 (at a minimum) or 266 (best). Once you do that, it should populate properly. Bottom line, go by the TEY on the spreadsheet.Random Poster wrote: ↑Mon Jan 14, 2019 4:51 pmdeskjockey wrote: ↑Mon Jan 14, 2019 3:19 pmUse whatever marginal rate applies to you. In my case, it's 24% plus the NIIT (3.8%), which brings my marginal rate to 27.8%.I must be missing something.deskjockey wrote: ↑Mon Jan 14, 2019 11:15 amYes, it does. If you live in a state without an income tax, only the top-most bracket really benefits from the muni MM fund with rates as they stand today (well, as they stood Friday). That can change, as the graph shows.Random Poster wrote: ↑Mon Jan 14, 2019 9:46 am
Does this calculation include the possibility of paying the 3.8% NIIT?
If I put 35.8% as the marginal federal tax rate (and 0 as the state tax rate), due to being in the 32% federal tax bracket plus being subject to the 3.8% NIIT, the yield on the Muni MM looks to be higher than the Prime MM on the graph, but the TEY for the Prime is 2.45 compared to 2.34 for the Muni.
Okay. Thanks.deskjockey wrote: ↑Mon Jan 14, 2019 4:59 pmYou need to extend the formulas for Prime MM to the end of the data series to get the graphic to display everything. As it is currently shared, the formulas only go to row 254, but they need to go to row 260 (at a minimum) or 266 (best). Once you do that, it should populate properly. Bottom line, go by the TEY on the spreadsheet.
The 27% marginal fed rate is due to an extra dollar of interest being taxed at 12%, plus pushing an extra dollar of qualified dividend (QD) or long-term capital gain (LTCG) income from being taxed at 0% to 15%. Thus, marginal interest income is effectively taxed at 12% + 15% = 27%.RetiredArtist wrote: ↑Mon Jan 14, 2019 1:48 pmYour spreadsheet shows a federal marginal tax rate of 27%. On charts I find online (CNBC, Forbes), the 2019 rates jump from 24% to 32%. Is your 27% federal rate a blend you that calculated, taking into account income above the 24% rate?
For that matter, when referring to the tax rate charts, do I use Adjusted Gross Income as "income"?
Fixed.deskjockey wrote: ↑Mon Jan 14, 2019 4:59 pmYou need to extend the formulas for Prime MM to the end of the data series to get the graphic to display everything. As it is currently shared, the formulas only go to row 254, but they need to go to row 260 (at a minimum) or 266 (best). Once you do that, it should populate properly. Bottom line, go by the TEY on the spreadsheet.
Assuming you are talking about this spreadsheet, https://docs.google.com/spreadsheets/d/ ... 1074987830, the data is loaded automatically. The catch is that if you set the Days to load value in cell B1 too big, it won't load the most recent data. Last time I checked, I had set it to something like 386, and it was still loading the most recent data, but now the largest value you can set it to is 378 (to get latest data, which is 3/13/2019), and that gives you data since 3/1/2018.mikewhite808 wrote: ↑Thu Mar 14, 2019 6:04 amKevin,
Thanks for sharing your spreadsheet. I wanted to update it with the current data as of today. Where did you get the data from? I'd be more than happy do to the update and share it back (or update the main one) as you already did all the hard work.
Mike
Based on this observation, I changed cell B1, Days to load, to this formula: =365+DAY(today())-1. If my conclusion is correct, this should usually, if not always, return the maximum days of data containing the latest available yields that can be acquired with this particular technique.Kevin M wrote: ↑Thu Mar 14, 2019 3:21 pmAssuming you are talking about this spreadsheet, https://docs.google.com/spreadsheets/d/ ... 1074987830, the data is loaded automatically. The catch is that if you set the Days to load value in cell B1 too big, it won't load the most recent data.<snip> ... but now the largest value you can set it to is 378 (to get latest data, which is 3/13/2019), and that gives you data since 3/1/2018.
<snip> Note that 365 + 13 = 378 (latest data available is for the 13th day of March, and 378 gets us data from the first day of March a year ago), so it appears that the largest value that will get the latest data is 365 plus the latest day of the month for which data is available.<snip>
Marginal tax rates can get more complicated than that for folks who have long term capital gains (LTCGs) and qualified dividends (QDI) income in addition to ordinary income (including treasury money market interest). Additional ordinary income can push one over 0% tax bracket for LTCGs & QDI. For some MFJ person at or near the top of 12% bracket of taxable income ($78,950 in 2019), their LTCGs and QDI would be taxed at 0%. If treasury MM interest pushes them over to the 22% bracket, then their effective marginal tax would be 27% (15% for the LTCGs+QDI that got pushed into the 22% tax bracket + 12 % for the treasury mm interest that pushed out the LTCGs+QDI). There is a chart posted by some one that clearly shows that the lower tax brackets are filled with ordinary income first and then comes LTCGs and QDIs which still get the preferential tax rates.deskjockey wrote: ↑Mon Jan 14, 2019 3:19 pmRetiredArtist wrote: ↑Mon Jan 14, 2019 1:48 pmKevin, I have read all your posts, & have learned a lot about bonds & bond funds. Thank you!
Children's author James Marshall could write a book in his Stupeds series about me- "The Stupeds Learn Investing".
My questions are tax related (so I can use your spreadsheet correctly):
Your spreadsheet shows a federal marginal tax rate of 27%. On charts I find online (CNBC, Forbes), the 2019 rates jump from 24% to 32%. Is your 27% federal rate a blend you that calculated, taking into account income above the 24% rate?
For that matter, when referring to the tax rate charts, do I use Adjusted Gross Income as "income"?
I'm not Kevin, but I can help you with a couple of questions--yes, the tax rates now go from 24% to 32%. Use whatever marginal rate applies to you. In my case, it's 24% plus the NIIT (3.8%), which brings my marginal rate to 27.8%.
For the tax rate charts, use AGI minus your deductions (standard or itemized) to figure out what your marginal rate is.
Correct. I explained it upthread in this post.boglesmind wrote: ↑Fri Mar 15, 2019 8:31 pmMarginal tax rates can get more complicated than that for folks who have long term capital gains (LTCGs) and qualified dividends (QDI) income in addition to ordinary income (including treasury money market interest). Additional ordinary income can push one over 0% tax bracket for LTCGs & QDI. For some MFJ person at or near the top of 12% bracket of taxable income ($78,950 in 2019), their LTCGs and QDI would be taxed at 0%. If treasury MM interest pushes them over to the 22% bracket, then their effective marginal tax would be 27% (15% for the LTCGs+QDI that got pushed into the 22% tax bracket + 12 % for the treasury mm interest that pushed out the LTCGs+QDI). There is a chart posted by some one that clearly shows that the lower tax brackets are filled with ordinary income first and then comes LTCGs and QDIs which still get the preferential tax rates.deskjockey wrote: ↑Mon Jan 14, 2019 3:19 pmRetiredArtist wrote: ↑Mon Jan 14, 2019 1:48 pmKevin, I have read all your posts, & have learned a lot about bonds & bond funds. Thank you!
Children's author James Marshall could write a book in his Stupeds series about me- "The Stupeds Learn Investing".
My questions are tax related (so I can use your spreadsheet correctly):
Your spreadsheet shows a federal marginal tax rate of 27%. On charts I find online (CNBC, Forbes), the 2019 rates jump from 24% to 32%. Is your 27% federal rate a blend you that calculated, taking into account income above the 24% rate?
For that matter, when referring to the tax rate charts, do I use Adjusted Gross Income as "income"?
I'm not Kevin, but I can help you with a couple of questions--yes, the tax rates now go from 24% to 32%. Use whatever marginal rate applies to you. In my case, it's 24% plus the NIIT (3.8%), which brings my marginal rate to 27.8%.
For the tax rate charts, use AGI minus your deductions (standard or itemized) to figure out what your marginal rate is.
Boglesmind
Why are you specifically mentioning Treasury MM as opposed to other MM funds that contribute ordinary income. I'm curious as I use Treasury MM.boglesmind wrote: ↑Fri Mar 15, 2019 8:31 pmMarginal tax rates can get more complicated than that for folks who have long term capital gains (LTCGs) and qualified dividends (QDI) income in addition to ordinary income (including treasury money market interest). Additional ordinary income can push one over 0% tax bracket for LTCGs & QDI. For some MFJ person at or near the top of 12% bracket of taxable income ($78,950 in 2019), their LTCGs and QDI would be taxed at 0%. If treasury MM interest pushes them over to the 22% bracket, then their effective marginal tax would be 27% (15% for the LTCGs+QDI that got pushed into the 22% tax bracket + 12 % for the treasury mm interest that pushed out the LTCGs+QDI). There is a chart posted by some one that clearly shows that the lower tax brackets are filled with ordinary income first and then comes LTCGs and QDIs which still get the preferential tax rates.deskjockey wrote: ↑Mon Jan 14, 2019 3:19 pmRetiredArtist wrote: ↑Mon Jan 14, 2019 1:48 pmKevin, I have read all your posts, & have learned a lot about bonds & bond funds. Thank you!
Children's author James Marshall could write a book in his Stupeds series about me- "The Stupeds Learn Investing".
My questions are tax related (so I can use your spreadsheet correctly):
Your spreadsheet shows a federal marginal tax rate of 27%. On charts I find online (CNBC, Forbes), the 2019 rates jump from 24% to 32%. Is your 27% federal rate a blend you that calculated, taking into account income above the 24% rate?
For that matter, when referring to the tax rate charts, do I use Adjusted Gross Income as "income"?
I'm not Kevin, but I can help you with a couple of questions--yes, the tax rates now go from 24% to 32%. Use whatever marginal rate applies to you. In my case, it's 24% plus the NIIT (3.8%), which brings my marginal rate to 27.8%.
For the tax rate charts, use AGI minus your deductions (standard or itemized) to figure out what your marginal rate is.
Boglesmind
Adding it should be easy enough, but why don't you share yours in the meantime, so people who are interested can use it until I get around to it.
Because Treasury MM income is 100% exempt from state taxes. For some of us, including me, it is the highest yielding MM fund on a taxable-equivalent (or after-tax) basis. That's why I include it in the spreadsheet.catalina355 wrote: ↑Sat Mar 16, 2019 5:02 pmWhy are you specifically mentioning Treasury MM as opposed to other MM funds that contribute ordinary income. I'm curious as I use Treasury MM.
Yes, that true for me as well. I was quoting Boglesmind. He seemed to imply something special about Treasury MM.Kevin M wrote: ↑Sat Mar 16, 2019 5:09 pmBecause Treasury MM income is 100% exempt from state taxes. For some of us, including me, it is the highest yielding MM fund on a taxable-equivalent (or after-tax) basis. That's why I include it in the spreadsheet.catalina355 wrote: ↑Sat Mar 16, 2019 5:02 pmWhy are you specifically mentioning Treasury MM as opposed to other MM funds that contribute ordinary income. I'm curious as I use Treasury MM.
Kevin
Didn't notice it before. Thanks.Kevin M wrote: ↑Sat Mar 16, 2019 4:54 pmCorrect. I explained it upthread in this post.boglesmind wrote: ↑Fri Mar 15, 2019 8:31 pmMarginal tax rates can get more complicated than that for folks who have long term capital gains (LTCGs) and qualified dividends (QDI) income in addition to ordinary income (including treasury money market interest). Additional ordinary income can push one over 0% tax bracket for LTCGs & QDI. For some MFJ person at or near the top of 12% bracket of taxable income ($78,950 in 2019), their LTCGs and QDI would be taxed at 0%. If treasury MM interest pushes them over to the 22% bracket, then their effective marginal tax would be 27% (15% for the LTCGs+QDI that got pushed into the 22% tax bracket + 12 % for the treasury mm interest that pushed out the LTCGs+QDI). There is a chart posted by some one that clearly shows that the lower tax brackets are filled with ordinary income first and then comes LTCGs and QDIs which still get the preferential tax rates.deskjockey wrote: ↑Mon Jan 14, 2019 3:19 pmRetiredArtist wrote: ↑Mon Jan 14, 2019 1:48 pmKevin, I have read all your posts, & have learned a lot about bonds & bond funds. Thank you!
Children's author James Marshall could write a book in his Stupeds series about me- "The Stupeds Learn Investing".
My questions are tax related (so I can use your spreadsheet correctly):
Your spreadsheet shows a federal marginal tax rate of 27%. On charts I find online (CNBC, Forbes), the 2019 rates jump from 24% to 32%. Is your 27% federal rate a blend you that calculated, taking into account income above the 24% rate?
For that matter, when referring to the tax rate charts, do I use Adjusted Gross Income as "income"?
I'm not Kevin, but I can help you with a couple of questions--yes, the tax rates now go from 24% to 32%. Use whatever marginal rate applies to you. In my case, it's 24% plus the NIIT (3.8%), which brings my marginal rate to 27.8%.
For the tax rate charts, use AGI minus your deductions (standard or itemized) to figure out what your marginal rate is.
Boglesmind
Kevin
Oh, I didn't mean to pick on Treasury MM or imply it is something special. Just pointing out that it is taxed as ordinary income at the Federal level and ordinary income can have a different effective marginal rate that what one finds in tax rate tables. Kevin M did point this our earlier in the thread and I missed it.catalina355 wrote: ↑Sat Mar 16, 2019 5:02 pmWhy are you specifically mentioning Treasury MM as opposed to other MM funds that contribute ordinary income. I'm curious as I use Treasury MM.boglesmind wrote: ↑Fri Mar 15, 2019 8:31 pmMarginal tax rates can get more complicated than that for folks who have long term capital gains (LTCGs) and qualified dividends (QDI) income in addition to ordinary income (including treasury money market interest). Additional ordinary income can push one over 0% tax bracket for LTCGs & QDI. For some MFJ person at or near the top of 12% bracket of taxable income ($78,950 in 2019), their LTCGs and QDI would be taxed at 0%. If treasury MM interest pushes them over to the 22% bracket, then their effective marginal tax would be 27% (15% for the LTCGs+QDI that got pushed into the 22% tax bracket + 12 % for the treasury mm interest that pushed out the LTCGs+QDI). There is a chart posted by some one that clearly shows that the lower tax brackets are filled with ordinary income first and then comes LTCGs and QDIs which still get the preferential tax rates.deskjockey wrote: ↑Mon Jan 14, 2019 3:19 pmRetiredArtist wrote: ↑Mon Jan 14, 2019 1:48 pmKevin, I have read all your posts, & have learned a lot about bonds & bond funds. Thank you!
Children's author James Marshall could write a book in his Stupeds series about me- "The Stupeds Learn Investing".
My questions are tax related (so I can use your spreadsheet correctly):
Your spreadsheet shows a federal marginal tax rate of 27%. On charts I find online (CNBC, Forbes), the 2019 rates jump from 24% to 32%. Is your 27% federal rate a blend you that calculated, taking into account income above the 24% rate?
For that matter, when referring to the tax rate charts, do I use Adjusted Gross Income as "income"?
I'm not Kevin, but I can help you with a couple of questions--yes, the tax rates now go from 24% to 32%. Use whatever marginal rate applies to you. In my case, it's 24% plus the NIIT (3.8%), which brings my marginal rate to 27.8%.
For the tax rate charts, use AGI minus your deductions (standard or itemized) to figure out what your marginal rate is.
Boglesmind
OK. Thank you. I have read Kevin M's posts on this topic and they were very helpful.boglesmind wrote: ↑Sat Mar 16, 2019 9:27 pmOh, I didn't mean to pick on Treasury MM or imply it is something special. Just pointing out that it is taxed as ordinary income at the Federal level and ordinary income can have a different effective marginal rate that what one finds in tax rate tables. Kevin M did point this our earlier in the thread and I missed it.catalina355 wrote: ↑Sat Mar 16, 2019 5:02 pmWhy are you specifically mentioning Treasury MM as opposed to other MM funds that contribute ordinary income. I'm curious as I use Treasury MM.boglesmind wrote: ↑Fri Mar 15, 2019 8:31 pmMarginal tax rates can get more complicated than that for folks who have long term capital gains (LTCGs) and qualified dividends (QDI) income in addition to ordinary income (including treasury money market interest). Additional ordinary income can push one over 0% tax bracket for LTCGs & QDI. For some MFJ person at or near the top of 12% bracket of taxable income ($78,950 in 2019), their LTCGs and QDI would be taxed at 0%. If treasury MM interest pushes them over to the 22% bracket, then their effective marginal tax would be 27% (15% for the LTCGs+QDI that got pushed into the 22% tax bracket + 12 % for the treasury mm interest that pushed out the LTCGs+QDI). There is a chart posted by some one that clearly shows that the lower tax brackets are filled with ordinary income first and then comes LTCGs and QDIs which still get the preferential tax rates.deskjockey wrote: ↑Mon Jan 14, 2019 3:19 pmRetiredArtist wrote: ↑Mon Jan 14, 2019 1:48 pmKevin, I have read all your posts, & have learned a lot about bonds & bond funds. Thank you!
Children's author James Marshall could write a book in his Stupeds series about me- "The Stupeds Learn Investing".
My questions are tax related (so I can use your spreadsheet correctly):
Your spreadsheet shows a federal marginal tax rate of 27%. On charts I find online (CNBC, Forbes), the 2019 rates jump from 24% to 32%. Is your 27% federal rate a blend you that calculated, taking into account income above the 24% rate?
For that matter, when referring to the tax rate charts, do I use Adjusted Gross Income as "income"?
I'm not Kevin, but I can help you with a couple of questions--yes, the tax rates now go from 24% to 32%. Use whatever marginal rate applies to you. In my case, it's 24% plus the NIIT (3.8%), which brings my marginal rate to 27.8%.
For the tax rate charts, use AGI minus your deductions (standard or itemized) to figure out what your marginal rate is.
Boglesmind
Boglesmind.
Schwab has a good explanation of the seasonal and other variabilities in Muni Money Market yields.Startled Cat wrote: ↑Sat Mar 16, 2019 12:05 amCool spreadsheet.
I recently switched to VCTXX from VUSXX for a slight TEY increase, but now it's a dead heat per the spreadsheet:
Vanguard CA Muni Money Market 2.82%
Vanguard Muni Money Market 2.82%
Vanguard Treasury MM 2.83%
I'll probably switch back to VUSXX if the muni fund yields keep dropping. I don't think I'll ever understand the market inefficiency that leads to muni money market yields swinging around the way they do.
VERY nice article! Thanks for sharing. I had been looking for such a concise summary or confirmation for quite a while and failed to find a good one. We have been debating/discussing the swings on this board. "We" came to the conclusion that the swings in rates must ("obviously") be due to supply and demand, but I wondered why the effect was so big and why it's not arbitraged away. I suppose because the timing of the swings is variable and hard to predict. And perhaps, there is likely a ton of arbitrage going on, which may actually be limiting how large these swings are, or influencing the timing itself.gjlynch17 wrote: ↑Sun Mar 17, 2019 8:37 amSchwab has a good explanation of the seasonal and other variabilities in Muni Money Market yields.Startled Cat wrote: ↑Sat Mar 16, 2019 12:05 amCool spreadsheet.
I recently switched to VCTXX from VUSXX for a slight TEY increase, but now it's a dead heat per the spreadsheet:
Vanguard CA Muni Money Market 2.82%
Vanguard Muni Money Market 2.82%
Vanguard Treasury MM 2.83%
I'll probably switch back to VUSXX if the muni fund yields keep dropping. I don't think I'll ever understand the market inefficiency that leads to muni money market yields swinging around the way they do.
https://www.schwabfunds.com/public/file/P-11075047
Ditto!neurosphere wrote: ↑Sun Mar 17, 2019 9:31 amVERY nice article! Thanks for sharing.<snip>gjlynch17 wrote: ↑Sun Mar 17, 2019 8:37 amSchwab has a good explanation of the seasonal and other variabilities in Muni Money Market yields.
https://www.schwabfunds.com/public/file/P-11075047
Today is last day of March (day = 31), and the spreadsheet is working fine with days to load set to 395 using the formula: Loads data from 3/1/2018 through 3/29/2019 (Friday = last close value available).Kevin M wrote: ↑Thu Mar 14, 2019 4:37 pmBased on this observation, I changed cell B1, Days to load, to this formula: =365+DAY(today())-1. If my conclusion is correct, this should usually, if not always, return the maximum days of data containing the latest available yields that can be acquired with this particular technique.Kevin M wrote: ↑Thu Mar 14, 2019 3:21 pmAssuming you are talking about this spreadsheet, https://docs.google.com/spreadsheets/d/ ... 1074987830, the data is loaded automatically. The catch is that if you set the Days to load value in cell B1 too big, it won't load the most recent data.<snip> ... but now the largest value you can set it to is 378 (to get latest data, which is 3/13/2019), and that gives you data since 3/1/2018.
<snip> Note that 365 + 13 = 378 (latest data available is for the 13th day of March, and 378 gets us data from the first day of March a year ago), so it appears that the largest value that will get the latest data is 365 plus the latest day of the month for which data is available.<snip>
If anyone notices it not working as expected, please let me know on the day you notice it, and I'll adjust it accordingly. The main objective is to get the latest yields, and the secondary objective is to get as much data as possible, which will be a minimum of one year, and should be a maximum of one year and one month.
Kevin