Community Bank Value Screener

Client: Internal Industry: Quantitative Research / Bank Equities Completed: May 17, 2026
Python DuckDB FFIEC Call Reports SEC EDGAR Value Investing Quantitative Screening

Challenge

Small-cap community banks are one of the last genuinely under-covered corners of the public markets. There are hundreds of listed names below a billion dollars of market cap, most followed by no sell-side analyst, many trading below the tangible book value of their equity. The signal is there in the regulatory data — every bank files a quarterly Call Report with the FFIEC, and every issuer files capital, insider, and buyback activity with the SEC — but it lives in a dozen incompatible formats, and the moment you turn it into a “score” you risk fooling yourself with an opaque black box.

The job was to build a screen that is genuinely useful and genuinely inspectable: one where every name that surfaces can be traced back to the exact regulatory filing that put it there.

Solution

A rules-based screener that joins FFIEC Call Report fundamentals, SEC EDGAR issuer facts, and Polygon pricing into a single auditable pipeline, then applies seven hard gates and a weighted opportunity score.

The gates are deliberately boring — capital adequacy, credit quality, profitability, tradability, and size — and they are applied jointly, not as a marketing funnel. On the most recent cohort, 247 listed banks went in and 129 cleared every gate.

Funnel showing 247 U.S. listed banks screened down to 129 that pass all seven gates, with a bar chart of how many banks each individual gate removes.
Seven hard gates, applied jointly. Size and capital do the most filtering; the Texas-ratio and NPL credit gates remove nothing on their own this cohort because the size and CET1 gates already exclude the weak names. Counts do not sum — gates overlap.

The 129 survivors are then ranked by a transparent 0–100 opportunity score weighted toward the things that actually matter for a value buyer: price-to-tangible-book (the anchor), upside to private-market takeout multiples, profitability (ROA), capital strength (CET1), credit quality, an “overlookedness” bonus for the smallest names, and a small kicker for genuine insider buying. Plotting the survivors makes the opportunity set legible at a glance:

Scatter plot of 129 community banks, price-to-tangible-book on a log x-axis against opportunity score, marker size scaled to market cap. Twenty banks below tangible book are highlighted, with the four highest-scoring names labeled.
Each marker is one bank; size is market cap. Twenty of the 129 trade below tangible book value (left of the dashed line). The cheapest, highest-scoring names cluster upper-left. Labeled tickers are the four highest-scoring names — shown to illustrate the output, not as recommendations.

Everything is reproducible from the raw filings: the gate thresholds live in version-controlled config, the score weights are explicit, and the output carries per-name risk flags (extreme discount, elevated uninsured deposits, CRE concentration, near-gate credit) so nothing hides behind a single number.

Impact

The screen turns hundreds of unfollowed banks into a focused, ranked short list that a human can actually underwrite — without outsourcing judgment to a black box. It is the sourcing layer for deeper, by-hand memos, where each candidate is checked against primary FFIEC and SEC filings before anything moves forward.

It is, deliberately, a mechanical screen and not investment advice. The fundamentals shown here are an as-of 2025-03-31 Call Report cohort priced into 2026, the takeout-upside marks are valuation arithmetic rather than acquisition forecasts, and a passing score is the start of diligence, not the end of it. The point is the discipline: a repeatable, fully auditable way to find the twenty or thirty names worth a closer look, with the receipts attached.