Adapting the difficulty is
the easy part
Every serious learning app adjusts how hard the next question is. That has been solved for a decade. It is also, on its own, worth very little.
The hard problems are what to teach next, how to teach it, why a child got it wrong, and when to bring it back. Those are the four Zupelo is built around.
A child gets 3/4 + 2/5 wrong. Almost every app gives them another fraction question. Zupelo works out that the real gap is equal fractions, two steps below, and goes there instead.
Ability is a network, not a number
"Maths: level 5" is a useless thing to store. A child can be fluent in times tables and lost in division, and one of those causes the other.
Zupelo holds a graph of skills with their prerequisites. When a child fails, the engine walks upstream until it finds the weak link — and teaches that. It is the difference between practice and progress.
In production the graph carries roughly 1,400 nodes across twelve academies, each mapped to eight national curricula.
Maya, age 8 — the fractions branch
needs times tables + taking away
Root cause: she is not stuck on adding fractions. She is stuck on sharing out, two nodes below. Next week is division, not fractions.
"Wrong" is almost useless information
Every distractor Zupelo generates carries the reason a child would choose it. So the buddy names the thinking, not the mistake.
| Question | Child picks | What most apps say | What Zupelo knows |
|---|---|---|---|
| 3/4 + 2/5 | 5/9 | Incorrect | Added the denominators. Real gap: equal fractions. Route there. |
| 7 × 8 | 63 | Incorrect | One group out. Method is sound — drill the fact, not the concept. |
| 14 − 9 | 95 | Incorrect | Read it backwards. A reading problem, not a maths one. |
| 6 + 7 | 42 | Incorrect | Used the wrong operation. Teach sign-checking, not addition. |
| Any question | answered in 1.2s | Correct ✓ | Too fast to have thought. Probably a guess — verify before crediting mastery. |
Nine causes, not one
Concept gap, calculation slip, misread question, language difficulty, rushing, guessing, memory lapse, prerequisite hole, or simple fatigue. Each has a different fix.
The intervention follows the cause
A prerequisite hole gets a route change. A calculation slip gets a drill. A reading problem gets the question read aloud. Giving all three "another similar question" is why children plateau.
It compounds
Every misconception observed across every child makes the next child's diagnosis better. This is the dataset that gets harder to catch up with every month.
Six ways into the same idea
Gravity can be an animation, a game, a virtual experiment, a rocket build, a question, a conversation, or a thing you drop off the kitchen table.
Children can pick a route themselves — and the engine watches which route actually produces mastery for this child, then leads with it next time. Not a learning-styles label. An observed preference, re-tested constantly.
🎮 Play it
Turn the concept into a game.
🎥 Show me
Watch it happen, then try.
🎧 Tell me
The buddy explains out loud.
🧠 Challenge me
Skip the ramp. Hard one first.
🔬 Let me try it
Build it and find out.
👩🏫 Teach me
Step by step, slowly.
The forgetting curve, per skill, per child
Today's review queue: 6 × 7 and taking away. Thirty seconds each, inserted into the daily mission before either would have slipped away.
Answering it today is not learning it
Most apps measure whether a child got it right this afternoon. The only question that matters is whether they still have it in three weeks.
Zupelo estimates a decay curve for every skill for every child, and schedules a thirty-second review the day before it would be lost. Day 1, day 3, day 7, day 21, day 60 — then a mastery check.
It is the least glamorous feature in the product and probably the one that moves outcomes most.
Fixing a problem three years early
Learning-gap prediction
Weak ratio at nine is the strongest predictor of failing algebra at twelve. The engine flags it and starts quietly reinforcing years before it matters.
Drop-off prediction
Shorter sessions, more hints, more quitting mid-game. The pattern shows up about ten days before a child stops. That is ten days to change something.
Intervention selection
Given the cause, the child and the history, which of forty possible interventions has worked best for children like this one? That is a model that only gets better with scale.
The line we will not cross
Zupelo describes observed learning behaviour — how long a child takes, which route works, where they stall. It does not diagnose, label or infer anything about a child's psychology, health or intelligence, and it never sorts children into fixed types. A struggling week is a struggling week, not an identity.
Generated, then checked six times
Twelve academies across fifteen year groups and eight curricula is more content than any team can hand-write. AI generates it. Nothing reaches a child unchecked.
Raw model output never goes to a child. That rule has no exceptions and no fast path.
One buddy, and he does not chat
Pelo cheers, hints and explains. He has no chat box, cannot be typed to, and cannot answer a question that is not about the lesson in front of him — because the safest conversation with a child is the one that cannot happen.
Socratic by default
"What do you think we should try first?" A buddy that hands over answers builds a homework machine, not a learner.
Memory with limits
He remembers last week's fractions. He does not remember anything personal, and there is no channel through which he could become a confidant.
Honest about being AI
Pelo is drawn as an octopus and described as a computer friend who likes helping. Nothing in the app suggests otherwise.
Points at humans
Feelings, worries and safety are outside what Pelo can be asked. Every route to help in the app leads to a grown-up.
"We have AI" is not a moat
Everyone will have AI. Within two years every competitor will have a model as good as ours. The defensible thing is what the model is attached to.
Every one of those takes years and real classrooms to build. Together they answer a question a new entrant cannot: which explanation works best, for which learner, under which circumstances?