FHLBank Membership Roster & Delta Monitor
Pricing
from $6.60 / 1,000 roster rows
FHLBank Membership Roster & Delta Monitor
FHLBank System membership roster and quarter-over-quarter delta tracker sourced from FHFA's published member file: joins, exits and attribute changes across all 11 districts, with CERT/FED_ID/NCUA_ID/NAIC_ID join keys for correspondent banking, KYB and competitive intel.
Pricing
from $6.60 / 1,000 roster rows
Rating
0.0
(0)
Developer
Kyle Maloney
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
FHLBank System membership roster and quarter-over-quarter delta tracker, sourced directly
from FHFA's own published member file (fhlb_members_q<N><YYYY>.xlsx). Covers all 11
FHLBank districts (Atlanta, Boston, Chicago, Cincinnati, Dallas, Des Moines, Indianapolis,
New York, Pittsburgh, San Francisco, Topeka) and every member type FHFA tracks: commercial
banks, savings institutions, credit unions, insurance companies and CDFIs.
Every row carries the standard cross-reference join keys published on the source file --
cert (FDIC certificate number), fed_id (Federal Reserve ID), ncua_id (NCUA charter
number) and naic_id (insurance identifier) -- so this is a clean join target for
fdic-ncua-health-rollup (bank/CU
financial health) and any other CERT- or NCUA-keyed data source.
Who this is for
- Correspondent banking / capital markets desks tracking which institutions carry FHLBank advance access, or watching for new entrants and exits in a district.
- KYB / vendor-onboarding teams who need an authoritative FHFA-published cross-walk from an institution name to its FDIC CERT / Federal Reserve ID / NCUA charter number.
- Fintech and correspondent-lending BD teams building a target list of FHLBank members by state, charter type or district.
- Bank/credit-union competitive intelligence teams tracking membership changes -- mergers, charter conversions, new entrants -- as a leading signal.
Two modes
Roster mode (default)
Returns a filtered listing of current FHLBank members from the most recently posted quarterly file (FHFA hosts several recent quarters simultaneously; this actor automatically walks back up to 4 quarters if the very latest one is not yet posted).
{ "mode": "roster", "states": ["CO"], "maxResults": 500 }
Every roster row also carries is_new_since_last_run -- whether this member was absent
from a cross-run baseline stored in your account's key-value store. On your very first run
this is null for every row (there is nothing to compare against yet), never true.
Delta mode
Resolves the prior quarter's file too (a second, real FHFA file -- not a guess) and returns only the join/exit/attribute_change EVENTS between the two:
{ "mode": "delta", "eventTypes": ["join", "exit"], "states": ["TX"] }
- join -- a new FHFA_ID present in the current quarter, absent from the prior one.
- exit -- an FHFA_ID present in the prior quarter, absent from the current one (the member left the open-membership roster; FHFA's file does not say why).
- attribute_change -- present in both quarters, but one or more of member_name, city,
state, zip, district, mem_type, char_type, cert, fed_id, ncua_id or naic_id differs.
changed_fieldsnames which;previous_valuesholds the old value for each.
Because FHFA hosts multiple quarters' files at once, delta mode computes a real two-file comparison on your very first run -- it does not need to wait for a second scheduled run the way a single-file source would.
Example output row (delta mode, a real "exit" event)
{"mode": "delta","fhfa_id": "54201","member_name": "Comerica Bank","city": "Dallas","state": "TX","district": "Dallas","mem_type": "Commercial Bank","char_type": "State","cert": "00983","fed_id": "0060143","mem_date": "2008-02-14","member_tenure_days": 6754,"delta_event_type": "exit","delta_current_quarter": "q22026","delta_prior_quarter": "q12026","file_quarter": "q12026"}
Input fields
| Field | Type | Description |
|---|---|---|
mode | string | "roster" (default) or "delta". |
states | array | US state/territory filter -- 2-letter code or full name, e.g. "CO" or "Colorado". |
charterTypes | array | Filter by Federal, National, State, or None. |
districts | array | Filter by FHLBank district name. |
memberSince | string | YYYY-MM-DD only -- see "Date format" below. Anything else FAILS the run. |
quarter | string | Pin an exact quarter, e.g. "q22026". Leave blank for the latest posted. |
eventTypes | array | Delta mode only -- subset of join, exit, attribute_change. |
maxResults | integer | Row/event cap for this run (default 1000). |
Date format -- memberSince accepts YYYY-MM-DD and nothing else
Accepted: 2020-01-15, and the unpadded 2020-1-1 (padded for you). Blank or omitted
means no cutoff at all, which is not an error. Every other form fails the run before
any file is downloaded, and bills nothing.
memberSince is string-compared against membership dates already normalised to ISO, so
a wrong format does not error -- it silently returns the wrong row set and labels it a
successful filtered answer. Measured against a 3-row fixture (membership dates
2018-06-15, 2020-03-01, 2022-02-10) where the true answer for a 2020-01-01 cutoff is
2 of 3:
| You pass | Returned before this fix | Why |
|---|---|---|
01/15/2020 (US) | 3 of 3 -- the whole set, as if no cutoff were applied | "01/..." sorts below every "20xx-.." date, so the comparison is true for every row |
Jan 2020 | 0 of 3 -- a confident "no members joined since Jan 2020" | "Jan..." sorts above every "2..." date, so the comparison is false for every row |
Two more worth knowing, both now rejected: 2020-1-1 returned 1 of 3 (unpadded, so
it sorts below every zero-padded month and silently drops January through September),
and 2020-13-45 returned 1 of 3 -- a plausible-looking subset from an impossible
date. Slash forms are refused on purpose rather than guessed: 05/06/2025 is genuinely
ambiguous between US (May 6) and EU (June 5) order, and guessing trades a loud, fixable
error for a silent one-month window shift.
Output fields
| Field | Description |
|---|---|
mode | roster or delta. |
fhfa_id | FHFA member ID, zero-padded to 5 digits. The delta join key. |
district, member_name, city, state, zip | As published by FHFA. |
mem_type, char_type | Closed-vocabulary institution/charter type. |
cert | FDIC certificate number, when FDIC-insured. Join key to FDIC-sourced actors. |
fed_id | Federal Reserve ID, zero-padded to 7 digits. |
ncua_id | NCUA charter number. See ncua_id_looks_placeholder. |
ncua_id_looks_placeholder | True for the rare all-zero "00000" value (very likely a not-yet-assigned placeholder, never guessed silently). |
naic_id | Insurance-company identifier. |
appr_date, appr_date_basis | Approval date + how it was derived (parsed/blank/unparseable/absent). |
mem_date, mem_date_basis | Membership date (century-pivoted from FHFA's 2-digit-year format) + basis. |
member_tenure_days | Days since mem_date. |
file_quarter | Which quarter's file this row's member data is from. |
is_new_since_last_run, delta_baseline_status | Roster mode: cross-run "new" flag + how it was determined. |
delta_event_type, delta_current_quarter, delta_prior_quarter | Delta mode: which kind of event, and the two quarters compared. |
changed_fields, previous_values | Delta mode, attribute_change rows only. |
delta_transition_already_reported | Delta mode: whether this exact quarter pair was already reported by an earlier run (informational; the delta is always recomputed fresh). |
source_url, source_resolution_method, source_file_last_modified, source_row_count | Provenance: exactly which file, how it was found, and its vintage. |
matched_rows_total, results_truncated | So a capped answer is never mistaken for a complete one. |
monitored_at | UTC timestamp of this run. |
Use as an MCP tool
This actor is callable by AI agents (Claude, Cursor, etc.) via mcp.apify.com -- the
input/output schemas above are written to be self-describing to an agent choosing a tool.
A typical agent prompt: "Which FHLBank Dallas members joined or left between Q1 and Q2
2026?" maps directly to {"mode":"delta","districts":["Dallas"],"eventTypes":["join","exit"]}.
FAQ
Does this cover every FHLBank district? Yes, all 11.
What does "exit" mean -- did the institution fail? No. FHFA's open-membership file
does not record a reason for a member's departure (merger, acquisition, voluntary
withdrawal, or termination are all possible). exit means the FHFA_ID is no longer in the
open-membership roster as of the current quarter; it is a fact, not an inference.
How current is the data? FHFA posts a new quarterly file on a multi-week lag after each
quarter ends (verified: the April-June 2026 file posted in mid-August 2026). Every row
carries source_file_last_modified and file_quarter so you always know the vintage.
Can I get the same member cross-referenced against FDIC/NCUA financial data? Yes -- join
on cert (banks/thrifts) or ncua_id (credit unions) to
fdic-ncua-health-rollup.
Pricing
$12 per 1,000 result rows (Pay-Per-Event, Result event only), with the standard graduated volume discount schedule.