FFER.io is for informational purposes only. It is not intended to be investment advice. Investing activities are risky and may result in losses for the investor. For investment advice, contact a licensed investment professional.

What is the FFER?

The "Fundamental Fitted Estimate Ratio" (FFER) is a comprehensive valuation ratio powered by machine learning. Formally, the FFER is the ratio between a stock's actual market price and a price predicted by a machine learning algorithm.

Actual stock price

ML predicted price

The FFER is a modern take on other valuation ratios like Price/Earnings or EV/EBITDA. The difference is that the FFER is comprehensive. Each FFER is the final result of a machine learning model whose inputs include 9 dimensions, including earnings, revenue, operating income, cash, and dividends.

Why is the FFER useful?

Like other valuation metrics, the FFER is a tool to understand the intrinsic value of a stock and whether it is cheap or expensive. If the actual price is lower than the fundamental price, it implies that it is cheap relative to the market. Likewise, if the actual price is higher than the fundamental price, it implies that it is expensive relative to the market.

Given that the FFER is just a better valuation metric, you can substitute it wherever you would use the P/E or any other metric. If you are a value investor, you can utilize the FFER as a stock screener to find cheap stocks worthy of closer investigation. If you do algorithmic trading, you can use the FFER as an input to your model.

What does the FFER look like?

Example stocks. See all stocks. Click on the for detailed analysis.
Ticker ⇕Name ⇕Price ⇕FFE Price ⇕FFER ⇕
AAPL Apple Inc $140.52 $20.38 6.90
AMZN Amazon.com Inc $2,135.50 $600.93 3.55
XOM Exxon Mobil Corporation $96.30 $68.21 1.41
WMT Walmart Inc $123.37 $141.32 0.87
CVS CVS Health Corporation $97.15 $191.99 0.51

Imagine a stock with a price of $200. If we predicted that it's fundamental price was actually $100, then its FFER would be 2.0 ($200/$100 = 2.0). If, the next day, its stock price went up to $210, it would now have an FFER of 2.1.

Most stocks have FFERs that fall between 0.5 and 2.0.

How does the FFER work?

The FFER is the output of an XGBoost model trained with 9 fundamental dimensions as independent (X) variables and the actual price as the dependent (Y) variable. "Machine learning" is actually a simple concept that can be thought of as "curve fitting." In other words, for the FFER, we are "fitting" an equation to predict a stock price given a few financial inputs.

Since real-world data tends to be messy, even the best machine learning models are subject to error. Few points actually fall on the curve. For most machine learning applications, this error is considered regrettable. For the FFER, retrieving the magnitude of the error is the goal.

The "fitted curve" represents the best-guess valuation of the market. If the actual price is significantly above or below the curve, either the stock is incorrectly priced, or there is some other significant information impacting the price.

How does the FFER perform?

The FFER is a tool to assist in stock valuation - not a mutual fund. The goal is not to beat the market. The goal is insight. That being said, understanding how different FFERs have performed historically is useful.

According to the mean reversion theory, low FFERs should make better investments. However, this is not always true. Because the FFER is derived from only basic financial statements, it is missing a lot of information. It does not capture consumer sentiment, economic conditions, price momentum, etc. Indeed, stocks with high or low FFERs tend to have justifications for their ratios. This might be an exciting product, a bankruptcy proceeding, or some recent economic trend. Additionally, because the model is trained with EOD prices, it only signals the stock's value relative to the market on a single day. It cannot predict broader market movements.

Historically, whether stocks with lower or higher FFERs perform better depends on the year. Over the past 6 years, from 2015-2018 low FFERs have outperformed high FFERs. Specifically, stocks bucketed into the "very cheap" quantile outperformed all other buckets. However, from mid-2018 onwards, high FFERs outperformed low FFERs. This unexpected result might be indicative of a bubble or it might be a consequence of a changing economic environment.

Note: Average returns are high because of some survivorship bias.

How can I use the FFER?

It's probably not a good idea to just buy stocks with low FFERs. Instead, the best way to use the FFER is as one component of your investment research toolbox.

A simple strategy might be to browse the full FFER table and find a few stocks that seem unjustifiably cheap. If after more research, the company seems to have a promising future, buy and hold them until the price achieves that fair value.

Also remember, you are looking for relative value - not absolute. So a stock with a high FFER might still be cheap if it is especially innovative or has some other intangible advantage. In other words:

"It's far better to buy a wonderful company at a fair price than a fair company at a wonderful price."
Warren Buffet

What are quantiles?

We calculate more than just the FFER for each stock. We also calculate the quantile it falls in. Quantiles are a simple concept best explained by the diagram below.

We have five quantiles: "very cheap", "cheap", "average", "expensive", and "very expensive". These are determined by where an actual price falls between prediction intervals. We use four prediction intervals: 5%, 32%, 68%, and 95%. A "very cheap" stock has an actual price below the 5% prediction interval. Statistically, this implies that its price is two standard deviations below what might be expected. Similarly, an "average" stock has an actual price between its 32% and 68% prediction interval.

Quantiles are useful because different companies have different factors driving their prices. A boring utility company will likely have a narrower prediction interval than a trendy tech company. This allows us to make conclusions with more certainty.

What are the inputs to the FFER?

The 9 dimensions are:

How did you settle on these 9 inputs?

These dimensions were found through an iterative process. First, the XGBoost model was trained with 60+ dimensions. This high-dimensional model was overfit. To address this, an iterative script was used to eliminate redundant dimensions. One-by-one, the script removed the dimension identified by XGBoost as being the "least important" and re-trained the model. Each iteration generally reduced the test error until a point after-which the test error started to increase again. The model which used 9 dimensions had the lowest test error.

What else?

  1. Each stock's FFER model is trained using a dataset that includes every stock except itself. In other words, every FFER is generated from a unique model that differs from every other model by one stock.
  2. XGBoost was chosen for its high quality and internal observability. Eventually, we anticipate that XGBoost will be replaced by a deep neural network.
  3. For simplicity, internally, the FFE models utilize the market cap instead of the price. In practice, the difference is trivial.