Skip to content

Progression matrix

This section shows what the dataset MATx Teacher actually runs on really looks like. So far the study guide has worked with abstract skill examples (linear_eq.*, arith.*); here we switch to data curated by a practising math teacher.

The topic is «Defineerimine» (defining the unknown for a one-variable expression), Grade 7. It is the step before solving an equation: given an Estonian word problem, the student has to introduce x correctly and describe the remaining quantities through it.

Matrix structure:

  • 3 difficulty levels (TASE 1 / 2 / 3) — from abstract numbers to context to 3+ quantities.
  • 3 relation types — additive (+/−), multiplicative (×/÷) and mixed.
  • 9 micro-skills = level × relation type.
  • 20 tasks, where each cell is:
    • — the task introduces a new micro-skill.
    • — that micro-skill is a prerequisite to make sense of the task.
    • — not applicable.
new skill introduced by the task required prerequisite not applicable
#levelT1
+/−
T1
×/÷
T1
±·
T2
+/−
T2
×/÷
T2
±·
T3
+/−
T3
×/÷
T3
±·
task
MD-01L1One number is greater than another by 5.
MD-02L1One number is smaller than another by 8.
MD-03L1One number is 2 times greater than another.
MD-04L1One number is 3 times smaller than another.
MD-05L1Mixed examples
MD-06L1Mixed examples
MD-07L2The sister is 3 years older than the brother.
MD-08L2The red car drives 40 km/h
MD-09L2The father is 4 times older than the son.
MD-10L2The book costs 3 times more
MD-11L2Mixed examples
MD-12L2Mixed examples
MD-13L3The 2nd number is 4 greater than the 1st.
MD-14L3Uudo is 5 years older than Anna.
MD-15L3The 2nd number is 2 times greater than the 1st.
MD-16L3Mari wrote 3 times
MD-17L3The 2nd number is 3 times greater than the 1st.
MD-18L3A banana costs 2 times less
MD-19L3The 2nd number is 2 times greater than the 1st.
MD-20L3Bianca is 5 years older than Alexandra.
9 micro-skills and their prerequisites
  • define.t1.addL1 — additive (+/−)
  • define.t1.mulL1 — multiplicative (×/÷)
  • define.t1.mixL1 — mixeddefine.t1.add, define.t1.mul
  • define.t2.addL2 — additive (+/−) + contextdefine.t1.add
  • define.t2.mulL2 — multiplicative (×/÷) + contextdefine.t1.mul
  • define.t2.mixL2 — mixed + contextdefine.t1.add, define.t1.mul, define.t2.add, define.t2.mul
  • define.t3.addL3 — additive (+/−) + 3+ quantitiesdefine.t1.add, define.t2.add
  • define.t3.mulL3 — multiplicative (×/÷) + 3+ quantitiesdefine.t1.mul, define.t2.mul
  • define.t3.mixL3 — mixed + 3+ quantitiesdefine.t1.add, define.t1.mix, define.t1.mul, define.t2.add, define.t2.mix, define.t2.mul, define.t3.add, define.t3.mul

The same 9 micro-skills, viewed as dependencies. Colour = level: blue L1, yellow L2, red L3. An arrow A → B reads as “skill A must be acquired before B”. Hover a node for a description; click scrolls down to the matrix table.

graph LR
classDef l1 fill:#bfdbfe,stroke:#1d4ed8;
classDef l2 fill:#fde68a,stroke:#a16207;
classDef l3 fill:#fecaca,stroke:#b91c1c;
T1A["L1<br/>additive (+/−)"]:::l1
T1M["L1<br/>multiplicative (×/÷)"]:::l1
T1X["L1<br/>mixed"]:::l1
T2A["L2<br/>(+/−) + context"]:::l2
T2M["L2<br/>(×/÷) + context"]:::l2
T2X["L2<br/>mixed + context"]:::l2
T3A["L3<br/>(+/−) + 3+ qty"]:::l3
T3M["L3<br/>(×/÷) + 3+ qty"]:::l3
T3X["L3<br/>mixed + 3+ qty"]:::l3
T1A --> T1X
T1M --> T1X
T1A --> T2A
T1M --> T2M
T1A --> T2X
T1M --> T2X
T2A --> T2X
T2M --> T2X
T1A --> T3A
T2A --> T3A
T1M --> T3M
T2M --> T3M
T1A --> T3X
T1M --> T3X
T1X --> T3X
T2A --> T3X
T2M --> T3X
T2X --> T3X
T3A --> T3X
T3M --> T3X
click T1A "#matrix" "L1 additive (+/−): abstract 'a is 5 more than b'. No prerequisites."
click T1M "#matrix" "L1 multiplicative (×/÷): abstract 'a is 3 times b'. No prerequisites."
click T1X "#matrix" "L1 mixed: combines (+/−) and (×/÷) in one task, no context. Needs both L1."
click T2A "#matrix" "L2 (+/−) + context: word problem, e.g. 'Kalle is 5 years older than Mari'. Needs L1 additive."
click T2M "#matrix" "L2 (×/÷) + context: word problem, e.g. 'cat mass is 3× the kitten's'. Needs L1 multiplicative."
click T2X "#matrix" "L2 mixed + context: word problem with both (+/−) and (×/÷). Needs L1 and L2 of both kinds."
click T3A "#matrix" "L3 (+/−) + 3+ qty: three or more quantities, all additive. Needs L1 and L2 additive."
click T3M "#matrix" "L3 (×/÷) + 3+ qty: three or more quantities, all multiplicative. Needs L1 and L2 multiplicative."
click T3X "#matrix" "L3 mixed + 3+ qty: apex skill — combines everything, requires all 8 lower skills."

The pyramid is recognisable: the right-most L3 mixed + 3+ qty is the apex skill that depends on everything else. This is not accidental — tasks 19–20 in the matrix are indeed marked ✓ in all 8 lower cells and ★ only on this apex. They are the final comprehensive tasks that test absolutely everything the teacher wanted the student to learn within this topic.

The selector uses this topology directly: a struggling student should not be served L3 before L2 is solid, and L2 should not come before L1 is acquired.

Source: data/matx-define/source/MATx_Defineerimine_Maatriks_v3.xlsx (task curator — Andri Suga, MATx). The matrix is parsed into three JSON files (microskills.json, tasks.json, matrix.json) by scripts/build-matx-define.py and is consumed simultaneously by:

  • the backend MVP in web/ (via the symlink web/data/matx-define/),
  • this study guide section (the widgets above).

This is a single source of truth for the progression — no duplication between packages.

On the Selector simulator page you can pick a virtual student and watch which tasks the selector recommends after a series of correct and incorrect answers.