Structural move detection, directional accuracy, and the limits of a raw signal layer — across 25,033 graded events.
This paper documents the detection, classification, and grading methodology Quorum Index uses to evaluate its market signals, and reports what the raw signal layer does and does not do. Every figure is reproducible from an append-only event log. This release supersedes v1.1 (April 2026) and retracts its expected-value claim — see § 05.
Quorum Index is an autonomous market-intelligence platform that continuously scans market structure for measurable deviations — score spikes, score clusters, score drops, volatility shifts, and regime transitions — and logs each one as a forward-looking observation. This paper grades 25,033 such events against what the market actually printed next, and reports two distinct measures that should never be confused.
It documents the full validation pipeline end to end — how events are detected, what state is captured at detection time, how the realised price path is compared against the expectation recorded ex-ante, and how each event is classified. It then separates the two things the signal layer measures: whether structure is moving (move detection) and which way it moved (directional accuracy). These are different claims and carry different evidence.
This is a methodology paper, not a track record. It does not annualise returns, assume position sizing, or claim a live trading P&L. It documents the raw, unweighted signal layer — the input layer on which downstream strategies operate.
Version 1.1 of this paper went one step too far. It reported a positive expected value (“+0.56% per signal”) derived from the asymmetry between average maximum favourable and adverse excursions. That asymmetry is real, but it lives at the best and worst points reached inside the window — not at any exit a participant could actually act on. Measured at the close, with directional accuracy at a coin flip, the realised directional edge is indistinguishable from zero. We retract the expected-value claim and make no tradeable-edge claim anywhere in this document. The honest product is a structural move detector with a public, graded record — not a direction oracle. § 05 sets out the correction in full.
A Quorum Index signal is a scanner-detected event in which one or more real-time indicators cross a calibrated threshold on a monitored instrument. Each event is fully state-stamped at the moment of detection: regime label, volatility percentile, and the count of co-triggered indicators are all written to the event log before any forward price path is observed. This is the ex-ante record, and it is what subsequent grading reads against.
The scanner emits five graded event types, each with its own trigger logic. The two high-frequency types — score_spike and score_cluster — carry most of the statistical weight; the others are rarer by design.
| Event type | Trigger | Count |
|---|---|---|
| score_spike | Aggregate score crosses its rolling upper band. | 15,274 |
| score_cluster | Multiple correlated components exceed threshold together. | 5,874 |
| score_drop | Aggregate score breaks sharply lower. | 3,718 |
| volatility_shift | Volatility percentile moves across a calibrated band. | 160 |
| regime_change | Regime-state classifier transitions label. | 7 |
Every event is graded at three forward horizons — 1 hour, 4 hours, and 24 hours after detection. The windows separate short-horizon reaction, intraday follow-through, and full-day persistence. A signal that reads well at 4h but decays by 24h is a different object from one that strengthens with time; the methodology is built to expose that difference rather than collapse it into a single number.
The audit window runs from 4 March 2026 to 7 June 2026 — 95 calendar days, 25,033 distinct signals. All events within the window are included; none are dropped for being inconvenient, and no_data outcomes (where a forward price fetch was unavailable) are logged rather than silently excluded. Classification rates therefore reflect only the events on which a verdict was actually reachable.
A sixth scanner event type, sector_rotation, is tracked in the pattern library as structural context but is deliberately excluded from this grading audit. It fires when the dominant sector by triggered-pair count changes between scan windows — an observation about market leadership, not a prediction about any single instrument’s price. Because no primary instrument can honestly be assigned as the target, no natural expectation exists. Engineering one for the sake of inclusion would distort the headline numbers without adding signal. The exclusion is methodological, not cosmetic.
The grading pipeline has four stages: detect, stamp, evaluate, classify. Every stage writes to an append-only log — events are not revised after the fact, and the state captured at detection is frozen.
After each evaluation window closes, the instrument’s realised price path is fetched and compared against the expectation recorded at detection. Each event is assigned exactly one of four labels.
| Label | Condition |
|---|---|
| WIN | The expectation was met — the qualifying move occurred (in the expected direction for side-calls; in either direction for move-detection events). |
| LOSS | The expectation failed — the market moved against a side-call, or no qualifying move occurred for a move-detection event. |
| NEUTRAL | No meaningful move in either direction — change stayed inside the threshold band. |
| NO_DATA | Forward price fetch unavailable — recorded but excluded from rate denominators. |
The expectation stamped at detection is one of two kinds, and this distinction is the spine of the whole paper. A revision in May 2026 (methodology v2) corrected an earlier error: score spikes and clusters had been graded as if they predicted up. They do not. They predict movement. The grading was changed to match the honest claim.
| Event type | Expectation | Kind | Threshold |
|---|---|---|---|
| score_spike | structural — a material move follows | move detection | ±0.5% |
| score_cluster | structural — a material move follows | move detection | ±0.5% |
| score_drop | down | directional | ±0.5% |
| volatility_shift | magnitude (either direction) | move detection | 2.0% abs |
| regime_change | variable, derived from target regime | directional | ±0.5% |
Any subsample with fewer than 30 classified events is flagged explicitly and is not treated as load-bearing. This applies in particular to regime_change (n = 7) and the non-TRANSITIONAL regime slices. Their rates are reported for completeness but are not evidence, and the paper says so at every point they appear.
Quorum Index measures two different things. Reporting them as one number is how the old “win rate” reached the low-60s and misled. Apart, they tell the truth.
Of the events that flag a structural move, what share were followed by a material move within the window — in either direction? This rises with horizon, because more time gives the move more room to clear the threshold.
This is the most useful thing the system does, and it is genuinely useful: a structural read flags when something is about to move. But it is also the number most easily oversold, so we bound it plainly. A material move follows most structural reads partly because the underlying instruments move often regardless. We make no claim that 89.1% beats a random-timing baseline by any particular margin, and we report move detection only as a follow-through rate — never as accuracy, and never as a win rate.
On the calls that carry a genuine side — where moving the wrong way is a loss, not a different kind of win — accuracy sits at a coin flip across every window.
| Window | Wins | Losses | Classified | Accuracy |
|---|---|---|---|---|
| 1h | 4,425 | 4,620 | 9,045 | 48.9% |
| 4h | 6,023 | 6,180 | 12,203 | 49.4% |
| 24h | 7,450 | 7,588 | 15,038 | 49.5% |
A near-50% directional rate is not a failure to be explained away — it is the honest shape of the product. Quorum Index detects where structure is moving; it does not call which way. We report the number plainly because hiding it would forfeit the one thing that makes the whole record worth trusting.
The pooled 49.5% hides a real internal split worth stating — in both directions, so neither half is cherry-picked.
| Directional call | Classified | 24h accuracy |
|---|---|---|
| Downside breaks (score_drop → down) | 3,325 | 63.7% |
| Upside calls (legacy score_spike / cluster → up) | ~11,713 | ~45.5% |
| All directional, pooled | 15,038 | 49.5% |
The one place the raw layer shows directional information is on the downside: when the aggregate score breaks sharply lower, the instrument resolves lower about 64% of the time at 24h — meaningfully above even, on a load-bearing sample. The upside calls, by contrast, are slightly worse than a coin flip, which is exactly why the v2 revision stopped grading spikes and clusters as directional at all.
Reporting the downside number on its own would repeat the original sin in a new costume — selecting the flattering slice. The honest statement is the pooled one: directional accuracy is a coin flip, with one genuine pocket of asymmetric, downside-only information that downstream work may choose to use. We show the whole distribution, not the convenient end of it.
This section exists because version 1.1 of this paper made a claim it should not have, and the correction is itself part of the methodology.
For every event, the system records the furthest favourable and furthest adverse excursion reached inside the window. Averaged across the sample, these produce a risk/reward ratio. The current figures:
| Window | Avg max favourable | Avg max adverse | R/R |
|---|---|---|---|
| 1h | +1.31% | −1.11% | 1.18 |
| 4h | +2.65% | −2.13% | 1.25 |
| 24h | +6.34% | −4.58% | 1.38 |
Version 1.1 combined the 24h directional rate with this 24h R/R ratio to derive a “naive expectancy” of roughly +0.56% per signal, and presented the asymmetry as “the primary quantitative result of this audit.”
The error is in what the excursions measure. The +6.34% favourable figure is the peak the instrument reached at some point during the 24 hours; the −4.58% adverse is the trough. To turn that asymmetry into a return, you would have to sell at the high and avoid the low on every signal — perfect, costless, hindsight-timed exits that no participant has. It is a measure of how far price travelled, not of what anyone could keep.
Measured at the close — the only exit a reader can actually act on — the raw directional layer has no positive expectancy. With accuracy at a coin flip (49.5%) and wins and losses roughly symmetric at the close, the realised directional return per signal is indistinguishable from zero. We withdraw the v1.1 expected-value claim in full, and we publish no expected-value, risk/reward, or realised-edge figure as a headline anywhere. The asymmetry is reported above only to explain the error, not to bank it.
What survives the correction is the honest part of v1.1, which we keep: this is the raw input layer, not a strategy; it detects structure, it grades itself in public, and it makes no tradeable claim. The excursion data remains in the log as a description of how far price moves around a signal — useful context for downstream work that builds its own exits, and nothing a reader should price as edge.
Sliding the window forward looks for drift between the current market state and the audit baseline. Directional accuracy is reported here; the recent windows run above the all-time figure, and we are careful about why.
| Window | Classified | 24h directional accuracy |
|---|---|---|
| Last 7 days | 782 | 68.4% |
| Last 30 days | 3,294 | 63.7% |
| All time | 15,038 | 49.5% |
The recent windows sit well above the all-time rate. Before reading that as improvement, note the composition: the recent directional sample is dominated by score_drop — the one event type with a genuine downside edge (§ 04) — because the market regime over the audit’s final weeks produced more downside breaks than upside calls. A favourable mix, not a step-change in skill. Smaller windows also carry wider confidence intervals. We report the recent figure because hiding it would be dishonest, and we decline to lead with it for the same reason we decline to lead with the 64% downside slice: it is informative, not load-bearing, and the all-time number remains the canonical reference because it does not move with sample size or mix.
Regime imbalance. The window was effectively one regime. A multi-quarter horizon is the minimum at which a meaningful across-regime comparison becomes available. Threshold sensitivity. Minimum-move thresholds are production defaults and have not been re-tuned for reporting; moving them would change classified-event counts and the reported rates. Data availability. no_data outcomes are logged and excluded from rate denominators; no event is dropped silently.
Event detection, state-stamping at detection time, forward price fetching, outcome classification, and every statistic in this paper are produced by deterministic code operating on raw scanner and exchange data. No large-language-model output is in the causal path of any number reported here. Language-model components are used in the publishing layer for narrative framing, and in this paper’s own drafting for prose — but not for classification, evaluation, or aggregation. Every figure is reproducible from the underlying event log, which is served publicly and live at quorumindex.com/track-record. The next refresh follows the close of 2026 Q2.
| Window | Wins | Losses | Classified | Accuracy |
|---|---|---|---|---|
| 1h | 4,425 | 4,620 | 9,045 | 48.92% |
| 4h | 6,023 | 6,180 | 12,203 | 49.36% |
| 24h | 7,450 | 7,588 | 15,038 | 49.54% |
| Window | Followed | No move | Graded | Detection rate |
|---|---|---|---|---|
| 1h | 4,458 | 3,164 | 7,622 | 58.49% |
| 4h | 5,702 | 1,920 | 7,622 | 74.81% |
| 24h | 6,794 | 828 | 7,622 | 89.14% |
| Window | Avg max favourable | Avg max adverse | R/R | Sample |
|---|---|---|---|---|
| 1h | +1.31% | −1.11% | 1.18 | 17,408 |
| 4h | +2.65% | −2.13% | 1.25 | 17,408 |
| 24h | +6.34% | −4.58% | 1.38 | 17,408 |
| Regime at event | Count | Classified | Note |
|---|---|---|---|
| TRANSITIONAL | 25,010 | 22,614 | load-bearing |
| COMPRESSION | 10 | 10 | small n |
| DISTRIBUTION | 11 | 11 | small n |
| EXPANSION | 2 | 1 | small n |
This document is provided for informational and research purposes only. It is not investment advice, does not constitute an offer to buy or sell any security or financial instrument, and should not be relied upon as the basis for any investment decision. Quorum Index publishes market-structure observations, not trading recommendations, and makes no claim of tradeable edge or expected value. Past observed signal behaviour does not guarantee future results. No fiduciary relationship arises from the distribution or receipt of this document.
Generated from the Quorum Index audit ledger dated 9 June 2026 (coverage 2026-03-04 to 2026-06-07, 25,033 events). All statistics are reproducible from the source event log. Rows marked small n are sub-threshold and reported for completeness only. This release supersedes v1.1 (April 2026) and retracts its expected-value claim.
← Verify the live record