AI-assembled from public SEC filings
Warehouse and discount retail peer review
Descriptive comparison assembled from public SEC filings and verified companyfacts.
Descriptive comparison — not investment advice. This feature-specific review is assembled from a frozen evidence pack of public SEC filing quotes and verified SEC companyfacts numbers. It is descriptive only and makes no judgment about which company is better. It is not a rating, recommendation, endorsement, forecast, or investment advice. Figures are as of their cited filing dates. See Disclaimer.
Methodology
Mechanical U.S. megabank cluster: companies in the existing grepcent universe with SEC SIC 6021 National Commercial Banks and latest reported total assets above $1 trillion. These are exactly the four banks held out of the regional-banks cluster by its large-regional asset band, so this cluster gives them a home rather than leaving them excluded into nothing.
The cluster is selected mechanically from public SEC SIC 6021 companies already present in grepcent's processed universe, filtered to latest reported total assets above $1 trillion using the same SEC companyfacts figures shown on grepcent company pages. The next largest SIC 6021 bank sits near $669 billion in assets, well inside the regional band, so the threshold separates the two clusters cleanly. The review publishes no proprietary index-membership labels.
Verified Quantitative Matrix
Numbers are templated from frozen SEC companyfacts-derived facts already verified by grepcent. Fiscal periods and filing dates are shown in each cell; code-computed comparisons below only use calendar-aligned periods.
| Metric | JPM | BAC | C | WFC |
|---|---|---|---|---|
| Revenue | 182,447,000,000 source · NUM_JPM_REVENUE_FY2025 | 113,097,000,000 source · NUM_BAC_REVENUE_FY2025 | 85,225,000,000 source · NUM_C_REVENUE_FY2025 | 83,699,000,000 source · NUM_WFC_REVENUE_FY2025 |
| Net margin | 31.27% source · NUM_JPM_NET_MARGIN_FY2025 | 26.98% source · NUM_BAC_NET_MARGIN_FY2025 | 16.79% source · NUM_C_NET_MARGIN_FY2025 | 25.49% source · NUM_WFC_NET_MARGIN_FY2025 |
| Operating margin | Quarantined: Only 0 of 4 companies have a verified fact; threshold is 2. | |||
| Free cash flow | Quarantined: Only 1 of 4 companies have a verified fact; threshold is 2. | |||
| Capital expenditures | Quarantined: Only 1 of 4 companies have a verified fact; threshold is 2. | |||
| Dividends paid | 16,625,000,000 source · NUM_JPM_DIVIDENDS_PAID_FY2025 | Not available. | 5,372,000,000 source · NUM_C_DIVIDENDS_PAID_FY2025 | 5,434,000,000 source · NUM_WFC_DIVIDENDS_PAID_FY2025 |
| Share buybacks | 31,591,000,000 source · NUM_JPM_SHARE_BUYBACKS_FY2025 | 21,433,000,000 source · NUM_BAC_SHARE_BUYBACKS_FY2025 | 13,250,000,000 source · NUM_C_SHARE_BUYBACKS_FY2025 | 17,516,000,000 source · NUM_WFC_SHARE_BUYBACKS_FY2025 |
| Assets | 4,424,900,000,000 source · NUM_JPM_ASSETS_FY2025 | 3,411,738,000,000 source · NUM_BAC_ASSETS_FY2025 | 2,657,202,000,000 source · NUM_C_ASSETS_FY2025 | 2,148,631,000,000 source · NUM_WFC_ASSETS_FY2025 |
| Liabilities / equity | 11.21 source · NUM_JPM_LIABILITIES_TO_EQUITY_FY2025 | 10.25 source · NUM_BAC_LIABILITIES_TO_EQUITY_FY2025 | 11.51 source · NUM_C_LIABILITIES_TO_EQUITY_FY2025 | 10.85 source · NUM_WFC_LIABILITIES_TO_EQUITY_FY2025 |
Code-computed comparisons
- Latest reported revenue range: range endpoints are WFC (83,699,000,000) and JPM (182,447,000,000).
- Reported net margin range: range endpoints are C (16.79%) and JPM (31.27%).
Market-risk companion: risk and factor comparison from lmfin. It is descriptive and separate from the SEC fundamentals review.
Narrative Matrix
| Dimension | JPM | BAC | C | WFC |
|---|---|---|---|---|
| Business model | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Geographic and customer exposure | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Capital allocation | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Stated strategy in filings | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Idiosyncratic risks in filings | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
| Recent narrative change | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. | Quarantined: no direct dimension-relevant quote survived the gate. |
Gate summary
Quarantined quantitative rows
- operating_margin: Only 0 of 4 companies have a verified fact; threshold is 2.
- free_cash_flow: Only 1 of 4 companies have a verified fact; threshold is 2.
- capex: Only 1 of 4 companies have a verified fact; threshold is 2.
Quarantined dimensions
- business_model: No verified cells survived the gate.
- geographic_customer_exposure: No verified cells survived the gate.
- capital_allocation: No verified cells survived the gate.
- stated_strategy: No verified cells survived the gate.
- idiosyncratic_risks: No verified cells survived the gate.
- recent_narrative_change: No verified cells survived the gate.
Quarantined cells
- JPM / business_model: No direct dimension-relevant quote survived the evidence gate.
- BAC / business_model: No direct dimension-relevant quote survived the evidence gate.
- C / business_model: No direct dimension-relevant quote survived the evidence gate.
- WFC / business_model: No direct dimension-relevant quote survived the evidence gate.
- JPM / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- BAC / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- C / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- WFC / geographic_customer_exposure: No direct dimension-relevant quote survived the evidence gate.
- JPM / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- BAC / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- C / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- WFC / capital_allocation: No direct dimension-relevant quote survived the evidence gate.
- JPM / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- BAC / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- C / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- WFC / stated_strategy: No direct dimension-relevant quote survived the evidence gate.
- JPM / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.
- BAC / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.
- C / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.
- WFC / idiosyncratic_risks: No direct dimension-relevant quote survived the evidence gate.
- JPM / recent_narrative_change: No direct dimension-relevant quote survived the evidence gate.
- BAC / recent_narrative_change: No direct dimension-relevant quote survived the evidence gate.
- C / recent_narrative_change: No direct dimension-relevant quote survived the evidence gate.
- WFC / recent_narrative_change: No direct dimension-relevant quote survived the evidence gate.