The lesson is rarely too hard. It's usually too slow, or too fast, or the wrong kind of practice at the wrong moment.
Lumi runs a small pacing engine — seven rules — that watches a child's recent attempts and decides what the next task should be. Not what the next lesson is — the curriculum order handles that — but what the next test should be, given what the child just did three seconds ago.
The seven rules, in order
1. Session ceiling. No session is longer than 20 minutes of active play. Whatever the child is doing, the engine prepares a graceful exit when the meter is near the cap.
2. Cold start. The first task of a new session is always something the child has mostly mastered. Not the hardest skill they're working on — the engine warms the room first.
3. Discrimination injection. When two skills are confusable for this child (e.g. /b/ vs /d/), the engine slots a direct discrimination task into the queue so the confusion has somewhere to resolve.
4. Interleaving. Massed practice — ten of the same task in a row — is fast and forgotten. Interleaved practice is slower and lasts. The engine never lets two consecutive tasks of the same type run.
5. Slow-down. Three errors in five attempts triggers a slow-down: the tempo of the next utterance drops, the prompt repeats, and the child gets to hear the right answer modeled before trying again.
6. Promotion. A child who hits 90% accuracy on a window of 10 attempts on a skill is done with that skill. The next session won't waste their time on it.
7. Fast-forward. Two perfect tasks in a row at the current skill triggers a probe of the next skill in line. If the probe lands, the engine promotes early.
The rules are composed — not branched. Each task that ships to the child has been considered by all seven, and the engine picks the move that satisfies the most constraints.
Why this matters
Without pacing, an adaptive reading app has two failure modes:
- The slow trap. A child who can already blend short vowels gets asked to blend short vowels a hundred more times because that's the "next skill" on the map. The map is wrong about this kid.
- The fast trap. A child who almost has digraphs is rushed past them because they got two of three right. The third one was a guess.
The pacing engine is the difference between a curriculum that moves and a curriculum that fits.
What the child sees
Almost nothing. Lumi doesn't say "you're doing great, let's move on." Lumi just says the next thing. The pacing is felt, not announced.
The parent gets the announcement, on Sundays, by email. "Remi mastered short-a this week. He's confused about /b/ and /d/ but improving. He played for 47 minutes across 4 sessions."
That's the part you wanted to know anyway.
What we're still working on
The engine today is rule-based. We're collecting real attempt data with parent consent so we can learn personal pacing parameters per child without losing the simplicity of the rules. Eventually each child gets their own slow-down threshold, their own fast-forward sensitivity, their own ceiling.
But not at the cost of intelligibility. A pacing engine you can't explain is a pacing engine you can't trust with a five-year-old.
— Tim
Lumi is in open beta and free for the first 100 families. If reading time at your house ever feels harder than it should, we built this for you.