Charles Schwab is the largest listed brokerage and custody franchise in the United States, a broker–bank hybrid with roughly $10–11 trillion of client assets across retail investors, active traders and the independent registered-investment-advisor (RIA) channel it custodies for. It earns money three ways: net interest income on client cash swept into its bank (spread between what it pays depositors and what it earns on securities and loans), asset-management and administration fees on its funds and advice programs, and trading commissions/order-flow. The 2020 Ameritrade acquisition, now fully integrated, made it the dominant scale player in US custody. Its distinctive edge is that scale: a bottom-quartile cost-to-serve, an enormous sticky base of custodied advisor and retail assets, and a banking arm that turns idle client cash into spread income — durability and breadth rather than fast growth. Think of it as the low-cost utility of US retail investing, geared to both interest rates and equity-market levels.
Lifecycle & sector: Mature Financials — Capital Markets (broker + bank hybrid). Scored on bank/capital-markets metrics (ROE, ROTCE, efficiency ratio, net interest margin, P/TBV / P/E), not industrial FCF, EBITDA or gross margin, which are structurally misleading for a balance-sheet business.
revenue line for SCHW (~$7.3B in Q1’26) is the gross interest-income basis; Schwab’s reported total net revenue = revenue − interest expense = ~$6.48B (Q1’26). Verified: Q2’25 6,816 − 965 = $5.85B = Schwab’s reported Q2’25 net revenue. All quality metrics below use the ~$6.48B net-revenue basis, not the $7.3B gross figure.| Sub-signal | Value | Peer / context | Score |
|---|---|---|---|
| Net-revenue trajectory (net basis) | Q1’26 $6.48B, +15.8% YoY (5,599→6,482) | Well above mature-broker norm; NII + trading + asset fees all rising | 84 |
| Net margin (net-revenue basis) | 38.0% TTM (9.42B / 24.8B) | Top-tier for a broker–bank | 82 |
| ROE | ~19% | >18% = exceptional; FMP ROE sub-score 5/5 | 85 |
| Efficiency ratio | 50.8% | <55% excellent (ex-interest expense / net revenue) | 84 |
| Balance-sheet health | Int. coverage 3.5x, current 12.4x, D/E 0.67 | Sound; cash-sorting/deposit mix the watch item | 70 |
| Moat dimension | Score | Basis |
|---|---|---|
| Pricing power | 58 | Commission-free brokerage floor; pricing power sits in the bank spread, not fees |
| Network effects | 55 | RIA-custody flywheel (more advisors → more tools → more advisors); modest |
| Switching costs | 72 | Custody/account inertia, ACATS friction, RIA relationships; high but eroding at the active-trader margin |
| Cost advantage | 78 | Bottom-quartile cost-to-serve at $10T+ scale post-Ameritrade |
| Intangible assets | 62 | Trusted brand + banking/broker charters as a regulatory barrier |
moat_score = 65 (avg).
| Rival | Threat type | Share trajectory | Erosion vector |
|---|---|---|---|
| Fidelity (private) | Direct — RIA custody + direct retail | SCHW stable / slight defence | Aggressive on RIA custody pricing & cash sweep yield |
| Interactive Brokers (IBKR) | Low-cost active traders | IBKR gaining at the sophisticated-trader margin | Lower financing/commissions, global market access |
| Robinhood (HOOD) | Younger retail, options/crypto | HOOD gaining in engagement/new funded accounts | Mobile-first UX, crypto, gold-tier sweep |
| Morgan Stanley (E*Trade + WM) | Wealth + self-directed | Stable | Advice bundling into wealth platform |
Net effect on moat: Switching Costs trimmed to 72 and Cost Advantage held at 78 — scale intact, but the active-trader and higher-cash-yield battlegrounds keep the trajectory stable, not gaining. competitive_threat_level: moderate. Watch item (flagged by BMO 20 Jul): no evidence yet that AI-enabled cash optimisation is pulling client cash out of the low-yield sweep — but it is the structural risk to the bank-spread engine.
Capital allocation & management: disciplined — steady buybacks shrinking the share count, ~25% dividend payout, preferred/debt paydown. Capital-allocation ~76; management skin-in-the-game moderate (~55). ROE ~19% comfortably above cost of capital.
Lens: capital-light-financials — primary multiple is P/E (the bank sleeve makes P/TBV noisy; the guardrail for this cohort is P/E ≥ 30x, valued like a quality compounder). Earnings are clean — non-operating income is 0% of net income — so no normalisation needed.
| Multiple | Value | Read |
|---|---|---|
| P/E (TTM, clean) | 20.3x | Fair vs warranted 19.5x; below 30x guardrail |
| Forward P/E (2027) | ~13.4x | Cheap on the growth ramp (EPS ~$7.6 FY27) |
| PEG (TTM / fwd) | 0.38 / 0.98 | Deeply attractive on trailing growth |
| P/B / P/TBV | 3.64x / ~6.1x | Rich on book — typical for a 19% ROE bank; use earnings lens |
| Dividend yield / payout | 1.15% / ~25% | Low yield, ample coverage; capital return via buyback |
| FCF yield | ~5.4% | Attractive; supports buyback + dividend |
Primary driver: the rate regime and the shape of the curve, which set Schwab’s net interest income on client cash and reinvestment, plus equity-market levels that drive asset-based fees and trading. Secondary: credit/deposit cycle (cash-sorting, private-credit stress).
| Horizon | Read | Basis (dated) |
|---|---|---|
| Historical (12–24m) | Improving | NII recovered as deposit mix stabilised post-2023 stress; net revenue +15.8% YoY |
| Current | Tailwind | Macro 20 Jul 2026: Stagflation-lite / higher-for-longer, 10-Y ~4.5%+, steeper curve; equity markets near highs — both NII and asset-fee engines favourable. XLF short/med Overweight. |
| Forward (6–12m) | Neutral-to-Tailwind | FOMC 29 Jul hold is base case; a Sep cut is the swing — aggressive cuts compress the cash spread (the medium risk), but a steeper curve and reinvestment cushion it. XLF long Neutral. |
driver_score = 68 (Tailwind). ≥ 65 → amplification-eligible: it can lift a base BUY to STRONG BUY where the economy also reads Tailwind (it does, at the medium horizon). The base BUY/HOLD/SELL and the three fundamental pillar scores are unchanged by the driver. Thesis-invalidation floor: a rapid, deep Fed cutting cycle that collapses the deposit spread, or a renewed cash-sorting/deposit-outflow episode — that is the dial that would break the case.
Sector map: Financials (XLF) reads Overweight short, Overweight medium, Neutral long in the 20 Jul 2026 macro report — real+fast money flowing IN short and medium. The steeper curve and higher-for-longer regime are a direct NII tailwind for a broker–bank; the private-credit/shadow-bank stress (HIGH driver) is the offsetting watch. Anchoring pressure on the MEDIUM horizon → Tailwind, which enables the medium STRONG-BUY amplification (base BUY + driver 68 + XLF-medium Tailwind). Long horizon reads Neutral (XLF long N), so the LONG signal is NOT amplified and stays BUY. Stance Trend-Following, conviction 66.
Source: sector-map (XLF) · Macro report 2026-07-20
Lead read: the trend is unambiguously up (all higher timeframes uptrend + resistance-breakout, confluence strongly bullish), but the entry is poor — price is extended near the 52-wk high after a ~20% run, RSI 64, nearest daily support ($94.8) is ~3.3 ATR below, and Q2 earnings land tomorrow. Great trend, bad spot to chase.
| Sub-signal | Read | Score |
|---|---|---|
| MTF confluence | Strongly bullish (M/W/D uptrend + breakout) | 80 |
| Risk-reward / position risk | Extended; wide stop (~3.3 ATR to support) | 38 |
| Relative strength (1–3m) | Outperforming SPX & XLF (BMO cited the outperformance) | 78 |
| Macro overlay (XLF, high-sensitivity) | Overweight short/med — favourable | 72 |
| Sentiment (grades + news) | Buy consensus, but fresh BMO valuation downgrade | 52 |
| Catalyst density | Earnings T-1 (dominant) + FOMC 29 Jul | 40 |
timing_score = 56 (Improving, ≥55), but confidence capped at 40% by the Earnings Event gate. The improving trend carries the medium/long base to BUY; the poor entry + event risk cap the short at HOLD.
| Date | Event | Impact | Forecast | Previous | Relevant? | Why |
|---|---|---|---|---|---|---|
| 2026-07-21 | SCHW Q2 2026 earnings | High | EPS ~$1.55 | $1.14 (Q2’25) | ✅ Yes | The stock’s own binary event — tomorrow |
| 2026-07-24 | US Flash PMIs (Jul) | Medium | comp ~52 | ~52 | ⚠ Medium | Growth signal → trading/asset-fee read |
| 2026-07-29 | FOMC Rate Decision (Warsh) | High | Hold 3.50–3.75% | Hold | ✅ Yes | Rate-sensitive: sets the NII/deposit-spread path |
| 2026-07-30 | US Q2 GDP (Advance) | Medium | ~2.0% | — | ⚠ Medium | Demand read for client activity |
| 2026-07-31 | US Core PCE (Jun) | Medium | +0.2% MoM | — | ⚠ Medium | Last clean disinflation print before gasoline re-accelerates |
| Date | Event | Actual | Forecast | Surprise | Impact |
|---|---|---|---|---|---|
| 2026-07-20 | BMO downgrade SCHW | → Market Perform | was Outperform | PT $105 | Negative (valuation, near-term) |
The dominant event is tomorrow’s Q2 print (21 Jul) — SCHW is a high-macro-sensitivity Financials name, so the earnings + the 29 Jul FOMC cluster warrants event-aware sizing. The prudent short-horizon stance is to wait for the print rather than buy into it at a 52-wk high.
| Timeframe | Trend | Direction | RSI | MACD | Key S/R | Breakout | Vol |
|---|---|---|---|---|---|---|---|
| Monthly | Uptrend ↑ | Bullish | 63.1 | +5.51 (hist −0.3) | S 86.6 / R 107.5 | Resist. breakout | 0.6x |
| Weekly | Uptrend ↑ | Bullish | 62.7 | +1.30 rising | S 90.0 / R 100.8 | Resist. breakout | 0.3x |
| Daily | Uptrend ↑ | Bullish | 64.1 | +3.14 (hist +0.35) | S 94.8 / R 104.0 | Resist. breakout | 0.8x |
| Hourly | Weakening → | Neutral | 49.6 | +0.10 flat | S 100.3 / R 103.1 | None | — |
| 15-min | Recovering → | Neutral | 45.2 | +0.18 (hist −0.07) | S 100.3 / R 103.1 | None | — |
| Confluence: Strongly Bullish · MTF Score 80 | |||||||
Monthly, weekly and daily are all in confirmed uptrends above their key moving averages with resistance breakouts — a textbook higher-timeframe bull structure. The only softness is intraday (hourly weakening, 15-min recovering), consistent with a stock consolidating just under its 52-wk high ahead of earnings. Key levels: $104 (52-wk high / daily resistance) and $107.5 (monthly resistance) above; $94.8 (breakout retest) then $88–90 (weekly support / stop zone) below. A clean re-entry is either a post-earnings reclaim of $104 on volume or a pullback into $94–95 with a higher low — not a chase at $102.5.
SCHW 6-month daily close. A May low near $85 gave way to a ~20% breakout run to the $102–104 zone; price now consolidates just under the 52-wk high ahead of the 21 Jul Q2 print.
Fed holds then cuts only gradually while the curve steepens — the deposit book re-prices higher and NII torque surprises up; record client assets and robust trading lift asset-based fees; buybacks continue. Re-rates toward ~18x forward. Trigger: no aggressive cutting cycle, equity markets higher, cash-sorting stabilises.
Consensus path: net revenue grows mid-teens, EPS ramps toward ~$7 into 2027, the multiple holds around Fair. +~15% from $102.54 — roughly the analyst consensus ($121). The probability-weighted centre of gravity.
Idiosyncratic downside (NOT the AI-concentration tail — SCHW is not an AI-cohort name): an aggressive Fed cutting cycle compresses the cash spread, a market drawdown drags asset-based fees, and renewed cash-sorting / deposit outflows return; a private-credit/market-vol shock amplifies. ~−14% to the $88 stop zone. Competitive leg: sustained active-trader/RIA-custody share loss to IBKR/HOOD/Fidelity.
Forecast: Fundamental group opens ~22 Jul once the Q2 print clears the 7-day blackout (price already below ~$118 fair value, driver tailwind intact) — HIGH confidence it re-opens. A clean Technical entry needs either a post-earnings reclaim of $104 on >1.5x volume (MODERATE, catalyst-dependent on the 21 Jul print) or a pullback into the $94–95 breakout-retest with a higher low (MODERATE). Catalyst group is binary on tomorrow’s report. Net: no clean path is open TODAY — by design the short sits at Wait/HOLD until the print confirms.
Forecast: No exit trigger is live. Stop ($88) is ~14% below and unlikely in 4–6 weeks absent an earnings shock; the profit-target ($118) is ~15% above. The one live risk event is tomorrow’s print — a large miss could gap price toward the $94–95 retest.
What you’re risking: you’d be opening at a 52-wk high after a ~20% run, into a binary Q2 print tomorrow, with a same-day BMO valuation downgrade (PT $105) — none of the entry groups is met, so the path risk is high and a miss could gap you toward $94–95. What you’re gaining: the medium STRONG-BUY compounding thesis (NII tailwind + buybacks), ~+15% base upside, +18% to consensus, a ~5.4% FCF yield and 1.15% dividend while you wait, plus the NII/steepener optionality. Read: the trade is sound but the timing is poor — waiting one day for the print materially improves the deal; that is exactly why the short sits at HOLD.
What you’re giving up: the base path to $118, the NII/steepener optionality, and income — and you’d be selling a Fair-valued, 19%-ROE franchise below its own fair value. What you’re protecting: capital against a bad Q2 print. Read: no exit rule is triggered (no stop, no thesis break, no profit-target) — this is a hold / accumulate-on-confirmation zone, not a sell.
Position sizing not computed — no allocation or portfolio role was specified for this refresh. As context only: the §12 Conviction Ladder reads Wait (0 of 3 entry paths open) because of the earnings blackout and the extended entry, so the framework’s guidance is to watch the post-print levels ($104 reclaim on volume, or a $94–95 pullback with a higher low) rather than size a position today. ATR ~2.3% of price; beta ~1.1.
{
"ticker": "SCHW",
"date": "2026-07-20",
"version": "v6",
"company": "The Charles Schwab Corporation",
"currency": "USD",
"exchange": "NYSE",
"exchange_ticker": "NYSE:SCHW",
"isin": "US8085131055",
"api_ticker": "SCHW",
"analysis_status": "on-going",
"lifecycle_stage": "mature",
"sector": "Financials",
"gics_sector": "Financials",
"country": "United States",
"finder_ticker": "SCHW",
"finder_exchange": "NYSE",
"price_at_rating": 102.54,
"signal_short": "HOLD",
"signal_medium": "STRONG_BUY",
"signal_long": "BUY",
"primary_signal": "STRONG_BUY",
"quality_score": 79,
"valuation_score": 65,
"timing_score": 56,
"driver_score": 68,
"economic_alignment_stance": "Trend-Following",
"economic_alignment_conviction": 66,
"economic_alignment_pressure": "Tailwind",
"economic_alignment_source": "sector-map (XLF)",
"macro_report_date": "2026-07-20",
"overall_confidence": 55,
"val_band": "fair",
"warranted_multiple": 19.5,
"actual_multiple": 20.3,
"warranted_ratio": 1.04,
"discount_rate_r": 9.0,
"risk_free_10y": 4.5,
"g_near": 6.0,
"g_term": 3.0,
"val_multiple_basis": "clean P/E (net-revenue basis)",
"clean_pe": 20.3,
"clean_peg": 0.98,
"nonop_pct_of_net_income": 0,
"fcf_yield": 5.4,
"implied_growth_rate": 6.5,
"consensus_growth_rate": 15.0,
"historical_valuation_decile": 8,
"moat_score": 65,
"relative_strength_vs_spy": 6.0,
"relative_strength_vs_sector": 4.0,
"catalyst_clustering_score": 40,
"competitive_share_trajectory": "stable",
"competitive_threat_level": "moderate",
"fair_value_est": 118,
"stop_loss": 88,
"target_price": 118,
"scenario_base_target": 118,
"scenario_bull_target": 137,
"scenario_bear_target": 88,
"entry_groups_met": 0,
"entry_conviction": "Wait",
"short_entry_confirmed": false,
"short_cap_reason": "Buy on confirmation \u2014 post-Q2 print (21 Jul) reclaim of $104 on volume OR pullback into $94\u201395 with a higher low. Entry extended at 52-wk high with earnings T-1 (Gate 2) and a fresh BMO valuation downgrade.",
"exit_groups_live": 0,
"exit_action": "Hold",
"hard_gate_state": "caution",
"gates_triggered": [
"Earnings Event (Q2 2026-07-21, T-1)"
],
"gates_caution": [
"Earnings Event (Q2 2026-07-21, T-1)"
],
"do_not_buy_triggers": [],
"analyst_consensus_target": 121,
"analyst_target_high": 137,
"analyst_target_low": 105,
"analyst_target_median": 122,
"analyst_target_upside_pct": 18.0,
"analyst_grades_consensus": "Buy",
"analyst_bullish_pct": 57,
"analyst_coverage_count": 51,
"fmp_rating": "B",
"fmp_overall_score": 3,
"recent_upgrades_30d": 0,
"recent_downgrades_30d": 1,
"next_update_date": "2026-07-22",
"next_update_basis": "Q2 earnings 2026-07-21 +1 trading day",
"next_check_date": "2026-07-22",
"prior_report": "calibration-SCHW-20260709-0905.json",
"prior_primary": "STRONG_BUY",
"changes_note": "No signal change (HOLD/STRONG_BUY/BUY held). Corrected earnings date: Q2 is 21 Jul (tomorrow), not ~17 Jul as prior report assumed \u2014 Earnings Event gate remains armed at T-1. Valuation 66->65 (anchor Fair 1.04; BMO Outperform->Market Perform on valuation, PT $105). Timing 52->56 (MTF flipped mixed->strongly bullish). Medium STRONG_BUY amplification re-verified (driver 68, XLF-medium Tailwind). Net-revenue basis corrected to grossProfit."
}
No signal change this refresh: HOLD / STRONG BUY / BUY held. The pivotal correction is the earnings date — Q2 2026 reports 21 Jul (tomorrow), not ~17 Jul as the prior report assumed — so the Earnings Event gate never cleared and remains armed at T-1. Valuation trimmed 66→65 (anchor now Fair, ratio 1.04; BMO valuation downgrade); Timing 52→56 as the MTF flipped from mixed to strongly bullish. Medium STRONG-BUY amplification re-verified (driver 68 ≥65, XLF-medium Tailwind, ratio <1.20).