Get in touchReach out on LinkedIn

Building a Factor Risk Model From Scratch

BlueShip Research
Working Paper No. 24 · 5 August 2026

In one line: I built a cross-sectional equity risk model with many factors, the same architecture a commercial risk model uses rather than a reproduction of one. Of 16 factors tested on 436 names since 2020, only two clear significance.

Abstract. A factor risk model decomposes a stock’s return into common drivers plus a residual. Every large risk desk buys one from a vendor whose factor definitions and estimation weights are proprietary. I built the same class of model from public daily price data, down to the factor covariance matrix and the portfolio risk decomposition. Run on 436 US names from 2020 to 2026, two of sixteen factors clear a Newey-West t-stat of 2, Size and the Energy industry factor, and a diversified, equally weighted book of 100 names turns out to be 98% factor risk.

Keywords: factor risk model, cross-sectional regression, factor covariance, specific risk, portfolio risk decomposition, Newey-West.

1. Why this, and what it is not

The residual left after the common drivers is the only part that counts as genuine stock selection. The vendors (MSCI Barra, Qontigo/Axioma) do not publish their factor definitions or estimation weights. I have not reproduced that. What I built is the same class of model, smaller and cruder on purpose, with every mechanic inspectable.

2. The method, briefly

Exposures. Each stock gets a score on five factors, z-scored across the cross section, each date, using only information available through that date: Size (log price level, a scale proxy, since the panel has no field for shares outstanding, a declared limitation), Beta (rolling beta to SPY over 252 days), Momentum (12-1 month), Value (a proxy for mean reversion over 252 days, not a true book-to-price), and Volatility (realized over 60 days). Each name also gets one industry dummy from a sector map built by correlation to sector ETFs.

Estimation. At each date I run a cross-sectional regression of the next day’s returns on that day’s exposures, weighted by market cap and stabilized by ridge. That is the vendor model’s actual estimation step. The coefficients are the factor returns for that day, so the series comes from every name’s exposure rather than a long-short quintile spread.

Risk. The covariance of those factor returns is the factor covariance matrix. Specific risk is approximated from each name’s residual variance after removing the average factor effect. Portfolio risk decomposes as σp² = xp′Fxp + w′Δw, factor variance plus specific variance. This is the equation every risk desk actually runs.

3. What came out, 2020 to 2026, 436 names, 331 sampled dates

Newey-West t-stats on each factor’s return series, over the full sample:

Table 1. Factor returns and significance, 2020–2026.
FactorAnn. returnAnn. volNW t-stat
Size0.94%0.95%2.64
Energy (industry)9.60%12.53%2.25
Utilities (industry)7.74%12.28%1.62
Consumer Staples (industry)5.83%9.80%1.55
Financials (industry)6.22%10.69%1.66
Beta1.84%3.98%1.14
Momentum-1.48%6.53%-0.65
Value (proxy)-0.30%7.59%-0.11
Volatility0.24%2.37%0.26

Of sixteen factors tested, two clear a t-stat of 2 on this period: Size and the Energy industry factor. Everything else sits inside noise on this sample, including Momentum, Value and Beta, the factors most people assume are reliably priced. A model is only useful if it tells you that as readily as it tells you the opposite.

4. The portfolio decomposition

Running the decomposition on an equally weighted book of 100 names as of 29 July 2026, factor risk is 98.3% of total portfolio variance. The idiosyncratic bet in each name is almost entirely diversified away at 100 names. What is left is nearly pure exposure to Financials, Health Care, Beta, and Technology.

That is not a bug in a small model. It is the pitch of a factor risk model working as intended. Once a book is diversified, the manager’s P&L comes from factor exposure he may or may not have chosen on purpose. That is the conversation this model exists to have.

This is a demonstration of the architecture, not a production risk model. The estimate of specific risk is a shortcut rather than a regression residual taken name by name. The covariance matrix uses a simple sample estimator, with no exponential weighting and no eigenfactor adjustment for bias in small eigenvalues, both of which a vendor model applies and which I would want before trusting this at real capital. The Value factor is a proxy built from returns, not fundamental book-to-price. The universe is survivorship biased.