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.
