US mortgage lending by state, annual (HMDA)
Annual mortgage-credit intelligence from the Home Mortgage Disclosure Act loan-application aggregates served by the keyless CFPB Data Browser API v2: one row per year per state (50 states + DC, 2018-2024). Each row carries originated and denied application counts and loan volumes, split by loan purpose (purchase / refinance including cash-out / home improvement / other), plus derived signals: the denial rate (underwriting tightness), the refinance share of originations (rate sensitivity), purpose-level denial rates, the average originated loan amount, exact year-over-year changes (null for 2018, never interpolated), and the same three signals on the national aggregate as backdrop. Method: one server-side aggregation call per (state, year) plus one nationwide call per year; fail-loud grid and group-identity gates; deterministic 16-hex row hashes. Caveats: the purpose split excludes the ~0.1% of records with unreported loan purpose; HMDA covers reporting institutions only (small lenders exempt); figures are CFPB resubmission-adjusted and can revise. HMDA data are a U.S. federal government work in the public domain (17 U.S.C. 105), free to use with no authentication.
- Source
- CFPB / FFIEC
- Rows
- 357
- Columns
- 31
- Source cadence
- Yearly
- Last refreshed
- Oct 2, 2026
- Theme
- housing
| Column | Type | Description |
|---|---|---|
| country_code | string | ISO alpha-3 country code (USA for every row). (unit: ISO 3166-1 alpha-3) |
| year | integer | HMDA reporting year (annual vintage). |
| state_code | string | USPS 2-letter state code (50 states + DC). |
| state_name | string | State name. |
| originated_count | integer | Loans originated (HMDA action_taken=1), summed over the five reported loan purposes. Excludes the ~0.1% of records with unreported loan purpose. (unit: count) |
| originated_volume_usd | float | Sum of originated loan amounts, in US dollars. (unit: USD) |
| denied_count | integer | Applications denied (HMDA action_taken=3), summed over the five reported loan purposes. (unit: count) |
| denied_volume_usd | float | Sum of requested loan amounts on denied applications, in US dollars. (unit: USD) |
| denial_rate_pct | float | Denied / (originated + denied) * 100 — the underwriting-tightness read for the state-year. (unit: percent) |
| purchase_count | integer | Originated home-purchase loans (loan_purpose=1). (unit: count) |
| purchase_volume_usd | float | Originated home-purchase loan volume, in US dollars. (unit: USD) |
| refinance_count | integer | Originated refinance loans: standard refinancing (loan_purpose=31) plus cash-out refinancing (loan_purpose=32). (unit: count) |
| refinance_volume_usd | float | Originated refinance loan volume (31+32), in US dollars. (unit: USD) |
| improvement_count | integer | Originated home-improvement loans (loan_purpose=2). (unit: count) |
| improvement_volume_usd | float | Originated home-improvement loan volume, in US dollars. (unit: USD) |
| other_purpose_count | integer | Originated loans with other purpose (loan_purpose=4). (unit: count) |
| other_purpose_volume_usd | float | Originated other-purpose loan volume, in US dollars. (unit: USD) |
| refinance_share_pct | float | Refinance originations / all originations * 100 — the rate-sensitivity read (collapses when rates rise). (unit: percent) |
| purchase_share_pct | float | Purchase originations / all originations * 100. (unit: percent) |
| purchase_denial_rate_pct | float | Denied / (originated + denied) * 100 among home-purchase applications. (unit: percent) |
| refinance_denial_rate_pct | float | Denied / (originated + denied) * 100 among refinance applications (31+32). (unit: percent) |
| avg_loan_amount_usd | float | Originated volume / originated count — the average originated loan size. (unit: USD) |
| originated_count_yoy_pct | float | Year-over-year percent change in originated count, computed only against the exact prior year for the same state. Null for 2018 (never interpolated). (unit: percent) |
| originated_volume_yoy_pct | float | Year-over-year percent change in originated volume, same-state exact prior year. Null for 2018. (unit: percent) |
| denial_rate_yoy_pp | float | Year-over-year change in the denial rate, in percentage points. Null for 2018. (unit: percentage points) |
| national_denial_rate_pct | float | The denial rate on the nationwide aggregate that year — backdrop for the state read. (unit: percent) |
| national_refinance_share_pct | float | The refinance share on the nationwide aggregate that year. (unit: percent) |
| national_avg_loan_amount_usd | float | The average originated loan amount on the nationwide aggregate that year. (unit: USD) |
| as_of | string | Fetch date (ISO) of the snapshot build. (unit: ISO date) |
| source_url | string | The CFPB Data Browser API documentation URL. (unit: URL) |
| row_hash | string | Deterministic 16-hex SHA-256 of 'HMDA|year|state_code' — stable row identity across snapshots. |
First 10 sample rows — a preview, not the complete dataset.
| country_code | year | state_code | state_name | originated_count | originated_volume_usd | denied_count | denied_volume_usd | denial_rate_pct | purchase_count | purchase_volume_usd | refinance_count | refinance_volume_usd | improvement_count | improvement_volume_usd | other_purpose_count | other_purpose_volume_usd | refinance_share_pct | purchase_share_pct | purchase_denial_rate_pct | refinance_denial_rate_pct | avg_loan_amount_usd | originated_count_yoy_pct | originated_volume_yoy_pct | denial_rate_yoy_pp | national_denial_rate_pct | national_refinance_share_pct | national_avg_loan_amount_usd | as_of | source_url | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| USA | 2,024 | AK | Alaska | 10,603 | 3,530,205,000 | 2,767 | 582,255,000 | 20.7 | 7,145 | 2,694,165,000 | 2,103 | 613,565,000 | 589 | 61,105,000 | 766 | 161,370,000 | 19.83 | 67.39 | 7.56 | 32.83 | 332,943.98 | 11.41 | 14.88 | 0.02 | 25.34 | 23.71 | 328,647.71 | 2026-10-02 | https://ffiec.cfpb.gov/documentation/api/data-browser/ | 73e76b22771acd26 |
| USA | 2,024 | AL | Alabama | 104,570 | 23,836,040,000 | 39,899 | 5,897,895,000 | 27.62 | 61,667 | 16,085,195,000 | 25,578 | 6,069,360,000 | 7,578 | 651,400,000 | 9,747 | 1,030,085,000 | 24.46 | 58.97 | 20.73 | 30.33 | 227,943.39 | 9.05 | 8.61 | -0.79 | 25.34 | 23.71 | 328,647.71 | 2026-10-02 | https://ffiec.cfpb.gov/documentation/api/data-browser/ | c343f684c15b2065 |
| USA | 2,024 | AR | Arkansas | 59,190 | 12,995,820,000 | 21,429 | 2,771,105,000 | 26.58 | 36,020 | 9,219,970,000 | 12,941 | 2,875,865,000 | 4,740 | 387,330,000 | 5,489 | 512,655,000 | 21.86 | 60.85 | 20.37 | 28.94 | 219,561.07 | 8.84 | 12.93 | -1.08 | 25.34 | 23.71 | 328,647.71 | 2026-10-02 | https://ffiec.cfpb.gov/documentation/api/data-browser/ | 72a42680be557f77 |
| USA | 2,024 | AZ | Arizona | 167,479 | 58,943,155,000 | 50,813 | 11,804,585,000 | 23.28 | 93,109 | 38,699,325,000 | 40,488 | 16,106,040,000 | 15,373 | 1,833,745,000 | 18,509 | 2,304,045,000 | 24.17 | 55.59 | 11.27 | 27.53 | 351,943.56 | 12.92 | 18.48 | -2.45 | 25.34 | 23.71 | 328,647.71 | 2026-10-02 | https://ffiec.cfpb.gov/documentation/api/data-browser/ | a04de8ddf88f233c |
| USA | 2,024 | CA | California | 510,822 | 288,502,280,000 | 180,484 | 61,178,800,000 | 26.11 | 261,993 | 182,895,805,000 | 144,071 | 85,056,475,000 | 52,428 | 9,345,690,000 | 52,330 | 11,204,310,000 | 28.2 | 51.29 | 12.06 | 28.98 | 564,780.45 | 17.87 | 24.76 | -1.69 | 25.34 | 23.71 | 328,647.71 | 2026-10-02 | https://ffiec.cfpb.gov/documentation/api/data-browser/ | 8da7a80cb23e7d53 |
| USA | 2,024 | CO | Colorado | 143,182 | 59,521,210,000 | 41,924 | 10,203,700,000 | 22.65 | 79,809 | 40,048,475,000 | 33,335 | 15,164,275,000 | 13,080 | 1,698,090,000 | 16,958 | 2,610,370,000 | 23.28 | 55.74 | 11.31 | 29.31 | 415,703.16 | 5.74 | 12.71 | -0.05 | 25.34 | 23.71 | 328,647.71 | 2026-10-02 | https://ffiec.cfpb.gov/documentation/api/data-browser/ | 704c6873ebfe3cdb |
| USA | 2,024 | CT | Connecticut | 66,852 | 21,735,670,000 | 21,648 | 4,707,480,000 | 24.46 | 35,150 | 14,112,260,000 | 15,801 | 5,381,975,000 | 8,122 | 1,091,140,000 | 7,779 | 1,150,295,000 | 23.64 | 52.58 | 11.13 | 30.6 | 325,131.19 | 6.13 | 10.48 | 0.05 | 25.34 | 23.71 | 328,647.71 | 2026-10-02 | https://ffiec.cfpb.gov/documentation/api/data-browser/ | 699a06d2c5379ee2 |
| USA | 2,024 | DC | District of Columbia | 8,403 | 5,854,935,000 | 2,956 | 1,506,800,000 | 26.02 | 5,466 | 4,054,360,000 | 1,814 | 1,505,130,000 | 649 | 170,275,000 | 474 | 125,170,000 | 21.59 | 65.05 | 11.11 | 35.08 | 696,767.23 | -2.47 | -4.14 | 0.25 | 25.34 | 23.71 | 328,647.71 | 2026-10-02 | https://ffiec.cfpb.gov/documentation/api/data-browser/ | f9bea31f5f0bd436 |
| USA | 2,024 | DE | Delaware | 24,299 | 7,017,475,000 | 8,596 | 1,596,720,000 | 26.13 | 13,681 | 4,766,175,000 | 5,732 | 1,714,820,000 | 2,632 | 280,970,000 | 2,254 | 255,510,000 | 23.59 | 56.3 | 13.94 | 31.3 | 288,796.86 | 11.02 | 7.89 | -0.73 | 25.34 | 23.71 | 328,647.71 | 2026-10-02 | https://ffiec.cfpb.gov/documentation/api/data-browser/ | 75547b63ea12e1aa |
| USA | 2,024 | FL | Florida | 476,120 | 170,785,070,000 | 207,307 | 49,456,745,000 | 30.33 | 299,894 | 120,232,870,000 | 97,965 | 38,407,455,000 | 36,230 | 4,863,110,000 | 42,031 | 7,281,635,000 | 20.58 | 62.99 | 17.44 | 38.27 | 358,701.73 | 2.19 | 8.09 | -1.07 | 25.34 | 23.71 | 328,647.71 | 2026-10-02 | https://ffiec.cfpb.gov/documentation/api/data-browser/ | 283f6b469f70074e |
- Current
20261002T163459Z-b9f2a7cbb398 · sha256 b9f2a7cbb398…
357 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/hmda_mortgage_lending_intel/us_mortgage_lending_state_annual" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/hmda_mortgage_lending_intel/us_mortgage_lending_state_annual").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/hmda_mortgage_lending_intel/us_mortgage_lending_state_annual
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20261002T163459Z-b9f2a7cbb398 and its content hash, so readers get exactly the data you used.
CFPB / FFIEC. (2026). US mortgage lending by state, annual (HMDA) [Data set, snapshot 20261002T163459Z-b9f2a7cbb398, sha256 b9f2a7cbb398]. Datazimuts. Retrieved 2026-10-04, from https://datazimuts.com/en/datasets/hmda_mortgage_lending_intel/us_mortgage_lending_state_annual?snapshot=20261002T163459Z-b9f2a7cbb398
@misc{dz_hmda_mortgage_lending_intel_us_mortgage__b9f2a7cb,
title = {{US mortgage lending by state, annual (HMDA)}},
author = {{CFPB / FFIEC}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/hmda_mortgage_lending_intel/us_mortgage_lending_state_annual?snapshot=20261002T163459Z-b9f2a7cbb398}},
note = {Snapshot 20261002T163459Z-b9f2a7cbb398, sha256 b9f2a7cbb398d183d602a92c7a37fea6350ab1fa98d9ed4f74a68fce5aee9e4b; accessed 2026-10-04}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=hmda_mortgage_lending_intel%2Fus_mortgage_lending_state_annual&lang=en&theme=auto&snapshot=20261002T163459Z-b9f2a7cbb398&x=year&y=year&agg=avg" title="US mortgage lending by state, annual (HMDA)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.