TL;DR: I built a free tool that audits your Polymarket trading bot's actual on-chain P&L vs what your bot's database thinks it earned. My own bot recorded +$34 profit while the chain said -$90 . The gap is fill slippage your bot is probably hiding from you. pip install pnl-truthteller . Open source, MIT, takes a wallet address, returns a report. The lie my bot was telling me I run a Polymarket crash-recovery bot. It logs every trade to SQLite. Every "close position" event writes realized_pnl to a row. Add up the column → bot says +$34.31 profit across 320 trades. Looked at the wallet on Polygonscan. The chain says -$90.72 . That's a $125 gap on $80 of capital. Not a rounding error. Not a fee miscount. Hidden slippage — the difference between the price the bot thought it filled at when it called post_order() , and the actual fill once the CLOB matched, partially-filled, swept dust, and updated the book. Most Polymarket bots write their P&L the moment post_order returns OK, not when fills settle.…