CDFI and MDI peer benchmarking tool using FDIC call report data — NIM, efficiency ratio, ROAA, CET1, and more
Project description
cdfi-benchmark 📊
CDFI and MDI peer benchmarking tool using FDIC call report data.
Pull call report financials for any FDIC-insured CDFI or MDI, compute key performance metrics, build a peer group of similar institutions, and generate a benchmarking report — using the free FDIC BankFind Suite API, no API key required.
Why cdfi-benchmark?
CDFI banks and MDIs benchmark their performance against peers manually — pulling call report data from FFIEC, computing ratios in Excel, and building comparison tables by hand. cdfi-benchmark automates the entire workflow in Python.
Installation
pip install cdfi-benchmark
Quickstart
from cdfibenchmark import (
get_financials, build_peer_group,
generate_report, summary_table,
)
# Pull call report data for Broadway Federal Bank (CERT 57542)
institution = get_financials(cert=57542)
# Build peer group — similar asset size, no API key needed
peers = build_peer_group(institution, same_state=True)
# Generate benchmarking report
report = generate_report(institution, peers)
print(report)
# Get results as DataFrame
df = summary_table(institution, peers)
Sample Data (No API Required)
from cdfibenchmark import build_sample_peer_group
from cdfibenchmark.data.schema import InstitutionProfile
institution = InstitutionProfile(
cert=57542,
name="Broadway Federal Bank",
city="Los Angeles",
state="CA",
report_date="20241231",
total_assets=655_000,
total_deposits=520_000,
net_loans=380_000,
net_income=1_950,
interest_income=28_000,
interest_expense=8_000,
non_interest_income=3_500,
non_interest_expense=22_000,
total_equity=48_000,
tier1_ratio=12.2,
)
peers = build_sample_peer_group(institution)
report = generate_report(institution, peers)
print(report)
Metrics Computed
| Metric | Description | Benchmark (Strong) |
|---|---|---|
| NIM | Net Interest Margin | >= 3.5% |
| Efficiency Ratio | Non-interest expense / Revenue | <= 60% |
| ROAA | Return on Average Assets | >= 1.0% |
| ROAE | Return on Average Equity | >= 10% |
| Tier 1 Capital Ratio | Regulatory capital ratio | >= 12% |
| Loans-to-Deposits | Loan utilization | <= 80% |
| NPL Ratio | Non-performing loans / Gross loans | <= 1.0% |
| Reserve Coverage | Loan loss reserve / NPLs | >= 100% |
Asset Size Buckets
- micro — Under $50MM
- small — $50MM to $250MM
- medium — $250MM to $1B
- large — $1B to $5B
- mega — Over $5B
Data Source
FDIC BankFind Suite API — free public API, no authentication required. Data covers all FDIC-insured institutions with quarterly call report data since 1934.
https://banks.data.fdic.gov/api
Running Tests
PYTHONPATH=. pytest tests/ -v
27 tests across all modules.
Who This Is For
- CDFI banks and credit unions benchmarking against peers
- MDI management teams preparing board reports
- CDFI Fund analysts reviewing institution performance
- Impact investors evaluating CDFI bank investments
- Researchers studying community banking performance trends
License
MIT 2026 Jaypatel1511
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cdfi_benchmark-0.1.0.tar.gz.
File metadata
- Download URL: cdfi_benchmark-0.1.0.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a45904ee69ec02ec2f6915451e7da38eb50211f68536a017ec52d9ccb0864b50
|
|
| MD5 |
c7ad70364a12d84dcb08e37faeb16d4c
|
|
| BLAKE2b-256 |
dd2e6b2cfd86df72e1cf6c65d84f806401b1642482dcd2214d0b89df4f3774ed
|
File details
Details for the file cdfi_benchmark-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cdfi_benchmark-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3cdcd0efb9966d9b03317c55e1d1d41dea21c0ab302131bcb1a96cd9f7420a4
|
|
| MD5 |
d0b86d6999fd3d75f02d1f777ed95306
|
|
| BLAKE2b-256 |
e6b1b74d697e46047cf836dd118850b6549a28f69f1b117269702a65db89ea04
|