Skip to main content
v2026.11,986 entries · CC-BY 4.0

Kenneth French Data Library: Research Guide

Access the Kenneth French Data Library for empirical finance. Learn how to download Fama-French factors, clean return files, and run regressions in Python.

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.

  1. Download and Extract Archive: Retrieve F-F_Research_Data_Factors_CSV.zip directly from the official Tuck Dartmouth server and open the CSV in memory.
  2. Identify Header and Section Boundaries: Locate the column header line (Date,Mkt-RF,SMB,HML,RF) and the boundary where annual data begins (marked by Annual Factors: January-December).
  3. Isolate Monthly Returns: Slice the raw file to extract rows between the header and the annual divider, dropping the metadata prelude.
  4. Clean Sentinels and Convert Units: Replace missing data codes (-99.99 and -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).
  5. 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 standard pd.read_csv() call fails or parses columns as mixed text types because the annual table introduces duplicate headers.

    Resolution: Programmatically detect the Annual Factors: January-December line 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.99 or -999. If uncleaned, these values cause massive negative skewness and invalid regression slopes.

    Resolution: Convert -99.99 and -999 values 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

Follow CASRAI

Research-administration guidance, standards updates and independent tool reviews.

Ask CASRAI · free to try

Ask about Kenneth French Data Library: Research Guide

Ask your first 2 questions free below. Subscribers get 150 a day for $29 a month.

An AI assistant specialized in research administration. It cites the sources behind every answer, labels web answers and says when it can't answer.

Answers draw on CASRAI's guides and dictionary plus the federal and funder documents we index: Federal Register, Grants.gov, Regulations.gov and UKRI.

Works on this site and inside Claude, Cursor and the AI tools you already use.

Everything CASRAI publishes — this page, the dictionary, the guides and the news — stays free to read, with no account and no card.

Referenced across the research world

University of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logoUniversity of Cambridge logoColumbia University logoCrossref logoUniversity of Edinburgh logoHarvard University logoUniversity of Oxford logoPrinceton University logoStanford School of Medicine logoUniversity College London logoORCID logo
  • University of Cambridge logo
  • Columbia University logo
  • Crossref logo
  • University of Edinburgh logo
  • Harvard University logo
  • University of Oxford logo
  • Princeton University logo
  • Stanford School of Medicine logo
  • University College London logo
  • ORCID logo

View CASRAI adoption →