Session density: Mon / Thu / Fri / Sun carry 2 sessions; Tue / Wed / Sat carry 1.
Joint days: Thursday, Friday, Saturday, and Sunday are shared sessions — you and your daughter revise together. On multi-slot joint days the scheduler guarantees at least one non-Welsh subject.
Exam days: the exam itself plus one follow-up block aimed at the next subject up (or a celebration block after the final exam).
Deadline-first: every session for a given subject is placed strictly before that subject's exam. When a subject starts running out of free days, the scheduler prioritises it over variety.
Spaced repetition: while deadlines allow, the scheduler picks whichever subject has gone longest without a session — so the same topic doesn't repeat twice in a row and the weekly mix stays varied.
Regenerate: edit SUBJECTS (including target), EXAMS, or DAILY_CAPACITY in data.py and re-run.