Paper sportsbook
Place bets against the model, with nothing at stake
Spreads, totals and moneylines on this week's high school slate, priced by the engine. Start with 1,000 units. No money, no card, no email — just a name.
How it works
Pick a name
That is the whole sign-up. No email, no password, no card. You get 1,000 units to play with.
Bet the slate
Spreads, totals and moneylines on this week's high school games. Tap a price, set a stake, place it.
Watch it settle
Bets grade themselves when their game finishes. Your record and your place on the leaderboard follow.
What's real here, and what isn't
Worth saying straight, because the school names are genuine and the scores beside them are not.
- RealThe schools — 1,328 real programmes across 50 states, with their classifications
- RealThe model — margins, home advantage and key numbers fitted to real prep football
- Not realThe games — every schedule, score and result is generated
- Not realThe money — units are a score; nothing can be deposited, cashed or withdrawn
No game shown here was played and no result here happened. This is a model of how a sportsbook prices football, built so the prices can be argued with — not a book, and not connected to any school, district or athletic association.
Football margins are lumpy. Most models smooth them.
Margins from 200,000 simulated games between evenly matched teams. Three and seven carry 11.6% of all outcomes between them, and the dips at two, five and nine are real. A normal distribution puts roughly equal weight on three and four, which is why it misprices every number a spread actually turns on.
Show values
| Margin | Share of outcomes | Against trend |
|---|---|---|
| 0 | 0.00% | −2.16 |
| 1 | 3.70% | +0.79 |
| 2 | 2.77% | −0.51 |
| 3 | 5.20% | +1.39 |
| 4 | 4.71% | +0.85 |
| 5 | 2.68% | −1.90 |
| 6 | 3.93% | −0.21 |
| 7 | 6.39% | +2.66 |
| 8 | 2.99% | −1.02 |
| 9 | 2.68% | −1.16 |
| 10 | 4.08% | +1.06 |
| 11 | 3.07% | −0.01 |
| 12 | 2.28% | −1.06 |
| 13 | 3.27% | +0.28 |
| 14 | 3.99% | +1.15 |
| 15 | 2.35% | −0.65 |
| 16 | 2.32% | −0.47 |
| 17 | 3.05% | +0.68 |
| 18 | 2.27% | −0.13 |
| 19 | 1.85% | −0.61 |
| 20 | 2.51% | +0.32 |
| 21 | 2.64% | +0.55 |
| 22 | 1.65% | −0.48 |
| 23 | 1.79% | −0.25 |
| 24 | 2.08% | +0.24 |
2,656 completed games from the 2026 season are on file, enough to compare the model against what actually happened. One season, not every game ingested — pooling them would compare the model against a mixture.
What makes this prep-specific
A model lifted from the professional game gets high school football wrong in four ways, each of which has a named counterpart in the code.
- Blowouts are routine, and most states run a mercy clock
- Margin past the threshold is discounted rather than taken at face value
- Rosters turn over about 40% a year
- Ratings regress toward classification means, and step size rises with churn
- Teams rarely play outside their classification
- Enrollment anchors a prior that fades as the classes actually meet
- Travel ranges from cross-town to four hours
- Home field scales with distance and disappears at neutral sites
Start here
- Browse the season
Every fixture, dated at the venue
- See the ratings
Elo, converted to points of spread
- Simulate a matchup
Ratings in, a full synthetic market out
- Strip the vig from a price
Four methods, side by side
- Read the posture
And how it is enforced in code
What the numbers are not
Every price here is model output. Nothing in this system reads a sportsbook, moves money, or settles a position, and the intervals it reports describe simulation error rather than model error. A model can be confidently wrong, which is why the calibration and sensitivity tools exist alongside the pricing.