๐ก You found a Daily Double
๐ต Final Jeopardy
Get a random Daily Double or Final Jeopardy scenario and see how close your gut wager comes to the optimal play.
How this actually works
There are two different questions this tool can answer, and they're not the same question:
- Safe Bet (Tier 1): "What wager can't hurt me if I'm right?" This assumes your opponents play the worst possible way against you โ betting everything and getting it right โ and finds the wager that beats that no matter what. It needs no guess about your confidence at all.
- Smart Bet (Tier 2 / Daily Double engine): "Given how sure I actually am, and how real contestants tend to bet and answer, what wager gives me the best real odds of winning?" This one uses your confidence slider and can recommend a smaller, less paranoid wager than the Safe Bet when it's justified.
Simulated opponents, modern era. Smart Bet plays your rivals as simulated contestants who bet and answer the way players have in recent seasons (2021–2025). Strategy changed a lot in the 2010s: players now hunt Daily Doubles early and bet them hard. The leader almost always bets to cover second place's doubled score. Players who lead going into Final Jeopardy are right more often than players behind them, and a hard clue tends to be hard for everyone. Second place's betting mix still comes from IBM's study of older games (Tesauro et al., 2013), because no modern figure for it exists. The modern values were fitted privately to J! Archive season statistics. J! Archive's terms forbid republishing its data, so the statistics themselves are not shown here or in the project's documents. Details: docs/adr/0004-modern-era-calibration.md. Treat the exact win percentages as a guide, not gospel.
Ties. Since November 2014, a tie for first place goes to a tiebreaker clue. Only one player comes back. So a tie counts as half a win here (a third, for a three-way tie), and nobody wins at $0. Betting to tie is almost never free: the extra dollar usually turns the tie into a win.
The underlying math lives in Python at engine/fj_wager.py, engine/fj_bestresponse.py, engine/simulate.py, and engine/dd_wager.py, with tests in tests/. This page is a hand-written JavaScript port of that same logic so it can run in a browser. A parity script in tests/js_parity.js checks it against hand-derived values on every push.