FNM & FRE monthly disclosure data — terabytes, millisecond queries

RMBS analytics
built for analysts

Query millions of Fannie Mae and Freddie Mac loans and pools, explore cross-month trends, and run AI-powered analysis — all from a single platform.

~28M
Loans per month
~1M
Pools per month
TB+
Data ingested
2
Agencies (FNM + FRE)

Everything you need for RMBS analysis

From raw disclosure files to production insights in one platform.

💬

AI Chat Analysis

Ask questions in plain English. Get answers about delinquency trends, servicer performance, and portfolio risk backed by real data.

📓

Jupyter Notebooks

Full Python environment with Polars, pandas, and statsmodels. Run ad-hoc analysis directly against Parquet files and TimescaleDB.

📊

Loan Data Explorer

Browse 28M+ loans per month from FNM and FRE. Filter by snapshot month range and explore UPB, rate, FICO, LTV, DTI, and more.

🏊

Pool Data Explorer

Explore 1M+ pools per month. Drill into weighted-average metrics, security characteristics, and cross-month performance trends.

Fannie Mae & Freddie Mac
unified data model

Both agencies' monthly loan and pool disclosure files are ingested into a unified TimescaleDB hypertable partitioned by month. Cross-agency comparisons are a single query.

  • Loan files: ~4–5 GB each, ~15M rows (FNM) / ~13M rows (FRE) per month
  • Pool files: ~140–190 MB each, ~500K rows per agency per month
  • Automatic null-sentinel replacement and date normalization on ingest
  • Hive-partitioned Parquet for cross-month Polars analysis
  • TimescaleDB continuous aggregates for instant dashboard queries
cross_month_analysis.py
import polars as pl

df = pl.scan_parquet(
  "data/parquet/loans/**/*.parquet",
  hive_partitioning=True,
)

result = (
  df.filter(
    pl.col("year").is_in([2024, 2025, 2026])
  )
  .group_by(["agency", "year",
             "month", "property_state"])
  .agg([
    pl.col("current_investor_loan_upb")
      .mean().alias("avg_upb"),
    pl.col("classic_fico")
      .mean().alias("avg_fico"),
    pl.len().alias("loan_count"),
  ])
  .sort(["year", "month"])
  .collect()
)

Ready to explore RMBS data?

Create a free account and start analyzing Fannie Mae and Freddie Mac disclosure data in minutes.

Get started