---
name: fed-distributional-financial-accounts-ingestion
description: "How to get Fed Distributional Financial Accounts data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load Fed household wealth groups into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/fed-distributional-financial-accounts
Provider: https://www.federalreserve.gov/releases/efa/efa-distributional-financial-accounts.htm
Checked against the provider's documentation: 2026-11-01

## Access
- No account or key is required for the complete DFA ZIP.
- The ZIP includes CSV tables plus text definitions and detail dictionaries.

## Request
```bash
curl -O 'https://www.federalreserve.gov/releases/z1/dataviz/download/zips/dfa.zip'
```

## Format
ZIP of CSV tables for levels and shares by net-worth, income, age, generation, education and race groups, plus text definitions and dictionaries.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""Fed DFA net-worth level table from ZIP -> pandas -> Parquet."""
import io
import zipfile
import requests
import pandas as pd

URL = "https://www.federalreserve.gov/releases/z1/dataviz/download/zips/dfa.zip"
r = requests.get(URL, timeout=60)
r.raise_for_status()
with zipfile.ZipFile(io.BytesIO(r.content)) as z:
    with z.open("dfa-networth-levels.csv") as f:
        df = pd.read_csv(f)
df["Date"] = pd.PeriodIndex(df["Date"].str.replace(":", ""), freq="Q").to_timestamp("Q")
df.to_parquet("fed_dfa_networth_levels.parquet", index=False)
print(len(df), "rows", df["Date"].min().date(), "to",
      df["Date"].max().date(), "columns", len(df.columns))
```
Run by us on 2026-11-01 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 740 rows 1989-09-30 to 2026-06-30 columns 15

## Limits
- Rate limit: Not stated.
- Observations are quarterly and begin in 1989 Q3.
- The complete checked ZIP contained 27 files and was 895,897 bytes.

## Quirks
- Date values use strings such as 1989:Q3; convert them through a quarterly PeriodIndex.
- Level and share tables are separate, as are summary and detailed component tables.
- Recent distributions beyond the latest Survey of Consumer Finances are forecast before being scaled to Financial Accounts aggregates.

## Terms and attribution
- Board website information is public domain unless otherwise indicated.
- Cite the Board as the source and check for separately identified non-Board material.
- Terms page: https://www.federalreserve.gov/disclaimer.htm

## Sources
- https://www.federalreserve.gov/releases/efa/efa-distributional-financial-accounts.htm: "The Distributional Financial Accounts (DFAs) provide quarterly estimates of the distribution of a comprehensive measure of U.S. household wealth, beginning with the third quarter of 1989 and through the most recent quarter."
- https://www.federalreserve.gov/releases/efa/efa-distributional-financial-accounts.htm: "The final step is to calculate the shares of assets and liabilities held by the different groups each quarter"
- https://www.federalreserve.gov/disclaimer.htm: "Content within the Interactive Data Visualizations will be updated only after the publication of the Financial Accounts of the United States – Z.1 and EFA releases"
- https://www.federalreserve.gov/disclaimer.htm: "Unless otherwise indicated, information on Board's website is in the public domain and may be copied and distributed without permission."

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
