Class fees and billing settings
Last reviewed
Open BillingSetting fees and seat capacity
Capacity sets how many students can enroll before the class fills and starts a waitlist. Set it to a number that reflects the physical space and your teacher's comfort level.
When you first create a class, you'll see two fields side by side: Tuition and an optional Materials fee. Tuition is the cost of the class itself; the materials fee covers supplies, books, or kits and is billed separately so families can see what they're paying for.
Once the class exists, opening it to edit swaps in a more flexible fee editor: a single Tuition box, plus an Add fee control for attaching any number of additional named charges (a lab fee, a field trip cost, whatever your co-op needs), each with its own checkbox for whether the sibling discount applies to it. A fee name you create on one class is offered on every other class afterward, so you only type it once. Renaming it there renames it everywhere it's used.
Every fee on a class is added together on the family's receipt and ledger, but they can behave differently when a sibling discount is turned on: only fees marked as discount-eligible are reduced. A materials fee added from the create-class form starts out charged in full for every student, since it covers a physical cost the co-op still has to pay no matter how many siblings enroll. You can change that with its checkbox. See the How class pricing works guide for a worked example.
Payment collection: Stripe vs. flexible
For classes with a fee, you can choose how that fee is collected. The default applies to all classes, and individual classes can override it.
Stripe payment at enrollment (default)
Collecting online needs two things: the Plus plan and a connected Stripe account. With both, when a family clicks Enroll on a paid class, they go to Stripe Checkout and their student's seat is confirmed only after the card payment succeeds. This is the safest option for co-ops that want to guarantee payment before a seat is held.
Families signing up for more than one class use a cart. Alongside Enroll, a paid class offers Add another class first, and once anything is in the cart every class routes through it: the button becomes Add to cart, a bar appears at the bottom of the catalog with a running total, and the family checks out once for everything. Nothing is charged and no seat is held until they finish that checkout, so a cart left sitting there isn't an enrollment.
Flexible / bill the family's account
In flexible mode the student is enrolled immediately and a pending charge is added to the family's account. The co-op collects whenever and however works for them: cash at the door, check, bank transfer, or by directing the family to pay online from their Payments page. This is useful for co-ops that run a tab for the term and settle up at the end, or for families that don't have a card handy at enrollment time.
When a family has account credit
A scholarship or volunteer credit reduces what a family owes on their Payments page, but in Stripe mode it doesn't reach class checkout: the family is still sent to pay by card for the full amount. A family holding a scholarship that covers their whole cart ends up paying anyway, or writing to you to ask what to do.
Under Admin → Settings → Programs, in the Class enrollment section, you can tick Apply account credit at class checkout. With it on, a family who has credit skips the card form. Their fees post to their account at the normal price, with sibling discounts, reduced rates and staff exemptions unchanged, and the credit covers them. Enough credit and the students are enrolled immediately with nothing owed. Not enough, and the remainder sits on their Payments page to be paid like any other charge.
Families with no credit are unaffected and check out by card as usual. Nothing is deducted from the credit itself, so the ledger still shows the credit and the charges it covered. If you later remove that credit, the balance it was covering reopens.
Setting the default for your co-op
Overriding for a specific class
Open the class detail page, scroll to Enrollment settings, and select a payment mode. Choosing the co-op default means the class inherits whatever you've set globally, which keeps things consistent without repeated configuration.
Co-ops without a connected Stripe payout account always use flexible mode. There's no Stripe account to charge on, so the system bills the family's ledger and you collect directly. Families see Added to your balance and an Enroll and pay later button, the same as on a flexible class. On the Plus plan, a notice under the class fee fields says online payment isn't set up yet and links to Billing. Pay now on the Payments page doesn't fall back the same way: until Stripe is connected, it shows a message that online payments aren't set up.
Test Co-op
Menu › Admin Dashboard › Settings
Default payment collection
Discount percent
Staff fee exemptions
Two types of members can enroll their students at no charge, with no workaround required.
Owner and admin exemption
When enabled (the default), owners and admins pay nothing to enroll their students in any class. No Stripe redirect, no pending charge: the seat is allocated at $0 and the roster shows a "Fee waived" badge next to the student's name so you have an audit trail.
Turn this on or off under Admin → Settings → Programs → Class enrollment. The toggle applies to all classes; individual classes can override it for their teacher exemption independently.
Teacher exemption
Teachers can be exempt two ways, and you can use either or both.
Every class, co-op-wide. Under Admin → Settings → Programs → Class enrollment, check Teachers enroll their students at no charge. That covers anyone holding the Teacher role, plus anyone assigned to teach a class in the term, since plenty of co-ops leave their parent-teachers on the Family role. Either way they enroll free in any class, whether or not they teach it. This is off by default.
Just the class they teach. On a class's own Enrollment settings, check Assigned teachers enroll their students at no charge. This only covers a teacher assigned to that specific class, and only for their own students. It's on by default for every class, so turn it off for one where you want everyone to pay (an expensive field trip, say), even a class the teacher themselves teaches.
By default an exempt enrollment waives every fee on the class, materials included. If you'd rather exempt members still pay one fee (waive tuition but keep charging for materials, for example), open that fee in the class's fee editor and uncheck Waived for exempt members. That choice belongs to the fee itself, so it applies everywhere the fee is used, the same as a fee's name and its sibling-discount setting.
Sibling discount
Co-ops that want to make it cheaper for families with several students to enroll can turn on a sibling discount for class fees. It's off by default, so no co-op's pricing changes unless an admin opts in.
When it's on, the first student a family enrolls in a paid class each term pays full price. Every other student in that family then gets the discount on their discount-eligible fees, for any paid class they enroll in that term, not just the same class as their sibling. Which student counts as “first” is whoever the family happens to enroll first that term; there's nothing to configure beyond turning the discount on.
Tracking pending balances
Any class fee created by flexible-mode enrollment, waitlist promotion, or an admin add with Charge the class fee ticked shows up as a pending charge in the family's ledger. You can see all families with outstanding balances from Admin → Billing.
The Billing overview separates three states so a treasurer never has to guess which is which: owes money (a pending charge is unpaid), paid up (everything billed this term is settled), and not yet billed (the family has no charges this term at all). Filter the list by any of these, or search by either parent's name to find a household.
Recording an offline payment
Families paying online
Families with a pending balance see a notice on their dashboard. From their Payments page they can click Pay now to go through Stripe Checkout for the outstanding amount. Once paid, the charge is marked settled automatically.