Bowling analytics and roster planner — live at bowling-oracle.vercel.app.
Crystal Bowl is the production app for a recreational bowling league. It handles roster planning, season simulation, handicap calculations (default `handicap = round(0.90 × max(210 − average, 0))`), standings, and schedule-sheet parsing.
The data model handles match nights (same opponent, two games), 3-bowlers-per-team lineups, single-elimination playoffs with configurable seeding tiebreakers, and the awkward edge cases that come with league bowling (subs, forfeits, zero-score-present flagging on imported sheets).