IWDA+EIMI+WSML portfolio weight allocation: my personal criteria

laughter

New member
Hello all, That's a rather long post to show my criteria on how to I define the weights for my 3 ETF portfolio: IWDA, EIMI and WSML. In this post I give some background information by briefly talking about the two main ETF portfolios for long-term passive investors: FTSE Global All-Cap ETF and IWDA+EIMI+WSML (I don't incorporate bonds, I only talk about the stock part). Highlighting that both are great, that the first aims at simplicity, while the second covers a bigger number of constituents and gives more flexibility but involves setting weights and rebalancing. To, then, talk about how allocation weights for the latter case can be calculated. And, finally, showing how I determine the allocation of the different ETFs in my personal case (portfolio composed of IWDA+EIMI+WSML) and how I automated the computation of those weights.

Note: The weighting criterion provided in this post by no means is the best, it is just my personal criterion. As I explain there are several criteria that can be used and each has its reasons and assumptions to be used.

Common ETF Portfolios

In multiple posts I have seen people with a long-term portfolio composed of three ETFs: IWDA, EIMI and WSML. This is a great long-term portfolio following Bogle's strategy, which can be summarized by the following quote: "Don't look for the needle in the haystack. Just buy the haystack!". However, Bogle also advocated for simplicity and, for this reason, other simpler portfolios such as a portfolio with only FTSE Global All-Cap ETF may be preferred for long-term passive investors.

Ideas behind those portfolios

The goal of strategies such as the above is to invest in all areas and sectors of the world economy: large companies, medium-sized companies, small companies (in all developed and undeveloped countries) while at the same time having low expenses. As an analogy to his idea, you can think of an investor doing this as betting that the world economy is going to grow over the next few years.

However, to follow such a strategy, there is one important concept: the weight in your portfolio of each of these different areas and sectors of the economy should replicate the percentages that those sectors represent of the economy, thus having a portfolio that is an accurate representation of the overall economy. Adding a significantly higher percentage to one of these sectors would imply betting on that specific sector of the economy. For example, if you strongly believe that emerging markets will outperform all others, you might allocate a higher percentage to them, adding more risk to your portfolio but also potentially greater reward in the future.

Problems and advantages of simple vs more complex portfolios

Those percentages may change across time, and thus, your portfolio may need to be rebalanced. ETFs such as FTSE Global All-Cap have become so popular between passive investors because you do not need to rebalance the weights of different sectors by yourself, that's automatically done. However, those investing in IWDA, EIMI and WSML, will need to manually rebalance the weights of developed, non-developed economies and small caps.

Even so, a portfolio such as the latter also has advantages such as the fact of covering a greater number of companies (bigger number of constituents), giving greater diversification, and the fact of giving certain flexibility when establishing the weight of small caps, developed economies and emerging economies in our portfolio.

Defining weights

Those investing in long term portfolios composed of multiple ETFs representing the world economy will need to decide how much to allocate to each portion of the market and, also according to the criteria used, they will need to rebalance the portfolio once these weights change.

There exist different criteria to define those weights, for example one could calculate the contribution of each area or sector to the world GDP and use that as a weighting criterion. Or one could take the aggregate market capitalization of each area or sector and use that as a weighting criterion.

For those interested in different weighting criteria, I recommend reading this short article.

My allocation criterion

As I said, there are different criteria to define weights. In my case for example I prefer IWDA, EIMI and WSML. Mainly because from my point of view the allocation in small caps from FTSE Global All-Cap was a bit low and this allocation allows for a bigger level of flexibility on defining weights (furthermore having a higher number of constituents is a plus from my point of view). Furthermore, I also have a preference for a slightly different criterion than the ones previously mentioned. This criterion involves assuming that IWDA, EIMI and WSML are good representations of their respective areas of the economy and that each ETF’s market capitalization could be used as a weighting measure.

For this reason, I extracted the market capitalization of each of those ETFs from their information PDF (IWDA, EIMI and WSML) and calculated their allocations based on those market capitalizations.

Automatizing my allocation criterion

The calculation of those percentages is a pretty simple and repetitive task. The previously indicated URLs always lead to the most updated version of the information PDF and the information PDF always follows the same structure. Hence, I created some code to systematically extract this information as well as the ETF price in order to know how to allocate a portfolio composed of those three ETFs using the market cap criteria. Below you can find R and Python code to automatically extract this information.

R version

Code:
library(pdftools)
library(rvest)
library(stringr)

#' Extracts iShares ETFs' number of constituents and market capitalization from 
#' its info PDF
#' 
#' @param pdfLocation url or path to the ishares ETF info PDF.
#' @return A data.frame containing the ETFs' Market cap and number of Constituents
#' 
#' @example 
#' extractPDFInfo('https://www.msci.com/documents/10199/178e6643-6ae6-47b9-82be-e1fc565ededb')
extractPDFInfo
 
@taha


Code
Name
Number of Constituents
Market Capitalization (USD millions)
Percentage (%)

IWDA
MSCI World Index
1583
56221708.67
76.35

EIMI
MSCI Emerging Markets
3071
9291140.72
12.62

WSML
MSCI small caps
4252
8125856.28
11.03
 
@laughter May I ask how you rebalance your investments? Only by changing the future investments balance or also by reselling some of one ETF to reallocate to another one? (sorry I'm new to finance)
 
@fearey Generally, when the portfolio is small, it can be rebalanced with future investments (since in one month the amount contributed may represent a substantial percentage of the total investments). Thus the allocation of that month can be used to rebalance the portfolio.

However, when the portfolio is large and there are significant changes in the composition of the economy, rebalancing with a new contribution is usually complicated. Here it is necessary to sell part of the investments to adjust the weights and this is usually taxed, since you may have capital gains.

That's why many people prefer having only one ETF, because there is no need to rebalance.
 
@hh316 The code above can only be used to extract iShares PDF information.

However I created a code to extract information from FTSE factsheets . To use it, you only need to change the
Code:
extractPDFInfo()
function to the following one:

Code:
from pathlib import Path
import PyPDF2

def extractPDFInfo(pdfUrl, filename = 'FTSE.pdf'):
  """
    Extracts FTSE ETFs' number of constituents and market capitalization from its info PDF

    :param pdfLocation: url the FTSE ETF info PDF.
    :return: A dictionary containing the ETFs' Market cap and number of Constituents
  """ 
  filenamePath = Path(filename)
  response = requests.get(pdfUrl)
  filenamePath.write_bytes(response.content)

  file = open(filename, 'rb')
  fileReader = PyPDF2.PdfFileReader(file)

  raw = fileReader.getPage(3)
  raw = raw.extractText()
  raw = raw.replace('\n', ' ')
  raw = raw.replace(',', '')
  raw = " ".join(raw.split())
  match = re.search(r'(?
 
@kaytiedid I did not know that website. That's a cool one, thanks!

And I retested the r script (on Windows 10) and it's still working fine for me, it may be some inconsistency with your os (or local configuration) that may affect pdf parsing.
 
@laughter Oh wow, That's a useful post!! I started investing a week ago with a portfolio composed of IWDA, WSML and EIMI. I was not sure how to choose these weights, so I used some reddit posts and other blogs to define the different ETFs' split. Now I will have a clearer and more structured idea on how to weight them! 🙂

And the scripts to automate the calculations are great! Thanks!
 

Similar threads

Back
Top