A week ago I shipped pnl-truthteller — a one-command auditor that reads a Polymarket wallet's on-chain fills and compares them against what the bot's own DB thinks it earned. The thesis: most trading bots overstate P&L by 5–15% because they log the post-order intent, not the matched fill.
I wrote up the launch in this article. This is the follow-up. Same project, one week later, all numbers.
The numbers (week 1)
Pulled from APIs at write time, not eyeballed:
- pypi downloads — last 7d: 22
- pypi downloads — last 30d: 276
- github stars: 0
- github forks: 0
- github open issues: 0
- gumroad sales of the optional dataset: 0
- GitHub Discussions threads opened by real users: 1 (about partial-fill dedup — the genuinely hard part of the implementation)
That's a real number row, not a vibe. If you've shipped indie open-source you know how those numbers feel: not zero, not exciting, ambiguous. The honest read is "evidence the audience exists, no evidence it's a magnet yet."
What I'm calling success vs. noise
I committed before launch to a kill rule: four flat weeks in a row across all five channels and the project gets retired. Week 1 doesn't trigger it (no trend to flat against yet), but I'm logging the baseline publicly so I can't fudge it later.
What I'm watching:
- Returning installs. 276/month on a tool with no marketing is mostly first-touch curiosity. The question is whether anyone runs it twice. pypistats doesn't expose that, so I'll proxy it with GitHub repo unique-visitor traffic and Discussions activity.
- Slippage Index contributions. I asked for anonymized audit outputs to build a cross-operator dataset. n=1 so far (me). Goal n=10.
- The category-bug claim landing. I pulled a random Polymarket wallet off the public CLOB and ran the audit cold — DB-equivalent +$32, on-chain −$30. Different bot, different strategy, same gap shape. If others repro this on their own wallets, the tool has a moat (it's not just my problem). That signal is the most valuable.
What I'd do differently if shipping week-1 again
- Lead with the random-wallet audit, not the launch announcement. The category-bug evidence is more interesting than "I built a tool." I buried it in section 4 of the launch post. Should've been the title.
-
Default the CLI to
--output=stdoutinstead of a markdown file. A surprising number of people opened the tool, saw it wanted a path, and bounced. Quietly painful UX miss. - Cut the optional Gumroad bundle from week 1. Free tool + paid dataset on day-one creates an "is this a sales funnel?" smell. Should've spent week 1 building trust and dropped the dataset week 3.
What's in the dataset (if you actually want it)
Five real Polymarket wallets, fully audited: per-trade DB-vs-onchain delta, slippage attribution (price vs. partial-fill vs. gas), and the raw CLOB fills as CSV. It's the input I used to validate the tool wasn't just confirming my own bias.
If that's useful — it's $19 on Gumroad. One-time, no subscription. The tool itself stays free and MIT.
Code, and the only ask
pip install pnl-truthteller
pnl-truthteller --wallet 0xYourProxyWallet --output report.md
If you run any bot on a CLOB-style venue (Polymarket, Kalshi, dydx, GMX-perps) and audit your own wallet, the only thing I'd ask is: drop the one number (P&L gap %) in Discussion #3. Zero is fine. Negative is also fine. I just want the distribution.
Week 2 retro lands next Saturday with these same metrics + week-over-week delta.
Top comments (0)