Signal: Direction was right, but only marginally — TSM rose 0.19% from entry and never traded below entry (worst unrealized was +0.17%), so this was a small, steady drift up rather than a decisive move. Note the rationale cites a Synopsys article to justify a TSM long, so whether the "bullish" call was actually a TSM-specific signal or just a sector-adjacent guess isn't settled by this data.
Timing: Not a stale-entry problem — price was only +0.33% off the prior close at decision time and had dipped 0.33% in the last 30 minutes, so the entry wasn't chasing a move that had already happened.
Exit (dominant factor): The exit captured +0.19% against a +0.56% best unrealized, leaving roughly two-thirds of the available gain on the table; the $1.74 result is a rounding-error win on a trade that was never underwater and had more to give.
📖 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 ≥ 70.