# Quickfire Sums > Timed mental-arithmetic rounds in the browser. Pick a topic and a level, play ten items on their own clocks or a > 60-second sprint, answer from the keyboard, and get marked instantly. Points reward speed and streaks; personal > bests are kept per topic, level and clock. A coach model writes fresh item sets for any topic at levels 1-5 and > debriefs every miss - and the browser re-computes every item it writes before showing it. URL: https://quickfire-sums.skillsafe.ai/ API: https://quickfire-sums.skillsafe.ai/api.html Model: gpt-terra (SkillSafe alias; resolves to gpt-5.6-terra), 10% publisher markup Derived from: @jamesrochabrun/math-teacher (https://skillsafe.ai/skill/@jamesrochabrun/math-teacher/, github.com/jamesrochabrun/skills, MIT) ## What is free (no sign-in) - The bank: 1,176 items over ten topics x three levels - addition, subtraction, times tables, division, squares and roots, percentages, fractions, order of operations, negative numbers, metric units. Each pool is generated deterministically from a fixed seed and every item carries a check expression the page's own evaluator verifies. - Rounds: ten items on per-item clocks (8 s at level 1, 10 s at level 2, 14 s at level 3, longer for word items, +2 s for multiple choice) or one 60-second sprint. - Scoring: 100 points per right answer plus a speed bonus of up to 50, times 1.5 from the 5th right answer in a row and 2 from the 10th. Wrong, skipped or timed-out items score 0 and reset the streak. - Results: an item-by-item grid, a seconds-per-item sparkline, personal bests (score, accuracy, streak, median time on right answers), a free replay of just the missed items, CSV and Markdown export. - History: rounds, bests and decks are kept in this browser and, once signed in, in the account's own collections. - Two example rounds and two example decks whose coach replies replay at no cost. ## What the coach does (metered, needs sign-in) One system prompt, two tasks selected by the `task` field of the run input: - `generate` - a fresh set of 6-20 items for a free-text topic at level 1-5 (`mode: "topic"`), or variants of the items just missed (`mode: "misses"`, each item naming the miss it varies in `source_id`). Every item returns a `prompt`, an exact `answer`, a `check` expression (digits, + - * / ^, parentheses, sqrt), optional 4 `choices`, a one-line `why`. The page evaluates every `check` and rejects any item whose answer disagrees, whose plain-arithmetic prompt works out differently, whose choices repeat a value or omit the answer, or which repeats a prompt already seen. Rejected items are counted and listed, never shown. - `debrief` - one card per item the browser recorded as wrong, timed out or skipped: the likely `slip`, the `rule`, a `mnemonic` and a `worked` line, plus a headline, a note on pace and next steps. Cards about items that were not missed are dropped and counted; misses the reply skipped are named. Array fields of the run input (`misses`, `avoid`, `round`, `stats`) are JSON strings; the input schema is scalar-only. Runs carry an Idempotency-Key of the form `quickfire-sums::::a`. ## Contract summary generate reply: {"task":"generate","title":str,"level_label":str,"items":[{"prompt":str,"answer":str,"check":str,"choices":[str x0 or 4],"why":str,"source_id":str}],"notes":[str]} debrief reply: {"task":"debrief","headline":str,"misses":[{"id":str,"slip":str,"rule":str,"mnemonic":str,"worked":str}],"speed":str,"next":[str]} ## Pages - / - the app - /api.html - driving both tasks over HTTP in eight languages, with worked examples - /llms.txt - this file