KIV — Match Level / Subject / Subject Level Combinations
Needs more thinking before committing to a design.
What the researcher proposed
Instead of simple boolean toggles (subjectMatchHard, levelMatchHard), let schools choose from matching combinations:
| Combo |
Meaning |
Example |
| Match Level only |
Any Sec 1 teacher covers any Sec 1 class |
Sec 1 English teacher → Sec 1 Math |
| Match Subject only |
Any Math teacher covers any Math |
Sec 3 Math → Sec 1 Math |
| Match Subject Level only |
Any G2 teacher covers any G2 |
Unlikely to be useful alone |
| Match Level + Subject |
Sec 1 Math covers Sec 1 Math only |
Most common "strict" mode |
| Match Subject + Subject Level |
G1 Math covers G1 Math across levels |
Sec 2 G1 Math → Sec 1 G1 Math |
| Match Level + Subject Level |
Unlikely useful |
Skip |
| Match all three |
Sec 1 G3 English → Sec 1 G3 English only |
Strictest mode |
Current implementation
MatchingConfig.subjectMatchHard (boolean)
MatchingConfig.levelMatchHard (boolean)
- No concept of Subject Level (G1/G2/G3, Foundation/Standard) in schema yet
Initial thinking
- 7-combination matrix is overkill. 3-4 presets likely sufficient:
- "Loose" — match level only
- "Standard" — match level + subject
- "Strict" — match level + subject + subject level
- Subject Level (G1/G2/G3) needs to be added to
TimetableEntry model first
- FSBB context: secondary schools with Subject-Based Banding need subject level awareness
Why KIV
Requires schema additions (subject level on TimetableEntry), impacts import flow, and the right preset list needs input from more schools.
🤖 Generated with Claude Code
KIV — Match Level / Subject / Subject Level Combinations
Needs more thinking before committing to a design.
What the researcher proposed
Instead of simple boolean toggles (
subjectMatchHard,levelMatchHard), let schools choose from matching combinations:Current implementation
MatchingConfig.subjectMatchHard(boolean)MatchingConfig.levelMatchHard(boolean)Initial thinking
TimetableEntrymodel firstWhy KIV
Requires schema additions (subject level on TimetableEntry), impacts import flow, and the right preset list needs input from more schools.
🤖 Generated with Claude Code