Skip to content

Plans & subscriptions

Do this first. You cannot add a single school until at least one plan exists — the system will refuse and send you here. About 15 minutes.

No plan means no schools

Try to add a school before creating a plan and you get:

Please create a subscription plan before adding a school.

This is the first thing to do after installing. Even if you never charge anyone, you still need one plan for schools to sit on.

What a plan is

A plan is what a school is signed up to: a name, a price, and some limits. Each school is on exactly one.

Sidebar → Plans

Creating a plan

FieldMeaningNotes
NameWhat schools see — "Starter", "Standard", "Enterprise"Must be unique
Max studentsThe student count this plan is sold forSee the warning below
Price monthlyMonthly priceEnter 0 for a free plan
Price yearlyYearly priceUsually 10–12 months' worth
Storage limit (MB)Space the plan is sold withMinimum 100
DescriptionShort summaryOptional
FeaturesBullet points shown to schoolsOptional
Trial plan + trial daysMarks this as a trial, 1–365 daysOptional
PopularHighlights it in the listOptional

Limits are shown, not enforced

Max students and storage limit are displayed to schools and shown on staff dashboards — but nothing in the system blocks a school from exceeding them.

A school on a 500-student plan can add 600 students. Nobody is stopped and nothing warns you.

Treat these as commercial limits you check and act on, not technical ones. If you need them enforced, that is a development task.

A sensible starting set

PlanMax studentsMonthlyFor
Trial50014-day evaluation, marked as a trial
Starter300your priceSingle small school
Standard1000your priceTypical school
Enterprise5000your priceLarge school or a group

Yearly priced at about ten months' monthly is the usual way to reward paying up front.

You can add plans later, and move a school between them at any time.

What happens when a subscription runs out

This is automatic, and it runs off the cron job. Three stages:

StageWhat happensDefault timing
ReminderThe school is emailed that renewal is due7, 3 and 1 days before
ExpiredStatus changes to expired, school notifiedOn the end date
SuspendedStatus changes to suspended, school notified3 days after expiring

Both timings are configurable in settings — the reminder days and the grace period length.

No cron job means no expiries at all

Schools whose subscriptions ended will stay active indefinitely, with no reminders sent, because this runs on the scheduler. Another reason the cron job matters.

Setting a school's end date

When you create a school you can set a custom subscription end date. That is what these three stages count from.

For a school paying you outside the system — bank transfer, cash, an invoice — just extend the end date when they pay. The subscription machinery does not care how the money arrived.

Renewals paid through the system

If you have a payment gateway configured, schools can renew themselves: they pay, the order is marked paid, their end date extends and the status returns to active without you touching anything.

Common questions

Can I change a plan's price later? Yes. Existing schools stay on the plan and pick up the new price at their next renewal.

Can I move a school to a different plan? Yes, at any time, from the school's record.

What if I never want to charge anyone? Create one plan at price 0 and set end dates far in the future. Everything else works normally.

Does a suspended school lose data? No. Suspension blocks access; nothing is deleted.