The rules, written down before the results
Each rule below is versioned. When a rule changes, it gets a new version; records graded under the old version keep their old grade.
Outcome grading
Contract ne-grade-v1, frozen for all alerts logged after its deployment.
- Timestamp
- The alert's original fire time in UTC is preserved. The official NYSE calendar is used, including holidays and early closes.
- Entry
- The adjusted close of the first official session whose close is strictly after the fire time. An alert after the close, on a weekend or on a holiday enters at the next session's close.
- Exit
- The adjusted close exactly 20 official sessions after entry. A call stays open until all 21 closes exist. Missing sessions are never skipped or substituted; the call is marked data unavailable and retried.
- Benchmark
- SPY adjusted close over the identical entry and exit sessions.
- Abnormal return
- Stock return minus SPY return over the window.
- Hit
- A negative-overreaction call is a hit when the abnormal return is positive; a positive-overreaction call is a hit when it is negative.
- Evidence stored
- Methodology version, entry and exit sessions, both returns, the abnormal return, data source, retrieval time, all 21 adjusted close pairs, and a SHA-256 digest of that price payload.
- Idempotence
- Resolved and invalidated entries are never regraded. Monitored narratives resolve as tracked and never enter hit-rate statistics.
What makes a strict call
A company enters the official research output only when every one of these is true. If any input is missing, it fails closed.
- Narrative velocity, mention count, source quality, independent corroboration and direction checks all pass.
- The company has a sourced, human-reviewed revenue-overlap profile.
- The market-shock gate passes on an SPY-adjusted basis, in the same direction, after a completed official NYSE close.
- The call has a canonical hash.
- The hash has been anchored in a KMS-signed manifest in versioned S3 storage.
Negative overreactions are shown as long-reversion research positions and positive ones as short-fade research positions. These are research states, not trades. The official research basket holds at most five independent catalyst families, caps each at 20%, and keeps the rest in cash. An empty basket is a valid result: 100% cash.
When a hit rate can be published
Not before 30 independently resolved catalyst families.
Several alerts about the same catalyst count as one family, graded once, on the latest resolution date. Alerts without a real family identifier are reported separately and never promoted to independent families.
Below the floor, every surface — the Signals dashboard, the public scorecard, the email brief and the API — shows the sample count and the reason for the lock instead of a percentage. Above it, they can show the hit rate with a Wilson confidence interval, the median abnormal reversion, the maximum research drawdown, and a non-compounded cumulative outcome series, labelled as a research diagnostic and not an investable return.
Revenue-exposure profiles
Overlap is how much of a company's actual revenue is exposed to a type of AI narrative — disruption, enablement or infrastructure — from 0 (essentially none) to 1 (direct and material).
It is not model confidence, stock correlation or a probability of a price move. It comes from a maintained knowledge table, reviewed by a person against sources, with the reviewer and date recorded.
- Tracked
- 1,022 companies, recognisable in incoming stories
- Curated
- 258 with company-specific overlap research
- Human reviewed
- 151, eligible to pass the overlap gate of a strict call
- Provisional
- 107, monitored with research priors, failing closed for strict calls
- No profile
- Defaults to 0.50, which cannot pass the low-overlap gate
The event study
Before launch, we tested the core idea on nine 2026 events: does a sharp move on an AI story with little revenue behind it tend to reverse?
The criteria were registered before the results were computed. Day 0 is the largest abnormal session within five days of the recorded date. Only events with |z| ≥ 2 on day 0 are graded. The thesis group passes if its mean reversion is at least 0.5; the control group — events where the move had real revenue behind it — passes if its mean reversion is below 0.5. Ratios are clipped to between −3 and 3.
| Event | Ticker | Day 0 | Day 0 abnormal | z | Graded | 20-session drift | Reversion | Group |
|---|---|---|---|---|---|---|---|---|
| Old blog post presented as news | IBM | 23 Feb | −12.1% | −6.3 | Yes | +14.7% | 1.22 | Thesis |
| Code-security launch, sympathy sell-off | CRWD | 23 Feb | −8.8% | −3.7 | Yes | +20.9% | 2.37 | Thesis |
| Same catalyst | OKTA | 20 Feb | −9.9% | −4.5 | Yes | +12.4% | 1.25 | Thesis |
| Same catalyst | NET | 20 Feb | −8.8% | −2.8 | Yes | +26.7% | 3.00 | Thesis |
| AI-branded layoffs | XYZ | 27 Feb | +17.3% | 6.5 | Yes | −4.6% | 0.27 | Thesis |
| Design-tool rumour | FIG | 15 Apr | +9.6% | 1.9 | No shock | −11.4% | 1.18 | Control |
| Same rumour | ADBE | 13 Apr | +5.6% | 2.4 | Yes | −4.4% | 0.79 | Control |
| Executive moves to an AI lab | WDAY | 8 Apr | −9.1% | −3.0 | Yes | −4.0% | −0.44 | Thesis |
| Product results with real revenue | TEAM | 1 May | +29.3% | 6.7 | Yes | +24.1% | −0.82 | Control |
Result. Eight of nine events qualified: six thesis, two control. Mean reversion was 1.28 in the thesis group (target ≥ 0.5) and −0.02 in the control group (target < 0.5). The study passed.
Limits. One event showed no real shock. Three of the thesis events share one catalyst, so the effective sample is smaller than it looks. The events were selected by us. This is why the result is called preliminary and why no hit rate is published from it.
Day 0 dates are 2026. The table reproduces the validation report; the day 0 abnormal column is the market-adjusted move on the snapped day 0, so it can differ in sign from the headline move for events snapped to a different session.
Provenance
Provenance v1
A strict call cannot be created without a canonical SHA-256 hash of its pre-outcome record.
Each UTC day's hashes are grouped into one immutable manifest that also carries the previous manifest's hash. Adding or removing an entry after the manifest exists is refused. The manifest's digest is signed with an asymmetric AWS KMS key and written to an S3 bucket in Object Lock compliance mode, where the retention period cannot be shortened or bypassed, even by the account owner.
Every record carries one of four states, shown publicly:
- Legacy, unanchored
- An older record with no canonical hash. Public, but never presented as anchored.
- Hash only
- The call has a canonical hash; no daily manifest yet.
- Manifested locally
- The call is in an immutable local daily manifest.
- Anchored
- The manifest is signed by KMS and stored under Object Lock.