Times tables, one diary entry at a time
My eight-year-old needs to know her times tables by heart. I built her a game around what the research says actually makes math facts stick, then dressed it up as the doodle diary she’d want to write in every day.

Start with how facts stick
In the US, kids are expected to know every product of two one-digit numbers by the end of third grade. England goes further: its Year 4 check covers everything up to 12 × 12, with six seconds per question. I went up to 12 × 12. Before designing anything game-like, I read up on how math facts are learned. The research is unusually consistent, and it turned into five rules the game had to follow.
- Recall, never recognizeEvery answer is typed. Multiple choice lets you eliminate and guess; pulling the answer out of memory is what makes it stick.
- Every day, in short partsPractice is one page a day: about 20 minutes, split into five short parts with a break offered between each. Facts she knows come back at growing intervals instead of all at once.
- Mostly winsNew or shaky facts are slotted in between ones she already knows, a technique called incremental rehearsal. Most questions should feel easy, and a few should stretch her.
- Fix mistakes on the spotA miss shows the answer, a strategy, and a dot picture. Then she types it from memory with the answer covered, and the fact comes back twice more before that part of the page ends.
- Speed matters, but there’s no clockKnowing a fact by heart means answering in about three seconds without counting. The game times every answer silently, because a visible countdown is one of the best-documented ways to make a kid anxious about math.


Shrinking the mountain
A 12 × 12 chart has 144 facts, which sounds like a mountain. It isn’t. Teach turnarounds first (3 × 8 is the same as 8 × 3) and there are 78. Teach a handful of strategies in the right order and almost all of those can be worked out. What is left, the six facts where 6, 7 and 8 meet each other, is the part that genuinely has to be memorized.
- 1. Rules23 facts×1 and ×10. Anything times 1 stays the same; times 10 puts a zero on the end.
- 2. Doubles and fives19 facts×2 and ×5. Double it; five of anything is half of ten of it.
- 3. Pattern tricks15 facts×9 and ×11. Nine is ten groups minus one; 11 × 7 is just the 7 said twice.
- 4. Build from known15 facts×3, ×4 and ×12. Double plus one more; double, then double again; ten plus two.
- 5. The final six6 facts6, 7 and 8 with each other. 6 × 6 through 8 × 8: five groups and a bit more, plus a rhyme or two.
- 144 on the chart, 78 once turnarounds are free, and 6 that are genuinely hard.
The game introduces facts in exactly this order, one table at a time, with each fact’s turnaround close behind. The ×1 and ×10 facts start out already inked in, so even the first page has easy wins to mix with the new material.
A diary that schedules itself
Under the doodles, every fact sits at one of six levels: blank, pencil sketch, inked, colored in, sparkly, and gold star. It’s a Leitner system. Pencil facts come back every day; the higher levels come back after one day, three days, a week, and three weeks.
- Daily page
- About 20 minutes, in five parts
- Review gaps
- 0, 1, 3, 7, and 21 days
- Fast
- 2.5 to 5 seconds, tuned to her
- In progress
- At most 8 facts at once
- Misses
- Back 2 and 6 questions later
- Check-ups
- Every two weeks
A fact moves up only when she answers it correctly and fast on a day it’s due. A miss drops it back. Right but slow keeps it where it is, because slow usually means she counted her way there. “Fast” is calibrated to her: the game watches how long she takes on facts that need no thinking (×1 and ×10) and sets the bar a little above that, so slow typing isn’t mistaken for not knowing.
The pacing adapts too. When new facts come easily, they come quickly; after a miss, the next hard question waits until she has had a few easy ones. And if she answers the first four facts of a table fast on sight, the rest of that table is inked in right away and confirmed in reviews over the next few days. A kid who already knows her twos shouldn’t spend a week proving it.
I tested the engine on simulated students before she ever saw it. One who already knows every fact has all 144 colored in within four days of daily pages and mastered within a week. One who misses everything beyond ×1 and ×10 meets at most four new facts a day, and never has more than eight in progress at a time.

Twenty minutes, no clock
The first version asked about 20 questions a day, three to five minutes. I wanted her practicing for about 20 minutes, but without a timer on screen. So the game now plans a page for each day: an amount of work that takes her about 20 minutes.
Twenty minutes of the original drill would have been around 150 questions, and the scheduler doesn’t have 150 useful questions in a day. Only so many facts are due, and new ones need time between them. Past that point it would have been asking 1 × 7 again and again. So the time goes into five different kinds of work.
- Warm-upThe reviews due today, plus the check-up when one is due. Easy ones to get going, and nothing new.
- New factsNew and still-learning facts at least every third question, with familiar ones in between. At most four new facts a day can land in pencil; the rest wait for tomorrow.
- PracticeThe original mix: mostly facts she knows, with the shakier ones slotted in.
- PuzzlesThe same facts turned around: 7 × ? = 56, ? × 8 = 56, and 56 ÷ 7. Division is new to her, so a miss explains it through the times table (how many 7s make 56?). Puzzles are practice and never change her doodle page.
- Lightning lapTwenty facts she knows, as fast as she can. It’s always twenty, so the diary can keep a fair record of her most super-fast answers.
Each part is a number of questions: its share of the 20 minutes divided by how long a question takes her in that kind of part, cheer or fix-up included. The game starts from guesses of 6 to 10 seconds and learns her real times from every part she finishes. Each question counts for at most 40 seconds, so wandering off mid-question doesn’t shrink tomorrow’s page.
Between parts she gets a pause: what she just did, what’s next, and a choice between “Let’s go!” and “Take a break.” The page is saved down to the question on screen, so she can finish it after dinner. The diary page and sticker come when the last part is done.
Early on, the page runs short on purpose. While she knows only a few facts, practice is trimmed to the ones she hasn’t tried yet that day, and the new-facts part ends when nothing more is ready. In simulation, a beginner’s first pages took 13 to 17 minutes and a confident learner’s took the full 20.


Making it hers
She’s deep into the Dork Diaries books (only on book two, so no spoilers), and the game borrows the look of a doodled-in diary: ruled paper, washi tape, bubbly lettering, and die-cut stickers. None of the books’ characters or art appear.
Each day’s page is a diary entry. Fast answers get a comic-book burst like “SQUEEE!” or “Math star!”; slower ones get a quieter “Got it!” Finishing the page writes a Dear Diary entry in a dramatic, slightly silly first-person voice, built from what actually happened that day (puzzles solved, a lightning-lap record), and adds a sticker to the collection on the cover.
The small motivational choices mattered as much as the big ones. A streak survives one skipped day. The home screen counts facts colored in rather than facts mastered, because mastery takes several separate days and “0 mastered” is a crushing thing to see on day one.


Seven more looks
The diary is built around one kid’s taste. To share the game with other kids, it now comes in eight looks: the diary, plus bricks, creatures, ninja, construction, basketball, princess, and puppies. A new player picks one on the welcome screen, and a grown-up can switch it in Settings at any time. The choice syncs with the rest of the diary, and progress, rewards, and past pages all carry over.

Each look brings its own fonts, colors, drawings, cheers, and names for things. The engine underneath doesn’t change: the same 144 facts in the same order, the same schedule, and the same 20-minute page. What changes is what the progress turns into.
- BricksEvery times table is a build, from a duck and a house to a rocket and a castle. Each fact colored in snaps on a layer, and a build turns gold when its table is mastered.
- CreaturesTwelve original creatures, one per table, each with its own element. An egg hatches when its table is first practiced, the creature evolves twice as facts are colored in, and it turns shiny when the table is mastered.
- NinjaFacts earn belts from white to gold, and a table earns a belt on the dojo’s belt rack when all 12 of its facts have it.
- ConstructionThe doodle page becomes a 12-floor tower, one floor per table and one window per fact. Windows get built as facts are colored in, and their lights come on when they’re mastered.
- BasketballEvery fact is a shot, from air ball and off the rim up to layup, swish, and slam dunk. Each table gets a half-court shot chart with a spot per fact, and earns pennants and then a banner in the rafters.
- PrincessA kingdom to rule. Each table is a crown with its own gem, from ruby to garnet, and each fact is a gem that gets found, cut, polished, and made to sparkle. When all 12 are polished, it’s crowning day.
- PuppiesTwelve original puppies, one per table, each with a name. A puppy comes home when its table is first practiced, learns to sit, graduates with a collar and tag, and wins a rosette when the table is mastered.




Each look also writes the end-of-day entry in its own voice. Every line the diary can write is supplied by the look, so the same day comes out as “I snapped together 171 times table facts” in a build log, “I trained 171 times table facts” on a training scroll, and “I took 171 times table shots” in a game recap. Big moments, like a creature hatching or a floor of the tower being finished, pop up during practice (at most one every eight answers, with any in between shown together) and get a line in that day’s entry.




Basketball, princess, and puppies came next. Here is each one’s collection page beside the page it writes at the end of the day.






Adding them turned up a bug in the ninja look. A table’s belt is its weakest fact’s belt, and the look listed only each table’s current belt. A wrong answer drops a fact back a level, so after a miss the lower belt looked new and popped up as if she’d just earned it. Now every look lists all the moments reached so far, a table that jumps several at once still celebrates only the highest, and a test checks every look to make sure a miss never brings one back.
The one rule was that her diary had to stay exactly as it was. Comparing screenshots pixel by pixel couldn’t prove that, because the same code rendered twice differs by a scattering of anti-aliased pixels. So I compared the position, size, and text of every element on 18 screens, old code against new, at two iPad sizes. They matched everywhere except the two places that were meant to change: the picker on the welcome screen and a new Look section in Settings. The three later looks passed the same check, with the picker growing to two rows of four.
Built for an iPad
It’s a web app, installed from Safari with Add to Home Screen, so it opens full screen, works offline, and keeps its data like an app rather than a website. It draws its own keypad, because even inputmode="numeric" brings up the full iPad keyboard over half the screen. The rest was Safari housekeeping: no double-tap zoom, no long-press menus, no rubber-band scrolling, and layouts for both orientations. Guided Access, in the iPad’s accessibility settings, keeps it on the diary during practice time.
Keeping score
Progress is saved on the iPad first and then synced to a small Vercel Function backed by a Neon Postgres database. There are no accounts: a diary is opened with her name and a family PIN. The server never stores either one. It turns them into the diary’s ID with a keyed hash, turns away easy PINs like 1234, and rate-limits guesses. Saves are version-checked, and if two devices both changed the diary, the merge keeps whichever copy of each fact has more practice behind it, and whichever copy of today’s page got further.
Every answer is logged, which is what makes the grown-ups’ progress report possible: mastery over time, how far along each table is, minutes practiced and a calendar of finished and partial pages, puzzle and lightning-lap results, the trickiest facts, and two measures of retention. One counts how often mastered facts are still answered correctly when they come back for review a week or more later. The other is an explicit check-up: every two weeks, the day’s warm-up starts with up to ten mastered facts she hasn’t practiced for at least a week.

Source and references
- Times Table Diary source, engine tests, and setup notes
- Roediger and Karpicke (2006), Test-enhanced learning
- Cepeda et al. (2006), Distributed practice in verbal recall tasks
- Burns (2005), Incremental rehearsal for multiplication facts
- Wilson et al. (2019), The Eighty Five Percent Rule for optimal learning
- Boaler (2015), Fluency Without Fear
- Common Core standard 3.OA.C.7
- England’s multiplication tables check