Back to blog
    Postmortem·8 min read

    How We Lost $2,000 in One Day on Polymarket

    A transparent postmortem of our worst trading day. What went wrong, which risk controls failed, and the five changes we made to prevent it from happening again.

    Trading Postmortem

    We believe in transparency. When things go wrong, we document exactly what happened, why, and how we fixed it. This is our worst day.

    On February 14, 2026, our system lost $2,147 in a single trading day. That might not sound like a lot in the context of traditional finance, but for a prediction market bot operating with strict position limits, it was our single worst day since launch.

    We're writing this because we think the prediction market space has too many "here's how we made money" stories and not enough honest breakdowns of what goes wrong. If you're going to trust an automated system with your capital, you deserve to see how it handles failure, not just success.

    1What happened

    A government agency was expected to release a ruling on cryptocurrency custody regulations. The market "Will the SEC approve new crypto custody rules by March 1?" was trading at $0.72, meaning the market was fairly confident this would happen.

    Our sentiment analysis strategy detected a cluster of signals suggesting the ruling was even more likely than $0.72 implied. News articles, insider Twitter accounts, and a leaked draft document all pointed to a YES outcome. The system scored it as a high-conviction trade and entered at $0.74.

    Timeline of events
    9:15 AM

    System enters YES at $0.74 across 3 related markets. Total exposure: $4,200.

    11:30 AM

    Reuters reports the agency has delayed the ruling indefinitely. Markets drop to $0.35 within minutes.

    11:32 AM

    System detects the drop but can't exit. The order book is thin and the spread has blown out to 15 cents.

    12:45 PM

    Positions fully unwound at average exit of $0.23. Realized loss: $2,147.

    2The three failures that compounded

    No single mistake caused this. It was a chain of three failures that turned a manageable loss into our worst day.

    Failure 1

    Correlated positions across "related" markets

    The system treated three separate crypto regulation markets as independent trades. They weren't. When the ruling was delayed, all three crashed simultaneously. What looked like $1,400 in diversified exposure was actually $4,200 in a single directional bet.

    Failure 2

    The "leaked document" was fake

    One of the high-confidence signals was a supposed draft ruling circulating on Twitter. It turned out to be fabricated, likely by someone trying to pump the market before dumping. Our signal pipeline didn't have a verification step for document sources.

    Failure 3

    Exit liquidity vanished

    When the news broke, everyone rushed for the exit at the same time. The order book, which had seemed reasonably liquid at $0.72, had almost no bids below $0.30. Our system couldn't exit at any reasonable price, and slippage ate another $800 on top of the directional loss.

    The worst losses don't come from being wrong about one thing. They come from being wrong about three things at the same time, and each one makes the others worse.

    3Why our risk controls didn't catch it

    We had risk controls in place. They just had gaps.

    What we had

    • Per-market position limits ($1,500)
    • Daily loss limit ($500)
    • Maximum number of concurrent positions

    What we were missing

    • Correlation detection between markets
    • Source verification for signal inputs
    • Liquidity-adjusted position sizing

    The per-market limit worked as designed: each individual market was within bounds. But the system didn't understand that three separate markets about crypto regulation were, in effect, the same bet. And the daily loss limit triggered too late. By the time we hit $500 in unrealized losses, the exit liquidity was gone and we couldn't close without eating the full drawdown.

    4The five changes we made

    1

    Correlation clustering

    Before entering any position, the system now checks if existing positions share thematic overlap. Markets about the same regulatory body, the same political event, or the same underlying asset are clustered together. The combined exposure of a cluster is capped, not just individual markets.

    2

    Source verification layer

    Signals from social media now go through a credibility check. The LLM evaluates whether the source has a verified track record, whether the claim is corroborated by at least one established news outlet, and flags potential manipulation attempts.

    3

    Liquidity-adjusted sizing

    Position sizes are now scaled to order book depth, not just the market price. If a market has thin liquidity below the current price, the position is sized smaller to account for potential exit slippage.

    4

    Unrealized loss circuit breaker

    The daily loss limit now triggers on unrealized losses, not just realized ones. If the portfolio is down more than $300 unrealized, the system pauses all new entries and begins reducing exposure on the weakest positions.

    5

    Mandatory exit liquidity check

    Before entering any trade, the system now simulates a worst-case exit. If it can't exit 80% of the position within 5% of the current price, it won't enter. This would have prevented the original trade entirely.

    $300New unrealized loss limit
    80%Min exit liquidity
    3Max correlated positions
    2+Source corroboration

    5What we tell new users now

    Every automated trading system will have bad days. The question isn't whether you'll lose money; it's whether the losses are bounded and whether you learn from them.

    Our risk philosophy

    We don't promise lossless trading. We promise that when losses happen, they're contained, understood, and used to improve the system. Every significant loss generates a postmortem, every postmortem generates a code change, and every code change is tested against historical data before going live.

    Since implementing these five changes, we haven't had another day where losses exceeded $400. The correlation clustering alone would have prevented about 60% of the February loss. The liquidity check would have prevented the rest.

    The $2,147 we lost that day has probably saved us $20,000 or more in losses we would have taken without these improvements. Expensive lessons are only expensive if you don't learn from them.

    Built-in risk management

    ClydeScan includes correlation clustering, liquidity checks, and circuit breakers by default.