---
title: "Return on Assets in Banking: Benchmarks and Regulatory Data"
description: "A practitioner's guide to return on assets in banking: how ROA is calculated from regulatory filings, what the benchmarks mean, and how to access clean data."
canonical_url: https://www.bankregreports.com/blog/return-on-assets-banking/
source: BankRegReports
published: "2026-10-13"
updated: "2026-10-13"
---

Return on assets looks simple, which is exactly why it is so often misused. It shows up in every ALCO deck, every earnings release, and every regulatory exam. Analysts cite it constantly. But the calculation details matter more than most people acknowledge, and the raw regulatory data behind it is messier than it looks.


<figure>
  <img src="/static/blog/figures/distribution_roa.svg" alt="Distribution of return on assets across U.S. banks" loading="lazy">
  <figcaption>Return on average assets across U.S. banks - a core profitability gauge.</figcaption>
</figure>

## What ROA Measures, and What It Does not

Return on assets is net income divided by average total assets. Simple enough. The ratio answers a specific question: how efficiently is this institution converting its asset base into earnings? It strips out leverage, which makes it a better apples-to-apples profitability measure across institutions of different sizes and capital structures than return on equity.

But "average total assets" and "net income" are both slippier than they appear once you are working with actual regulatory data.

### Net Income: Which Line?

In a Call Report (FFIEC 031/041/051), net income is MDRM code RIAD4340, income before taxes minus taxes. The official source is the [FFIEC](https://www.ffiec.gov). That is what goes into the UBPR-published ROA. It does not include extraordinary items, though those are rare in banking today. If you are building a model and pulling net income from SEC EDGAR 10-K filings instead of the Call Report, reconcile carefully: holding company consolidations do not always match bank-level Call Report net income, and the Y-9C filer data from the Federal Reserve has its own line items.

### Average Total Assets: Do not Use Period-End

The denominator is average total assets, not period-end. The UBPR annualizes this across the year-to-date average, which is computed internally from the quarterly averages the bank reports on Schedule RC-K. If you use period-end assets instead of the average, your ROA will be wrong, sometimes materially, particularly for institutions with significant seasonal deposit swings or acquisition activity mid-quarter.

Most raw data downloads from legacy financial data providers give you period-end balances. You have to read the footnotes carefully to know what you are actually getting.

## ROA Benchmarks: Reading Them Correctly

The 1% ROA threshold is treated like a law of nature in banking. It is not. It is a rough heuristic developed when net interest margins were higher and credit costs lower. Context matters significantly.

### Peer Group Matters More Than the Absolute Number

The FFIEC's Uniform Bank Performance Report groups banks into peer groups by asset size, which is the right starting point for any ROA comparison. A $200 million community bank with a 0.90% ROA is performing differently than a $200 billion G-SIB with a 0.90% ROA; the business models, funding structures, and regulatory burdens are not comparable.

Industry-aggregate ROA has also been structurally compressed by the Basel III capital buildup, CECL provisioning dynamics, and the prolonged low-rate environment that only partially reversed in 2022-2024. Through that rate cycle, many well-run community banks saw ROA compress not because of operating failures but because of unrealized securities losses feeding through AOCI, losses that did not hit net income but did affect regulatory capital ratios. Understanding that distinction requires knowing which accounting elections a specific institution made, which you can find in their Call Report filings.

### Sub-1% ROA is Not Automatically a Problem

Credit unions report ROA on the NCUA 5300 Call Report, and their structural tax advantage (federal income tax exemption) makes direct ROA comparisons to commercial banks misleading. Similarly, savings institutions with heavy mortgage concentrations and maturity-transformed balance sheets have historically run tighter ROA profiles than diversified commercial banks.

The right benchmark is always: same charter type, similar asset size, similar business model, same rate environment.

## Pulling ROA Data from Regulatory Sources

The canonical source for bank-level ROA is the UBPR, which is published by the FFIEC and derived from Call Report submissions. The UBPR has the advantage of being pre-computed and peer-grouped, but it has limitations: it is released on a lag, the raw files are awkward flat-file formats, and the UBPR ratio codes (like UBPRE013 for ROA) are not well-documented outside the FFIEC's own reference materials.

If you want to build your own ROA calculation from first principles (which you should if you are doing any kind of cross-institution modeling), you need net income and average assets from the raw Call Report data, then you need to annualize correctly based on the reporting period.

For holding company-level analysis, the Federal Reserve's Y-9C data (filed via the BHCF system) has analogous line items but different MDRM codes and different consolidation scope. A bank holding company's consolidated ROA may look different from the lead bank's Call Report ROA because of nonbank subsidiaries, intercompany eliminations, and goodwill from acquisitions sitting at the holding company level.

## Common Methodological Errors to Avoid

A few mistakes show up repeatedly when analysts build ROA models from regulatory data:

**Using fiscal year net income against period-end assets.** Annualization has to be consistent. If you are computing trailing-twelve-month ROA, you need the TTM average asset base, not the December 31 balance sheet.

**Ignoring CECL transition effects.** The 2020-2023 CECL adoption wave created one-time provision charges and reserve builds that depressed reported ROA for adopting institutions. Unadjusted ROA trend lines across that period are not comparable without controlling for adoption timing.

**Conflating bank-level and holding company-level ROA.** The bank entity (Call Report filer) and the holding company (Y-9C filer) have different asset bases and different income statements. Know which level you are analyzing and be consistent.

**Trusting pre-computed ratios from raw downloads without verifying the denominator.** Several data aggregators use period-end assets. The difference between period-end and average assets can be 3-5% for a growing institution, which translates directly into ROA error.

## Building on Clean Data

The difference between a credible bank analysis and a sloppy one often comes down to data quality upstream of any model. Getting average assets right, using the correct net income line, applying consistent annualization, and benchmarking against the right peer group: none of this is intellectually difficult, but it requires clean source data and clear methodology documentation.

That is the problem [BankRegReports](https://www.bankregreports.com) is built to solve. The platform ingests raw regulatory filings from FFIEC, FDIC, Federal Reserve, NCUA, and SEC EDGAR, applies documented transformations, and exposes the result through a consistent API. The methodology is transparent (the MDRM codes, the formula derivations, and the peer group definitions are all documented) so you can reproduce any calculation from first principles.

## About this document

This is the markdown twin of the page named in `canonical_url` above. Source filings are public record; the cleaning, normalization, cross-source linkage, and derived metrics are BankRegReports' own. Attribute with a link to the canonical URL.

Markdown twins are published for editorial content only. Institution data pages do not have them. For data at scale use the API, which is documented at https://www.bankregreports.com/api/ and specified at https://www.bankregreports.com/openapi.json. It returns typed JSON with explicit units and periods, and one call replaces hundreds of page fetches.


## Sitemap

- [Glossary](https://www.bankregreports.com/glossary/): every metric, with formula and thresholds
- [Blog](https://www.bankregreports.com/blog/): analysis and explainers
- [API documentation](https://www.bankregreports.com/api/): the programmatic way to get this data
- [XML sitemap](https://www.bankregreports.com/sitemap.xml): the complete crawlable index
