Written and maintained by CASRAI Editorial Board
Published
On this page
The Kenneth French Data Library (officially the Kenneth R. French Data Library) is the standard academic repository for empirical asset-pricing factor data, benchmark portfolio returns, and market risk series. Maintained by Professor Kenneth R. French at Dartmouth College’s Tuck School of Business, the library publishes research-grade datasets constructed from the Center for Research in Security Prices (CRSP) and Compustat databases. For empirical researchers in quantitative finance and economics, it provides foundational benchmarks for testing the Capital Asset Pricing Model (CAPM), the Fama-French 3-factor model, and the Fama-French 5-factor model.
Working with these datasets requires understanding their specific file delimiters, missing value sentinels, percentage scaling conventions, and portfolio reconstitution rules. This guide provides an operational walkthrough for accessing official library files, cleaning factor series in Python, estimating empirical factor regressions, and diagnosing common data pipeline errors.
What it is used for in research
In quantitative finance and empirical economics, the Kenneth French Data Library is used to decompose investment returns, evaluate active portfolio management, and measure systematic risk. Core applications include:
- Multifactor Asset Pricing Tests: Evaluating whether cross-sectional differences in stock returns reflect systematic risk exposures rather than idiosyncratic variance. Empirical researchers estimate time-series regressions of excess portfolio returns against the market excess return (Rm – Rf), size factor (SMB), and value factor (HML).
- Jensen’s Alpha Estimation: Calculating risk-adjusted performance (α) for mutual funds, hedge funds, and institutional portfolios. A statistically significant positive intercept α indicates excess return unexplained by standard factor exposures.
- Cost of Capital Estimation: Establishing hurdle rates for capital budgeting and discount rates in valuation models using multifactor risk premia.
- Industry Benchmarking: Analyzing historical risk premia across 10, 12, 17, 30, 38, 48, and 49 industry portfolios to test sector concentration and macroeconomic shifts.
- International Asset Pricing: Testing regional and global factor specifications across Developed and Emerging Markets to analyze market integration.
To support computational reproducibility across financial literature, empirical studies benchmark their findings against French’s published historical factor series, enabling peer researchers to replicate published econometric models directly.
Install or access (official source only)
The Kenneth French Data Library is publicly accessible at no monetary charge and requires no authentication credentials, API keys, or licensing agreements. It is hosted directly on Dartmouth College web infrastructure:
- Official Web Portal:
https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data_library.html - Factor Description Documentation:
https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/Data_Library/f-f_factors.html - Direct Download Route (FTP/HTTP Archive):
https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/
Datasets are distributed as compressed archives (ZIP format) containing plain-text ASCII (.txt) or comma-separated value (.csv) files. Unlike commercial platforms such as Wharton Research Data Services (WRDS), which require institutional site licenses, the French Data Library represents open data designed for direct scholarly access.
Researchers can retrieve files manually via standard browsers or automate ingestion in statistical environments such as Python, R, or Stata. When managing automated pipelines, scripts should query the official endpoints directly, cache downloaded archives locally, and record the CRSP database revision date.
Step-by-step task
The standard research workflow involves downloading the Fama-French 3-Factor dataset, isolating the monthly return series, cleaning formatting artifacts, and estimating an empirical factor model for a target portfolio. The following procedure implements this workflow in Python using standard libraries.
- Download and Extract Archive: Retrieve
F-F_Research_Data_Factors_CSV.zipdirectly from the official Tuck Dartmouth server and open the CSV in memory. - Identify Header and Section Boundaries: Locate the column header line (
Date,Mkt-RF,SMB,HML,RF) and the boundary where annual data begins (marked byAnnual Factors: January-December). - Isolate Monthly Returns: Slice the raw file to extract rows between the header and the annual divider, dropping the metadata prelude.
- Clean Sentinels and Convert Units: Replace missing data codes (
-99.99and-999) with NaN. Divide all factor values by 100 to convert percentage figures (e.g., 2.89) to standard decimal returns (e.g., 0.0289). - Estimate OLS Factor Regression: Regress asset excess returns ($R_i – R_f$) against $R_m – R_f$, SMB, and HML using ordinary least squares.
import io
import urllib.request
import zipfile
import pandas as pd
import numpy as np
import statsmodels.api as sm
url = "https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/F-F_Research_Data_Factors_CSV.zip"
req = urllib.request.Request(url, headers={"User-Agent": "Mozilla/5.0 (Academic Research Pipeline)"})
response = urllib.request.urlopen(req)
with zipfile.ZipFile(io.BytesIO(response.read())) as z:
with z.open("F-F_Research_Data_Factors.csv") as f:
lines = [line.decode("latin1").strip() for line in f.readlines()]
header_idx = next(i for i, l in enumerate(lines) if l.startswith(",Mkt-RF") or "Mkt-RF" in l)
annual_idx = next(i for i, l in enumerate(lines) if "Annual Factors" in l)
csv_data = "n".join(lines[header_idx:annual_idx])
df = pd.read_csv(io.StringIO(csv_data))
df.rename(columns={df.columns[0]: "Date"}, inplace=True)
df = df[df["Date"].astype(str).str.strip().str.isdigit()].copy()
df["Date"] = pd.to_datetime(df["Date"].astype(str).str.strip(), format="%Y%m")
df.set_index("Date", inplace=True)
for col in ["Mkt-RF", "SMB", "HML", "RF"]:
df[col] = pd.to_numeric(df[col], errors="coerce").replace([-99.99, -999.0], np.nan) / 100.0
np.random.seed(42)
simulated_excess_return = 0.002 + 1.10 * df["Mkt-RF"] + 0.30 * df["SMB"] - 0.15 * df["HML"] + np.random.normal(0, 0.01, len(df))
X = sm.add_constant(df[["Mkt-RF", "SMB", "HML"]])
model = sm.OLS(simulated_excess_return, X, missing="drop").fit()
print(model.summary())
For cloud-hosted workflows, this pipeline can be executed in environments such as Google Colab vs. Jupyter Notebook, while institutional econometrics labs may implement equivalent regressions using a verified Stata licence.
Output and how to read it
The output of a factor model regression is an econometric summary table providing coefficient estimates, standard errors, test statistics, and goodness-of-fit measures:
- Alpha (const / α): The estimated regression intercept represents the abnormal risk-adjusted return (Jensen’s alpha). An alpha indistinguishable from zero (p > 0.05) indicates that asset returns are fully explained by factor exposures. A statistically significant positive alpha indicates excess performance beyond factor premia.
- Market Beta (β_Mkt): Sensitivity to broad market excess return (Rm – Rf). A beta of 1.0 reflects market risk; values above 1.0 indicate aggressive exposure, while values below 1.0 reflect defensive characteristics.
- Size Beta (β_SMB): Loading on Small Minus Big. Positive coefficients indicate small-cap orientation; negative coefficients indicate large-cap bias.
- Value Beta (β_HML): Loading on High Minus Low book-to-market. Positive values indicate a value tilt; negative values reflect growth orientation.
- R-squared (R²): The proportion of return variance explained by the three factor series. In well-diversified equity portfolios, R² commonly exceeds 0.85 to 0.90.
- Residual Standard Error: Measures unsystematic, diversifiable risk specific to the underlying asset.
To distinguish meaningful structural patterns from sampling error, researchers evaluate these outputs using principles from descriptive statistics vs. inferential statistics.
Troubleshooting
When ingesting and analyzing datasets from the Kenneth French Data Library, researchers frequently encounter specific technical and methodological pitfalls:
- Parsing Failure from Trailing Annual Table:
Cause: The raw CSV files contain both monthly and annual series. A standardpd.read_csv()call fails or parses columns as mixed text types because the annual table introduces duplicate headers.
Resolution: Programmatically detect theAnnual Factors: January-Decemberline and slice rows prior to that boundary. - Scale Inflation Mismatch (10,000x Variance Distortion):
Cause: French factor files report returns as percentages (e.g., 2.89 for 2.89%), while price-derived asset returns are typically calculated as decimals (e.g., 0.0289). Regressing decimal returns on unscaled factors biases factor loadings and distorts alpha.
Resolution: Divide all French Data Library factor returns by 100 before computing excess returns or merging datasets. - Unfiltered Sentinel Values (-99.99 and -999):
Cause: Missing historical data periods are recorded as-99.99or-999. If uncleaned, these values cause massive negative skewness and invalid regression slopes.
Resolution: Convert-99.99and-999values to IEEE NaN upon file loading. - CRSP Delisting Return Treatment:
Cause: In files generated since May 2015, stocks are dropped immediately after their CRSP delist date; older files held stocks until the annual June rebalancing.
Resolution: Ensure custom portfolio return calculations incorporate CRSP delisting returns (DLRET) consistent with post-2015 methodology. - Risk-Free Rate Benchmark Transition:
Cause: Through May 2024, the 1-month Treasury bill rate (RF) was sourced from Ibbotson Associates; beginning June 2024, it is sourced from the ICE BofA US 1-Month Treasury Bill Index.
Resolution: Document the benchmark change when analyzing long-horizon time series crossing mid-2024.
Free alternatives
While the Kenneth French Data Library is the recognized gold standard for academic asset pricing benchmarks, researchers frequently draw upon other free and open data sources for macroeconomic indicators or real-time security series:
| Repository / Provider | Primary Focus | Access Model | Key Strength | Practical Constraint |
|---|---|---|---|---|
| Kenneth French Data Library | Asset-pricing factors (3-factor, 5-factor, momentum, industry portfolios) | Direct HTTP/FTP download, open access | Standard academic benchmark constructed from verified CRSP/Compustat records | Updated monthly/annually; lacks individual stock tickers and intraday feeds |
| Federal Reserve Economic Data (FRED) | Macroeconomic indicators, interest rates, inflation, exchange rates | REST API with free key, CSV downloads | Over 800,000 official economic series with automated Python/R client libraries | Focuses on macroeconomic aggregates rather than equity factor returns |
| AQR Capital Management Data Library | Alternative risk premia, quality-minus-junk (QMJ), momentum factors | Direct Excel/CSV download, free academic use | Institutional-grade factor series extending beyond traditional Fama-French specifications | Updated on quarterly or periodic schedules; specialized factor definitions |
| Alpha Vantage | Real-time and historical equity prices, FX, fundamental indicators | REST API with free rate-limited tier | Automated programmatic JSON/CSV endpoints for active market securities | Free tier enforces strict daily request caps; not designed for 100-year factor backtests |
| Yahoo Finance (via yfinance) | Broad market equity prices, historical adjusted closes, volume | Community open-source scraping wrapper | Instant access to global equity tickers, ETF historical prices, and dividend records | Unofficial API subject to throttling, upstream schema changes, and survivorship bias |
For academic research designs, combining French factor data with security samples requires robust subsampling strategies, often using random sampling in Python to evaluate model stability across market regimes. Ensuring datasets adhere to established open data standards guarantees research accessibility across institutions.
FAQ
Who created the Kenneth French Data Library?
The library was created and is curated by Professor Kenneth R. French of the Tuck School of Business at Dartmouth College, in collaboration with Nobel Laureate Eugene F. Fama of the University of Chicago Booth School of Business.
Are the Fama-French factors free for academic and commercial use?
Yes. The Kenneth French Data Library is publicly accessible on the web without subscription fees, registration gates, or paywalls. Researchers, students, and practitioners can download and utilize the data for empirical analysis, provided appropriate scholarly attribution is cited.
Why are NYSE breakpoints used instead of all exchanges?
Although the factor portfolios contain eligible common stocks from the NYSE, AMEX, and NASDAQ, the size and book-to-market breakpoints are calculated using NYSE-listed firms only. This prevents the large number of micro-cap stocks on NASDAQ from distorting breakpoint percentiles, ensuring that factor portfolios reflect economically meaningful capitalizations.
How often is the Kenneth French Data Library updated?
The library is updated monthly, typically several weeks after each calendar month closes once CRSP updates its database. During monthly updates, the entire historical series is reconstituted to incorporate any retrospective CRSP revisions.
What is the difference between SMB and HML?
SMB (Small Minus Big) measures the historical return spread between small-cap and large-cap stocks (the size premium). HML (High Minus Low) measures the return spread between value stocks with high book-to-market ratios and growth stocks with low book-to-market ratios (the value premium).
Sources
- French, Kenneth R. “Data Library.” Dartmouth College, Tuck School of Business. https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data_library.html. Verified 2026-11-11.
- French, Kenneth R. “Description of Fama/French Factors.” Dartmouth College, Tuck School of Business. https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/Data_Library/f-f_factors.html. Verified 2026-11-11.
- Fama, Eugene F., and Kenneth R. French. “Common Risk Factors in the Returns on Stocks and Bonds.” Journal of Financial Economics 33, no. 1 (1993): 3–56. Verified 2026-11-11.
- Fama, Eugene F., and Kenneth R. French. “A Five-Factor Asset Pricing Model.” Journal of Financial Economics 116, no. 1 (2015): 1–22. Verified 2026-11-11.







