Constraint recipe
This error is arithmetic, not timetable quality. A class with 8 periods per day over 5 days has 40 slots; ask for 44 lesson placements and 4 of them can never be placed, no matter how long the generator runs. Recount demand and capacity in the source data, and check for duplicated import rows, before you change any preference.
Key takeaways
- The week has fewer valid slots than required lesson placements.
- Recount periods, weeks, lessons, teachers, and rooms before anything else.
- Imported duplicates are the most common cause of a sudden jump.
- Preferences like spread and gaps cannot create new teaching periods.
The error is arithmetic
The timetable system is telling you that demand exceeds supply. That can mean too many lessons in the period plan, too few periods in the school day, too much teacher unavailability, or too few rooms for the groups that must run at the same time. Schools migrating from spreadsheets hit this often, because hand-kept data carries duplicated and conflicting rows that only surface when something finally counts them.
Running the generator longer or raising a quality weight cannot fix it. Forty slots hold forty lessons; the forty-first needs a slot to exist first.
Check the arithmetic yourself
Put in your own numbers for one class or teacher. Valid slots are days times periods, minus the slots that are blocked by unavailability, part-time days, or reserved time.
Valid slots: 30
Fits, with 0 slots to spare.
If the check fails for a class, the fix is structural: fewer lessons, more periods, more rooms, or different staffing. If it passes for every class and teacher but generation still fails, the shortage is inside a tighter subset, most often one specialist room or one part-time teacher whose personal arithmetic does not fit.
Where the mismatch usually hides
| Symptom | Likely cause | What to do |
|---|---|---|
| The count jumped after an import | Duplicated rows from a spreadsheet or a copied curriculum line | Search the source data for repeated class, subject, and teacher combinations, and delete the duplicates. |
| Every class is slightly over | Periods per day or teaching weeks miscounted, for example an unmodelled exam or training week | Recount the cycle length and periods per day against the real calendar before touching lessons. |
| Only lessons needing one room type fail | Too few specialist rooms for the groups that need them at the same time | Add rooms, stagger the demand across the week, or reduce parallel groups. |
| One teacher's lessons fail | Their assigned lessons exceed what fits in their working days after unavailable time | Rebalance the assignment or the availability. A weekly total inside contract can still be unplaceable. |
Recount in this order
- Recount periods per day, cycle length, and teaching weeks against the real calendar.
- Total the required lessons per class, per teacher, and per specialist room pool.
- Subtract unavailable time, then compare totals with available slots, as in the checker above.
- Search imports for duplicate rows before deleting any legitimate lesson.
- Reduce lessons, add rooms or periods, or rebalance staffing until the arithmetic passes.
- Run validation again before touching spread, gap, or balance preferences.
What does not work
- Raising generator time limits when the count is already impossible
- Relaxing soft preferences, which do not create teaching periods
- Deleting real lessons when the overload came from a duplicated import
In Smootables
Fall 2026
Recurring weeks18.8.2026 - 20.12.2026 / 18 weeks
Validation errors
Teacher hours exceeded (1)
Teacher "J. Rivera" has 28 hours/week assigned; maximum is 24 hours/week.
Reduce this teacher's workload or increase their weekly maximum hours.
View teacher
Insufficient rooms (1)
This period needs at least 3 room(s) for your student groups, but only 2 are available.
Add more rooms in Resources or reduce the number of student groups with lessons in this period.
Go to rooms
When required lessons exceed what your week can hold, Smootables surfaces a capacity problem instead of returning a broken grid. On the period screen, Validation Errors lists issues you must fix before Generate timetable runs, such as a teacher above their weekly maximum hours or not enough rooms for groups that would teach at the same time.
If those checks pass but the plan still cannot fit, the failure report names the shortfall: too few teaching slots on the school-day grid, too few rooms, or both.
- Trim duplicate placements or reduce lessons in the period plan.
- Add rooms under Resources or extend the school-day schedule if simultaneous groups need more capacity.
- Generate again only after Validation Errors clears.
Quick answers
Can a better generator fix too many lessons?
No. If valid slots are fewer than required lessons, the count must change first. Generators place lessons; they do not create periods.
Should I relax soft constraints first?
No. Spread and gap preferences do not create new teaching periods. Fix demand and capacity first.
Why did the error appear right after an import?
Imports commonly duplicate rows. A class that had 30 lessons in the old system can arrive as 45 if curriculum lines were copied twice. Dedupe before deleting anything real.