NCUA credit union data

io.github.bnovariniv0.1.2更新於 Oct 8, 2026

NCUA call report data for US credit unions, 2018-2026: profiles, peer comparison, time series.

已驗證Streamable HTTP可網頁執行FinanceData & Analytics

概覽

AI 產生的概覽

查詢整理後的美國 NCUA 信用合作社 call report 資料(2018-2026),取得機構概況、同業比較與指標時間序列。

功能
把美國信用合作社的 NCUA call report 資料整理成可查詢的資料表:機構概況、115 個精選 call report 欄位、52 個計算指標,以及資料字典。工具包括 list_fields、find_credit_union、credit_union_profile、metric_series、peer_compare 與 query_metrics,後者支援篩選、排序與筆數限制,但不支援原始 SQL。可作為託管遠端端點使用,也可透過 DuckDB 讀取 Parquet 檔案在本機以 stdio 執行。
適用情境
適合讓助理回答美國信用合作社的財務問題,例如放款、存款結構、獲利、人力、效率、成長,或依資產分組、州、特許類型進行同業比較。適用於 2018 年以來的季度趨勢分析,而非即時資料或 2018 年之前的資料。
執行需求
託管端點只需網路連線,每個用戶端限速每分鐘 60 次請求。本機方式需要 Python 與 ncua-data-analysis 套件(例如透過 uvx),會一次性把發行版 Parquet 檔案下載到快取目錄,並可用環境變數 NCUA_DATA_DIR 指向已下載的檔案。未宣告需要帳號、API 金鑰或標頭。
安裝前請注意
此服務為唯讀,不要求任何憑證。資料由信用合作社自行申報且偶爾修訂;部分欄位為估算或近似值,對帳檢查並非全部與 NCUA 公布的總數一致。合併會使跨合併期的單一機構成長失去意義,使用者應篩選 is_federally_insured 以符合 NCUA 總數。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 NCUA credit union data,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "ncua-data-analysis": {
      "type": "http",
      "url": "https://ncua-data-analysis.fly.dev/mcp"
    }
  }
}

README

ncua-data-analysis

Clean, documented, quarterly credit union data from NCUA call reports, 2018 to today: lending, deposit mix, earnings, staffing and efficiency.

NCUA publishes every federally insured credit union's quarterly 5300 call report as free bulk files. They are hard to use: 3,300+ account columns split across 17 wide tables, form changes that move accounts around, year-to-date income, and a data dictionary written as form instructions. This project turns that into four tidy tables you can query with DuckDB, pandas or anything that reads Parquet.

Status: v0. 115 curated fields and 52 computed metrics, 34 quarters (2018 Q1 to 2026 Q2), checked against NCUA's own published totals. See what is not done yet.

Tables

TableGrainWhat it is
dim_credit_unioncredit union x quarterName, location, charter type, peer group, low-income and MDI flags, and is_federally_insured.
fact_call_report_curatedcredit union x quarter115 curated account values with plain names: balance sheet, shares and capital, deposit composition (share drafts, regular, money market, certificates, IRA, non-member), loan balances by type, originations, delinquency, charge-offs, income statement, employees and branches.
metricscredit union x quarter52 computed metrics: delinquency, loan-to-share, ROA, NIM, loan and deposit mix, growth, efficiency ratio, members and assets per employee, per-branch figures, de-cumulated quarterly income.
dictionarycolumnDescription, unit, NCUA account codes, and first and last quarter each field has data.

Join on quarter + cu_number. Dollar fields are dollars. Fields ending in _ytd are year to date and reset each January (the Q4 value is the full year); metrics annualizes them.

sql
-- Which large credit unions grew auto lending fastest last year?SELECT d.name, d.state, m.auto_loan_growth_yoy, f.loans_new_vehicle + f.loans_used_vehicle AS auto_loansFROM fact_call_report_curated fJOIN dim_credit_union d USING (quarter, cu_number)JOIN metrics m USING (quarter, cu_number)WHERE f.quarter = '2026-06' AND d.is_federally_insured AND d.peer_group = 6ORDER BY m.auto_loan_growth_yoy DESC LIMIT 10;

Run it

bash
pip install -e .ncua-data all          # download 34 quarters (~270 MB), build tables, reconcilepython -m unittest discover -s tests

Output lands in data/out/ as Parquet. Raw ZIPs are never committed. Links are scraped from NCUA's quarterly data page.

Numbers you can trust

For June 2026 and December 2025 the totals reconcile to the figures in NCUA's Quarterly Credit Union Data Summary: credit union count, members, loans by type, shares, net worth ratio, delinquency, income and expense. 60 of 67 checks match across six year-ends (2021 to June 2026). The 7 that do not are historical deposit lines that differ by under $0.5B (under 0.1%), for example Dec 2025 money market $367.5B versus $368.0B published. All June 2026 lines match. The likely cause is restated history in NCUA's table, which has not been confirmed. Full table: docs/RECONCILIATION.md.

Things to know before using it:

  • Filter to is_federally_insured. NCUA's raw files include about 85 state-chartered credit unions it does not insure. Its published totals leave them out.
  • The form changed in 2022 and 2023. NCUA redesigned the call report and adopted CECL, so some accounts disappear and new ones appear. Fields that span the change map both account codes (for example the allowance is Acct_719 before CECL and Acct_AS0048 after). Fields that only exist after the change say so in the dictionary.
  • Net worth ratio. NCUA's published ratio excludes the CECL transition provision from 2023 on. This dataset carries that provision (cecl_transition_provision) and metrics.net_worth_ratio_ex_cecl matches NCUA.
  • Employees are estimated. employees_fte_estimate is full-time plus half of part-time. It is not an NCUA definition and is not reconciled to a published figure.
  • Net charge-off ratio, ROA and NIM use NCUA's own average balances, which are not public. Metrics here use a four-quarter average and land within a few basis points of NCUA's published values, not on them.
  • Mergers. Credit union counts fell from 5,375 to 4,214 since 2018. A merged credit union's history stays under its old charter number, so per-institution growth across a merger is not meaningful.
  • Reports are self-reported and occasionally reposted as "Revised". The ZIPs are used as NCUA publishes them today.

Not done yet

  • Commercial-loan delinquency by type (NCUA moved these to new account codes in 2022).
  • More fields. The target is 150 to 200; 115 are in and verified.
  • Years before 2018 (the download links use two other naming patterns).
  • A static analytics site and natural-language querying. The dictionary is built to be the semantic layer for that.

MCP server (v1)

A local MCP server lets an AI assistant query this dataset in plain language. It runs over stdio, reads the release Parquet files with DuckDB (downloaded once to ~/.cache/ncua-data-analysis), and builds its tool descriptions from the dictionary table.

json
{  "mcpServers": {    "ncua-data": {      "command": "uvx",      "args": ["--from", "ncua-data-analysis", "ncua-data-mcp"]    }  }}

The package is on PyPI: https://pypi.org/project/ncua-data-analysis/. To run the latest development version instead, use "args": ["--from", "git+https://github.com/bnovarini/ncua-data-analysis", "ncua-data-mcp"].

Hosted, nothing to install: https://ncua-data-analysis.fly.dev/mcp (streamable HTTP, read-only, rate limited to 60 requests a minute per client). Add it as a remote MCP server in any client that supports one, for example {"mcpServers": {"ncua-data": {"url": "https://ncua-data-analysis.fly.dev/mcp"}}}.

[Install in Cursor] [Install in VS Code] [Install in VS Code Insiders]

Claude Code: claude mcp add --transport http ncua-data https://ncua-data-analysis.fly.dev/mcp

Tools: list_fields, find_credit_union, credit_union_profile, metric_series (one credit union or an aggregate across all), peer_compare (by asset group, state or charter), and query_metrics (filters, ordering and limits; no raw SQL). Set NCUA_DATA_DIR to use a folder of already-downloaded files. Status: first working version, tested over stdio with a real MCP client; not yet listed in the MCP registry.

Download

Ready-made Parquet files are attached to the v0.1.1 release. GitHub caps release files at 25 MB, so fact_call_report_curated and metrics come in three parts by year (2018-2020, 2021-2023, 2024-2026) with identical columns:

python
import duckdbbase = "https://github.com/bnovarini/ncua-data-analysis/releases/download/v0.1.1/"parts = [base + f"metrics_{y}.parquet" for y in ("2018_2020", "2021_2023", "2024_2026")]duckdb.sql(f"SELECT quarter, count(*) FROM read_parquet({parts}) GROUP BY 1 ORDER BY 1").show()

Data source and license

Data: National Credit Union Administration, 5300 Call Report Quarterly Data. NCUA does not state a license on the download page. As a US federal agency's work it is assumed to be public domain, but that assumption has not been confirmed. Credit NCUA when you use it.

Code: MIT, see LICENSE.

來源:README.md,提交 5780ed7

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.2最新Oct 8, 2026