QuarterCall

Free mirror of public NCUA data

Every 5300 filing, as one file per quarter.

The NCUA 5300 Call Report, mirrored as Parquet you can query straight from your laptop — no credentials, no signup, one request per cycle instead of thousands. Amendments are resolved to the filing that stands, and values keep the precision they were filed with. Free to read, free to build on, and the data spine behind FINASENSE.

Cycles held in 2026: Q1 and Q2 2026
Cycles held this year. newest

Credit unions in 2026Q2

4,300

Effectively the whole federally insured system, in one file you can read from your laptop.

9,300
filings archived
2022Q3-2026Q2
archive span
428
amendments resolved

Read live from the published manifest. Newest filing seen 2026-08-24. Earlier cycles are held thinly while the backfill runs.

Check it yourself

No account, no API key, no rate limit. Paste this into DuckDB and read the current cycle straight off the wire.

-- how many credit unions filed for the current cycle?
SELECT count(DISTINCT cu_number)
FROM   read_parquet(
  'https://data.quartercall.com/curated/accounts/quarter=2026Q2/data.parquet');

Partitioned by cycle and sorted by charter number, so a query for one credit union reads about a megabyte rather than the whole file. The manifest lists every cycle and where it lives.

Why not fetch it yourself?

You can, and the filings are public either way. NCUA publishes them; QuarterCall only re-shapes them. The difference is what it costs to get them.

Direct from NCUA Via QuarterCall
When you can read it 73 hours a week — weekday mornings and evenings, plus weekends No access window
One quarter of data One call per credit union, thousands of them, throttled — hours, spread across several windows One request
What you download 380 MB of JSON, one document per filing, values as strings 23 MB of Parquet, typed and columnar
Credentials A token, requested from NCUA None
Amendments Replaced at source — a re-fetch returns whatever is current Resolved to one version per credit union and cycle

Columnar matters more than the size difference suggests. Parquet carries per-column statistics, so a query for one credit union reads roughly a megabyte of that 23 — the file is partitioned by cycle and sorted by charter number, which is what makes the pruning work. Values arrive typed at eight decimal places rather than as strings, so a net-worth ratio is the figure filed rather than a parse of it.

Why raw Call Report data is hard

The filings are public. Making them line up across cycles is the work.

Account codes move

NCUA retires, renames and re-scopes account codes between cycles, so a join on the code breaks a trend line at the seam without telling you. We publish codes exactly as filed and record the cycle each one first appears in. What a code means across a break is research, and we publish that separately, once it has been validated.

Amendments replace at source

Amend a filing and NCUA serves the new version; the old one is gone. No endpoint takes a submission_id, so there is no way to ask for it back. We keep every version we ever collected, publish the newest per credit union and cycle, and retain what it replaced. That archive is the only record the earlier version existed, and it starts when our collection started.

Absent is not zero

A credit union that did not report a line is not one that reported nothing. Nulls stay null instead of collapsing to zero, and values carry eight decimal places, so a net-worth ratio is the figure filed rather than a rounding of it.

Built on this data

FINASENSE is quarterly, CAMELS-aligned analysis of the credit union system — the interpretation layer that turns this record into something a board can read. Same data, explained.

Read FINASENSE