Key takeaways
- Cleanup comes before import: duplicates, formats, missing fields, archived records.
- Standardise names, dates, and codes; that is where matching breaks.
- Migrate the active year's records and archive the rest.
- Review the field mapping before the first test import; it is the most common break point.
The cleanup checklist
Work through this before the first test import. Coverage matters more than order; each item skipped shows up later as a mapping or validation failure.
- Remove duplicate teacher, room, group, and curriculum records
- Standardise names to one convention
- Standardise date formats
- Standardise staff, room, and course codes
- Fill missing required fields
- Archive records the active year does not use
Field mapping, the usual break point
Old and new structures rarely mean the same thing. Supplier-specific structures, inconsistent field definitions, rooms modelled differently on each side, staff codes that differ between systems, and duplicated curriculum entries are the recurring causes of failed timetable migrations.
When an import fails validation, treat the failure as a pointer back into this list. Guessing at the cause costs more time than re-checking the mapping.
Prepare the active year's data
The aim is an import that passes validation on the second attempt at the latest.
- List the records the active year actually needs: teachers, rooms, groups, study units.
- Archive everything outside that list.
- Deduplicate the active set.
- Standardise names, dates, and codes across it.
- Fill required fields where the source data supports it; flag the rest for the people who know the records.
- Review the field mapping against the target structure before the first test import.
How to do this in Smootables: preview and resolve before importing
Import data
Column mapping
Dirty data surfaces at two points in the Smootables import wizard: the preview and study-unit resolution.
- On the Mapping step, map only the columns you need. Set the rest to Don't import (skip column).
- Check the preview counts. A duplicate that survived cleanup shows up here as an extra teacher, group, or room about to be created.
- For findings listed under Validation errors, go back to the mapping step and fix the column mapping or the source data rather than importing around them.
- When one study unit name matches several qualifications, the wizard asks you to choose, and blocks with Resolve all study units before importing until each match is settled.
- Fix the source file and run the test import again until the preview is clean.
Current records first
Migrating the full archive multiplies every cleanup task and adds nothing the live process needs. Move the active year, keep the archive where it is, and revisit it only if a real need appears.
Cleanup on the school-data side continues in data preparation, which covers readiness for generation: teaching eligibility, availability, and hour limits rather than migration hygiene.
Questions planners ask about data cleanup
Should we clean in the old system or after import?
Before import. Data cleaned at the source imports cleanly everywhere; data fixed after import has to be fixed again on the next test run. The working order is clean, then map, then test.
Do we need to keep historical timetables?
Keep them, archive them, and leave them out of the migration. Migrating legacy data multiplies the cleanup and mapping work while adding records the active year never touches.
What counts as a duplicate?
The same real thing appearing as two records: one teacher under two spellings, one room under two codes, one course listed twice in the curriculum. Each duplicate becomes two separate objects after import unless it is merged first.