What Is the Net Charge-Off Rate? A Bank Credit Guide
In the fourth quarter of 2009, the net charge-off rate for U.S. commercial banks hit 3.0% annualized — a level that would be catastrophic for most institutions today. By 2021, …
In the fourth quarter of 2009, the net charge-off rate for U.S. commercial banks hit 3.0% annualized — a level that would be catastrophic for most institutions today. By 2021, that same industry figure had dropped below 0.30%. The swing tells you almost everything about where net charge-offs sit in the credit cycle: they are the final accounting of what actually went wrong, logged only after every other warning sign has fired.
The net charge-off rate is the bluntest metric in a bank’s credit-quality dashboard. A past-due loan might still cure. A reserve balance reflects what the bank expects to lose. But a charge-off is loss the bank has formally concluded is unrecoverable and removed from the books. Scaling those realized losses against the loan portfolio produces the net charge-off rate — and understanding it is foundational to reading any bank’s financial condition.
What a Charge-Off Actually Is
When a bank charges off a loan, it removes that balance from its asset base and draws down the allowance for credit losses by the same amount. Earnings took the hit earlier, when the bank ran a provision expense to build the allowance. The charge-off itself is not an income statement event — it is a balance sheet reclassification that says: this asset is gone.
Charge-offs are not discretionary in the way a reserve build can be. Regulatory guidance sets mandatory charge-off timelines: unsecured consumer loans generally must be charged off at 120 days past due, for example. Commercial loans use a facts-and-circumstances test, but examiners will cite a bank that delays recognition. So while management has some latitude, the discipline is tighter than it looks from the outside.
One thing worth knowing if you work with the raw call report data directly: gross charge-offs and recoveries are reported by loan category across Schedule RI-B. RIAD4635 captures total loans and leases charged off; RIAD4605 captures recoveries. Those two codes are your building blocks for any NCO calculation that goes below the aggregate level.
The Formula: Gross Minus Recoveries, Divided by the Book
Net Charge-Offs = Gross Charge-Offs − Recoveries
Recoveries are cash received on loans that were previously written off — collateral liquidated, settlement payments, a borrower who came back solvent. They are real money and they matter. A bank with $9 million in gross charge-offs and $2.5 million in recoveries has net charge-offs of $6.5 million. That distinction can move the headline rate meaningfully, particularly in a portfolio that has been seasoning for several years and is now seeing resolution activity on older vintages.
The rate itself:
Net Charge-Off Rate = Net Charge-Offs ÷ Average Total Loans
Average total loans uses the average of beginning and ending balances to avoid distortion from mid-period origination or payoff volume. The result is annualized — a bank reporting $6.5 million in net charge-offs against a $720 million average loan book has a 0.90% NCO rate for the year.

The 2009 peak in the chart is not an abstraction — banks that entered the crisis with concentrations in construction and land development saw NCO rates north of 5% in those categories. Institutions with conventional single-family residential books fared better. The composition of the loan portfolio shapes every interpretation of this number.
What Counts as Normal, and What Doesn’t
For a diversified community bank or regional bank, rough benchmarks by cycle phase:
| NCO rate | Reading |
|---|---|
| Below 0.25% | Very clean; either excellent underwriting or an early cycle |
| 0.25% – 0.75% | Healthy range through a normal expansion |
| 0.75% – 1.5% | Credit stress is showing up in realized losses |
| Above 1.5% | Significant deterioration; dig into loan category breakdowns |
Two caveats override any table. First, portfolio mix dominates. A bank with 40% of loans in credit cards will run a structurally higher NCO rate than one with 40% in owner-occupied commercial real estate — that’s not a credit-quality difference, it’s a product-mix difference. Comparing them against the same threshold produces a wrong conclusion. The UBPR peer group structure exists precisely to control for this; use it.
Second, direction matters more than level at any given point. A bank at 0.60% and rising for six consecutive quarters deserves more scrutiny than one at 0.90% that has been flat or declining. The UBPR presents charge-off rates by loan category going back multiple years, and that trend is where the analytical value lives.
Why This Is a Lagging Indicator — and What to Watch Instead
Charge-offs come at the end of a defined deterioration sequence. A borrower misses a payment. Then another. The loan moves to 30-day past due, then 90-day, then nonaccrual. If the credit cannot be resolved through workout or modification, it gets charged off — often six to twelve months after the first sign of trouble, sometimes longer on commercial credits where collateral valuation takes time.
By the time the net charge-off rate moves, the leading indicators have usually been signaling stress for several quarters. Those leading indicators are past-due rates (Schedule RC-N in the call report), nonaccrual balances (RCON5526 is the standard nonaccrual code for total loans and leases), and the nonperforming loan ratio. If those are climbing, you are watching credit problems being born. When charge-offs subsequently rise, you are watching them die.
This sequencing has a practical implication: never cite a stable net charge-off rate as evidence that a bank’s credit is fine if delinquencies are already moving. That is exactly the wrong read. The charge-off rate will catch up; the question is how much.
Where the NCO Rate Sits in the Credit Framework
The net charge-off rate does not exist in isolation. Three connections are worth keeping in mind.
The allowance for credit losses, built under CECL (ASC 326), is supposed to absorb expected losses over the life of the loan portfolio. If a bank is charging off loans faster than it is provisioning, the allowance-to-loans ratio will compress — a signal that reserves are falling behind. Comparing trailing net charge-offs to the current allowance balance is a quick sanity check on reserve adequacy.
The provision for credit losses on Schedule RI is the income-statement expense that replenishes the allowance. In a normal cycle, provisions run modestly above net charge-offs to let the allowance keep pace with loan growth. When provisions run well below net charge-offs for multiple periods, the allowance is being drawn down. Examiners notice.
Nonperforming loans are the leading signal; charge-offs are the lagging confirmation. The two together answer different questions: NPLs tell you what the bank is fighting now; charge-offs tell you what it lost last quarter.
Pulling the Data Directly
The inputs for the net charge-off rate come from Schedule RI-B of the FFIEC 031/041/051 call report. Gross charge-offs by loan category, recoveries by loan category, and average loan balances are all reported quarterly. The UBPR standardizes and annualizes these figures and presents them with peer group comparisons — which is why most analysts start there rather than with the raw call report filings.
If you want to pull this programmatically:
from bankregreports import BankReg
brr = BankReg("brr_your_api_key")
# Net charge-off rate with 24 quarters of history
nco = brr.asset_quality(
rssd_id=1120754, # example: Heartland Financial
metrics=["nco_rate", "nco_rate_ci", "nco_rate_consumer"],
periods=24
)
print(nco.to_frame())
# period nco_rate nco_rate_ci nco_rate_consumer
# 2025-Q4 0.0041 0.0028 0.0091
# 2025-Q3 0.0038 0.0025 0.0087
# 2025-Q2 0.0035 0.0022 0.0083
# ...
# All rates annualized; CI = commercial & industrial loans
BankRegReports covers every FDIC-insured institution going back to 2001, so you can run this across peer groups or watch individual bank trends through the full post-GFC cycle. The BankRegReports API returns charge-off data disaggregated by loan category, which is where the real analytical work starts — aggregate NCO rates hide a lot.
Frequently Asked Questions
What is the net charge-off rate? Net charge-offs (gross charge-offs minus recoveries) divided by average total loans, expressed as an annualized percentage. It measures the loan losses a bank has actually realized in a period relative to the size of its loan book.
How is the net charge-off rate calculated? Subtract recoveries from gross charge-offs to get net charge-offs, divide by average total loans, and annualize. All inputs come from Schedule RI-B of the quarterly call report.
What is a good net charge-off rate? For a diversified bank, below 0.25% is very clean and 0.25%–0.75% is a normal range through a healthy cycle. Above 1.5% is high. Portfolio mix drives the right benchmark — compare against peers with a comparable loan composition, not industry aggregates.
What is the difference between gross and net charge-offs? Gross charge-offs are the total balances written off as uncollectible. Net charge-offs subtract recoveries — cash collected on previously charged-off loans. The net figure is what actually hit the allowance.
Why is the net charge-off rate a lagging indicator? Charge-offs happen at the end of the deterioration sequence: missed payments → nonaccrual → charge-off. By the time the rate moves, problems have usually been building for several quarters. Watch past-due rates and nonaccrual balances first; use charge-offs to confirm whether early stress translated into realized losses.
Where can I find a bank’s net charge-off rate? Schedule RI-B of the call report has the raw inputs. The UBPR presents standardized, annualized peer-comparable rates. BankRegReports makes all of it accessible with trend history and peer benchmarking.
The one thing worth doing if you work with bank credit data regularly: pull the charge-off rate by loan category, not just in aggregate. A bank with a flat headline NCO rate can be masking a deteriorating C&I book offset by a recovering consumer portfolio — or vice versa. The aggregate number is a starting point. The category breakdown is where the credit story actually lives.
The data referenced in this post is available through the BankRegReports Data API. The BankRegAPI Python SDK (pip install bankregreports) returns clean, UBPR-validated data from FFIEC, FDIC, Federal Reserve, NCUA, and SEC EDGAR in a single call. Get a free API key →