Skip to main content

ETL pipeline for US Treasury CDFI Fund public datasets — TLR, CLR, and Awards data

Project description

cdfi-data 🏦

ETL pipeline for US Treasury CDFI Fund public datasets.

Download, clean, and analyze Transaction Level Report (TLR), Consumer Loan Report (CLR), and Awards data from the US Department of Treasury's CDFI Fund — in one line of Python.


Why cdfi-data?

The CDFI Fund releases massive public datasets covering millions of loans and investments in low-income communities. But the raw files are messy, inconsistently formatted, and require significant cleaning before analysis. cdfi-data standardizes the entire pipeline.


Installation

pip install cdfidata

Quickstart

from cdfidata import TLRLoader, CLRLoader, AwardsLoader

# Load a single TLR fiscal year (downloads & caches automatically)
tlr = TLRLoader()
df = tlr.load(year=2022)

# Load the full cumulative TLR (FY2020–FY2022), stacked with provenance
cum = tlr.load_cumulative()
# ...or an explicit range:
cum = tlr.load_range(2020, 2022)

# Filter to Illinois
il = tlr.filter_state("IL")

# Filter by loan type and amount
small_biz = tlr.filter_loan_type("Business")
large = tlr.filter_amount(min_amount=500_000)

# Summary stats
tlr.summary()

# Export
tlr.to_csv("cdfi_transactions.csv")
tlr.to_sqlite("cdfi.db", table="tlr")

Caveat — cumulative frames stack overlapping releases. load_cumulative() / load_range() concatenate releases with no dedup: each row carries a source_release column (FY2020/FY2021/FY2022), and releases overlap on fiscal_year (FY2022 restates and expands prior-year data). Filter by source_release and prefer the latest release for a given fiscal year — don't naively aggregate the full frame, or restated rows double-count. Field completeness (rate/term/NAICS) is also era-dependent. See docs/CANONICAL_SCHEMA.md.


Sample Data (No Download Required)

from cdfidata import TLRLoader, CLRLoader, AwardsLoader

tlr = TLRLoader()
df = tlr.load_sample(n=1000)

clr = CLRLoader()
df = clr.load_sample(n=1000)

awards = AwardsLoader()
df = awards.load_sample(n=500)

Datasets Supported

Dataset Source Description
TLR (Transaction Level Report) CDFI Fund 1M+ individual CDFI loans, 61 variables
CLR (Consumer Loan Report) CDFI Fund 3.2M consumer loans aggregated to census tract
Awards Database CDFI Fund All CDFI Fund program awardees across all years

Data Sources

CDFI Fund datasets (TLR, CLR, Awards) come from the US Department of Treasury CDFI Fund: https://www.cdfifund.gov/research-data

All data is released under open government data principles.


Running Tests

PYTHONPATH=. pytest tests/ -v

44 tests across all modules.


Who This Is For

  • Impact investors analyzing CDFI loan portfolios
  • Academic researchers studying community development finance
  • Policy analysts evaluating CDFI Fund program outcomes
  • CDFIs benchmarking their own performance against peers
  • Anyone who needs clean, analysis-ready CDFI Fund data

License

MIT 2026 Jaypatel1511

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cdfidata-0.3.2.tar.gz (25.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cdfidata-0.3.2-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

Details for the file cdfidata-0.3.2.tar.gz.

File metadata

  • Download URL: cdfidata-0.3.2.tar.gz
  • Upload date:
  • Size: 25.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for cdfidata-0.3.2.tar.gz
Algorithm Hash digest
SHA256 008c3387913d9a3684a0a9f8a3e18e265f385de6ee6aa54aba789b516921bd49
MD5 30e14656000aa6e4781923d45cdb45f4
BLAKE2b-256 f8bd61fcc135c361dec319a2b8e4454ca695fd32ea8cec6521494a097ea655dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for cdfidata-0.3.2.tar.gz:

Publisher: release.yml on Jaypatel1511/cdfi-data

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cdfidata-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: cdfidata-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 20.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for cdfidata-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 60a1189b14ef0b96d583c206185425f8a093778f2205311c133f300bc4e07487
MD5 d3a733a0f02c8e10a18b2b247a1d9c69
BLAKE2b-256 fd5cb541582f2772687b89df9ae4fc5711a6766ab1741fe7ded06782344a0472

See more details on using hashes here.

Provenance

The following attestation bundles were made for cdfidata-0.3.2-py3-none-any.whl:

Publisher: release.yml on Jaypatel1511/cdfi-data

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page