Homeschool Co-op Roster Template: Columns That Work
A homeschool co-op roster template works best as two linked tables, not one long list. Use a Families sheet with one row per household (family ID, family name, parent names, phone, email, emergency contact, volunteer commitment and fee status) and a Children sheet with one row per child (family ID, child's name, birthdate, grade, allergies or medical notes, photo permission and classes). The family ID ties the two together. Below are the exact columns, what each one is for and the mistakes that make a roster fall apart by midterm.
The change that makes a roster work: stop listing kids one per row
Most co-op rosters start the same way. Someone opens a spreadsheet and types one child per row, with the parent's name and phone number repeated next to each kid.
It looks fine in August. By October it's a mess. A family with three kids has three copies of the same phone number, and when the number changes, only one copy gets fixed. A family's fees and volunteer hours have nowhere sensible to live, because they belong to the household, not to any one child.
The fix is to model the co-op the way it actually works. Families pay, volunteer and receive messages. Children enroll in classes. Give each its own table and connect them with a family ID. We'd argue this single change matters more than any color-coding, formula or template design you'll find. If your current roster keeps breaking, no wonder: it was set up to fail the moment the first family enrolled a second child.
Sheet 1: Families (one row per household)
| Column | Example | Why it's there |
|---|---|---|
| Family ID | F001 | The link to the Children sheet. Never reuse one. |
| Family name | Miller | How you'll sort and search |
| Parent or guardian 1 | Sarah Miller | Primary contact |
| Parent or guardian 2 | James Miller | Second contact, if any |
| Phone (for texts) | (555) 010-2345 | Class-day reminders and urgent changes |
| [email protected] | Announcements and receipts | |
| Emergency contact | Ann Lee, grandmother, (555) 010-6789 | Someone who isn't a parent |
| Volunteer role or commitment | Assists in art, 2nd hour | What the family owes |
| Volunteer hours completed | 6 | Updated as hours are approved |
| Fee status | Paid / Partial / Unpaid | The treasurer's quick view |
| Waiver signed | Yes, 8/14 | Proof, with a date |
| Joined | Fall term | Useful for seniority or returning-family priority |
Keep the address column only if you actually mail things. Every extra column of personal data is one more thing to protect.
Sheet 2: Children (one row per child)
| Column | Example | Why it's there |
|---|---|---|
| Family ID | F001 | Links the child to their household |
| Child's name | Ella Miller | |
| Birthdate | 2016-03-09 | Calculates age for class eligibility |
| Grade | 4 | Some classes group by grade, others by age |
| Allergies or medical notes | Peanut allergy, carries EpiPen | Teachers need this; most families don't |
| Photo permission | No | Before anyone posts a class photo |
| Pickup authorization | Parents, grandmother only | Who's allowed to collect the child |
| Classes this term | Art, Science Lab | Quick reference until you add an enrollment tab |
Optional Sheet 3: Enrollments
Once you run more than a handful of classes, the "Classes this term" column gets crowded. Move it to its own tab with one row per child per class: family ID, child's name, class, term and status (enrolled, waitlisted or dropped). Now you can filter by class to get each teacher's list, and count seats without counting by hand.
That third tab is also where a spreadsheet starts to strain. Keeping capacity, waitlist order and payments in sync across three tabs is real work, and it's usually one volunteer's work. If payments are the tab that strains first, read about homeschool co-op payment processing.
Five rules that keep a roster clean
- One ID per family, forever. Returning families keep their ID year to year. Don't recycle IDs from families who've left.
- Dates in one format. Pick year-month-day and stick to it, or sorting by birthdate quietly breaks.
- No merged cells. They look tidy and wreck every sort, filter and import.
- Limit who sees medical and pickup columns. Teachers need allergy information for their own class. The whole parent group doesn't.
- Set a single owner. One person edits the master copy. Everyone else gets a filtered view or a printed class list.
That fourth rule deserves extra weight. A co-op roster holds children's names, birthdates and medical details. Shared too widely, say as a link anyone in a group chat can open, it's a privacy problem waiting to happen.
How to use this template
Copy the column headers into Google Sheets or Excel, one tab per table, and fill in the example rows with your own families. That's all it takes, and you could have it ready before your next board meeting. There's no file to download here; the structure is the useful part, and it takes a few minutes to set up.
A fair limitation: a spreadsheet roster can't enforce anything. It won't stop a seventeenth child from enrolling in a 16-seat class, remind a family their waiver is missing or tell you who still owes a fee. You'll do that checking yourself.
When a spreadsheet roster stops being enough
If you're rebuilding the class lists by hand every term, or matching payments to children by squinting at notes, the roster has outgrown the spreadsheet. And if you're tired of being the only person who knows which tab is current, that's a sign too.
MyCoop's roster follows the same families-first structure as this template: families, adults and children in one directory, with per-family detail pages, enrollments and search. CSV import for families and children is built in, so a tidy spreadsheet can become your roster without retyping. (Check your column headers against what the import screen asks for before uploading; this template isn't an official import file.)
From there, the pieces that strain a spreadsheet are handled in the same system. Class enrollment enforces capacity and age limits with automatic waitlists. Families sign waivers electronically before enrollment completes and pay class fees online when they enroll, with payments paid out to your co-op's own bank account. Volunteer hours are logged and approved per family. MyCoop is $49 a month on Starter or $99 on Growth, with every feature on every plan and unlimited families, and there's a 30-day free trial with no credit card.
For the bigger picture, see Homeschool Co-op Management Software: What to Look For, Homeschool Group Management App: What Actually Matters or Homeschool Co-op Enrollment System: The 5 Checks. If you're comparing platforms, read MyCoop vs. Homeschool-Life.
Frequently Asked Questions
What should a homeschool co-op roster include?
At minimum: a family ID, parent names, a phone number for texts, an email, an emergency contact, each child's name and birthdate or grade, allergy or medical notes, photo permission and the classes each child is in. Add volunteer commitment, fee status and waiver status at the family level, because those belong to the household rather than to any single child.
Should a co-op roster be one row per child or one row per family?
Use both, in separate tables. Keep one row per family for contact details, fees, volunteer hours and waivers, and one row per child for age, grade, medical notes and classes. Link them with a family ID. A single table with one row per child repeats parent details for every sibling, and those copies drift out of sync quickly.
How do I keep a homeschool co-op roster private?
Keep one master copy that only one or two people can edit, and share filtered views instead of the full file. Teachers need their own class list with allergy notes, not every family's address and pickup details. Avoid posting an open link in a group chat, and remove families who have left at the end of each term.
Can I import my roster into MyCoop?
Yes. CSV import for families and children is built in, so you can export your spreadsheet and upload it instead of retyping every household. Clean the file first: consistent family names, no duplicate rows and no merged cells. Compare your column headers with what the import screen asks for, since this template isn't an official import file.
Run your co-op on MyCoop
Enrollment, volunteer hours, payments and family communication in one place.
Start your free trial