Find the financial signals
that deserve a closer look.
An analyst-first early-warning system that screens U.S. banks for next-quarter profitability deterioration, benchmarks each institution against comparable peers, and explains the signals behind every alert.
Decision support, not a prediction of bank failure. Every alert is designed for human review.
Executive overview
The screening layer starts with sector context, then narrows attention to institution-level signals.
Median return on assets
Loading model…
Validated on future quarters rather than a random split, preserving the sequence a real analyst would face.
Financial profile by asset size
Median values for the latest reporting period.
| Peer group | Institutions | ROA | Net interest margin | Efficiency ratio | Tier 1 capital |
|---|
Analyst review queue
Alerts are ranked for investigation. A high score is not a regulatory conclusion.
What drives the model
Permutation importance measures how much predictive performance falls when each feature is disrupted.
Leading financial signals
Built for prioritization, not automation
- Time-aware validationTraining data precedes the holdout period.
- Peer contextBanks are compared within asset-size cohorts.
- Human-readable driversEvery alert is paired with financial indicators.
- Documented boundaryThe model does not predict failure or regulatory action.
From filing to decision
A reproducible pipeline keeps the business logic visible from source data through the final alert.
Acquire
Pull quarterly institution financials from the FDIC BankFind API and macro rates from FRED.
Model in SQL
Standardize filings, calculate ratios, create peer benchmarks, and build lagged features in DuckDB.
Validate
Compare logistic regression and gradient boosting on later, unseen quarters.
Prioritize
Rank alerts, attach interpretable drivers, and deliver an analyst-ready review queue.
Peer-relative performance without hiding the logic
The analytical mart uses window functions to compare every institution against banks in the same asset-size cohort and reporting period.
Review the complete SQL model ↗PERCENT_RANK() OVER (
PARTITION BY report_date,
asset_peer_group
ORDER BY return_on_assets
) AS roa_percentile
BUSINESS ANALYTICS CASE STUDY
Financial screening should make an analyst faster—not make the decision for them.
Explore the code, assumptions, validation results, and limitations in the public repository.
Open the GitHub repository ↗