Why Did Two AI Giants Fall After Beating Earnings?
investorplace.com · Mon Jul-20 20:36:20 published · Mon Jul-20 20:50:10 alerted · alerted 13m after publish · read at investorplace.com ↗ · earnings · mat 65
ASML and TSMC shares declined despite beating earnings expectations and raising outlooks, signaling potential investor fatigue with AI infrastructure spending.
overnight drift: sell ASML at close, exit next close (earnings: ASML and TSMC shares declined despite beating earnings expectations and raising outlooks, signaling potential investor fatigue with AI infrastructure spending.) [skipped at close: signal conflict — wanted sell but open S4 buy ASML exiting 2026-07-21]
Comparison: The entry thesis was "sell the news" fatigue, but the market had already fully priced that reaction — the stock barely moved after entry (±0.06% max excursion), and the trade bled a fraction on spread. The FRESH verdict was wrong: by the time "shares declined despite beating earnings" is observable, the move is over and you're shorting a stock that's already repriced.
Improvement: Add a staleness check to the verdict logic — if the price reaction described in the catalyst has already occurred (e.g., stock moved >1x its average daily range on the news before entry), downgrade FRESH to STALE and skip. Alternatively, require a minimum post-entry expected-move threshold; a trade whose entire realized range was 0.1% never had enough edge to cover transaction costs.
📖 Glossary
S1 primary — trades the alert's primary ticker in the direction the article itself indicates; exits at the same day's close.
S2 counterparty — trades the inferred counterparty ticker (weakest signal, LLM-inferred sympathy); exits at the same day's close.
S3 peer — trades an inferred peer ticker (also LLM-inferred sympathy); exits at the same day's close.
S4 overnight — holds the primary ticker from today's close to the NEXT day's close.
Verdicts are decided top-to-bottom, first match wins; REPRICING is also the fallback when nothing else matches (2026-08-08 #220).
UNKNOWN — a needed price input (move since close or move in the last 30m) is missing.
PRICED — |move since previous close| ≥ 2.0%: already reflected in price.
REPRICING — |move in the last 30m| ≥ 0.5%: the tape is actively moving on it. Also covers a quieter move — |move since previous close| in [1.0, 2.0) with a quiet last-30m tape: still developing, not yet priced.
FRESH — |move since previous close| < 1.0%: a genuinely new move.
materiality — how market-moving the story was judged, 0-100 — alerts require materiality ≥ 60.