Set up instructor contracts (hourly, flat, overage)

Three contract models in one place: hourly tiers with optional overage, flat / per-class fees, and a ledger of every overage charge.

1

Open Settings → Contracts

Three tabs: Hourly plans / Flat & per-class fees / Overage charges.

2

Hourly plans

Create subscription plans (e.g. "10h / month — $300"). For each plan, choose either: Block further bookings once the monthly limit is reached, OR Allow overage and charge per extra hour ($/hour rate you set).

3

Flat & per-class fees

Three flavours on the same tab: Flat monthly (fixed amount each month), Per class (rate × number of classes taught), or Per hour (rate × actual class minutes that month — designed for ad-hoc renters who use the room as-needed). All settle manually via the monthly invoice report.

4

Overage charges ledger

See every overage with status (pending / charged / failed). Waive any one of them — if it's already charged, the refund happens automatically.

5

Assign to instructors

On the instructor's edit page, open the Contract section and choose No contract, Hourly plan, or Flat / per-class fee. They're billed monthly through Stripe.

6

Monitor usage on the instructor profile

Once assigned, the instructor's profile page shows a Contract Hours card: a stacked progress bar (blue for classes, teal for room bookings) against the contracted amount, a breakdown table, and mini bars for the previous three months. Use the arrows to browse past months.

Tips
  • Hours are tracked in 15-minute increments automatically.
  • When an instructor books a room that would put them over their tier, they get a confirmation modal saying "This booking will cost you $X in overage — proceed?" (explicit consent required).
  • At month-end, overage is auto-charged to their card on file via Stripe.
  • Instructors see "This month: 12h used of 10h, estimated overage $50" on /instructor/membership.
  • Per hour vs. Hourly plan: the new "Per hour" option in Flat & per-class is for renters with no monthly commitment ($X × hours taught, billed manually). "Hourly plan" is a Stripe subscription with a fixed monthly hour pool — pick that one when the instructor has a predictable monthly schedule.
  • Per hour now includes ad-hoc room bookings (instructor-driven room rentals that don't belong to a class) in addition to class session minutes — the monthly report sums both.
  • Invoice discounts: open a draft invoice from Settings → Instructor Invoices and click "Apply code" to subtract a percent or fixed amount. The code is recorded as a redemption when you click "Send".
  • 80% alert: instructors who pass 80% of their monthly hour pool get an automatic heads-up email with remaining hours and (when applicable) the projected overage charge. Fires once per month per instructor.