kacho.io
Writing
6 min read

A bit of everything and nothing specific

A quieter update. The retired sports bot's Rust replacement made $650 last month, why I won't open-source the one that actually works, what two months of blogging in the open returned, and the weather market-making model coming next.

  • build-in-public
  • polymarket
  • market-making

I haven't shipped much this week. No new bot, no dataset, no in-depth analysis. Just a handful of things I wanted to share that don't fit neatly into a single topic.

Here's the first. The Polymarket sports bot I retired and open-sourced recently made a bit over $650 in the last 30 days. Not the Python version I shared on GitHub last week. The Rust one I actually run, which I'm not giving you.

The 'it ain't much but it's honest work' farmer meme

The one I didn't open source

The public repo is the old Python bot. It traded for a few months, finished up around $5k, and then mostly stopped making money, which is roughly when I put it on GitHub.

I picked it back up at the start of June. The biggest improvement was the scrapers: I now pull odds from about 10 sportsbooks every 5 minutes with Cloud Run jobs. I also rewrote the core in Rust, tested it, and around mid-June started running it again on the same public wallet, @b00k13.

@b00k13 Polymarket profit and loss chart, up $656.16 over the past month
The last 30 days on the public @b00k13 wallet: +$656.16. Same wallet as the open-sourced bot, now running the Rust rewrite.

The Rust version isn't a new idea. It's the same bot - de-vig the sportsbook odds to a fair price, quote just inside the spread on Polymarket, hedge the other side to lock the arb. What changed is boring and it matters. A rewrite shakes out small bugs you didn't know you had. It quotes faster, so it gets filled instead of watching the good price go to someone quicker. And the odds it reads are a lot fresher than what the open-source version ships with. Fresher odds and faster fills is the whole game.

There's plenty of room to improve it further. I still take some adverse fills (about $60 lost on directional bets), so I want the odds fresher still. The Cloud Run setup isn't ideal either: it costs roughly $4 a day, and that scales linearly with how often I poll. Soon I'll fetch the odds live inside the VM the bot runs on, which is better on both cost and freshness.

Since a few people have already asked, no, I'm not going to tell you where the odds come from.

"You open-sourced a bot that lost its edge"

A few people were annoyed about exactly that. I gave away a bot after it stopped printing, kept the good odds to myself, and that apparently makes the whole thing a bit of a con.

A Reddit comment reading: Releasing the bot after it got rekt by stale quotes is proper bold, cheers for sharing the code anyway.
About the friendliest version of 'you shipped a bot that got picked off.'

So let me be blunt about how this actually works. Nobody open-sources a bot that's currently making them money. Nobody. Anyone who tells you otherwise is either LARPing for attention or about to sell you a course. What I already did by open-sourcing mine was probably stupid, and it could eat into my edge. And even if some saint did hand you a live money-printer, the second a few hundred people point the same thing at the same markets, the edge is gone. That isn't cynicism. It's just what an edge is. It exists because other people aren't doing it yet.

So there's no plug-and-play version of any of this. There's no magic repo you can clone to print $10k a month. There's the code, which is real and works. Then there's the part you have to bring yourself - fresher odds, and the stubbornness to keep at it when it stops working. Every online hustle is the same shape.

The get-rich part is always the bit nobody hands over.

The thing I get asked for most is the one thing I'll never share, which is my odds sources. That was half the edge. Giving away the bot was already generous. Giving away the odds would just be stupid. I'm not having a go at anyone. I'm just being honest about how it works.

Two months of doing this in the open

I launched kacho.io a bit under two months ago. Since then: about 4,300 visits, roughly 20 subscribers, and nothing made from any of it. There's nothing to buy here, so that last one is on purpose.

kacho.io Vercel Analytics dashboard: 2,174 visitors and 4,024 page views in the last 30 days, most traffic from Reddit
The last 30 days on Vercel. Reddit sends most of it (604 visitors), then GitHub, Google and Hacker News. The spike is the open-source launch.

The money was never the point, and the actual return has been better than money anyway. I post something on Reddit or Hacker News, the numerate and deeply sceptical crowd there takes it apart, and I learn things I probably wouldn't have otherwise. One example paid for the whole exercise on its own. Someone mentioned pmxt, a Polymarket order-book archive I'd never heard of, and I now use it to backtest every market-making idea I have. Without a few Redditors bringing it up when I shared my Polymarket 5-minute crypto dataset, I'd never have gone looking. For some reason I'd assumed a free prediction-market dataset just didn't exist.

Writing it all up does two other things too. It makes me finish the work instead of bailing to the next idea that suddenly looks more exciting. I've got skin in the game now, so failing feels more public than it used to. And it means someone noticed. When I made the bot public, people actually cared, which after years of building alone is a strange and good feeling.

That's most of why I do this. Not to sell you anything. To get better by arguing with strangers who know things, and to have the work seen by someone it might matter to.

What I'm building now

The other thing I'm working on is a weather market-making model. Polymarket has weather markets, the highest-temperature-in-some-city kind, and they're quieter than most, so that's where I'm focusing. I gave stocks and live-sports markets a try first, but they're far more competitive, so I'm doing weather first.

Polymarket weather market for the highest temperature in NYC on 30 July, showing temperature buckets and their prices
A weather market on Polymarket: the highest temperature in NYC on 30 July, priced across temperature buckets.

It runs on a wallet I've never shown here, @w34th3r. It's the same wallet I ran an older spread-farming strategy on, back while the sports bot was still going. That one made around $1,200, mostly on weather markets (which is where the weather idea came from) and mentions markets. The strategy was dead simple again: trade any market with a spread wider than 10¢, on the same bot I later made public. It did pretty well, right up until I pushed it into sports markets and started getting picked off again. If you've read this one, you'll know that's not the first time.

By the way, if you look at @w34th3r now, you'll notice I've dropped about $280 in the past two weeks trying different things. Most of that is from giving crypto up/down markets a shot, plus my recent weather tests (I'm -$80 from yesterday alone). So yeah, there are ups and downs. That's how it goes.

So, nothing specific this week. A slightly better bot I won't share, a blog that makes no money and is worth it regardless, and a weather bot I'm still testing that I hope turns profitable soon. That's the update.