Back to audits

We audited every paper-portfolio stop-loss. 14 of 14 were right.

Every closed stop-out in our paper portfolios over the last two weeks. Did the 50% stop save us money or destroy reversible losses? The answer: saved $6.4K, cost zero.

May 13, 2026·ohh.bet research·3 min read·risk-managementcalibrationstop-loss

In wave 26 we turned off the per-position stop-loss on our cheap-band paper portfolios. The math seemed clear: at a 50%-hit-rate strategy, a 50% stop-loss truncates winners more often than it saves losers. Three weeks later in wave 29, we reverted that decision. The recovered math was clear too: at the 38% live hit rate we were actually seeing, the saved-loser EV beats the truncated-winner cost.

But "math says so" isn't the audit. Here's what we found when we asked the data what actually happened to every position that triggered the stop.

Setup

For every closed paper_positions row in portfolios A and B with exit_reason = 'stop_loss', we look up the underlying market's current yes_price. That tells us, in proxy form, what eventually happened. Then we classify the verdict per stop:

  • stop_saved_full_loss — Market resolved against us (or is at 0.01 now). The stop cut a loss that was going to happen anyway.
  • stop_was_wrong_market_won — Market resolved in our favor (or is at 0.99 now). The stop cut a winner. We would have made money if we'd held.
  • unresolved — Market still trading. Can't judge yet.

Numbers

Across both portfolios, over the entire post-pivot window:

VerdictStopsRealized PnLIf held to now
stop_saved_full_loss14-$27,282-$33,686
unresolved4-$4,605-$4,125

Resolved stops were 14 of 14 correct. Not one of the 14 was a winner we cut short. The realized stop loss is $27K. If we'd held those 14 positions to current price, the loss would be $33.7K. The 50% stop saved $6,403 in opportunity cost across the cohort.

What this means

Two specific takeaways:

The wave-26 disable was wrong. Cheap-band losses on Polymarket aren't "shake-outs" — they go all the way to zero. Every stopped-out market is currently trading at 0.01 or has settled NO. Holding through doesn't recover. The stop is doing what a stop is supposed to do.

The 50% threshold is defensible at our live hit rate. Our resolved cheap_conviction hit rate is ~37%. At that rate, the EV math says: cut losers at -50% rather than ride them to -100%. The audit data agrees. We don't have evidence the threshold should be tighter or looser yet — but we do have evidence it shouldn't be off.

The 4 unresolved stops are interesting. They have an opportunity cost number of +$480 in aggregate — meaning if we'd held, we'd be slightly less underwater right now. Three are at materially worse marks than our stop exit (a normal trajectory toward zero). One has bounced slightly. None look like they'll cross back into profit. We'll revisit once they resolve.

Why we're publishing this

Most strategies don't audit their own risk management this way. The honest version of "we use a 50% stop-loss" is "we use a 50% stop-loss AND here's the receipt that it's currently doing what we think it does." Numbers without receipts are decoration.

This same audit is now exposed on /transparency under "Stop-loss audit" — it refreshes with every cycle so you can check our work at any time.


Followups: As more positions close we'll have more stop-out data. If the correct-rate drops below ~80%, that's a signal the threshold should change. We'll publish another audit then.

Receipts for every number live on /transparency. Methodology details at /methodology. Spot a problem with our reasoning? Drop a note via the feedback form.

All audits