← back to Commercialrealestate

docs/PUBLIC_SOURCE_REGISTER.md

39 lines

# CRCP Lending-Intelligence — Public Source Register

Every source powering the lending layer, its official endpoint, access method, and review status.
Scope is Los Angeles County, CA (the CRCP footprint). All `$0`, public, unauthenticated unless noted.

| Dataset | Source (owner) | Official endpoint | Access method | Personal data | Ingestion script | Status |
|---|---|---|---|---|---|---|
| `lenders` | FDIC BankFind Suite | `https://api.fdic.gov/banks/institutions` + `/banks/locations` | official_api | No | `scripts/fetch-fdic-lenders.js` | ✅ live (95 banks / 1,414 LA branches) |
| `branches` | FDIC BankFind Suite | `https://api.fdic.gov/banks/locations` | official_api | No | `scripts/fetch-fdic-lenders.js` | ✅ live |
| `credit-unions` | NCUA | Quarterly Call Report ZIP (`ncua.gov/files/publications/analysis/call-report-data-2026-03.zip`) | official_bulk_download | No | `scripts/fetch-ncua-credit-unions.js` | ✅ live (104 LA-County credit unions, 2026-Q1) |
| `market` | CFPB / FFIEC HMDA | `https://ffiec.cfpb.gov/v2/data-browser-api/view/csv?years=2023&states=CA&counties=06037&actions_taken=1` | official_api | No (aggregate only) | `scripts/fetch-hmda-market.js` | ✅ live (745 lenders, 2023) |
| `sba-lenders` | U.S. SBA | 7(a)/504 FOIA CSVs (`data.sba.gov/dataset/7a-504-foia`) | official_bulk_download | No | `scripts/fetch-sba-lenders.js` | ✅ live (378 lenders, FY2010–2026) |
| `loan-officers` | CA DRE MLO List (bulk) + firm public rosters | `secure.dre.ca.gov/datafile/mlo_list.xls` (daily) + `claloans.net`/`mlmortgage.net`/`mmclending.com` rosters | official_bulk_download + first_party_public_web | Yes | `scripts/fetch-dre-mlo.py` (+ verified manual firm entries) | ✅ live (4,494 CA officers — DRE LA-County active individuals (Broker/Salesperson/Officer) + 3 firms) |

## Notes
- **FDIC** — the `api.fdic.gov/banks` host is current (the old `banks.data.fdic.gov/api` 301-redirects to
  it). Institutions filtered to those with ≥1 branch in LA County; joined to institution metadata by CERT.
  Pagination captures `total` from the first page only (a later page occasionally omits it).
- **HMDA** — institution-level originations by lender + geography for LA County (FIPS 06037). Never
  represented as individual production (see `DATA_POLICY.md` §5). **Gotcha:** the CFPB `/view/aggregations`
  endpoint silently IGNORES the `counties` filter (returns CA-statewide totals) — use the `/view/csv`
  record route and aggregate by LEI locally (that route honors the county filter). Only `lei` + `loan_amount`
  are read from records — never any demographic/borrower field.
- **NCUA** — no clean REST API like FDIC; the public quarterly Call Report / active-institution files are
  the permitted bulk route. Scope to credit unions with an LA-County office/branch.
- **SBA** — 7(a)/504 loan-level FOIA data is large; aggregate to lender + volume for the LA market.
- **NMLS / loan-officers** — Consumer Access prohibits automated access and is NEVER crawled. CA DFPI
  publishes NO bulk file of individual MLOs (company-level only; verified 2026-08-20). The PERMITTED bulk
  source is **CA DRE's daily "MLO List"** (`secure.dre.ca.gov/datafile/mlo_list.xls`, an official_bulk_download
  of real-estate licensees holding a SAFE Act / NMLS MLO endorsement — each row carries a real `nmls_id` +
  CalBRE #). `scripts/fetch-dre-mlo.py` ingests it scoped to **LA County, active, individual (Broker/
  Salesperson)** and DROPS `address_line_1/2` + `zip` (Rule 3 — no home address); the state-published
  `phone_number` is kept as a government-published business contact. The DRE rows are merged with (never
  overwrite) verified `first_party_public_web` firm-roster entries (California Loan Associates, ML Mortgage,
  MMC Lending), deduped by NMLS #. Statewide/other-county or the "Officer" license type can be added by
  widening the filter in the script (a gated scale decision).

_Last reviewed: 2026-07-31._