Mr. Grummel Get the app
← All notes
LEARNING 6 MIN READ DRAFT — AUGUST 2026

What a knowledge tree is actually for

17 subjects, hundreds of domains: how the hierarchy decides difficulty instead of a flat question pile.

The lazy version of a question bank is one long list. Pick a subject, get a random row off the list, repeat. It's the fastest thing to build and the worst thing to be quizzed by — nothing in a flat list knows that you've already shown you're solid on fractions but shaky on ratios, or that two questions in a row from the same list happen to be near-duplicates of each other. A list has entries. It doesn't have a shape.

Three levels, not one

The curriculum behind the app is a tree: 17 subjects at the top, each split into a handful of domains, each domain holding a set of concrete topics — 87 domains and 648 topics in total. Mathematics isn't one bucket of math questions; it's Arithmetic, Algebra, Geometry, Trigonometry, Calculus, Statistics and Discrete Mathematics, each its own domain, each broken further into named topics like Quadratic Equations or The Unit Circle. A subject tells you the shelf. A domain tells you the section. A topic is the actual book.

That extra structure is the whole point. "You're weak at Mathematics" isn't a fact anyone can act on. "You're weak at Quadratic Equations, specifically, inside Algebra" is something a scheduler can actually do something with — and something a person can recognise as true or false about themselves, which a subject-level label never quite manages.

Why domains, not just subjects

Grouping topics into domains means related weak spots surface together instead of getting lost among 53 unrelated ones. If Algebra keeps tripping you up, that's a domain-level signal worth noticing on its own — separate from, say, whether you also happen to be shaky on Geometry, which lives one level over and shouldn't be blamed for Algebra's mistakes. A flat list of 54 math topics can't tell those two stories apart. A tree can.

A list has entries. A tree has neighbours — and neighbours are where the signal actually lives.

The zeroes are part of the design too

Not every topic in the tree has a question behind it yet — thirteen currently don't. The honest move there isn't to quietly skip them or fake a question from a neighbouring topic; it's to leave the gap visible in the data the tree carries, so nothing downstream pretends a topic is covered when it isn't. A tree that lies about its own coverage is worse than a flat list that never claimed any structure to begin with.

What we're still unsure about

The tree assumes a kind of relatedness that's obviously true in some subjects and much softer in others. Algebra genuinely builds toward Calculus; there's a real order underneath those domains. History's domains — Ancient, Medieval, Modern, Contemporary — are more like adjacent rooms than a staircase; being solid on the Cold War doesn't obviously predict anything about Ancient Rome. We're using the same three-level shape everywhere for consistency, and we don't think that's free — some subjects are getting more structure imposed on them than they naturally have, and we don't yet have a good answer for how much that matters.

If you've got a subject you think the tree gets wrong, hand in a request slip and say so.

Draft — not published yet.
Try the pop quiz