A Claude-built web game shows why beating a do-nothing investor is mostly luck
A web game called beatthecouch.com pulls a random two-year window from real S&P 500 daily data spanning 1928 to 2019. Players start with $10,000 and can only buy or sell, without knowing which historical period they are trading in. The opponent, called "the couch," buys once on day one and never trades again. Beating the couch is not enough to count as a real win: every win triggers a that replays the player's exact trade schedule (same number of trades, same length of time spent out of the market) 1,000 times with the timing randomized.
If the player's result doesn't land in the top 10% of those random replays, the win gets labeled LUCKY instead of skillful. The entire game runs as a single ~300KB HTML file with no framework, no tracking, and no user accounts. Cash held while out of the market earns the actual historical 3-month T-bill rate from that period. A and daily rankings run on a small plus a .
Known limitations include that it only uses US market data, which favors the couch through , and the underlying data stops at 2019 because that's the limit of freely verifiable historical pricing. The creator built the game to settle a debate with a friend who believed he could time the market, and used Claude to work out the game's structure, edge cases, and tone.
Key points
- beatthecouch.com pits players against real S&P 500 data (1928-2019) in a buy/sell timing game
- The opponent "the couch" buys once and holds; beating it triggers a 1,000-run to check if the win was skill or luck
- The whole game is one ~300KB HTML file with no tracking or accounts; rankings run on a small +
- Limitations: US-only data introduces , and free verifiable data stops at 2019
- The creator used Claude to build the entire game — structure, edge cases, and tone included