Skip to content
Janick Moss

Mathelo

Every British Mathematical Olympiad question from 1993 to 2026, solved, written up to a standard you can teach from, classified by the techniques each solution uses, and rated for difficulty against every student.

In private beta with my own students.

The problem it solves is mine. Practising a technique takes more problems that use it than any one paper holds: half of the techniques in BMO appear in five problems or fewer across thirty years. Finding them, at the right level for a particular student, means knowing which techniques every problem uses and how hard each will be for that student now. Mathelo holds exactly that.

So every question is classified by what its solution actually uses: a genre, finer topics, and the techniques that do the work, most important first, with the key idea that unlocks it. Almost half have a genuinely different second route, tagged with techniques of its own, and every question has a full written solution and three staged hints. The whole catalogue can be browsed by technique — every question that yields to an invariant, say, or to spiral similarity — as well as by topic, round and year.

And every question carries a difficulty rating, as does every student, per area — algebra, combinatorics, geometry, number theory, games and algorithms, inequalities, functional equations. A student attempts a problem, reports how it went, and both ratings move. The two halves are the point together: ask for questions using spiral similarity that a particular student has an even chance at in two hours, and it knows what that means for them.

The ratings are not guessed by a language model. The starting ladder is fitted from UKMT's own published score distributions, which fixes both the spacing between question positions and the drift in difficulty over three decades; a per-question correction is then learned from actual attempts. Anything that has to stay consistent across the whole catalogue is done in code, not in one long prompt.

The assistant on top of it turns a request in ordinary English into a search over techniques, topics, area and difficulty, and gives staged hints when asked — recording that a hint was used, because a solved-with-a-hint attempt is not the same evidence as a solved one.

Rated by area

  • Algebra
  • Combinatorics
  • Geometry
  • Number theory
  • Games & algorithms
  • Inequalities
  • Functional equations

For tutors

Mathelo is built around how a tutor actually works. A tutor keeps a roster of students, including ones too young to have an email address: their work is recorded from paper, and it stays theirs when they later sign in for themselves. Problem sets are put together from searches, from squares on the grid, or by typing a reference like “BMO1 2019 Q3”. They live in a library and go out as homework, built for one student at their level or sent as copies to several at once, and any set downloads as a typeset handout: questions only, with hints, or with full solutions.

Every attempt is logged as it happens — set work and a student’s own choices alike, with the time taken, the hints used and how it went — and a tutor can record a mark out of ten for work done on paper. A grid of all 328 questions, laid out by paper and position and coloured by result, makes the trends visible at a glance: a column of red is a paper that went badly, and a student with every first question solved and nothing attempted beyond the fourth is ready for harder problems.

Some of the design is about teaching rather than software. Students get hints but never solutions: their tutor goes through the solution with them. Homework that is set but not done never touches a rating, because it says something about the student’s week, not their ability. And a tutor can leave three kinds of note on a question: one the student reads, one about the student that stays private, and one about the question itself.

Where it goes

Nothing in the method is specific to olympiad mathematics. Any subject built on questions with answers — physics, chemistry, biology, computer science — can be treated the same way: classify every question by the techniques it uses, give it a prior from whatever evidence exists, and let attempts correct it. Every question and every learner then sits on a common calibrated scale, and a recommendation can aim at both things that matter: the technique a learner is missing, at a chance of success they choose.

The tutor side is also the business. Tutor accounts are already separate from student accounts, and the plan is paid tutor seats, with a student’s work always remaining the student’s, so a lapsed subscription never deletes anything.

The limit on accuracy is data. BMO has nine markers' reports; a platform with millions of learners would produce billions of attempts, and question ratings far sharper than any examiner could publish. At that scale the catalogue no longer has to be written by one person, either. Anyone could submit a question, and it would be placed the same way a new student is: by being attempted by people whose ratings are already known.

That is also the scale at which a rating system's quiet flaws stop being quiet. With billions of attempts, a scale that nothing holds in place runs away, which is why this one is pinned from the start.

Built with

TypeScript, Next.js, Firebase, and the Claude API.

More: Putting a number on 328 olympiad problems