The intake form will ask you to upload your current student roster on Step 8. This guide walks you through formatting it. There are two paths. Pick whichever fits.
The fastest path: use AI
If you have your roster in any digital form (CRM export, Google Sheets, Excel, PDF, even a scanned image), the fastest move is to have ChatGPT or Claude do the column-mapping for you.
- Open ChatGPT or Claude (free tiers work for this).
- Download our template if you haven't already.
- Drag both files (your existing roster AND our template) into the chat.
- Paste this prompt:
I have two files: my current student roster, and a template for a new system. Please merge my data into the template's column structure. Keep all my students. For any column where I don't have a direct equivalent, leave it blank. For Status, normalize values to "Active" / "Trial" / "Quit" / "On Hold" / "Expired". For dates, output as YYYY-MM-DD. Give me back a CSV I can download.
The AI will return a CSV. Open it, spot-check 5-10 rows for accuracy (especially dates and statuses), then upload it on Step 8 of the intake.
Column reference
The template has 11 columns. Here's what goes in each:
| Column | What goes here |
|---|---|
| Student Name | Full name. One row per student. |
| Siblings / Members | Other family members enrolled at the school. Leave blank if none. |
| Parent / Guardian | Parent or guardian name. Leave blank for adult students. |
| Program | The class or program they're enrolled in. Use the exact program names you entered in Step 3 of the intake. |
| Status | Use simple words: "Active" / "Trial" / "Quit" / "On Hold" / "Expired". We map common variants automatically. |
| Amount Paid | Most recent payment in dollars. Number only, no dollar sign, no commas. |
| Banked Months | Months they've paid ahead. Use 0 if none. |
| Member Since | Date they started. YYYY-MM-DD is safest. MM/DD/YYYY also works. |
| Expiration Date | When their current term runs out. Same date format as Member Since. |
| Rank | Their current belt or rank. Use the exact rank names you entered in Step 5 of the intake. |
| Stripes | Current stripes at their rank, 0–4. Leave blank if you don't track stripes. |
Common pitfalls
- Don't leave blank rows between students. The importer treats every row with a Student Name as a student. A blank row in the middle isn't a problem, but a sentinel row like "TOTAL:" or "---" is.
- Date formats. Use YYYY-MM-DD (e.g., 2026-03-15) when possible. MM/DD/YYYY also works. Things like "Last September" or "About 2 years ago" do not.
- Program / Rank / Status names must match the intake. If you wrote "Tiger Cubs" in Step 3 of the intake, the CSV's Program column must also say "Tiger Cubs", not "Tigers Cub Class" or "TC". Same for ranks and statuses.
- Extra columns are fine. If your roster has columns we don't recognize (e.g., "Belt Test Date" or "Sibling Discount"), they'll be ignored. We won't lose them; they just don't get imported.
- Missing columns are also fine. Leave any column blank if you don't track that data. Only Student Name is required to import a row.
The manual path (no AI)
If you'd rather format the CSV by hand:
- Download the template.
- Open it in your spreadsheet program: Google Sheets (free, in any browser), Excel, or Apple Numbers.
- Open your current student data in another tab or window.
- Copy your data into the matching columns of the template, using the column reference above.
- Delete the two example rows ("Jane Doe" and "Mike Smith") once your real data is in.
- Save as CSV:
- Google Sheets: File → Download → Comma Separated Values (.csv)
- Excel: File → Save As → CSV UTF-8
- Numbers: File → Export To → CSV
- Upload on Step 8 of the intake.
Still stuck?
Email intake@100schoolsystems.com with whatever roster file you have, and we'll format it for you before you reach Step 8.