Analytical Methodology
This page documents precisely what the dashboard computes, so that any figure shown here can be reproduced independently from the underlying source data. Where a common alternative methodology exists and is not used, that is stated explicitly rather than left implicit.
1. What the series actually are
Every series on this dashboard is a monthly return series taken from the Kenneth R. French Data Library. They are not valuation ratios, and no logarithmic or ratio transformation is applied to them. A displayed value of -2.15% means the long-short portfolio returned -2.15% in that month.
This distinction is the most important thing on this page, because the term "value spread" is used in the literature for two different quantities. Some authors use it to mean the gap in valuation multiples between value and growth stocks, which is a level. Here it means the return difference between value and growth portfolios, which is a flow. The two are related but they are not interchangeable, and a reading derived from one should not be interpreted as if it came from the other.
Practical consequence: a low percentile on this dashboard means the recent return to the value factor has been poor by historical standards. It does not by itself mean value stocks are currently cheap. Treating a low reading as a valuation signal is the most common misreading of this data.
2. The metrics tracked
Ten series are computed. HML from the three-factor model and HML from the five-factor model are the standard book-to-market sorted value factors. The B/M portfolio spread is the value-minus-growth difference from book-to-market sorted portfolios. The small-value minus small-growth, big-value minus big-growth, and small-value minus big-value series are derived from the size and book-to-market double-sorted portfolios, and isolate where the value effect is concentrated across the size spectrum. The E/P, CF/P, and D/P spreads use portfolios sorted on earnings, cash flow, and dividends relative to price. Momentum is the standard up-minus-down factor.
Because the underlying source files begin at different dates, the historical window is not identical across metrics. Statistics for each series are computed over that series' own available history, so percentiles are directly comparable within a metric but only loosely comparable across metrics.
3. Percentile rank
The percentile is the rank of the current observation within the full history of that series, computed with the standard rank method. A reading of 16.6 means roughly 16.6% of all recorded months had a lower value than the current month.
4. Z-score
The z-score expresses the current observation as a number of standard deviations from the mean of the series.
The mean and standard deviation are calculated over the entire available history of the series, not over a trailing rolling window. This is a deliberate choice: a full-sample window captures the complete regime history rather than anchoring on the recent past, at the cost of assuming the distribution has been stable over time. That assumption is debatable, and the historical performance article discusses why.
Two cautions apply to the z-score. Monthly factor returns are not normally distributed, being negatively skewed and fat-tailed, particularly for momentum. A z-score of -2 therefore does not carry the tail probability that a normal distribution would imply. And because the full sample is used, the mean is recomputed as new data arrives, so a historical z-score quoted today will differ slightly from the same month quoted years ago.
5. Descriptive statistics
Mean, median, mode, standard deviation, minimum, and maximum are computed on the series after removing missing observations. No winsorising or outlier removal is applied, so the minimum and maximum reflect genuine historical extremes rather than trimmed values. The standard deviation is the sample standard deviation of monthly returns and is not annualised.
6. Data handling and update schedule
Source files are retrieved from the Kenneth R. French Data Library and stored locally. A scheduled job checks for newly published data daily and refreshes the stored series when the upstream library publishes a new month. The library itself updates on its own schedule with a lag after month end, so the most recent month shown here will normally trail the current calendar month.
The date shown as "last updated" is the date of the most recent observation in the data, not the time the page was generated. The overview response is cached server-side and invalidated when a refresh occurs, with a time-based backstop, so figures may be cached briefly after an update.
7. What is not adjusted
- No inflation adjustment. All returns are nominal. Because each series is a difference between two portfolio returns over the same month, inflation largely cancels, but the series are not explicitly deflated.
- No cost, tax, or fee adjustment. These are gross theoretical long-short portfolio returns. They do not reflect transaction costs, bid-ask spreads, market impact, short borrow costs, management fees, or taxes.
- No survivorship correction by this site. Portfolio construction, including the treatment of delistings and the lag between accounting data and portfolio formation, is performed upstream by the Kenneth R. French Data Library according to its published methodology.
- No currency hedging is applied to international series.
8. Reproducibility
Every figure on this dashboard can be reproduced by downloading the corresponding file from the Kenneth R. French Data Library, taking the relevant return column, and applying the formulas above to the full series. If a number here cannot be reproduced that way, it is an error and we would like to know about it through the contact page.
This dashboard is an educational and research tool. Nothing on it is investment advice, and past performance does not indicate future results.