Schwab reported a record Q2'26 on 21 Jul — revenue +21% yoy, adjusted EPS $1.62 (GAAP $1.54, up from $1.37 in Q1), +1.4M brokerage accounts, and raised full-year guidance. The stock 'sold the news' −2.5% on the day but has recovered to $101.61 (roughly flat vs the prior report). Signals are unchanged — HOLD / STRONG BUY / BUY: the earnings-event caution gate CLEARED (⚠→✓), Timing firmed +6 to 62 on the strongly-bullish trend, and the driver tailwind (68) + supportive medium-term economy keep the medium call amplified to STRONG BUY. Valuation Fair-to-Attractive (~18x trailing / ~16x forward for ~20% growth). Short stays HOLD — entering into $104-107 resistance on light volume with no confirmed trigger.
Charles Schwab is the largest US retail brokerage, custodian and RIA platform, with ~$10tn+ in client assets. Its business is a hybrid: it earns fees on advice, trading and asset management, but the bulk of profit comes from net interest — it sweeps client cash into its own bank and earns the spread. What sets Schwab apart is unmatched scale and distribution (retail investors plus the dominant independent-advisor custody franchise), a low-cost operating model, and the deposit base created by client cash. The main swing factor is 'cash sorting' — how much idle client cash sits in low-yielding sweeps vs moving to higher-yield products — which drives net interest revenue.
Lifecycle / sector: Mature large-cap Capital Markets / brokerage-bank hybrid. Scored on the blend the SKILL prescribes for hybrids — banking profitability (ROE, net interest revenue, efficiency) plus platform growth (client assets, account growth). Note the classic data trap: FMP's P/B (57x) and book-value-per-share ($1.78) are wrong for SCHW (they net out preferred/intangibles oddly) — the anchor is P/E, not P/B.
| Sub-signal | Value | Benchmark | Score | Read |
|---|---|---|---|---|
| Revenue growth (Q2'26 yoy) | +21% | Broker mid-single-digit typical | 88 | Record revenue; net interest + trading + asset mgmt all up |
| EPS (Q2 adjusted / GAAP) | $1.62 / $1.54 | vs $1.37 Q1 | 85 | Accelerating; guidance raised |
| New brokerage accounts | +1.4M | — | 86 | Franchise still taking share |
| Net margin (TTM) | 35% | — | 82 | High-margin model; operating leverage |
| Efficiency / operating leverage | Improving | — | 80 | Revenue growing faster than costs |
Moat average ≈ 71. The durable edge is scale + a captive deposit base; the vulnerability is fee compression in a zero-commission world.
| Rival | Threat | Share trajectory | Erosion vector |
|---|---|---|---|
| Fidelity | Retail + workplace scale | Schwab stable | Cash-sweep yields, fund fees |
| Interactive Brokers | Active/pro traders | Schwab stable | Lower margin rates, global access (IBKR also beat Q2) |
| Robinhood | Younger retail | Schwab stable | UX, crypto, PFOF economics |
| Morgan Stanley (E*Trade), Fidelity custody | RIA custody | Schwab leads | Advisor platform competition |
→ Net effect: Switching Costs 75, Cost Advantage 85 held — scale defends the franchise. The live pressure is cash-sweep yield competition (Barron's: the free-ETF-trade era ending as brokers charge for placement). Threat level: moderate.
ROIC / capital allocation: Zacks Rank #1 (Strong Buy) income stock; disciplined buybacks + a growing dividend (~1.2% yield, 17% payout). Capital freed as the balance sheet normalises post-2023.
Warranted-multiple anchor (P/E): with g_near ~10% (capital-light financial), g_term 3%, r 9.0%, the warranted P/E ≈ 19.5x. Trailing clean P/E ≈ 18.4x (GAAP diluted TTM EPS ~$5.50; adjusted ~$5.82) → ratio ~0.94x = Fair, edging Attractive. Forward P/E on the raised-guidance run-rate (~$6.4 2026E) is ~15.9x — cheap for ~20% revenue growth (PEG ~0.9). Well below the 30x capital-light-financial guardrail.
| Metric | SCHW | Warranted / Peer | Read |
|---|---|---|---|
| Trailing P/E (anchor) | 18.4x | 19.5x warranted | Fair (≈1.0x) |
| Forward P/E (2026E) | ~15.9x | — | Attractive vs growth |
| PEG (fwd) | ~0.9 | <1 = attractive | Good |
| P/B | n/a (FMP figure unreliable) | — | Use P/E for hybrids |
| Dividend yield | 1.2% | — | Buybacks the main return |
Implied-growth read: at $101.61 the market implies ~8-9% long-run EPS growth; Schwab is delivering ~15%+ with net interest revenue still recovering — the price embeds less growth than the fundamentals support.
Analyst cross-check: consensus target $124.44, median $127, high $145, low $105 — even the Street's low is above spot; ~22% upside to consensus. Grades: Buy consensus (0 strong-buy / 29 buy / 19 hold / 3 sell = 57% bullish); Morgan Stanley "doubled down" post-print.
Schwab's economics hinge on two external forces: the rate environment (the spread the bank earns on swept client cash) and the equity-market / client-asset cycle (trading volumes, asset-based fees, and the pace of 'cash sorting'). Both are currently favourable — rates remain elevated (Fed 3.75%), cash sorting has largely run its course so net interest revenue is recovering, and buoyant markets lift client assets and trading.
| Horizon | Driver read | Score |
|---|---|---|
| Historical (12–24m) | NIR recovered from the 2023-24 cash-sorting trough; assets grew | 66 |
| Current | Elevated rates + abating cash sorting + record revenue = clear tailwind | 70 |
| Forward (6–12m) | Fed on hold supports the spread; risk = deep rate cuts compress NIR | 66 |
Amplification: driver 68 (≥65 Tailwind) + Economic-Alignment pressure Tailwind at the medium horizon (XLF Outperform) → the medium BUY is amplified to STRONG BUY. At the long horizon the macro scores XLF Neutral, so no amplification there (long stays BUY). Short is capped separately (see §12).
Thesis-invalidation floor: an aggressive Fed cutting cycle that compresses the deposit spread faster than asset growth offsets, or a market drawdown that shrinks client assets and trading.
Macro report scores Financials (XLF) Outperform short & medium, Neutral long, with real+fast money flowing in. A higher-for-longer, stagflation-lite regime is favourable for the deposit spread. Medium pressure = Tailwind (amplifies the medium BUY to STRONG BUY, with driver ≥65); long pressure = Neutral (no amplification, long stays BUY). Stance Trend-Following.
Source: sector-map (XLF) · Macro report 2026-07-20
Risk-reward: every timeframe is in an uptrend (strongly-bullish confluence); the stock 'sold the news' −2.5% on the record print then recovered to $101.61. It sits just below daily resistance $104 and the monthly $107.5 high. Post-earnings volume is light (0.78x), so the grind lacks a volume-confirmed breakout. Nearest support $99.4, then the $93-95 shelf (SMA50/200-DMA).
Relative strength: outperforming over 3m as financials led; 52-week position near the top of the range (momentum, limited entry margin). RSI daily 59 / weekly 62 — healthy, not overbought.
Position-risk: a stop below $95 is ~2.6 ATR — wide; buying into resistance on low volume is a poor short-term entry, hence the short HOLD. The medium/long case doesn't need a perfect entry. Sentiment: Buy-consensus, Morgan Stanley bullish, Zacks #1.
| Date | Event | Impact | Forecast | Previous | Relevant? | Why |
|---|---|---|---|---|---|---|
| 2026-07-29 | Fed Interest Rate Decision | High | Hold 3.75% | 3.75% | ⚠️ Yes | Directly drives Schwab's deposit-spread / net interest revenue |
| 2026-07-30 | Core PCE / Q2 GDP | High | 0.1% / ~1.6% | 0.3% / 2.1% | Medium | Rate-path input |
| 2026-08-07 | Non-Farm Payrolls | High | — | 57k | Medium | Rate expectations + market risk sentiment |
| Date | Event | Actual | Forecast | Surprise | Impact |
|---|---|---|---|---|---|
| 2026-07-21 | Schwab Q2 earnings | Adj EPS $1.62 / rev +21% | beat | record | Sold-the-news −2.5%, guidance raised, recovered since |
| 2026-07-17 | Michigan Consumer Sentiment | 54.4 | 51.0 | +6.7% above | Risk-on; supportive of trading/assets |
The 29 Jul Fed is the key event — Schwab is rate-sensitive (deposit spread). A hawkish hold supports net interest revenue; a dovish surprise is the main near-term risk. High macro sensitivity, so size around the Fed.
| Timeframe | Trend | Direction | RSI | MACD | Key S/R | Breakout | Vol |
|---|---|---|---|---|---|---|---|
| Monthly | Uptrend ↑ | Bullish | 62.6 | + (flat) | S: 65 R: 107.5 | Res breakout | 0.72x |
| Weekly | Uptrend ↑ | Bullish | 61.6 | + rising | S: 90 R: 107.5 | Res breakout | 0.87x |
| Daily | Uptrend ↑ | Bullish | 58.9 | − (flat) | S: 93 R: 104 | Res breakout | 0.78x |
| Hourly | Strong Up ↑ | Neutral | 51.3 | + rising | S: 99.4 R: 103 | Res breakout | — |
| 15-min | Recovering → | Neutral | 44.3 | flat | S: 99.4 R: 102.7 | — | — |
| Confluence: Strongly Bullish · MTF Score 74 | |||||||
All higher timeframes are in clean uptrends with the daily just under $104 resistance. The only caution is low post-earnings volume and proximity to the $107.5 high — a volume-confirmed break of $104 would open the highs; a pullback into $99 then $93-95 (SMA50/200-DMA) is the buy zone. Healthy RSIs (not overbought) leave room.
SCHW 6-month daily — steady uptrend from ~$85 to ~$106, consolidating just below the highs after the record Q2 print.
Net interest revenue keeps recovering, client assets compound, guidance proves conservative; re-rates toward the $127-145 analyst zone. ~+35%.
Steady ~15% EPS growth on abating cash sorting and buoyant markets; multiple holds ~18-19x as the Street marks up the raised outlook. ~+16%.
An aggressive Fed cutting cycle compresses the deposit spread and/or a market drawdown shrinks assets and trading; multiple de-rates. ~−13%.
Forecast: Technical group — likely within 1–2 weeks if the daily breaks $104 on volume as the uptrend resumes (Confidence Moderate). A cleaner entry is a pullback into $99 or the $93-95 shelf. Fundamental group already met (cheap vs fair value + driver tailwind) — which carries the medium STRONG BUY.
Forecast: Stop ($92) is ~9% below spot and below strong support — unlikely in 4-6 weeks absent a Fed-driven risk-off. The realistic near-term risk is a pullback to $99/$95, which would test not the stop but the buy zone.
Buying at $101.61 means entering into $104-107 resistance on light volume with no confirmed technical trigger (short HOLD). What you gain is a ~16x-earnings, ~20%-revenue-growth broker/bank with recovering net interest revenue, a raised outlook, and ~22% upside to the Street's consensus. Read: the medium-term is a STRONG BUY on the fundamentals + tailwind; the entry is better on a break of $104 on volume or a dip to $99 — which is why the short-term is a HOLD, not a chase.
No exit rule is live — no stop hit, thesis intact (record quarter, raised guidance). There is no mechanical reason to sell; this is a hold/accumulate name where the question is entry timing, not ownership.
Position sizing not computed — no risk budget/role specified. The §12 Conviction Ladder reads Half-Size (1 of 3 paths — Fundamental only): a scale-in, adding on a $104 break or a pullback to $99. ATR ~$2.5/day (~2.5%); beta ~1.0; high macro (rate) sensitivity — size around the 29 Jul Fed. Illustrative, not advice.
{
"ticker": "SCHW",
"date": "2026-07-23",
"version": "v6",
"exchange": "NYSE",
"exchange_ticker": "NYSE:SCHW",
"isin": "US8085131055",
"api_ticker": "SCHW",
"company": "The Charles Schwab Corporation",
"currency": "USD",
"sector": "Financials",
"sub_industry": "Capital Markets / Brokerage",
"lifecycle_stage": "mature",
"price_at_rating": 101.61,
"signal_short": "HOLD",
"signal_medium": "STRONG_BUY",
"signal_long": "BUY",
"primary_signal": "STRONG_BUY",
"quality_score": 80,
"valuation_score": 67,
"timing_score": 62,
"driver_score": 68,
"overall_confidence": 60,
"economic_alignment_stance": "Trend-Following",
"economic_alignment_conviction": 70,
"economic_alignment_pressure": "Tailwind",
"economic_alignment_source": "sector-map",
"macro_report_date": "2026-07-20",
"val_multiple_basis": "P/E",
"warranted_multiple": 19.5,
"actual_multiple": 18.4,
"warranted_ratio": 0.94,
"val_band": "fair",
"discount_rate_r": 9.0,
"risk_free_10y": 4.5,
"g_near": 10,
"g_term": 3,
"nonop_pct_of_net_income": 5,
"clean_pe": 18.4,
"clean_peg": 0.9,
"competitive_share_trajectory": "stable",
"competitive_threat_level": "moderate",
"driver_commodity_trend": null,
"hard_gate_state": "clear",
"gates_triggered": [],
"do_not_buy_triggers": [],
"entry_groups_met": 1,
"entry_conviction": "Half-Size",
"exit_groups_live": 0,
"exit_action": "Hold",
"short_entry_confirmed": false,
"short_cap_reason": "Short HOLD \u2014 uptrend but no volume-confirmed breakout (0.78x) into $104-107 resistance; Technical AND Catalyst groups unmet. Buy on confirmation: a break of $104 on volume or a pullback into $99.",
"fair_value_est": 118.0,
"stop_loss": 92.0,
"target_price": 118.0,
"scenario_base_target": 118,
"scenario_bull_target": 137,
"scenario_bear_target": 88,
"analyst_consensus_target": 124.44,
"analyst_target_high": 145,
"analyst_target_low": 105,
"analyst_target_upside_pct": 22.5,
"analyst_grades_consensus": "Buy",
"analyst_bullish_pct": 57.4,
"analyst_coverage_count": 51,
"fmp_rating": "B",
"fmp_overall_score": 3,
"next_update_date": "2026-08-06",
"next_update_basis": "default +14d (next earnings 2026-10-15 beyond window)",
"next_check_date": "2026-08-06",
"analysis_status": "on-going",
"finder_ticker": "SCHW",
"finder_exchange": "\ud83c\uddfa\ud83c\uddf8 NYSE"
}