NYSE:SCHW The Charles Schwab Corporation

ISIN: US8085131055
FinancialsCapital MarketsBroker / Bank hybrid
NYSE · Westlake, TX · Capital Markets (broker + bank) Analysis Status: On-Going
All figures in US$ unless noted.
$102.54
+1.0%
20 Jul 2026 · Signal v6
Changes since last report (9 Jul 2026, $101.70): No signal change — HOLD / STRONG BUY / BUY held. The pivotal correction: Q2 2026 earnings report on 21 Jul (tomorrow), not ~17 Jul as the prior report assumed — so the Earnings Event gate never cleared and is now armed at T-1, keeping the short at HOLD (“buy on confirmation”).
DISCLAIMER: This is a quantitative framework for educational purposes only. It is not financial advice. Always do your own research and consult a licensed financial advisor before making investment decisions.

The Charles Schwab Corporation

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.

HorizonSignalComposite ScoreConfidenceKey Driver
Short-term (1–3 mo)HOLD5740%Q2 earnings tomorrow (Gate 2) + extended at 52-wk high
Medium-term (6–12 mo)STRONG BUY6760%cheap (PEG 0.38) + rate/curve tailwind + XLF Overweight
Long-term (3–5 yr)BUY7162%scale-moat quality; XLF long Neutral so no amplification
Next update: 2026-07-22 — Q2 earnings 2026-07-21 +1 trading day
Table of Contents
1Five-Pillar Scorecard2Hard Gates & Do-Not-Buy Status3Pillar Detail: Business Quality4Pillar Detail: Valuation Attractiveness5Pillar Detail: Underlying Drivers6Pillar Detail: Economic Alignment7Pillar Detail: Entry/Exit Timing8Economic Event Risk9Multi-Timeframe Technical Analysis10Price Chart (6-Month Daily)11Scenario Summary12Entry / Exit Rules13Position Sizing Context14Calibration Snapshot15Data Sources & Methodology
1

Five-Pillar Scorecard

Five independent scores — each 0–100 with its own confidence. The three fundamental pillars (Quality / Valuation / Timing) set the base BUY/HOLD/SELL via the Decision Matrix; the two context pillars (Underlying Drivers, Economic Alignment) then amplify a BUY to STRONG BUY or a SELL to STRONG SELL when both corroborate.

Business Quality

79
strong
conf 78%

Valuation Attractiveness

65
fair (attractive edge)
conf 75%

Entry/Exit Timing

56
improving, but event-capped
conf 40%

Underlying Drivers

68
Tailwind
conf 66%

Economic Alignment

66
Trend-Following
conf 66%
2

Hard Gates & Do-Not-Buy Status

Binary safety checks — any TRIGGERED gate is a hard cap regardless of the scores above; CAUTION gates are sizing notes.
Financial Distress
Well-capitalised bank/broker. Interest coverage 3.5x, current ratio 12.4x, D/E 0.67; no distress.
⚠️
Earnings Event
⚠ Q2 2026 earnings 21 Jul 2026 (TOMORROW, T-1). SCHW has a history of >5% post-print moves — binary event risk. Timing confidence capped at 40%; short entry deferred to post-print confirmation.
Valuation Ceiling
Clean P/E ~20.3x vs warranted ~19.5x (ratio 1.04, Fair) and far below the 30x capital-light-financials guardrail and the $137 high target. Not expensive.
Accounting / Dilution
Non-operating income 0% of net income (clean earnings). Share count falling (buybacks, 1,831→1,746M dil.). No dilution/quality flag.
Regulatory / Binary
No pending binary regulatory event.
Severe Driver Collapse
Rate/curve driver at 68 (Tailwind) — nowhere near the ≤15 collapse threshold.
Hard-gate state: CAUTION. One gate is armed — the Earnings Event gate (Q2 print 21 Jul, tomorrow). It does not force a HOLD on the fundamentals, but it caps timing confidence and is the reason the short-horizon signal is held at HOLD (“buy on confirmation”) rather than BUY. No Do-Not-Buy trigger fires. The macro report’s S&P-500-concentration / AI-earnings-quality tail is armed but SCHW is not an AI-cohort name — that tail is not inherited here.
3

Pillar Detail: Business Quality

A deep dive into the Quality score: business economics, moat, ROIC and the industry benchmark.
Business Quality — Pillar Score
Dominant-scale broker–bank: ROE ~19%, efficiency ~51%, clean 38% net margin
79
conf 78%

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.

Data-basis check (lender/broker net revenue). FMP’s 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-signalValuePeer / contextScore
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 rising84
Net margin (net-revenue basis)38.0% TTM (9.42B / 24.8B)Top-tier for a broker–bank82
ROE~19%>18% = exceptional; FMP ROE sub-score 5/585
Efficiency ratio50.8%<55% excellent (ex-interest expense / net revenue)84
Balance-sheet healthInt. coverage 3.5x, current 12.4x, D/E 0.67Sound; cash-sorting/deposit mix the watch item70
Industry benchmark — ROE vs Efficiency (Capital Markets). ROE ~19% (healthy >10%, exceptional >18%) + efficiency 50.8% (excellent <55%) → benchmark score 88/100. Both legs are top-quartile; the franchise converts scale into profitability and operating discipline simultaneously.
Moat dimensionScoreBasis
Pricing power58Commission-free brokerage floor; pricing power sits in the bank spread, not fees
Network effects55RIA-custody flywheel (more advisors → more tools → more advisors); modest
Switching costs72Custody/account inertia, ACATS friction, RIA relationships; high but eroding at the active-trader margin
Cost advantage78Bottom-quartile cost-to-serve at $10T+ scale post-Ameritrade
Intangible assets62Trusted brand + banking/broker charters as a regulatory barrier

moat_score = 65 (avg).

Competitive Environment. Schwab holds scale leadership but faces credible pressure at the edges.
RivalThreat typeShare trajectoryErosion vector
Fidelity (private)Direct — RIA custody + direct retailSCHW stable / slight defenceAggressive on RIA custody pricing & cash sweep yield
Interactive Brokers (IBKR)Low-cost active tradersIBKR gaining at the sophisticated-trader marginLower financing/commissions, global market access
Robinhood (HOOD)Younger retail, options/cryptoHOOD gaining in engagement/new funded accountsMobile-first UX, crypto, gold-tier sweep
Morgan Stanley (E*Trade + WM)Wealth + self-directedStableAdvice 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.

4

Pillar Detail: Valuation Attractiveness

Sector-appropriate multiples, FCF yield, reverse-DCF implied growth, embedded optionality, and the analyst-consensus cross-check.
Valuation Attractiveness — Pillar Score
Fair on the warranted anchor (ratio 1.04); PEG 0.38 and +18% to consensus keep it at the attractive edge
65
conf 75%

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.

Warranted-multiple anchor. r = 10-Y (~4.5%) + ERP 4.5% + risk add-on 0.0% (Quality ≥65) = 9.0%. g_near = 6% (Financials “defensive/mature” sector cap, after the 25% haircut on ~20%+ consensus growth). g_term = 3%. Two-stage → warranted P/E ≈ 19.5x. Actual clean P/E 20.3x → ratio 1.04 → FAIR band. Guardrail (30x) miles away. Not Full/Expensive, so still STRONG-BUY-eligible on valuation (ratio < 1.20).
MultipleValueRead
P/E (TTM, clean)20.3xFair vs warranted 19.5x; below 30x guardrail
Forward P/E (2027)~13.4xCheap on the growth ramp (EPS ~$7.6 FY27)
PEG (TTM / fwd)0.38 / 0.98Deeply attractive on trailing growth
P/B / P/TBV3.64x / ~6.1xRich on book — typical for a 19% ROE bank; use earnings lens
Dividend yield / payout1.15% / ~25%Low yield, ample coverage; capital return via buyback
FCF yield~5.4%Attractive; supports buyback + dividend
Analyst consensus. Consensus $121 / median $122 / high $137 / low $105 (50+ analysts). At $102.54 that is +18% to consensus, and even the low target ($105) sits above the current price. Grades: 29 Buy / 19 Hold / 3 Sell — Buy consensus (57% bullish). Fresh action: BMO cut Outperform→Market Perform on 20 Jul, PT $105, explicitly a valuation call after the ~20% rally (“risk/reward more balanced”) — fundamentals “remain strong.”
Implied-growth read: at $102.54 and ~9% discount, the market embeds ~6–7% long-run EPS growth — below the ~15%+ analysts model into 2027–28. The price is not stretching for growth; the anchor reads Fair, the cross-checks (PEG, +18% consensus) pull it to the attractive edge. FMP financial-health rating B (3/5): dragged only by P/B (1) and P/E (2) sub-scores; ROE 5/5.
Embedded optionality / free upside: (1) a Fed hold-then-gradual path that lets the deposit book re-price higher while the curve steepens — pure NII torque the base case doesn’t fully credit; (2) continued net-new-asset share from the completed Ameritrade integration; (3) buyback optionality at a still-Fair multiple. Tilt: +4. Not a re-rating of an already-Fair core — the reasons to keep holding, not proof it’s cheap.

5

Pillar Detail: Underlying Drivers

The dominant external force the stock is tethered to, scored 0–100. A context pillar: it does not change the base signal — it feeds amplification (tailwind ≥65 can lift BUY→STRONG BUY; headwind ≤35 can push SELL→STRONG SELL).
Primary Driver
Interest-rate regime & credit cycle (broker–bank)
68
Tailwind (amplification-eligible, ≥65)

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).

HorizonReadBasis (dated)
Historical (12–24m)ImprovingNII recovered as deposit mix stabilised post-2023 stress; net revenue +15.8% YoY
CurrentTailwindMacro 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-TailwindFOMC 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.

6

Pillar Detail: Economic Alignment

How the current economic climate sits relative to this stock, read from the latest Macro-Economic report. Classifies the macro pressure (Tailwind / Neutral / Headwind) — the second amplification input — and frames a long entry as Trend-Following or Contrarian with a 0–100 conviction.
Stance · Pressure
Trend-Following · Tailwind
66
conviction

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

7

Pillar Detail: Entry/Exit Timing

The risk-reward framework, relative strength vs SPY and the sector ETF, the macro overlay, news-derived sentiment, and the catalyst cluster.
Entry/Exit Timing — Pillar Score
MTF strongly bullish, but extended at a 52-wk high into Q2 earnings (T-1) — improving trend, poor entry
56
conf 40% (Gate 2 cap)

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-signalReadScore
MTF confluenceStrongly bullish (M/W/D uptrend + breakout)80
Risk-reward / position riskExtended; 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 — favourable72
Sentiment (grades + news)Buy consensus, but fresh BMO valuation downgrade52
Catalyst densityEarnings T-1 (dominant) + FOMC 29 Jul40

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.

8

Economic Event Risk

High-impact macro releases in the next 14 days that could swing this stock, plus the last 7 days of surprises.

Upcoming events (next 30 days)

DateEventImpactForecastPreviousRelevant?Why
2026-07-21SCHW Q2 2026 earningsHighEPS ~$1.55$1.14 (Q2’25)✅ YesThe stock’s own binary event — tomorrow
2026-07-24US Flash PMIs (Jul)Mediumcomp ~52~52⚠ MediumGrowth signal → trading/asset-fee read
2026-07-29FOMC Rate Decision (Warsh)HighHold 3.50–3.75%Hold✅ YesRate-sensitive: sets the NII/deposit-spread path
2026-07-30US Q2 GDP (Advance)Medium~2.0%⚠ MediumDemand read for client activity
2026-07-31US Core PCE (Jun)Medium+0.2% MoM⚠ MediumLast clean disinflation print before gasoline re-accelerates

Recent surprises (last 7 days)

DateEventActualForecastSurpriseImpact
2026-07-20BMO downgrade SCHW→ Market Performwas OutperformPT $105Negative (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.

9

Multi-Timeframe Technical Analysis

Trend, RSI and breakout status across monthly / weekly / daily / hourly / 15-minute, with a confluence verdict.
TimeframeTrendDirectionRSIMACDKey S/RBreakoutVol
MonthlyUptrend ↑Bullish63.1+5.51 (hist −0.3)S 86.6 / R 107.5Resist. breakout0.6x
WeeklyUptrend ↑Bullish62.7+1.30 risingS 90.0 / R 100.8Resist. breakout0.3x
DailyUptrend ↑Bullish64.1+3.14 (hist +0.35)S 94.8 / R 104.0Resist. breakout0.8x
HourlyWeakening →Neutral49.6+0.10 flatS 100.3 / R 103.1None
15-minRecovering →Neutral45.2+0.18 (hist −0.07)S 100.3 / R 103.1None
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.

10

Price Chart (6-Month Daily)

A 6-month daily close line with SMA50 and key support/resistance — the visual companion to the MTF table.

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.

11

Scenario Summary

Bull / Base / Bear 12-month price paths with triggers and probability weights.

Bull $137 (25%)

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.

Base $118 (55%)

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.

Bear $88 (20%)

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.

Probability-weighted 12-month fair value ≈ 0.25×137 + 0.55×118 + 0.20×88 ≈ $117 — ~+14% from $102.54, consistent with the base/consensus and the medium STRONG-BUY.

12

Entry / Exit Rules

Three independent entry paths (Fundamental · Technical · Catalyst) and three exit triggers (Stop-Loss · Thesis · Profit-Target). Any one entry path is a valid entry — the more that agree, the larger the position the conviction ladder suggests. Exits are graded by severity, not count.

How to read this — the Conviction Ladder

The three entry groups are alternative paths to a buy, not a checklist. A group counts only when all its sub-conditions hold. How many groups are satisfied sets the suggested size — it does not gate whether you may enter: 1 group = Half-Size (a valid starter/scale-in), 2 = Full-Size, 3 = Over-Size (highest conviction); 0 = Wait (no path open yet). A strong overall signal can still read Wait here when the stock is well above its entry zones — that flags "good business, no entry edge right now," not a contradiction. Exits are graded by severity of what is live, not by a count: a hard stop is an Exit on its own.
Entry conviction: Wait0 of 3 groups met — no entry path open

Fundamental — not MET

Cheap enough, but blocked by the 7-day earnings blackout — opens after tomorrow’s print.
✅ Price $102.54 < fair value ~$118
⛔ No earnings within 7 days (Q2 print 21 Jul)
✅ Underlying-Driver score ≥ 50 (68)

Technical — not MET

Trend is up but the entry is EXTENDED at the 52-wk high — no clean trigger (need a volume reclaim of $104 OR a pullback to $94–95 with a higher low).
⛔ Fresh close > $104 on >1.5x volume, OR a tested bounce off $94–95 support with a higher low
✅ RSI 35–65 (64)
✅ MACD histogram positive ≥2 days (daily +0.35)

Catalyst — not MET

Event not yet resolved — Q2 print is tomorrow.
· Post-earnings move >+5% with guidance raised/maintained on >2x volume

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.

Exit action: Holdno exit trigger is live — hold the position

Stop-Loss — not LIVE

⛔ Two daily closes below $88 (beneath weekly support ~89–90)

Thesis Invalidation — not LIVE

⛔ Net-revenue / NII guidance cut, or a renewed cash-sorting / deposit-outflow episode
⛔ Rate driver flips to headwind (aggressive Fed cutting collapses the deposit spread)
⛔ Competitive: sustained active-trader / RIA-custody share loss to IBKR / HOOD / Fidelity

Profit-Target — not LIVE

⛔ Price into $118 (base) with RSI > 70 and no quality improvement

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.

Imagine you act at the current price of $102.54 · as of 20 Jul 2026

What if you bought now?

You are risking ~14% (to the $88 stop / bear case) to gain ~+15% to the $118 base and ~+34% to the $137 bull.

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 if you sold now?

You are giving up ~+15% base upside (and the medium STRONG-BUY) to protect against a ~14% earnings-gap drawdown.

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.

13

Position Sizing Context

Illustrative portfolio math (not advice) translating conviction into an allocation given risk-per-share and volatility.

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.

14

Calibration Snapshot

Machine-readable snapshot of every score, level and signal, saved alongside the HTML so the next run can compute deltas.
{
  "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).

15

Data Sources & Methodology

Audit trail of every data source: fully available (✓), fallback (⚠), or failed (✗), plus provenance-based confidence haircuts.
Data Source Status
get_stock_snapshot / get_stock_prices price + 6mo daily
get_income_statement 6 qtrs; net-revenue = grossProfit basis
get_financial_ratios P/E, PEG, ROE, margins
get_multi_timeframe_analysis 5 TF; confluence strongly bullish
get_price_target_consensus / _summary cons $121, 50+ analysts
get_grades_consensus / get_stock_grades Buy; BMO downgrade 20 Jul caught
get_ratings_snapshot B (3/5), ROE 5/5
get_analyst_estimates FY27 EPS ~$7.6
get_earnings_calendar empty via MCP; Q2 date (21 Jul) confirmed by web
web search Q2 date/consensus + BMO downgrade rationale verified
Impact on scores: High data coverage. Timing confidence capped at 40% by the Earnings Event gate (binary print T-1), not by data gaps. Net-revenue basis corrected to grossProfit (net) rather than FMP gross revenue — the lender/broker data-basis trap. Overall confidence 55%.
DISCLAIMER: This is a quantitative framework for educational purposes only. It is not financial advice. Always do your own research and consult a licensed financial advisor before making investment decisions.