Grade limits and schedule conflicts
Last reviewed
Open Programs settingsKeeping students in the right grade or age range
Every class has a grade level (“K–2nd”, “3rd–5th”, “Ages 5–8”, “All ages”), and every student has a grade on their profile. Whether the class's grade level is only a label and a catalog filter, or a rule that keeps a second grader out of a class set for 6th–8th, is a co-op setting. Co-ops created since September 2026 start with the rule on; co-ops from before then start with it off, so nothing changed for them, and can turn it on whenever they like.
With it on, the family catalog greys out any child who is outside a class's grade range and says why (“Ivy is in 3rd grade; this class is for K–2nd”). The same check runs when the enrollment is actually submitted, on the website and in the mobile app, so a stale page can't slip one through.
Three things the rule leaves alone, on purpose:
- A class with no grade range (blank, or “All ages”) is open to everyone, as it always was.
- A student with no grade on file, or a grade that isn't on the K–12 scale (“Adult”, “Graduate”), is never blocked. The rule only acts when it knows both sides. If you want it to cover everyone, make sure each student's profile has a grade. The same goes for a class set by age and a student with no birthdate on file.
- Admins enrolling a student by hand from the class page are not blocked. That is the override for a child who is ready for the class even though their grade says otherwise; the picker there notes when a student is outside the range so the exception is a choice, not an accident.
Classes set by age
You can type ages instead of grades: “Ages 5–12”, “9–13 year olds”, “13+”, or “Infants up to age 2”. With the rule on, that class is held to those ages instead of a grade. A student's age is counted on the first day of the term, from the birthdate on their profile, so a birthday partway through the term doesn't change anything. The reason a family sees reads like “Ivy will be 9 when the term starts; this class is for ages 5–7.”
A few details about how we read what you type:
- A plain number range is grades unless it can't be. “9–11” means 9th through 11th grade. “12–16” means ages, because no grade goes past 12th; add the word “ages” if you want to be sure.
- A band that mixes ages with something else, such as “Ages 11–13, Highschool”, or one that names months or a date, has no limit at all. Split it into plain ages if you want it enforced.
- Under the Grade level field, a line starting Read as shows how we read the text as you type it: grades, ages, or no limit.
Test Co-op
Menu › Admin Dashboard › Settings
Class grade limits
Schedule conflicts
Keeping students out of overlapping classes
You can stop a student from being enrolled in two classes that meet at the same time. Co-ops that join HomeschoolGo now start with this rule on. If your co-op was set up before October 8, 2026, it starts off, and you can turn it on in Settings. Some co-ops leave it off on purpose: two classes that alternate weeks in one slot, or a class that only runs for half the term.
Two classes overlap when they meet on the same day, their times overlap, and they meet in the same weeks of the month. A class that ends at 10:30 and one that starts at 10:30 don't overlap. Neither do a 1st-and-3rd-Monday class and a 2nd-and-4th-Monday class in the same slot. A class that meets on several days overlaps if any one of its meetings does.
With the rule on:
- Families see the child greyed out in the catalog with the reason (“Already enrolled in ASL 1 at this time”), and the cart flags two overlapping classes before checkout. The enrollment is refused when it is submitted, on the website and in the mobile app, and that includes joining a waitlist.
- Admins adding a student from the class page or the student's page, or promoting one from a waitlist, see a warning naming the other class. Click Enroll anyway if the overlap is intended. Teachers who promote from their own waitlist get the same choice.
- Automatic waitlist enrollment, if you use it, skips a student whose class would overlap and gives the seat to the next family in line. The skipped student stays on the waitlist for you to promote by hand.
Seeing the whole term at once
To find students who are already double-booked, open the Class Catalog in manage mode and click Class matrix, next to Browse catalog. Owners and admins see this button. The matrix lists every student with a class in the term, grouped by family, against the term's time slots, with the classes each student takes in each slot.
- A red cell means the student is enrolled in two classes that meet at the same time. It uses the same overlap rule as the setting above, but it works whether the setting is on or off.
- An amber Open cell is an empty slot on a day the student already comes to co-op.
- Waitlisted classes show in italics and don't hold a seat. Classes with no time slot go in an Unscheduled column.
Above the grid, Seats by time slot shows how full each class is, with waitlist counts. You can search by student or family name, show only double-booked students or only students with an open slot, narrow to one day, and click Download CSV to save what you're looking at. The page only shows information. Nothing on it changes an enrollment.
To get parents' schedules in the same file, tick Include parents & staff before you download. Each family then gets a row for every adult who can sign in, showing the class they teach or assist in each time slot, or Free when one of their children has class and they don't. A last column lists their volunteer shifts for the term, including ones already worked. Teachers and volunteers who aren't part of a family are listed at the end. A parent only shows a class once they're added as its teacher or assistant on the class.