Figures through Q2 2026 Figures last changed 14 Oct 2026 Sources checked 14 Oct 2026, 17:45 UTC Source: SEC EDGAR XBRL

Methodology

Every formula, every source, and the XBRL concept this site actually used for each bank and metric — read from the database as the pages render, not restated from a config file. Where the two could disagree, this table is the one telling the truth.

The universe: the Big Five, and who else is tracked

The Big Five are the five largest US bank holding companies by total assets: JPMorgan Chase, Bank of America, Citigroup, Wells Fargo and Goldman Sachs. Goldman is fifth by a wide margin — about $450bn of assets ahead of the next bank at Q2 2026 — so the set is not close to changing. Membership is reviewed once a year against the year-end balance sheets, never recomputed quarter to quarter: a bank hopping between groups on a quarter-end move would be noise presented as news.

Also tracked: Morgan Stanley. It is the natural pair to Goldman Sachs — both file as broker-dealers under SIC 6211 — and a comparison of the two is more useful with both in the room. Banks in this second group appear in every table and chart, take part in every peer median and rank, and are marked also tracked wherever they appear. It is also where any future additions go; the name of the site is the first group, not a cap on the second.

A trap worth naming. These six do not share an SIC code. The four commercial banks file under 6021; Goldman Sachs and Morgan Stanley file under 6211 as broker-dealers. Filtering the universe by SIC code silently drops two of the six, and the result still looks like a complete peer set. This site selects by CIK.

JPMJPMORGAN CHASE & COBig FiveCIK 0000019617SIC 6021
BACBANK OF AMERICA CORP /DE/Big FiveCIK 0000070858SIC 6021
WFCWELLS FARGO & COMPANY/MNBig FiveCIK 0000072971SIC 6021
CCITIGROUP INCBig FiveCIK 0000831001SIC 6021
GSGOLDMAN SACHS GROUP INCBig FiveCIK 0000886982SIC 6211
MSMORGAN STANLEYAlso trackedCIK 0000895421SIC 6211

Which XBRL concept was used, per bank

Bank tagging is inconsistent between filers and across years, so the ingester holds a list of candidate concepts per metric and picks the one with the best coverage of recent quarters. 4 of the resolved concepts are company extension elements, shown in a different colour — these are absent from the SEC's aggregated XBRL APIs entirely and are read from the filing's own rendered statements.

MetricJPMBACWFCCGSMS
Total net revenue us-gaap:RevenuesNetOfInterestExpense us-gaap:Revenues us-gaap:RevenuesNetOfInterestExpense us-gaap:Revenues us-gaap:RevenuesNetOfInterestExpense us-gaap:RevenuesNetOfInterestExpense
Net interest income us-gaap:InterestIncomeExpenseNet us-gaap:InterestIncomeExpenseNet us-gaap:InterestIncomeExpenseNet us-gaap:InterestIncomeExpenseNet us-gaap:InterestIncomeExpenseNet us-gaap:InterestIncomeExpenseNet
Noninterest income us-gaap:NoninterestIncome us-gaap:NoninterestIncome us-gaap:NoninterestIncome us-gaap:NoninterestIncome us-gaap:NoninterestIncome us-gaap:NoninterestIncome
Noninterest expense us-gaap:NoninterestExpense us-gaap:NoninterestExpense us-gaap:NoninterestExpense us-gaap:NoninterestExpense us-gaap:NoninterestExpense us-gaap:NoninterestExpense
Provision for credit losses us-gaap:ProvisionForLoanLeaseAndOtherLosses us-gaap:FinancingReceivableExcludingAccruedInterestCreditLossExpenseReversal us-gaap:ProvisionForLoanLeaseAndOtherLosses us-gaap:FinancingReceivableExcludingAccruedInterestCreditLossExpenseReversal us-gaap:ProvisionForLoanLeaseAndOtherLosses us-gaap:FinancingReceivableExcludingAccruedInterestCreditLossExpenseReversal
Net income us-gaap:NetIncomeLoss us-gaap:NetIncomeLoss us-gaap:NetIncomeLoss us-gaap:NetIncomeLoss us-gaap:NetIncomeLoss us-gaap:NetIncomeLoss
Net income to common us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic (Q4 derived: FY − 9M) us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
Diluted EPS us-gaap:EarningsPerShareDiluted us-gaap:EarningsPerShareDiluted us-gaap:EarningsPerShareDiluted us-gaap:EarningsPerShareDiluted us-gaap:EarningsPerShareDiluted us-gaap:EarningsPerShareDiluted
Weighted average diluted shares us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
Total assets us-gaap:Assets us-gaap:Assets us-gaap:Assets us-gaap:Assets us-gaap:Assets us-gaap:Assets
Deposits us-gaap:Deposits us-gaap:Deposits us-gaap:Deposits us-gaap:Deposits us-gaap:Deposits us-gaap:Deposits
Loans, net of allowance us-gaap:FinancingReceivableExcludingAccruedInterestAfterAllowanceForCreditLoss us-gaap:FinancingReceivableExcludingAccruedInterestAfterAllowanceForCreditLoss wfc:FinancingReceivableAndNetInvestmentInLeaseExcludingAccruedInterestAfterAllowanceForCreditLoss us-gaap:FinancingReceivableExcludingAccruedInterestAfterAllowanceForCreditLoss us-gaap:NotesReceivableNet us-gaap:FinancingReceivableExcludingAccruedInterestAfterAllowanceForCreditLoss
Allowance for credit losses us-gaap:FinancingReceivableAllowanceForCreditLossExcludingAccruedInterest us-gaap:FinancingReceivableAllowanceForCreditLossExcludingAccruedInterest wfc:FinancingReceivableAndNetInvestmentInLeaseAllowanceForLoanLossesExcludingAccruedInterest us-gaap:FinancingReceivableAllowanceForCreditLossExcludingAccruedInterest us-gaap:FinancingReceivableAllowanceForCreditLosses us-gaap:FinancingReceivableAllowanceForCreditLossExcludingAccruedInterest
Total stockholders’ equity us-gaap:StockholdersEquity us-gaap:StockholdersEquity us-gaap:StockholdersEquity us-gaap:StockholdersEquity us-gaap:StockholdersEquity us-gaap:StockholdersEquity
Preferred equity us-gaap:PreferredStockIncludingAdditionalPaidInCapitalNetOfDiscount bac:PreferredStockRedeemableAndNonRedeemableValue us-gaap:PreferredStockValue us-gaap:PreferredStockValue us-gaap:PreferredStockValue ms:PreferredStockCarryingValue
Goodwill us-gaap:Goodwill us-gaap:Goodwill us-gaap:Goodwill us-gaap:Goodwill us-gaap:Goodwill us-gaap:Goodwill
Other intangibles us-gaap:FiniteLivedIntangibleAssetsNet us-gaap:IntangibleAssetsNetExcludingGoodwill us-gaap:FiniteLivedIntangibleAssetsNet us-gaap:IntangibleAssetsNetExcludingGoodwill us-gaap:IntangibleAssetsNetExcludingGoodwill us-gaap:IntangibleAssetsNetExcludingGoodwill
Shares outstanding dei:EntityCommonStockSharesOutstanding us-gaap:CommonStockSharesOutstanding us-gaap:CommonStockSharesOutstanding dei:EntityCommonStockSharesOutstanding us-gaap:CommonStockSharesOutstanding us-gaap:CommonStockSharesOutstanding
Public float (annual, at Q2 end) dei:EntityPublicFloat dei:EntityPublicFloat dei:EntityPublicFloat dei:EntityPublicFloat dei:EntityPublicFloat dei:EntityPublicFloat
CET1 ratio (Y-9C) y9c:BHCAP793 y9c:BHCAP793 y9c:BHCAP793 y9c:BHCAP793 y9c:BHCAP793 y9c:BHCAP793
Tier 1 ratio (Y-9C) y9c:BHCA7206 y9c:BHCA7206 y9c:BHCA7206 y9c:BHCA7206 y9c:BHCA7206 y9c:BHCA7206
Total capital ratio (Y-9C) y9c:BHCA7205 y9c:BHCA7205 y9c:BHCA7205 y9c:BHCA7205 y9c:BHCA7205 y9c:BHCA7205
Tier 1 leverage ratio (Y-9C) y9c:BHCA7204 y9c:BHCA7204 y9c:BHCA7204 y9c:BHCA7204 y9c:BHCA7204 y9c:BHCA7204
NIM inputs (Y-9C) y9c:BHCK4074+BHCKB558+BHCKB559+BHCK3365+BHCK3401+BHCK3516+BHCKB985 y9c:BHCK4074+BHCKB558+BHCKB559+BHCK3365+BHCK3401+BHCK3516+BHCKB985 y9c:BHCK4074+BHCKB558+BHCKB559+BHCK3365+BHCK3401+BHCK3516+BHCKB985 y9c:BHCK4074+BHCKB558+BHCKB559+BHCK3365+BHCK3401+BHCK3516+BHCKB985 y9c:BHCK4074+BHCKB558+BHCKB559+BHCK3365+BHCK3401+BHCK3516+BHCKB985 y9c:BHCK4074+BHCKB558+BHCKB559+BHCK3365+BHCK3401+BHCK3516+BHCKB985
NCO rate inputs (Y-9C) y9c:BHCK4635+BHCK4605+BHCK3516 y9c:BHCK4635+BHCK4605+BHCK3516 y9c:BHCK4635+BHCK4605+BHCK3516 y9c:BHCK4635+BHCK4605+BHCK3516 y9c:BHCK4635+BHCK4605+BHCK3516 y9c:BHCK4635+BHCK4605+BHCK3516

A candidate list is not the same as a result. Concepts are ranked by how many of the eight most recent quarters they actually cover, because banks leave dead concepts in their taxonomies for years — JPMorgan still carries LoansAndLeasesReceivableNetReportedAmount, whose last fact is from 2016. Choosing it because it exists would produce a metric that is present, plausible, and empty.

Derived metrics

Everything below is computed by this site and labelled derived wherever it appears. None of it is reported by the banks in this form.

Common equitytotal_equity − preferred_equity
Tangible common equitycommon_equity − goodwill − other intangibles
TBVPStangible_common_equity ÷ shares_outstanding
Efficiency rationoninterest_expense ÷ revenue_total
ACL / gross loansallowance_credit_losses ÷ (total_loans + allowance_credit_losses) — total_loans is tagged net of the allowance
ROTCE(net_income_common × 4) ÷ average(TCE_t, TCE_t−1)
Quarter-end share price13F reported market value ÷ 13F reported shares, at the quarter end
P / TBVprice_quarter_end ÷ tbvps — both measured at the same quarter end
Implied price (annual)public_float ÷ shares_outstanding
P / TBV at the float dateimplied_price ÷ tbvps
NIM (Y-9C basis)annualized net interest income ÷ Σ Schedule HC-K average earning assets
NCO rate (Y-9C basis)annualized (charge-offs − recoveries) ÷ average loans

ROTCE is ours, not theirs. It is annualized from a single quarter on a two-point average equity base. Each bank uses its own averaging convention and its own definition of average tangible common equity, so this figure will differ from the company's reported ROTCE, typically by tens of basis points. It is never presented as the company's number.

The implied price is a year old and slightly low, by construction. Every 10-K cover page states the aggregate market value of shares held by non-affiliates (dei:EntityPublicFloat), measured at the last business day of the company's second fiscal quarter — it is the one price-bearing figure in a public-domain filing. Dividing it by shares outstanding at the same date recovers the price the filer used, with two caveats stated wherever the figure renders: the point is up to fourteen months old by the time the next 10-K arrives, and it understates the market price because the float excludes affiliate-held shares while the divisor counts all shares outstanding. That understatement is now measured rather than assumed, because the quarter-end price from Form 13F reaches the same quantity by an unrelated route: at the 2025 float date the gap is 0.00% for Bank of America and 0.28% to 0.53% for Wells Fargo, Citigroup, JPMorgan and Goldman Sachs — but 3.18% for Morgan Stanley, roughly 51m of its 1,598m shares held by affiliates against about 0.3% for the rest. This page previously said the gap was under one percent for all six, which was true of the five and not of Morgan Stanley; it took a second, independent derivation to show that. The gap IS the affiliate holding, so neither figure is in error — they count different sets of shares. Both sides of the P/TBV built from the float are measured at the same date, so the ratio is internally consistent for that date and is never presented as current. Nothing is adjusted or estimated.

The Y-9C figures are on the regulator's basis, not the banks'. Capital ratios (CET1, tier 1, total, leverage) are read directly from each holding company's quarterly FR Y-9C regulatory filing — the ratio the company itself reports to the Federal Reserve — and tie to the basis point with the banks' own disclosures for the validation quarter. NIM and the net charge-off rate are computed from Y-9C line items with one formula for all six banks: annualized net interest income over the sum of Schedule HC-K's quarterly-average earning assets, and annualized net charge-offs over average loans. They are deliberately NOT each bank's headline figure — banks use tax-equivalent income and their own earning-asset and loan-book definitions, and at the validation quarter the gap ranged from −30 to +7 basis points against headlines. One consistent definition across six banks is the point; the trade is stated here rather than hidden.

The price comes from a holdings table, not a price feed. No free share-price source permits redistribution, so this site has none. It does not need one: every institutional manager over $100m files a Form 13F listing each holding's market value and its share count at quarter end, and value divided by shares is the closing price on that day — in a public-domain SEC filing, on the same footing as everything else here. Three managers are read each quarter — State Street, FMR and Northern Trust — chosen for being large, independent of these six banks, and consistent filers of a machine-readable table. A price is published only where two of them agree to the cent, and otherwise not at all: the agreement is the verification, and it is not a formality. Two managers holding 125.2m and 30.7m JPMorgan shares both imply $327.33 for 2026Q2, while a fourth, Geode Capital, implies $326.30 for the same quarter — 0.3% low, for reasons this project has not established, which is precisely why a lone observation is never published. The figure is the close 38 to 45 days before the filing that carries it, so it is never current, and no view presents it as such. Pairing it with TBVPS is deliberate: both describe the same quarter end, where a live price over last quarter's book would describe neither.

Strict null propagation. A derived metric with any missing input is itself missing, with one documented exception: other intangibles are deducted from tangible common equity when the filer tags them, and only goodwill is deducted when it does not. JPMorgan does not tag other intangibles in its 10-Qs at all, and treating that as a missing input would blank TBVPS and ROTCE for three quarters in four. The omitted amount was $1.3bn against $288bn of tangible common equity at Q4 2025 — 45 basis points, inside the 50bp tolerance this project sets for derived figures. Nothing is carried forward or estimated.

Q4 is recovered, not reported

Banks do not tag a 90-day duration fact for the fourth quarter; the 10-K reports the full year. Q4 flows are therefore recovered as full year − the filer's own nine-month subtotal, both from the same concept. Cells recovered this way are marked † on the bank pages.

Per-share figures are excluded from this treatment. Diluted EPS and average diluted share count are not additive across quarters because the denominator moves, so Q4 is left missing rather than computed.

The nine-month subtotal is preferred over the sum of the three quarters for a specific reason. Bank of America restated its Q1 and Q2 2025 revenue in filings made after the FY2025 10-K. Subtracting the restated quarters from that full year mixes two bases and puts the entire restatement into Q4, giving 29,319 where the consistent figure is 31,180 — a 6% error that looks entirely ordinary. Where a restatement is detected the row says so.

Guidance: hand-entered, and why most variances are blank

Management guidance is not tagged in XBRL. It exists as sentences in a press release and slides in a deck, so every figure on the guidance tracker was read out of a document filed with the SEC and entered by hand, with the filer's own sentence and a link to it. scripts/guidance-verify.mjs re-fetches each cited document and asserts that both the quote and every stored number are in it, so a typed figure cannot sit in the database unchallenged.

The hard part is not the typing, it is the basis. JPMorgan guides net interest income on a managed, fully taxable-equivalent basis and an adjusted expense that excludes legal costs. Bank of America guides net interest income FTE. Citigroup and Morgan Stanley state returns on their own definitions of tangible equity. This site stores as-reported GAAP figures from XBRL. Those are different measures, and differencing two of them produces a number that looks like information and is not.

So a variance is computed only where all three hold: the filer guided on the same basis this site stores, this site holds that line item, and the period has finished. Everywhere else the delivered figure is shown for context with the basis named, and the variance and status columns are left empty with the reason under the quote. Where a bank files no numeric guidance at all, the page says so and lists the documents checked, rather than leaving a gap to be read as an omission.

Guidance is restated every quarter. All of it is kept and the superseded figures are marked: the revision is often the most informative thing on the row. A variance is computed against the most recent statement only.

Update cadence

SEC EDGAR — filing historyDaily; every 2 hours in reporting monthsSubmissions API, per company
Federal Reserve — FR Y-9CQuarterly, ~7 weeks after quarter endRegulatory bulk file, loaded per quarter
SEC EDGAR — XBRL factsWeekly, and after each filingcompanyfacts, per company
SEC EDGAR — rendered statementsPer filingFallback for what companyfacts cannot serve
FRED — daily seriesDailyT10Y2Y, SOFR, DFF
FRED — weekly seriesWeeklyTOTLL, DPSACBW027SBOG, MORTGAGE30US
FRED — monthly and quarterlyWeekly checkUNRATE, DRCCLACBS

Last successful sync

JobLast successRows
check_pages 14 Oct 2026, 11:31 UTC 0
edgar_facts 14 Oct 2026, 02:30 UTC 68,694
edgar_submissions 14 Oct 2026, 17:45 UTC 25,418
filing_fallback 1 Sep 2026, 02:35 UTC 89
fred_series 14 Oct 2026, 12:00 UTC 31,237
guidance_load 13 Oct 2026, 16:50 UTC 139
prune_log 14 Oct 2026, 01:30 UTC 0
reconcile 14 Oct 2026, 16:45 UTC 0
send_brief 14 Oct 2026, 13:15 UTC 12
y9c 2 Sep 2026, 13:47 UTC 1,062

Macro series

SeriesTitleFrequencyDrivesLatest
DFF Effective Federal Funds Rate Daily Deposit betas 2026-10-12
DPSACBW027SBOG Deposits, All Commercial Banks Weekly, ending Wednesday Deposit balances 2026-09-30
DRCCLACBS Delinquency Rate on Credit Card Loans, All Commercial Banks Quarterly Net charge-offs (leads ~2 quarters) 2026-04-01
MORTGAGE30US 30-Year Fixed Rate Mortgage Average in the US Weekly, ending Thursday Mortgage banking revenue 2026-10-08
SOFR Secured Overnight Financing Rate Daily Funding cost 2026-10-09
T10Y2Y 10-Year Treasury Constant Maturity Minus 2-Year Daily Net interest margin 2026-10-13
TOTLL Loans and Leases in Bank Credit, All Commercial Banks Weekly, ending Wednesday Loan growth 2026-09-30
UNRATE Unemployment Rate Monthly CECL reserve assumption 2026-09-01

This product uses the FRED® API but is not endorsed or certified by the Federal Reserve Bank of St. Louis.

Known limitations, stated plainly

  • The SEC's aggregated XBRL APIs are incomplete in two ways. They contain no company extension namespaces, so Wells Fargo's loans and allowance and Bank of America's and Morgan Stanley's preferred equity are unreachable through them. And they can lag a filer: Citigroup's 2026Q1 and 2026Q2 were filed with entirely standard concepts and absent from both companyfacts and companyconcept. Both cases are filled from each filing's own rendered statements.
  • Citigroup's TBVPS and ROTCE are blank for 2026, for two different reasons. While the SEC's aggregation lags Citi, its 2026 quarters come from the rendered face statements, and each figure is missing one input that no face statement carries. TBVPS lacks quarter-end shares outstanding: the balance sheet parenthetical carries shares issued, and Citi holds enough treasury stock that the two differ by nearly half, while the cover page dates its outstanding count at the filing date, about a month after quarter end. ROTCE lacks net income to common, which Citi discloses in its earnings-per-share note rather than on the income statement. Using either substitute would be an approximation, so the figures are left out; both fill in automatically once companyfacts catches up with Citi's filings.
  • Bank of America's four 2025 quarters do not sum to its reported full year, by the restatement amount described above. Each quarter is individually the most recently reported figure.
  • Segment results, deposit betas and per-book charge-off rates are not here. They are not reliably in XBRL; they live in each bank's financial supplement, in its own layout, and nothing on this site is parsed from those documents. CET1, aggregate NIM and the aggregate net charge-off rate — once in the same bucket — now come from the FR Y-9C regulatory filing instead, on the basis described above.
  • The Y-9C arrives on the regulator's clock and by hand. Holding companies file it roughly seven weeks after quarter end, several weeks behind the earnings release, so regulatory figures for the newest quarter can trail the rest of the site. The FFIEC's bulk download also sits behind an anti-bot wall, so each quarter's file is fetched by a person and loaded by script — four small manual steps a year, disclosed here rather than papered over.
  • No current prices. There is no free price source whose terms clearly permit redistribution, so a live P/TBV is not published and will not be. What is published is a quarter-end price recovered from Form 13F holdings tables, described above: exactly dated, public domain, corroborated by two independent filers, and 38 to 45 days behind by the time the filing that carries it exists. A second, annual figure comes from each 10-K's public float, and the two should agree closely — a built-in check rather than a duplicate.
  • No consensus estimates and no transcripts. Both are licensed.

Sources

FundamentalsSEC EDGAR XBRL APIs and the filings themselves. US government work, public domain.
Regulatory capital, NIM, charge-offsFR Y-9C via the FFIEC's National Information Center. US government work, public domain.
MacroFRED, Federal Reserve Bank of St. Louis. Third-party series inside FRED carry their own terms.
Filing documentsEDGAR full-text archive.

Reconciliation, as last run

Every figure this site stores is compared against the same figure in the bank's own filing, one bank per scheduled job, weekly. All 6 banks tie on their latest check, with no mismatches. The counts below are lines that tie out of lines compared; they differ between banks because not every metric appears on every filer's face statements. Phase 0 cleared 18 bank-quarters with zero mismatches before launch — that is the gate this replaced, not a live number.

BankResultLast checked
JPM JPM 2026Q2 vs 10-Q 0001628280-26-054343: 15/18 tie 14 Oct 2026, 16:15 UTC
BAC BAC 2026Q2 vs 10-Q 0000070858-26-000394: 15/18 tie 14 Oct 2026, 16:15 UTC
WFC WFC 2026Q2 vs 10-Q 0000072971-26-000302: 16/18 tie 14 Oct 2026, 16:30 UTC
C C 2026Q2 vs 10-Q 0000831001-26-000045: 16/18 tie 14 Oct 2026, 16:30 UTC
GS GS 2026Q2 vs 10-Q 0000886982-26-000297: 14/18 tie 14 Oct 2026, 16:45 UTC
MS MS 2026Q2 vs 10-Q 0000895421-26-000212: 15/18 tie 14 Oct 2026, 16:45 UTC