Question and design

Can pooled historical NII growth improve on simple next-quarter forecasts? The single target is net interest income (BHCK4074), the difference between interest income and interest expense, de-cumulated from calendar-year YTD to quarterly flows. All monetary values are thousands of USD. The corrected mapping is BHCK4107 − BHCK4073 = BHCK4074. The identity holds across 13,095 comparable rows, with maximum discrepancy 0 thousand USD.

At each origin t, rank BHCs by reported total assets (BHCK2170) at t and take the largest 50; break asset ties by RSSD ID. Historical training membership uses this same rule at each historical origin. Future assets and membership never select the origin universe. Forecast y(t+1) using only report quarters through t. This is a report-quarter backtest with currently downloaded filings, not a real-time filing-vintage backtest: reporting lags and later revisions are not modeled.

The test window was fixed a priori: target quarters 2022Q1–2026Q2, origins 2021Q4–2026Q1. Roughly 3.5 initial years are reserved for burn-in. The models, universe, test window and headline metrics are unchanged; MdAPE is a supplementary post-review diagnostic.

Methods

All three methods share 893 evaluated forecasts per method over 18 target quarters. Of 900 selected origin–BHC pairs, 6 lack reported/de-cumulated next-quarter NII (including exits/mergers), and 1 additional pairs lack current or seasonal history. These are disjoint drop counts; a missing target is not proof of a merger. There are 21 AR fallbacks among evaluated cases.

Forecast errors

Equal weight per evaluated BHC-quarter. MAE and RMSE are in thousands USD; MAPE is the mean absolute error divided by absolute actual NII, in percent. 0 zero actuals are excluded from MAPE and supplementary MdAPE. All other comparisons use the same intersection of cases.

Overall metric winners: MAE: Naive; RMSE: Naive; MAPE: Naive. These are the observed results, including baseline wins.

MdAPE (median absolute percentage error, %): supplementary, added after observing MAPE outliers; does not replace MAPE. It uses the same absolute percentage errors and zero-actual exclusion as MAPE. Its winner is reported separately: Naive.

MAPE is driven by a few foreign-bank IHCs with near-zero or negative NII, including BNP Paribas USA, Mizuho Americas and Credit Suisse USA. There are 10 nonpositive actuals among 893 evaluated cases. BNP Paribas USA's 2022Q1 naive absolute percentage error is about 3,350%. The notebook shows the ten largest naive percentage errors; no cases are removed.

Method Forecasts (count) MAE (thousands USD) RMSE (thousands USD) MAPE (%) Percentage-error cases (count) MdAPE (%, supplementary)
Naive 893 117,823 275,791 13.082 893 3.453
Seasonal naive 893 345,029 767,684 33.802 893 10.740
Pooled panel AR 893 134,049 303,111 14.020 893 4.267

Is naive's edge over pooled AR distinguishable from noise?

At the 5% level, the mean loss difference favors naive for absolute error (t = -2.47, df = 17, p = 0.025). For squared error it is borderline (t = -2.12, df = 17, p = 0.049). Neither p-value is adjusted for testing two loss functions.

Paired Diebold–Mariano loss differential: L(naive) − L(pooled AR), with error = forecast − actual. Negative values favor naive. All 893 matched cases are included. Standard errors cluster by target quarter to absorb cross-sectional correlation within a quarter, using the CR1 correction G/(G−1) and a Student t(G−1) reference distribution. One-step forecasts are assumed to have no serial dependence across quarters beyond what is captured; this test does not adjust for correlation between quarters. The stated significance threshold is 5%.

Scope Loss / differential units n G Mean loss differential Cluster-robust SE Cluster-robust t df Two-sided p Favored method Inference
full Absolute error (thousands USD) 893 18 -16,225 6,577 -2.4668 17 0.0246 Naive cluster-robust t, df=G-1
full Squared error ((thousands USD)²) 893 18 -15,815,555,434 7,446,160,561 -2.1240 17 0.0486 Naive cluster-robust t, df=G-1

By target year

The final year may be partial. Per-year results (including pooled AR's 2025 and 2026 wins) are descriptive only: 4 clusters per year (2 in 2026), so clustered inference is weak (df=3) or essentially undefined (df=1).

Target year Method Forecasts (count) MAE (thousands USD) RMSE (thousands USD) MAPE (%) Percentage-error cases (count) MdAPE (%, supplementary)
2022 Naive 198 192,430 414,746 31.854 198 8.073
2022 Seasonal naive 198 458,286 917,090 79.484 198 19.506
2022 Pooled panel AR 198 219,620 467,761 33.567 198 9.402
2023 Naive 199 104,898 213,573 8.634 199 3.981
2023 Seasonal naive 199 462,896 1,027,732 24.441 199 15.751
2023 Pooled panel AR 199 144,051 244,311 10.973 199 6.261
2024 Naive 200 79,490 159,863 6.254 200 2.619
2024 Seasonal naive 200 198,306 359,477 15.642 200 7.815
2024 Pooled panel AR 200 94,571 202,791 6.480 200 2.758
2025 Naive 198 110,835 294,096 10.254 198 2.823
2025 Seasonal naive 198 268,043 619,879 26.317 198 7.587
2025 Pooled panel AR 198 102,579 287,348 10.151 198 2.253
2026 Naive 98 85,686 161,297 3.833 98 2.239
2026 Seasonal naive 98 331,839 697,178 12.697 98 9.134
2026 Pooled panel AR 98 84,997 152,253 3.922 98 2.352

Supplementary MdAPE winners by target year:

Per-year DM comparisons — descriptive only

Scope Loss / differential units n G Mean loss differential Cluster-robust SE Cluster-robust t df Two-sided p Favored method Inference
2022 Absolute error (thousands USD) 198 4 -27,190 9,698 -2.8038 3 0.0676 Naive descriptive only (G=4)
2022 Squared error ((thousands USD)²) 198 4 -46,786,174,302 24,291,046,626 -1.9261 3 0.1497 Naive descriptive only (G=4)
2023 Absolute error (thousands USD) 199 4 -39,154 8,000 -4.8943 3 0.0163 Naive descriptive only (G=4)
2023 Squared error ((thousands USD)²) 199 4 -14,074,632,511 6,712,706,829 -2.0967 3 0.1270 Naive descriptive only (G=4)
2024 Absolute error (thousands USD) 200 4 -15,081 15,571 -0.9685 3 0.4042 Naive descriptive only (G=4)
2024 Squared error ((thousands USD)²) 200 4 -15,568,122,459 12,291,160,795 -1.2666 3 0.2947 Naive descriptive only (G=4)
2025 Absolute error (thousands USD) 198 4 8,257 14,214 0.5809 3 0.6021 Pooled panel AR descriptive only (G=4)
2025 Squared error ((thousands USD)²) 198 4 3,923,959,968 9,942,936,641 0.3946 3 0.7195 Pooled panel AR descriptive only (G=4)
2026 Absolute error (thousands USD) 98 2 689 14,699 0.0469 1 0.9702 Pooled panel AR descriptive only (G=2)
2026 Squared error ((thousands USD)²) 98 2 2,835,753,035 10,393,793,412 0.2728 1 0.8304 Pooled panel AR descriptive only (G=2)

Figures

JPMorgan quarterly and reported YTD net interest income
JPMorgan (RSSD 1039502): quarterly and reported YTD NII, thousands USD. Complete-year quarterly sums equal Q4 YTD.
Quarterly Y-9C filer count and top-50 asset cutoff
Filers with reported consolidated assets (BHC count) and the 50th-largest asset value (thousands USD). The 2018Q3 threshold change mainly affects small filers.
Mean absolute forecast error by target year and method
MAE by target year, thousands USD. The final year may be partial; every method uses the same evaluated cases.
Actual and forecast aggregate NII for evaluated top-50 cases
NII summed over the same evaluated BHCs within each target quarter, thousands USD. Membership changes over time; aggregate cancellation can hide institution-level errors.

Data vintage

Coverage: 2018Q1–2026Q2, 34 quarters. Build time (UTC): 2026-09-26T04:00:45.659404+00:00. Source: FFIEC NIC Financial Data Download. Cached files are reused; first-seen timestamps are not claimed as original download times.

NIC download dates and cache provenance (UTC)
QuarterDownloaded / first seen (UTC)
2018Q12026-09-26T03:35:21.592924+00:00
2018Q22026-09-26T03:35:22.829567+00:00
2018Q32026-09-26T03:35:24.017568+00:00
2018Q42026-09-26T03:35:25.264072+00:00
2019Q12026-09-26T03:35:26.389697+00:00
2019Q22026-09-26T03:35:27.576250+00:00
2019Q32026-09-26T03:35:28.865786+00:00
2019Q42026-09-26T03:35:30.118481+00:00
2020Q12026-09-26T03:35:31.266314+00:00
2020Q22026-09-26T03:35:32.472669+00:00
2020Q32026-09-26T03:35:33.610023+00:00
2020Q42026-09-26T03:35:34.811950+00:00
2021Q12026-09-26T03:35:35.926911+00:00
2021Q22026-09-26T03:35:37.131801+00:00
2021Q32026-09-26T03:35:38.252124+00:00
2021Q42026-09-26T03:35:39.440905+00:00
2022Q12026-09-26T03:35:40.570573+00:00
2022Q22026-09-26T03:35:41.782064+00:00
2022Q32026-09-26T03:35:42.886568+00:00
2022Q42026-09-26T03:35:44.064858+00:00
2023Q12026-09-26T03:35:45.236208+00:00
2023Q22026-09-26T03:35:46.451469+00:00
2023Q32026-09-26T03:35:47.607440+00:00
2023Q42026-09-26T03:35:48.846202+00:00
2024Q12026-09-26T03:35:49.981232+00:00
2024Q22026-09-26T03:35:51.184648+00:00
2024Q32026-09-26T03:35:52.316133+00:00
2024Q42026-09-26T03:35:53.546359+00:00
2025Q12026-09-26T03:35:54.724380+00:00
2025Q22026-09-26T03:35:55.899594+00:00
2025Q32026-09-26T03:35:57.068819+00:00
2025Q42026-09-26T03:35:58.312856+00:00
2026Q12026-09-26T03:35:59.488062+00:00
2026Q22026-09-26T03:36:00.652232+00:00

Vintage and SHA-256 metadata · Test design and origin-level counts · Overall errors CSV · By-year errors CSV · DM tests CSV · DM tests JSON

Reproduce

git clone https://github.com/jgridifier/research-lab && cd research-lab && make y9c

Requires Python 3.13, venv/pip, make, and network access to NIC and the package index. The in-repository pipeline and notebook download from 2018Q1 through the latest completed quarter, build the panel, execute the notebook, and render this page. Runtime raw files and panels are ignored by git; only aggregate outputs are published.

Caveats