Papers built from the graph, not shuffled
Ask for ten questions over a range and Milo first works out which curriculum entries are inside it, then allocates a quota across them so one topic cannot eat the whole paper. Two students asking for the same range get different papers. Measured at under two seconds on production.
How It Works
You choose a range
A grade, a set of topics, an exam scope, or your own weak entries.
Milo resolves it to curriculum entries
The range becomes a list of 108 Curriculum codes — that is what actually gets sampled.
Quota per entry
Each entry gets its share, and shortfalls are redistributed, so the paper spreads across the range.
Built in about two seconds
Measured on production: 1.7–2.1s for a ten-question set, 2.6s median for a 25-question mock.
Key Benefits
Spread, not random
A quota per entry means one topic cannot dominate the paper.
Different papers for different people
Sampling is seeded per user, so two students do not get the same sheet.
Grade-aware
Pick a grade and it filters to that grade before anything else.
Honest about gaps
Entries with genuinely no questions are reported, not silently dropped.
Use Cases
Drilling a weak area
Feed your own stuck entries in as the range.
Exam scope
Give it the scope of your next test and it spreads across everything in it.
A quick set before bed
Ten questions, two seconds, covering six or seven different entries.

