Less mystery.
Better decisions.
No fuzzy percentages. We count every matching code, then divide by every code still possible.
All 1,000 codes are possible. Rewards never change.
Why is “contains a 7” 27.1%?
There are 1,000 equally likely codes. Each position has nine choices that aren’t 7, so 9 × 9 × 9 = 729 codes contain no 7. That leaves 271 with at least one 7: 27.1%.
If you peek and see a 4, the remaining two positions have 100 combinations. 81 have no 7, leaving 19% that do. If you see a 7, “contains a 7” is already true: 100%.
A repeated digit: 28%, even after one peek
There are 10 × 9 × 8 = 720 codes with three different digits. The other 280 have a repeat. Knowing a single digit still leaves 9 × 8 = 72 distinct combinations out of 100, so a repeat stays at 28%.
First bigger than last: 45%
The first and last digits have 100 possible pairs. Ten are equal. Of the remaining 90, half have the first digit bigger: 45 pairs, or 45%. The middle digit makes no difference.
Higher reward isn’t always better
If you have C points at risk, a prediction with success probability p and reward R leaves an expected at-risk total of p × (C + R) after the next reveal. With nothing at risk, a bold pick may be attractive. With a lot to protect, a safer pick may be worth more.
That’s only a one-round calculation. Remaining rounds, peeks, and saves change the bigger decision. The initial rewards are playtesting parameters, not a promise of perfect balance.
Fixed before you choose
Daily codes are generated on the server, independently of the card order. A SHA-256 commitment is published before play. After the UTC deadline, the committed material can be retrieved from /api/fairness/YYYY-MM-DD and hashed to check that it matches.
This proves consistency with the commitment. It does not prove that nobody selected a favorable puzzle before publishing it, and it cannot prevent shared answers.
Put the odds to work