Instructor Pay
Built-in earnings tracking and payout ledger for instructors. Configure a default pay rule per instructor, optionally override it for a specific schedule, watch earnings accrue from confirmed enrollments, and record payouts when you pay the instructor out.
How pay rules work
Each instructor has a default rule with two parts: kind and value. Three kinds are supported:
- Flat $ per schedule — paid once per schedule regardless of headcount. Useful for a fixed teaching fee.
- $ per confirmed student — multiplied by the count of enrollments in
CONFIRMEDstatus. Cancellations and no-shows don't count. - % of enrollment revenue — a percentage 0–100 of the gross
amountPaidon confirmed enrollments. Out-of-range values are clamped.
Each schedule can override the instructor's default — a per-engagement rate for a one-off premium event, a discounted co-teaching arrangement, etc. The override only applies if both kind AND value are set; otherwise the instructor default is used. When neither side has a complete rule, earnings stay at $0 and the row is flagged with an amber “No rule configured” notice in the earnings table.
Recording payouts
From /admin/instructors/<id>/pay you can:
- Edit the instructor's default rule.
- See every assigned schedule with its computed earnings, rule label, revenue base, student count, and payout status.
- Select one or more unpaid schedules and Record payout — pick the method (cash, e-transfer, cheque, EFT, other), the paid-on date, an optional reference (cheque #, e-transfer confirmation), an optional note, and an optional statement window.
- Each schedule's amount is snapshotted at the current rule when the payout is recorded — later rule edits don't move historical numbers, and editing an already-paid schedule's override is blocked until the payout is deleted.
- Past payouts can be deleted to correct mistakes; the linked schedules return to the open balance.
Statements
Three ways to produce a printable HTML statement (use your browser's “Save as PDF”):
- Per payout — click “Statement” on any row in the payout history. Lists exactly the schedules closed out by that payout, with method and reference at the top.
- Custom period — pick from/to dates on the “Statement for period” panel to generate a draft covering every schedule in the window (paid or open) for the instructor's own records.
- Default 30-day — opening the statement route without any params gives the last 30 days.
The platform doesn't move money — payouts are recorded after you hand over cash or send an e-transfer outside the system.
What the instructor sees
Instructors get a self-serve view at /instructor/earnings: their own open balance and lifetime paid-out totals, every assigned schedule with its earnings status, and the payouts they've received. Read-only — only admins configure rules and record payouts.
Permissions
- MANAGER and ADMIN — full access: edit rules, record payouts, delete payouts.
- INSTRUCTOR — sees only their own earnings page.
- STAFF, BOOKKEEPER, CONTENT_EDITOR, CUSTOMER — no access.