How every printable and game is checked

Our printables and games are made by code. Generators combine authored word lists, number rules and page layouts into pages — they are not drawn one at a time by hand, and we do not claim they are. Then more code checks them, because generated pages fail in ways that look finished: a sheet about the wrong topic, the same exercise twice, a puzzle that cannot be won.

free printables you can open today

7,753

free printables you can open today

generated pages withdrawn, of 19,078 made

11,325

generated pages withdrawn, of 19,078 made

topics with an authored word list

3,691

topics with an authored word list

games

1,316

games

Withdrawn pages were taken out of the free catalogue because they rendered the same worksheet as another page, or could not be given a title of their own. Their addresses now 404 or redirect to the page that was kept.

Checked automatically on every change

These run on GitHub against every proposed change to the printable generators or their data, and flag the change if any check fails.

  • Every page is about its title

    Renders the paid and free printables and counts pages that look finished but are not about what their title says — a word search of CAT DOG FISH under any title, a word bank chosen for no topic, Grade 1 addition in a Grade 6 pack. Each kind of defect has a small budget; going over it fails the change.

    npx tsx scripts/check-quality.tsx --free

  • No generator gives up too often

    When a generator cannot find real content for a page's subject it prints something general instead, such as a research organiser. No generator may do that on more than 5% of the pages it makes, and paid pages are counted on their own so they cannot hide behind free ones.

    npm run check-fallbacks

  • The word lists follow the rules

    Validates the authored word lists that feed vocabulary, word search, word-bank and fill-in-the-blank pages.

    npx tsx scripts/check-topic-terms.ts

  • Art pages match their titles

    Catches art and music pages whose layout does not fit the title — a colouring page that printed a study organiser instead of a picture.

    npm run check-art

  • Packs do not repeat themselves

    For every pack sold, it fails when the share of pages that are the same exercise with the items shuffled goes over its ceiling, when a pack ships fewer pages than it advertises, or when a pack reaches its page count by repeating a sheet. It also lists, for a person to review, text that runs outside its box and pages that print their own title where the content belongs.

    npm run check-shop

  • Bundle prices add up

    A bundle must cost less than its parts bought separately, its stated saving must never round in our favour, and a bigger group tier must cost less per family than a smaller one.

    npm run check-offers

Checked when that part of the site changes

These are real checks too, but they are run by us when the section they cover is changed — they are not yet automatic.

  • Word problems have sensible answers

    Runs the word-problem generator over every title in the catalogue at every grade it appears in, and fails on “NaN”, a negative number of apples, a 0.333… answer, or a line that runs off the box.

    npm run check-word-problems

  • Every algebra question is re-solved

    Runs each practice generator over thousands of seeds and solves every question again independently. The answer must be exact, a tap question must contain the right answer exactly once, and the stream must not be a few questions on repeat.

    npm run check-algebra

  • Every Genius Room challenge can be solved

    Mazes are walked, coin amounts are proved reachable, and every multiple-choice answer is checked for being the only right one — and no challenge may ask the same question twice.

    npm run check-genius

  • Every game round can be won

    Builds every round of every game board and checks it can be finished: the target is reachable and the answer is among the choices. It also fails a board whose eight rounds repeat each other too much, and two games in the same grade and subject that play identically.

    npm run check-games

  • 180 different school days

    Every take-home day must name a topic that exists, and every one of a grade's days must be genuinely different.

    npm run check-takehome

  • Links to printables resolve

    Every printable linked by hand from elsewhere on the site must still exist, so a featured row cannot point at a deleted page.

    npm run check-slugs

  • Page titles and headings are whole

    Fails on “undefined” in a title, a doubled brand name, a missing or doubled main heading, a description cut off mid-word, or a page far over its size budget.

    npm run check-onpage

  • Pre-K lessons never ask a child to read

    Every preschool and kindergarten writing lesson must have a spoken prompt and must not show its answer as text, because the child cannot read yet.

    npm run check-prek-writing

What a pass means

  • A pass means no page broke that check's rule when it last ran. Some rules are budgets rather than zero — a generator may fall back on up to 5% of its pages — so a weak page can still get through.
  • We do not publish pass rates here, because this page does not run the checks and a number it cannot measure would be a number it made up.
  • If you find a page that is wrong, tell us. A wrong page is usually a sign of a check we do not have yet.

Browse the free printables · What it costs

Your Cart (0)

Your cart is empty

Browse our shop to find activities your kids will love