How the head-to-head works
Universe
Coverage is the union of the NASDAQ-100 and S&P 100, deduplicated — roughly 130 of the largest US-listed names. A name only gets a report page once it prints earnings and we've made a call on it. Index membership is refreshed monthly.
What Claude submits
- An independent EPS estimate (
my_eps_estimate) — not a restatement of street consensus - An independent revenue estimate
- A post-earnings direction call: UP / DOWN / FLAT on the 1-day reaction
- A magnitude call: expected 1-day and 3-day % move
- A confidence bucket: high / medium / low
- Thesis, risk, verdict — the analyst-style writeup
What "the Street" is
For the head-to-head we use the aggregate Street, not any single named analyst. Two inputs:
- Consensus EPS — Wall Street's averaged estimate, pulled from Yahoo Finance / Finviz at call time
- Rating mix — the Buy / Hold / Sell distribution of covering analysts, translated to an implied direction:
- > 50% Buy → UP
- > 50% Sell → DOWN
- Otherwise → FLAT
Caveat: analyst ratings are 12-month views, not 1-day reaction calls. Proxying them to a print-day direction is a stretch we make on purpose — it forces a clean head-to-head on every call. A more honest "EPS only" scorecard is the EPS duel below.
Scoring rules
1. EPS duel
Both parties publish a number. After the print, we compare each to actual EPS. Winner = smaller absolute error. Exact match = tie.
2. Direction duel
Actual direction is the sign of the 1-day close vs. the prior close:
- |move| < 0.5% → FLAT
- move > 0 → UP
- move < 0 → DOWN
Each party's call is checked against actual. Only-one-correct wins that duel. Both correct or both wrong = tie.
3. Magnitude
Claude-only: |predicted 1d % − actual 1d %|. The Street doesn't publish a comparable reaction magnitude call, so this one is a solo track record.
What "pending" means
A call is posted at 22:27 IDT (3:27 PM ET) before the print. It stays ⏳ awaiting result on the site until the next day's post-mortem phase lands — that's up to 24 hours, because the post-mortem is written inside the following day's 22:27 fire. The lag is intentional: one scheduled cohesive drop per weekday, not a live ticker.
What's not scored
- Calls on names outside the NDX100 ∪ SPX100 universe (if any end up in the daily run) don't get a report page here
- Calls where consensus EPS or rating mix wasn't available at write time show a dash in the relevant duel — they don't count against anyone
- The "thesis / risk / verdict" writeup is editorial; it's published for the record but it's not part of any score