How-to
How to import family contacts and enrollment info from spreadsheets into a microschool management system without making a mess
The mess is never the import itself. It is a spreadsheet's habit of being loose, carried into a record that has to be exact. Here is how to tighten the file before it goes in, what a good importer will catch for you, and what no importer can decide on your behalf.
Written by the Pearspark team · updated · about 9 minutes
In short
To import family contacts and enrollment from spreadsheets without making a mess: pick one spreadsheet as the roster of record, make one row per student (siblings repeat the parent), name whose email each contact column holds, give each adult exactly one email spelled the same on every row, put dates of birth in one format, save as CSV, preview before you commit, and invite families only after you have checked the result.
Why roster imports make a mess
A spreadsheet tolerates things a school record cannot. The same mother appears three times because she has three children, once as "Jen Alvarez", once as "Jennifer Alvarez" and once as "J. Alvarez", with two different email addresses. A column called "Email" holds the mother's address on most rows and the father's on a few. Dates of birth are typed as 03/04/2015 by someone who meant March and 4/3/2015 by someone who meant April. "Status" says Enrolled, Active, Yes, and one blank.
None of that breaks a spreadsheet. All of it breaks a system that has to decide, row by row, which adult a child belongs to, who gets the portal invitation, and who is billed. The mess people describe after a bad import is almost never the software misreading a file. It is the software reading the file exactly as written.
So the work is in the file, before the upload. Most of it takes an hour for a school of forty — or none at all, if the file is the one your families filled in themselves through your application link.
The order that works
Do these in this order. Each one removes a class of problem the next one would otherwise have to guess about.
- Pick the roster of record. Most schools have three spreadsheets: the class list, the billing sheet, and the emergency-contact sheet. Where they disagree, decide now which wins for each kind of fact. Billing sheets usually hold the truest parent email, because someone has been paying from it. Class lists hold the truest grade level. Write the decision down; it will come up again.
- Make one row per student, not one row per family. Siblings each get their own row, and the parent's name, email and phone repeat on each. This feels wrong to a person and is right for the software: a decent importer collapses the repeated adult into one record linked to each child, and it can only do that if each row is complete.
- Name the owner of every contact column. "Email" and "Phone" are the two most expensive words in a roster file, because the software cannot know whose they are. Rename them "Mother's Email", "Father's Phone", "Parent/Guardian 1 Email". Two guardians who are not mother and father go in as Parent/Guardian 1 and 2.
- Give every adult exactly one email, spelled identically on every row. Email is how the importer tells two Jennifer Alvarezes apart, and how it knows the Jennifer on Sam's row is the Jennifer on Ana's row. A stray capital letter is fine; a different address is a different person. If a parent genuinely has no email, leave it blank rather than inventing one, and expect to be asked about them in the preview.
- Put dates of birth in one format. Pick 2015-03-04 or March 4, 2015; either is unambiguous. Any date with a day of 12 or less in a slash format can be read two ways, and an importer that is honest about it will tell you which reading it took, which is better than one that guesses silently.
- Use the system's vocabulary for enrollment status, or leave the column out. Pearspark takes active, inactive, graduated and withdrawn and imports anything else as active with a warning. Other systems have their own four or five words. A column that says Yes on every row is not helping anyone.
- Save as CSV, one sheet per file. Nearly every importer, ours included, reads comma-separated text and not a workbook. Excel and Google Sheets both save a single sheet to CSV in two clicks (the links are under Sources). Formulas become their values, hidden columns become visible, and merged cells become blank, so look at the CSV once in a plain text editor before you upload it.
- Preview before you commit, and fix problems in the spreadsheet, not in the system. A dry run that writes nothing is the single most useful thing an importer can offer. Read every warning, go back to the file, correct it there, and preview again. Correcting inside the system afterwards means the spreadsheet and the system now disagree, which is how the next import makes the same mess twice.
- Import, check five families by hand, then invite. Open the record for the family you know best, a family with three children, and a family with two households. If those three look right the rest almost certainly do. Only then send portal invitations. An importer that emails every parent the moment the file lands has taken a decision away from you; ask about that before you buy.
The columns worth having
This is the blank template Pearspark hands you, and the question each column answers. Other systems' templates differ in wording and ask the same things. Nothing here is required except the two name columns; a column you do not have is a column to leave out, not to fill with guesses.
| Column | What it settles |
|---|---|
| First Name, Last Name | The student. The only two columns a row cannot import without. |
| Grade Level | Where the student sits this year. Free text such as K, 3, or 7th all read correctly. |
| Student Number | Your own ID, if you already issue one. Leave blank and one is issued; a number already in use at the school stops the row so two children never share one. |
| Enrollment Status | active, inactive, graduated or withdrawn. Anything else imports as active, with a warning that says so. |
| Date of Birth | One format, unambiguous. The preview reads back any date it had to choose a meaning for. |
| Mother's Name, Email, Phone | One adult, with the columns saying it is her. |
| Father's Name, Email, Phone | The same, for him. |
| Parent/Guardian 1 and 2: Name, Email, Phone | For guardians who are not mother and father, or a second household. Two more adults per row, each owning their own contact columns. |
A file from another school system, rather than a spreadsheet you built, already has its own column names. Pearspark recognizes the exports of FACTS (RenWeb), Gradelink, PowerSchool, QuickSchools, Clever, OneRoster CSV, Sycamore, Procare, Brightwheel, Blackbaud, Jupiter Ed, TADS and MySchoolWorx, and the wizard shows which report to run in each one. Any column no dictionary knows, the wizard asks you about once and remembers for the school.
What a good importer does for you, and what it cannot
It shows you a preview that writes nothing, and then commits exactly what the preview described, so the two cannot disagree. It collapses a parent who appears on three children's rows into one record linked to all three, matched on email. It links a parent already in the system to the new child rather than creating a second copy of her, and leaves what is already on her record alone. It refuses a row whose student number is already taken, names a student who shares a name with someone already on the roster, and reads back any date it had to interpret. It remembers the column names you taught it. And it lets you undo the whole import as one unit; in Pearspark that window is 24 hours, after which the new rows have had attendance and grades written against them and undoing by hand is safer than undoing in bulk.
It cannot know that "J. Smith" with no email and "Jennifer Smith" with one are the same person; a name alone is not an identity, and a mother and father often share one inbox, so an email alone is not one either. It cannot tell which of two disagreeing spreadsheets is right. It cannot decide whether the family who left in May is withdrawn or merely late paying. Those are the school's decisions, and the sequence above is mostly about making them before the upload rather than after.
What not to import on the first day
Contacts and enrollment first, on their own. Everything else in a school record hangs off the student and the adults attached to them, and each other kind of data has its own import with its own preview: grade history and transcripts, immunization and health records, financial aid. Doing them on separate days, each checked before the next, means a mistake in one never has to be untangled from the others.
Leave out families who left years ago unless you need their record. A school system is a record of who is here and who was, and a withdrawn student's row is worth keeping only if a transcript or attendance history will ever be requested. If it will, import them with a withdrawn or graduated status. If it will not, the old spreadsheet is a fine place for them to stay.
And do not import a column you cannot explain. If nobody remembers what "Flag" or "Code 2" meant, it does not belong in a permanent record with the school's name on it.
What the import lands in
The roster is the foundation. These are the parts of Pearspark that read from it the moment it exists.
Watch it done
The roster import, end to end, in Pearspark. Sixty seconds.
Common questions
Do I need to merge my spreadsheets into one file before importing?
Yes, for contacts and enrollment: one file with one row per student and the parents' details repeated on each child's row. Merging by hand is where you discover the two sheets disagree, and that is worth discovering before the upload rather than after. Grade history, health records and financial aid are separate imports and stay separate files.
What file format do school systems accept?
Almost all of them, Pearspark included, take a CSV file: one sheet, saved as comma-separated text. Excel and Google Sheets both export a sheet to CSV directly. A workbook with several tabs has to be saved one tab at a time, and only the roster tab should go in.
What happens to a parent who has two or three children at the school?
In a well-built importer, one adult record, linked to each child, however many rows name her. Pearspark matches on the parent's email, so the same address on every sibling's row is what makes that work. Two different addresses make two different people, and the preview says so before anything is written.
Will families get an email the moment I import?
Not from Pearspark. The import creates records and emails nobody; sending portal invitations is a separate, deliberate step, so a school can import in July and invite in August. Ask any vendor the same question before uploading real families, because some systems send the welcome email on creation and there is no taking it back.
What if I import the wrong file?
Preview first, always; a dry run costs nothing and shows exactly what a commit would do. In Pearspark a committed roster import can be undone as one unit within 24 hours, which deletes what it created and restores what it overwrote. After that, the imported students have attendance and grades attached and the safe correction is by hand, one record at a time.
What about a parent with no email address?
Import them; the row still works and the phone is kept. Two things follow. The importer cannot tell a no-email parent apart from another adult with the same name, so it will treat them as one person and warn you. And they cannot be invited to a parent portal until an address is added, so plan to collect one.
Should I import last year's students who have left?
Only if you will ever need their record: a transcript request, an attendance history for a scholarship program, a receiving school asking for grades. If so, import them with a withdrawn or graduated status so they do not appear in this year's classes and billing. If not, leave them in the old spreadsheet.
Sources
Every figure on this page is read from the source linked below. Where no source could be found for a claim, the claim is not made.
The full comparison behind each row
Each one is sourced feature by feature, last reviewed August 2026, and says plainly where the other system is the better choice.
See it before you decide
Every task is on video — one minute each — and your first 30 days are free. No sales call.