The central verified finding (2026-06-01): under the same leakage-clean purged + embargoed walk-forward as purged-backtest-gate-no-edge — now extended with a backtest --xref co-occurrence mode and run on EVENT markets only — the cross-reference / “≥K top traders agree” consensus thesis is REJECTED, but copying the cohort’s fresh first entries has a real edge. Independently verified twice; negative control ≈0 across all cells (max |ROI| 1.31% within ±2%). The goal (copy skilled/insider traders) is VALIDATED; it’s the cross-reference mechanism that failed.
For Agents
Purged + embargoed walk-forward, EVENT markets only (updown excluded), 3 disjoint 15-day folds, 200 bps slippage. Negative control ≈0 across all cells (max |ROI| 1.31% within ±2% → leakage-clean). Pooled ROI by
--xrefarm:
arm pooled ROI folds fires note xref-K1 (copy the FIRST cohort BUY per event-market outcome) +7.59% +6.7% / +9.4% / +8.4% (positive in ALL 3) 34,957 best xref-K2 +5.3% to +6.6% (window-dependent) — — WORSE than K1 xref-K3 ~−0.4% to −3.9% — — worse xref-K4 noise — ~50 too few fires event-only all-watched +2.39% — — baseline event-only random +0.93% — — baseline Monotonic: more agreement (higher K) → WORSE ROI. Tighter co-occurrence window does NOT help. K1 (+7.59%) crushes random (+0.93%). BUT +7.59% is an UPPER BOUND — measured at the cohort’s own trade price with flat 200bps slippage; tradeability is UNPROVEN until validated at the real ask price at detection + detection latency.
Verdict — consensus is structurally LATE; the first mover is the well-priced entry
Requiring K top traders to agree before copying is structurally late. By the time K of them have all bought, the price has already moved — so you copy at a worse entry. The first informed entry is the well-priced one; subsequent agreement is just the market catching up to the first mover. This is why the curve is monotonic in the wrong direction: every additional wallet you wait for is later, hence pricier, hence lower ROI.
- xref-K1 (act on the first cohort BUY per event-market outcome) = +7.59% pooled, positive in all 3 folds (+6.7% / +9.4% / +8.4%), 34,957 fires.
- xref-K2 = +5.3% to +6.6% (window-dependent) — strictly worse than K1.
- xref-K3 = ~−0.4% to −3.9% — worse still.
- xref-K4 = noise (only ~50 fires; not enough signal).
So speed/earliness beats agreement. There is no K ≥ 2 at which consensus pays for the entry-price it costs you.
The goal is VALIDATED — only the mechanism failed
The project goal — copy skilled / insider traders — is vindicated: copying the cohort’s fresh first entries beats the indiscriminate baselines decisively (+7.59% vs +0.93% random, +2.39% all-watched). What failed is the cross-reference / quorum mechanism — the specific idea that requiring multiple top traders to agree improves selection. It does the opposite.
This is the answer to the open question best-consensus-algo-design posed and purged-backtest-gate-no-edge set the bar for. The “best consensus algo” outcome is: no consensus gate — copy the first mover, fast. The elaborate skill-weighted log-opinion-pool over independent agreeing wallets is solving the wrong problem; agreement itself is the late signal.
Binding caveat — +7.59% is an UPPER BOUND, tradeability UNPROVEN
K1's edge IS the early entry price — the hardest to actually fill
The +7.59% is measured at the cohort’s own trade price with a flat 200bps slippage charge. K1’s entire edge is the early, well-priced entry. But that early price is precisely the one a copier cannot reliably get: the cohort’s informed buy moves the price before a copier can act. So the measured +7.59% is an UPPER BOUND, not an achievable return.
Tradeability is UNPROVEN until re-measured under realistic execution: the real ask price at detection plus detection latency. This is the same upper-bound discipline as purged-backtest-gate-no-edge (baselines use last-trade price as a mid proxy) — trust the relative ordering (K1 > K2 > K3, K1 ≫ random), not the absolute magnitude as a live P&L.
The copy lane already captures exactly what's needed to validate this
The on-chain copy-trade-lane already records, per copy:
cohort_price(the cohort’s fill price),detect_latency_ms(how late we saw it), andup_mid_30s_ago/up_mid_60s_ago(the book a copier could actually have hit). Those columns exist to answer exactly the K1 tradeability question — how much of the +7.59% survives when you enter at the real ask at detection rather than the cohort’s own price.
Product implication — vindicates the fresh single-wallet copy lane; refutes adding a quorum gate
This is a direct, factual mandate for the existing copy-trade-lane:
- VINDICATES the lane’s core design — copy on any one cohort fill, fast (it already fires on a single wallet’s
OrderFilled, not on agreement). K1 is that design, and K1 is the winning arm. - REFUTES adding a consensus / quorum gate to it (e.g. “only copy when ≥2 cohort wallets are in”). Every step up in K lowers ROI; a quorum gate would make the lane strictly worse by delaying entry.
- The lane’s emphasis on on-chain ~1–3s detection (vs the Data API’s ~5-min lag) is the right priority for the same reason: the edge lives in earliness, so detection latency is the whole game.
So the “best consensus algo” question resolves to: there is no consensus gate. Be the fast first-mover copier, and prove out how much of K1’s upper-bound edge is fillable under real execution.
Implementation status
A backtest --xref mode now exists (all uncommitted, working tree):
crates/polymarket-fetch/src/backtest.rs—detect_xref_copies(the co-occurrence detector: first/Kth cohort BUY per event-market outcome within a window) + the xref strategy arms (K1..K4).crates/polymarket-fetch/src/cli.rs—--xrefflag.crates/polymarket-fetch/src/output.rs—render_xref(per-arm pooled + per-fold ROI table).- TDD on the co-occurrence detector — the first/Kth-BUY-per-outcome logic is test-covered.
Runs on the same purged + embargoed harness and covering index (idx_pm_pos_condition_enddate) established in purged-backtest-gate-no-edge.
Verified facts
| fact | value / location |
|---|---|
| harness | purged + embargoed walk-forward; EVENT markets only (updown excluded); 3 disjoint 15-day folds; 200 bps slippage |
| negative control | ≈0 across all cells (max |ROI| 1.31% within ±2%) → leakage-clean |
| xref-K1 (copy first cohort BUY / event-market outcome) | +7.59% pooled; +6.7% / +9.4% / +8.4% (all 3 folds positive); 34,957 fires |
| xref-K2 | +5.3% to +6.6% (window-dependent) — worse than K1 |
| xref-K3 | ~−0.4% to −3.9% — worse |
| xref-K4 | noise (~50 fires) |
| event-only all-watched | +2.39% |
| event-only random | +0.93% |
| shape | monotonic: more agreement (higher K) → worse ROI; tighter window doesn’t help |
| interpretation | consensus is structurally LATE; first informed entry is well-priced, agreement = market catching up |
| goal status | VALIDATED — copy skilled traders’ fresh first entries beats baselines (+7.59% vs +0.93%); the cross-reference MECHANISM failed |
| binding caveat | +7.59% is an UPPER BOUND (cohort’s own price + flat 200bps); tradeability UNPROVEN until real ask at detection + detection latency |
| tradeability infra | copy-trade-lane captures cohort_price, detect_latency_ms, up_mid_30s_ago, up_mid_60s_ago |
| product implication | vindicates fresh single-wallet copy (copy on one fill, fast); refutes a consensus/quorum gate |
| implementation | backtest.rs::detect_xref_copies + xref strategies; cli.rs --xref; output.rs::render_xref; TDD on the co-occurrence detector — uncommitted |
Related
- best-consensus-algo-design — the Phase 2+ “skill-weighted log-opinion-pool over independent agreeing wallets” target this finding answers and largely refutes: agreement is the late signal, so the right algo has no consensus gate. The fancy aggregator solves the wrong problem; copy the first mover.
- purged-backtest-gate-no-edge — the same leakage-clean purged + embargoed harness (negative control ≈0) and Phase 2 ship bar (beat random). This
--xrefrun extends it (EVENT-only) and clears the bar by a wide margin: K1 +7.59% vs +0.93% random. Same upper-bound caveat (mid/own-price proxy → trust relative ordering). - consensus-validation-leakage — the leakage playbook this run satisfies (point-in-time signal, purged+embargoed CPCV, negative-control sentinel). The ≈0 negative control here is that sentinel passing.
- copy-trade-lane — the on-chain fresh single-wallet copy lane this vindicates (copy on one fill, fast; refutes adding a quorum gate). It already records
cohort_price/detect_latency_ms/up_mid_30s_ago/up_mid_60s_ago— the exact columns to validate K1’s tradeability under real execution. - polymarket-fetch — workspace,
backtest.rs/cli.rs/output.rsmodules,pm_trades/pm_positionsschema, the backtest harness this--xrefmode lives in. - TOPICS — project theme index.