A branch closing cuts local small-business lending by about 10% net, 19% gross, and the effect lasts up to six years
Causal estimate: Nguyen (2019, AEJ:Applied). Corpus corroboration: FDIC banking.history + FFIEC CRA small-business lending, 2019-2020.
Summary
The best causal evidence on this question comes from Hoai-Luu Nguyen's 2019 study in the American Economic Journal: Applied Economics, which uses branch closures forced by bank mergers as a natural experiment. A branch closing cuts new small-business loan originations in the immediately surrounding area (within about 6 miles) by $871,000/year off a $4.7 million baseline -- a 19% gross decline -- but roughly half of that gap is filled by smaller banks (27% of the gross decline) and credit unions (21%) stepping in. The net, uncompensated decline is about 10%, or $453,000/year, and it persists for up to six years after the closing. This lending shortfall translates into a measurable real-economy effect: a roughly 2-percentage-point reduction in local employment growth, driven mainly by new/entering firms being smaller, not by fewer firms entering or more exiting. Effects are worse in low-income neighborhoods and during recessions/credit crunches, and weaker where fintech lending has more penetration.
A direct check inside this data corpus (FDIC branch-closing records joined to FFIEC's county-level CRA small-business lending) is directionally consistent -- counties with a 2019 branch closing saw small-business lending growth of about 28% into 2020 versus about 40% in counties with no closing, an 11.5-point gap significant at p<0.001 -- but this single available before/after transition straddles the COVID-19 credit surge and cannot be treated as a causal replication; it is corroborating, not proof on its own.
The causal estimate: Nguyen (2019)
Nguyen's identification strategy isolates closures caused by post-merger branch consolidation (using bank mergers where a merged bank had overlapping branches, e.g. Wachovia/SouthTrust), instrumenting for closures with within-county, census-tract-level exposure to that consolidation -- a design that avoids the obvious problem that banks tend to close branches in areas already declining. Key findings, read directly from the primary paper:
- Gross effect: closings are associated with an $871,000 decline in new small-business loan originations, a 19% annual decline off the ~$4.7M tract-level baseline (Table 7).
- Substitution: smaller banks absorb about 27% of that gross decline; credit unions absorb a further ~21% of the original decline.
- Net effect: netting those substitution effects from the 19% gross figure leaves a remaining 10% decline ($453,000/year) that is not compensated by other lenders -- this is the headline number in the paper's abstract.
- Duration and geography: the depressed lending persists for up to six years post-closing and dissipates within about 6 miles of the closed branch -- i.e., it is a hyper-local effect, not a market-wide one.
- Heterogeneity: effects are most severe in low-income neighborhoods, worse during the 2008-09 financial crisis (when relationship-based screening matters most), and weaker in areas with more fintech/mobile-banking penetration (a 2024 ScienceDirect study on mobile banking substitution corroborates this last point).
- Real effects: the sustained credit shortfall is associated with a 2-percentage-point reduction in the local employment growth rate, operating through tighter constraints on the size of entering (not the number of entering or exiting) firms. No significant effect was found on local mortgage lending -- the effect is specific to small-business/relationship lending, which depends on soft information branches historically provided.
Corpus check: is this visible in FDIC/FFIEC data here
This corpus carries FDIC's branch open/close event log (banking.history, 1934-2026, verified) and FFIEC's county-level CRA aggregate small-business lending (banking.cra_small_business_lending) -- but the CRA table is only loaded for 2019 and 2020, so only one before/after transition is available, and that transition spans the COVID-19 shock to small-business credit. With that major caveat:
- 934 counties recorded at least one FDIC branch closing in 2019; 2,287 comparable counties recorded none.
- From 2019 to 2020, small-business loan dollars (to firms with revenue <$1M) rose on average 28.3% in closure counties versus 39.8% in non-closure counties -- both rose because 2020 was a national small-business credit surge year (stimulus-adjacent lending conditions), but closure counties rose about 11.5 percentage points less.
- A Welch's t-test on this gap: t = -3.38, p < 0.001 (n=3,221 counties).
Exclusion disclosure: of the 2,858 FDIC branch-closing events recorded for 2019, 74 (2.6%) carry no resolvable county FIPS code -- mainly DC branches (which have no county subdivision to report), Puerto Rico/US Virgin Islands offices (not in the FDIC's county-name crosswalk), and a handful of ambiguous Virginia city/county name collisions -- and were dropped from the county-level closure count used above. On the CRA lending side, all 6,453 county-total (report_level='200') rows for 2019-2020 carry a non-null county_fips, so no lending rows were excluded. This is directionally consistent with Nguyen's finding -- branch-closure counties lag -- but it is not a causal replication: it is one uncontrolled year-over-year comparison, confounded by a national pandemic-era lending surge that almost certainly affected closure and non-closure counties differently for reasons having nothing to do with branch closures (urban/rural mix, industry composition, bank density itself). The corpus does not currently hold CRA lending data outside 2019-2020, so a longer, cleaner panel replication (ideally spanning several pre-merger and post-merger years, as Nguyen's tract-level microdata does) is not possible with what is loaded here.
Every query behind this report
5 warehouse calls ran in this session, in order. Each is reproducible against the same snapshot.
query — 15 rows — 4021 ms
SELECT EXTRACT(year FROM effective_date) AS yr, count(*) AS closures
FROM banking.history
WHERE changecode_label = 'Branch Closing'
GROUP BY EXTRACT(year FROM effective_date)
ORDER BY yr DESC
LIMIT 15query — 2 rows — 6522 ms
WITH closures AS (
SELECT county_fips, count(*) AS n_closures
FROM banking.history
WHERE changecode_label = 'Branch Closing'
AND EXTRACT(year FROM effective_date) = 2019
AND county_fips IS NOT NULL
GROUP BY county_fips
),
lend19 AS (
SELECT county_fips, sum(loans_to_small_biz_lt_1m_rev_amount) AS amt19
FROM banking.cra_small_business_lending
WHERE activity_year = 2019 AND report_level = '200' AND county_fips IS NOT NULL
GROUP BY county_fips
),
lend20 AS (
SELECT county_fips, sum(loans_to_small_biz_lt_1m_rev_amount) AS amt20
FROM banking.cra_small_business_lending
WHERE activity_year = 2020 AND report_level = '200' AND county_fips IS NOT NULL
GROUP BY county_fips
)
SELECT
CASE WHEN c.n_closures > 0 THEN 'closure_county' ELSE 'no_closure' END AS grp,
count(*) AS n_counties,
avg((l20.amt20 - l19.amt19) * 1.0 / NULLIF(l19.amt19,0)) AS avg_pct_change
FROM lend19 l19
JOIN lend20 l20 ON l19.county_fips = l20.county_fips
LEFT JOIN closures c ON c.county_fips = l19.county_fips
GROUP BY CASE WHEN c.n_closures > 0 THEN 'closure_county' ELSE 'no_closure' ENDhypothesis_test — 6476 ms
WITH closures AS (
SELECT county_fips, count(*) AS n_closures
FROM banking.history
WHERE changecode_label = 'Branch Closing'
AND EXTRACT(year FROM effective_date) = 2019
AND county_fips IS NOT NULL
GROUP BY county_fips
),
lend19 AS (
SELECT county_fips, sum(loans_to_small_biz_lt_1m_rev_amount) AS amt19
FROM banking.cra_small_business_lending
WHERE activity_year = 2019 AND report_level = '200' AND county_fips IS NOT NULL
GROUP BY county_fips
),
lend20 AS (
SELECT county_fips, sum(loans_to_small_biz_lt_1m_rev_amount) AS amt20
FROM banking.cra_small_business_lending
WHERE activity_year = 2020 AND report_level = '200' AND county_fips IS NOT NULL
GROUP BY county_fips
)
SELECT
CASE WHEN c.n_closures > 0 THEN 'closure_county' ELSE 'no_closure' END AS grp,
(l20.amt20 - l19.amt19) * 1.0 / NULLIF(l19.amt19,0) AS pct_change
FROM lend19 l19
JOIN lend20 l20 ON l19.county_fips = l20.county_fips
LEFT JOIN closures c ON c.county_fips = l19.county_fips
WHERE l19.amt19 > 0query — 1 rows — 2201 ms
SELECT
sum(CASE WHEN county_fips IS NULL THEN 1 ELSE 0 END) AS null_fips,
count(*) AS total
FROM banking.cra_small_business_lending
WHERE activity_year IN (2019,2020) AND report_level = '200'query — 1 rows — 11155 ms
SELECT
sum(CASE WHEN county_fips IS NULL THEN 1 ELSE 0 END) AS null_fips,
count(*) AS total
FROM banking.history
WHERE changecode_label = 'Branch Closing' AND EXTRACT(year FROM effective_date) = 2019Sources
- Nguyen (2019), "Are Credit Markets Still Local? Evidence from Bank Branch Closings," AEJ: Applied Economics 11(1):1-32 — Primary source, fetched and read directly (abstract, Table 7 decomposition, results section)
- AEA journal page for the same article
- Impact of mobile banking on small business lending after bank branch closures (ScienceDirect, 2024) — Corroborates fintech-penetration heterogeneity
- NCRC: Relationships Matter -- Small Business and Bank Branch Locations
- IADB Research Insights: What Are the Impacts of Bank Branch Closures on Local Firms?
- Toussaint-Comeau, Wang & Newberger (2020), Impact of Bank Closings on Credit Extension in Low-Income/Minority Neighborhoods
- AskAmerica banking.history (FDIC branch closing events, 2019 count)
Show SQL
SELECT EXTRACT(year FROM effective_date) AS yr, count(*) FROM banking.history WHERE changecode_label = 'Branch Closing' GROUP BY yr ORDER BY yr DESC - AskAmerica corpus check: closure vs. non-closure county lending change, 2019->2020, with Welch t-test
Show tool call
hypothesis_test(test="t_test", group_col="grp", value_col="pct_change")