Case study, retired
Copy-edge
Every trade on a prediction market is public. If the informed traders can be picked out of that record, they can be copied. Six versions of the test, six kill conditions written down before the data was pulled, and every one of them fired.
Run in June 2026 over about a week. Killed by its own criteria and not resumed. Written up because the result is useful and the method is reusable. Listed under retired work on the Applied Continuity site. Code, frozen rules and the full findings are public at github.com/kbaas-ai/polymarket-copyedge.
Question
Why it was started
Prediction markets settle in cash against a public outcome, and every fill is visible: wallet, price, size, timestamp. That is a rare thing. In most markets you cannot see who traded, only that a trade happened.
So there is an obvious question. If some wallets are informed, or simply good, and the whole trade history is public, it should be possible to find them from past behavior and ride their future bets. The idea is not new. It is the same logic as following disclosed institutional filings. What is different here is that the record is complete and free.
The point was to find out whether that could be turned into something worth running, or killed cheaply. A validation experiment with a kill switch, not a mandate to make it work. That distinction is the reason it cost a week.
Method
How it was tested
Six guards, all set before any result was seen. Each one exists to close a specific way this kind of analysis lies to you.
Pre-registration
The selection rule was written to a file, every parameter pinned to an exact value, and committed to git before the holdout was touched. The commit order is checkable. Changing a threshold after seeing the result voids the experiment, so the rule was not changed after the result.
A universe that includes the dead
The wallet pool includes wallets that are now inactive or net negative. Build the universe from wallets that are still around and you have selected winners by construction, and every number after that is fiction.
Adverse fills
A copier never gets the price the wallet got. Execution was modeled at the post-trade price plus adverse slippage, net of fees and gas. A zero-friction run was not accepted as evidence of anything.
De-correlated observations
Nine selected wallets entering the same market on the same side is one bet, not nine. Simultaneous entries collapse to a single independent observation, and that is what the sample size and the significance test run on.
Walk-forward, no lookahead
Markets ordered by resolution date. Selection for each fold uses only markets that had already resolved, rolling forward in monthly steps. The final holdout is the most recent fifth of the timeline, and it is evaluated once.
Out-of-regime check
Added later, and the guard that earned its keep. Anything that survives gets re-run, same frozen rule, on a corpus from different market conditions. A rule that only works where it was found has not been validated.
The rule
What was frozen
The first version blended two hypotheses: that informed money enters early relative to price discovery, and that it beats the closing line.
Closing line value measures whether an entry was good at the moment it was made, independently of how the market happened to resolve. For a long on the chosen outcome it is the last traded price before resolution minus the entry price, sign-adjusted for side.
CLV = P_close - P_entry per entry, sign-adjusted for side and outcome
A wallet qualified only if it cleared every gate. The qualifying set was then ranked on a composite score and cut to a top decile.
1 Track record traded >= 10 resolved markets AND >= $5,000 notional
2 Closing line mean CLV >= +0.03
3 Early entry >= 50% of winning entries placed before the market
moved 0.15 toward the eventual outcome
4 Rank composite score, keep the top decile
One independent copied bet is a unique combination of market, outcome and side that at least one selected wallet entered during the holdout window. That is the count the thresholds are measured on.
Net ROI per bet >= 0.05 kill if <= 0
Significance p < 0.05 kill if not significant
Independent bets N >= 200 kill if unreachable
Mean CLV > 0
Result
What happened
Run on a corpus of 900 resolved markets, 486,000 trades and 74,000 wallets. All three kill conditions fired at once.
| Criterion | Holdout | Walk-forward, 6 folds | Result |
|---|---|---|---|
| Net ROI per bet, target 0.05 | -1.0052 | -0.378 | Kill |
| Significance, target p below 0.05 | p = 1.0 | p = 0.989 | Kill |
| Independent bets, target 200 | N = 4 | N = 54 | Kill |
| Mean CLV, target above 0 | -0.056 | +0.148 | Mixed |
The root cause was not that the selected wallets lost. It was that the rule was too selective to be testable at all. The funnel across 720 training markets:
74,000 wallets in the universe
1,370 traded >= 10 resolved markets
391 and >= $5,000 notional
60 and mean CLV >= +0.03
4 and cleared the early-entry gate
1 after the top-decile cut
One wallet. With a sample of one, the return and the p-value are not measurements of anything, and the few bets it did produce lost money. The early-entry gate was the binding constraint, and it stayed binding under four times the data.
That is a narrower conclusion than it looks, and it was recorded as such at the time. Version 1 was dead by its own criteria, but a failure driven by over-selectivity is not a powered disproof of the general idea. So the idea got five more attempts, each pre-registered, each on data the previous version had not touched.
| Version | Idea | Outcome |
|---|---|---|
| v1 | Copy generic smart money | Killed. Negative return on a sample of one |
| v2 | Insider co-betting clusters | Killed. Real coordination, but bots and copy-traders |
| v3 | Abnormal wins plus co-occurrence | Failed. The pattern was skilled strategy, not information |
| v3.1 | Restricted to discrete unpredictable events | Clean kill. No edge above chance |
| v4 | Copy proven category specialists | Failed. Specialists too episodic to copy at scale |
| v6 | Fade cheap longshots | Positive, then killed by the out-of-regime check |
Version 4 is the one worth reading twice. Copying proven specialists returned plus 34 percent, which looks like a finding until you see it rests on 40 bets at p = 0.20. The high-conviction subset, the bets the signal was most sure about, returned minus 25 percent. The signal was inverted exactly where it should have been strongest.
The structural reason it cannot work is that proven winners are episodic. A trader who reliably fades one kind of market is tied to one class of event. A corpus of 1,413 markets yielded roughly 40 copyable future bets. The sample never reaches significance, not because the edge is absent but because the people who have it do not trade often enough to follow.
The check that mattered
A positive result, killed on purpose
Version 6 found something. Fading cheap longshots on a corpus of geopolitical markets returned plus 8.4 percent at p = 0.02. Significant, in the right direction, and large enough to act on.
It was re-run, same frozen rule, no retuning, on 1,566 markets from a different regime.
One conflict, retail-heavy +8.4% p = 0.02 significant
Other conflicts, 1,566 markets -1.1% p = 0.69 gone
The favorite-longshot bias was real and it was local to one emotional, retail-flooded episode. In ordinary markets the favorites were priced fairly. A 75 percent win rate that is still net negative is what fair pricing looks like from the inside.
Without that check this would have been the finding. It cleared every other gate. The check caught a false positive before any money was committed, which is the entire reason the check exists.
Outcome
Killed, and what it bought
On accessible prediction-market data there is no reliable, scalable, prospectively profitable copy or detection edge. What looks like edge is consistently skill, strategy, bots or noise, and the rare genuine winners do not generate enough future volume to follow. The one positive result was an artifact of a single market regime.
That also kills the product behind it. A service promising winning trade ideas, built on an edge that does not generalize, is a tout service. The honest version would be analytics and transparency with no profit promise, which is a different business and not the one being tested.
The cost was compute and about a week. The alternative cost, which is the whole point of running it this way, was learning the same thing with a funded position.
Transfer
What carried over
Write the kill condition first
The threshold that ends the project has to exist before the first result does. Afterwards it is not a threshold, it is a negotiation, and the person on the other side of it is you.
A positive result is a hypothesis
Version 6 was significant and it was wrong. Anything that survives gets re-run against conditions it was not found in, before it is believed and long before it is funded.
Sample size is a design decision
Three of the six versions failed on sample size rather than on returns. A selection rule tight enough to be convincing can be tight enough to be untestable, and that is knowable in advance.
Say what was not shown
Version 1 killed version 1. It did not disprove the general idea. Recording that difference honestly is what made the next five attempts worth running instead of a rerun of an argument already lost.