Inspiration
We were watching a tennis match and noticed that the Polymarket price jumped before the scoreboard even updated. Somebody out there knew the point was over before everyone else did, and they were getting paid for it. We wanted to know who those people were, how much their head start was worth, and whether we could build a camera that sees the point end before the ball even lands.
What it does
COURTSIDE figures out who makes money in the seconds after a tennis point, and what it would take to join them.
We went through every Polymarket ATP and WTA match from the past year: 13,084 matches and $2.84 billion in trades. The pattern was clear. A small group of wallets that trade within 3 seconds of a point make money after fees, and they did it in every one of the 11 months. Everyone else slowly loses.
Then we built the other half: a ball-tracking engine that watches the court and calls the point before the bounce. It runs in real time and turns a camera frame into a ready order in 54 milliseconds. We used it to put a price on speed and rotation. Going from no delay to a 1-second delay costs our simulated trader $42–74 a day, and it only breaks even if the video reaches it within about a second.
Everything is paper trading. We never put in real money or sent a real order.
How we built it
- Market data: we pulled every trade, order book and settlement from Polymarket's public APIs and built our analysis in Python.
- Spotting points from prices: we detected each point from sudden price jumps, tracked what every trader made in the seconds afterwards, and picked out the fast wallets month by month, using only data from earlier months.
- Vision: we ran pretrained ball detectors on UF's HiPerGator supercomputer and added a physics model of spin to predict where the ball will land.
- Real-world timing: a paper trader replays real recorded order books with real network delays and Polymarket's 1-second order hold.
- Live data: we streamed live matches into Tiger Data, where the database spots points and scores every trader as play happens.
- Keeping ourselves honest: we wrote our hypothesis down before seeing any results, locked away the most recent data, and tested on 11,307 markets we had never looked at.
Challenges we ran into
Our first results looked amazing, and that worried us. When a backtest looks too good, it's usually a bug. Sure enough, our point detector was accidentally using information from the future. Fixing it brought the numbers back to earth, and we kept the more sobering statistics in the paper next to the impressive ones.
We also learned that Polymarket holds every order for a full second, so being fast alone doesn't win. And we didn't have video of the actual matches we were trading, so we had to simulate the vision trader's timing and label every one of those numbers clearly.
Accomplishments that we're proud of
The core finding held up: the fast traders kept winning on 11,307 markets we had never seen. We built a vision engine that actually runs live. And we're proud of how honest the project is. We counted all 4,219 versions we tried, every number traces back to the code that produced it, and we report what failed. Every strategy we could actually trade failed its blind test, and we say that plainly.
What we learned
Speed really does decide who gets paid, but the edge is thin. Double the fees and it disappears, and it's shrinking every month as more fast traders show up. Being quick also isn't enough: you have to know which points will actually move the price. Mostly we learned that a modest result you can defend is worth more than a flashy one you can't.
What's next for COURTSIDE
One number is still missing: how long after the ball lands the official point is recorded. That single number decides whether a vision trader can really win, and one session with a licensed data feed would measure it. After that, we want to:
- test the vision engine on real tennis matches;
- run the forward test we pre-registered;
- keep the live lab recording, so our live data grows from one afternoon to weeks.

Log in or sign up for Devpost to join the conversation.