question taxonomy
Every question has one home in the subject tree, plus only the extra concepts and facets that it genuinely assesses.
one path, a few facets
| level | what it means | example |
|---|---|---|
| subject | A broad branch of mathematics. | Calculus |
| unit | A coherent group within a subject. | Integral Calculus |
| topic | A specific leaf learning objective. | Area Between Curves |
| tag | How the question is approached or presented. | tag.task.proof |
Subjects and units are parents, not labels that authors attach directly to a question. A question chooses one primary topic and may choose additional assessed topics. The parent subject and unit are derived from those topic IDs.
the stored contract
Questions store stable IDs rather than labels. The catalog supplies the labels you see in the library and the solve view.
{
"schemaVersion": 1,
"primaryTopicId": "topic.area-between-curves",
"assessedTopicIds": [
"topic.area-between-curves",
"topic.definite-integrals"
],
"tagIds": []
}primary and assessed topics
The primary topic is the question's main intended learning objective. It determines where the question appears in the browse tree. Assessed topics are additional concepts that the question materially tests; the primary topic is always included in that list.
Do not list every prerequisite. A calculus question that uses ordinary arithmetic does not automatically assess arithmetic. This keeps one solved problem from lighting up half the tree.
tags are controlled filters
Tags are deliberately small and orthogonal to the subject tree. They describe either the task a question asks for or a technique central to its solution.
A tag is not a second topic. The question mode, source, and problem Elo already have their own fields, so tags such as mode.guided, source.contest, or elo.hard are not used.
why the labels stay consistent
IDs are immutable; labels are curated display text. Labels and aliases are compared after Unicode normalization, trimming, whitespace collapsing, and locale-stable lowercasing. That means calculus andCalculus resolve to one catalog entry rather than becoming two filters.
Authors select from the catalog instead of typing free-form topics, so each topic is defined once and reused.
when no topic fits
Leave the classification empty and describe the missing topic in the missing topic? box of the question builder, for example “Recurrence relations (sequences defined by earlier terms)”. A complete question with a suggestion can be submitted for review.
The reviewer either picks an existing topic that fits or adds the new topic to the taxonomy, then classifies the question in the same step that publishes it. A question is never published without a real active topic, and suggestions never become placeholder IDs.
curricula and collections
Some questions also carry collections: labels from outside the Mathleagues tree, such as a curriculum position (IB Mathematics AA › HL › Calculus), an exam source, or a curated set. They help you filter the library by syllabus or source, but they never replace the question's topic.
a worked example
A question asking for the area enclosed by a parabola and a line belongs underCalculus → Integral Calculus → Area Between Curves, with Definite Integrals as an additional assessed topic when the question materially tests evaluation of the integral. It does not get loose tags like calculus, integration, and area: the topic path already says all of that.