The Global Buffett Indicator
The "Buffett Indicator" is a widely respected valuation metric famously endorsed by Warren Buffett, who once called it "probably the best single measure of where valuations stand at any given moment."
The metric is calculated by taking the Total Market Capitalization of a country's stock market and dividing it by the country's Gross Domestic Product (GDP). It essentially measures the size of the financial markets against the size of the underlying real economy. When the ratio is historically high, the stock market is considered overvalued. When it is low, the market is viewed as undervalued.
How We Plot It
At RatioPlotter.eu, our data engine seamlessly combines highly volatile daily stock market data from our data providors with smooth, annualized macroeconomic GDP data published by the International Monetary Fund (IMF).
To view the Buffett Indicator for various global economies, click on any of the country cards below. This will load our main Ratio Plotter with the IMF GDP tracker in the denominator and the corresponding country ETF in the numerator. We use these ETF's as a proxy for each nation's total equity market, while this is a common industry standard for real-time tracking, we believe in being fully transparent about our data sources and thus you should know this ETF is incomplete and can give a slightly twisted picture of the actual buffet indicator.
⚠️ Important Note for Advanced Users:
If you want to create a custom Buffett Indicator for a country not listed below, you must ensure that the ETF or Index you place in the numerator is priced in US Dollars (USD).
Our backend dynamically fetches the IMF Nominal GDP database (using the IMF-NGDPD-[Code] ticker syntax), which is strictly denominated in USD. If you divide an asset priced in a local currency (e.g., Euros or Yen) by a GDP metric priced in USD, the resulting chart will be mathematically invalid due to extreme exchange rate distortions.
Live Global Indicators
Click any country below to automatically generate its historical Buffett Indicator chart. (Using US-listed iShares MSCI ETFs as broad market proxies).
Select a country below to load the chart.
Ticker Data Usage and Sourcing
Ticker Data Sources
Our data is provided from a variety of sources: The Federal Reserve (FED-* tickers), The World Bank (WB-* tickers), The International Monetary Fund (IMF-* tickers), Tiingo (T-* tickers covering: stocks, ETFs, etc), Ourselves (MATH-* tickers). The ticker data sources vary according to ticker prefix as you can see. Our
ticker selector allows browsing each ticker and their description and placing them on a basket for use.
SEA() Ticker function
For ratio plotting, the SEA(Ticker) function can only be used in the denominator argument and only for plotting TickerA over SEA(TickerA) like this:
T-CRUD/SEA(T-CRUD). The SEA() ticker function works by calculating the median yearly seasonality as a new dataset (see the
seasonality page for details and examples of this calculation). This one year seasonality dataset is then unfolded exactly the same for many years and directly inputted as a synthetic ticker into this plotting page arguments. Example: Ratio plot of Crude Oil by its seasonality:
T-CRUD/SEA(T-CRUD). To write custom SEA() function synthetic tickers simply input your ticker of choice between the parentheses such as SEA(T-CRUD).
RAT() Ticker function
The RAT() ticker function works by calculating the ratio between two tickers as a new dataset. This dataset is then directly inputted as an synthetic ticker into the plotting page arguments. To write custom RAT() tickers simply input your two tickers of choice between the parentheses, separating them with a comma. Such as RAT(T-AAPL, T-MSFT). This can only be once, synthetic tickers like RAT(RAT(T-AAPL, T-MSFT), SEA(T-qtec)) are invalid for the time being. Example, how is Google outpacing Microsoft in terms of CAGR curve:
RAT(T-GOOGL,T-MSFT)/MATH-CAGR_PCT-2
LAG() Ticker function
The LAG() ticker function is used to create a lagged version of an asset. This lags a dataset with an amount of days equal to the lag value in the ticker. To write custom LAG() tickers simply input your ticker of choice and lag value between the parenthesis, seperated by a comma. Such as LAG(AAPL, 10). Lag values can only be inputted into the denominator as positive whole numbers between 1 and 7000 days. Using the ratio plotter with LAG(), a ticker can be analyzed in its auto correlation, or correlation to a nother ticker with a gap of X days (e.g.ratio plot of TICKERA by LAG(TICKERB, 30)).
MATH- Tickers
The MATH- tickers are custom mathematical tickers made by us (e.g. MATH-CAGR_PCT-2 for 2% exponential growth, MATH-CONST_VEC-1 for a constant value of 1 each day). To find the list of valid MATH tickers go to the
Ticker Selector Page and search through the MATH category list. Important to mention is that when using the MATH tickers the last observed date for this MATH ticker will be far in te future.
Default Ticker Column Projections & Adjustments
Let's take T-GOOGL as an example. When the projection variable is left blank, the ratio plotter will use the default projection variable which is -AdjClose (close price adjusted for both dividends and splits). This means that when you input T-GOOGL into the ratio plotter it will actually plot the Tiingo split and dividend adjusted close price of GOOGL (
T-GOOGL-AdjClose by T-MSFT-AdjClose). If you want to plot the split (but not dividend) adjusted close price of GOOGL you can input T-GOOGL-SplitAdjClose.
All projection columns are provided by Tiingo, with exception of the -SplitAdjClose column which is calculated by our system.