Guides

Move your school from spreadsheets without losing records

8 min readProgresslyAI Team

To switch from spreadsheets to class management software, list every spreadsheet and what it is used for, decide which records move and which stay as an archive, map your roster columns to the new system's import format, test the import with a copy, then run both systems side by side until a full teaching cycle matches. Keep the spreadsheets read-only rather than deleting them.

In short:

  • Inventory first: most schools run on more spreadsheets than they think.
  • Move the roster, archive the history. Past attendance, payments and assessments rarely import cleanly.
  • Map every column to a field, a note or "stays behind".
  • Fix data before importing: dates, statuses and duplicates cause most failures.
  • Run in parallel for at least one full teaching cycle, then freeze the old files.

Spreadsheets are not the problem in themselves. Many small schools run well on them. Switching makes sense when the same information is kept in several places, families need their own view, or one person is the only one who understands the formulas.

Step 1: Inventory what you actually use

Before choosing what to move, list every file and tab. A typical small school's inventory looks like this illustrative example:

SpreadsheetUsed forUpdated byHow oftenMoves?
Students 2026Names, parents, dates of birth, class, levelOwnerWhen someone joins or leavesYes, via import
Tuesday/Thursday registersAttendance per classInstructorsEvery classStart fresh; archive old registers
Level 1 checklistSkills each student has passedInstructorsWeeklyRe-enter current status; archive history
Fees 2026Who has paid this termOwnerMonthlyKeep in your accounting system; issue new invoices going forward
WaitlistFamilies waiting for a placeOwnerAd hocAsk families to submit a new request
CertificatesInstructor first-aid datesOwnerYearlyRe-enter (a few rows)

Anything nobody updates any more can usually be archived without a decision.

Step 2: Decide what moves and what stays behind

RecordMove it?Why
Current rosterYesEverything else hangs off it
Current skill statusYes, re-enteredNeeded for teaching from day one
Past attendanceUsually noKeep the old registers as a read-only archive
Past paymentsNoKeep in your accounting records; start new invoices from a clear date
Assessment historyUsually noKeep the spreadsheet; record the current status only
Former studentsOptionalImport as inactive only if staff will look them up

A clean cut-over date makes this easier to explain: "From 1 January, attendance and invoices are in the new system. Anything earlier is in the archive folder."

Step 3: Map your roster columns

Every system has its own import format. Here is a mapping from an invented spreadsheet to ProgresslyAI's CSV import, whose columns are first_name, last_name, email, date_of_birth, vertical, level, status and notes. Only first_name and last_name are required.

Spreadsheet columnExample valueImport columnWhat to change
Student nameMaya Chenfirst_name, last_nameSplit into two columns
DOB18/04/2015date_of_birthConvert to YYYY-MM-DD: 2015-04-18
Student email(blank for children)emailStudent's own email only; leave blank for most children
ProgrammeMusicverticalOptional teaching category
LevelLevel 1levelKeep as text
StatusActive / On break / LeftstatusUse exactly active, paused or inactive, in lower case
ClassTue 4:30 Guitarnotes (for reference)Enroll in classes after import
Parent name and emailLin Chen, lin@example.com—Add on the student record after import, then invite the parent
Phone555-0100notes or stays behindNo dedicated phone column
Paid this term?Yes—Stays in your fee records
Medical notes(anything)—Do not import; keep in your approved process

Unknown column headers are rejected, so delete or rename every column that is not in the list above before importing.

Step 4: Clean the data and preview the import

This invented file shows the most common problems. It was run through ProgresslyAI's import parser to check the outcome:

first_name,last_name,email,date_of_birth,vertical,level,status,notes
Maya,Chen,,2015-04-18,Music,Level 1,active,Junior Guitar Tue 4:30
Leo,Rossi,,2014-11-02,Music,Level 1,active,
Aisha,Khan,,2015-07-30,Music,Level 1,paused,Paused until January
Noah,Brown,,2014-02-09,Music,Level 2,active,
Daniel,Park,daniel.park@example.com,1988-06-21,Music,Adult Piano Level 2,active,Adult student
Maya,Chen,,2015-04-18,Music,Level 1,active,Duplicate row left in by mistake
Sam,Taylor,sam@example,2015-13-01,Music,Level 1,Active,
RowStudentPreview resultWhy
2-6Maya, Leo, Aisha, Noah, DanielNewValid; Aisha is paused, so she does not count toward the active-student limit
7Maya Chen (again)Duplicate, skippedSame first name, last name, date of birth and email as row 2
8Sam TaylorInvalidThe email has no domain ending; the date and the capitalized "Active" also need fixing

Because one row is invalid, no students are added until it is fixed: the import is all-or-nothing. Fix Sam's row (for example sam@example.com, 2015-01-13, active) and preview again. The duplicate row is skipped rather than overwriting the existing record.

Other limits worth knowing before you start: up to 1,000 rows and 256 KB per file, dates of birth cannot be in the future, and only the school owner can import. If the active rows would take the school over its plan's active-student limit, the whole import stops. The import help guide covers the screens step by step.

Step 5: Run both systems in parallel

For at least one full teaching cycle, usually a week or a fortnight of every class, keep the spreadsheet as the record and enter the same information in the new system. Then compare:

  • Every current student is in the new system, with the right status and level.
  • Each class roster matches the register.
  • Attendance for each class date matches the paper or spreadsheet register.
  • Each student's current skill status matches the checklist.
  • Families invited to the portal see only their own child.
  • New invoices show the expected balance.

Fix differences at the source and note what caused them. When a full cycle matches, make the old spreadsheets read-only, store them where staff can find them and tell everyone the cut-over date.

When spreadsheets still make sense

Stay with spreadsheets, or delay switching, if:

  • one person runs a handful of students and nobody else needs access;
  • families do not need to see records between lessons;
  • your main need is something the software you are considering does not do, such as collecting tuition online; or
  • you cannot spare time for a parallel run this term.

A well-kept spreadsheet with clear status definitions beats a new system nobody updates. Our free progress tracking template and attendance sheet are designed for that case.

What ProgresslyAI imports and what it does not

ProgresslyAI imports student roster records from CSV with a preview showing new, duplicate and invalid rows. It does not import class schedules, enrollments, parent links, attendance history, skill assessments, report documents, invoices or payment history. After the import, create classes and enroll students, assign each student's curriculum and current skill statuses, add parent emails and invite parents. ProgresslyAI does not provide a staffed migration service.

Starter is free for up to 25 active students and 1 instructor seat. Pro costs USD $49/month for up to 200 active students and 5 instructor seats. Business costs USD $99/month with no cap on active students or instructor seats. AI report drafts need Pro or Business; readiness, retention and schedule suggestions need Business. Review the plans and included features before choosing.

How this guide was prepared

ProgresslyAI staff wrote this guide. The spreadsheet, students and file are invented; the preview results came from running that file through the application's own CSV parser and duplicate check. Inventory and parallel-run steps are general practice, not a guarantee of how long a switch will take.

Want to streamline your training business?

Create your school and start tracking progress. No credit card required.

Start free