Group Lessons Eligibility
Admins control which tutors are eligible to teach group lessons. Eligibility is earned through verified 1:1 teaching activity and can be granted, force-overridden, or revoked from this page.
Where to find it
Navigate to Admin → Group Lessons in the main navigation.
How eligibility works
A tutor qualifies for group lessons when they have completed 20 or more 1:1 lessons (non-trial, non-group, status COMPLETED). Trial lessons and group sessions are excluded from this count.
Only tutors with a verified profile (isVerified = true) appear on this page.
When the threshold is met, an admin must explicitly enable eligibility — it is not granted automatically. This gives the admin team a final review step before a tutor can enter the group lesson marketplace.
Group lessons allow up to 5 students per session. Pricing is automatic — students are charged 60% of the tutor's hourly rate each. Tutors do not configure group pricing manually.
"Race to Group Lessons" tab
This tab shows all verified tutors who are not yet eligible for group lessons.
For each tutor you can see:
- Avatar and name
- 1:1 progress bar — shows completed 1:1 lessons out of 20. Turns green when the threshold is reached, amber at 75% (15+)
- Lesson stat chips — 1:1, Trial, Group, and Total completed lesson counts
- Enable Group Lessons button — active only when the tutor has reached 20 completed 1:1 lessons. Hovering over a disabled button explains the requirement
- ⋯ dropdown — contains the Force Override option
Enabling a tutor (standard path)
- Locate the tutor in the Race to Group Lessons tab.
- Confirm the progress bar shows the threshold has been reached (green bar, "Ready!" badge).
- Click Enable Group Lessons.
- Confirm the action in the dialog.
The tutor is immediately moved to the Verified for Group Lessons tab. They receive a confirmation email and an in-app notification. Both include an encouragement to post on the community feed to announce their availability for group lessons.
Note for tutors: When setting up group lesson availability, each availability slot requires a language to be selected. This determines how the session is surfaced to students searching by language.
Force Override
Force Override lets an admin enable a tutor before they reach the 20-lesson threshold. Use this sparingly — for example, when a tutor is transferring an established track record from another platform.
- Open the ⋯ dropdown on the tutor row.
- Click Force Override.
- Enter a required reason in the text area (e.g. "Transferring from a verified external platform with proven track record"). The confirm button is disabled until a reason is provided.
- Click Force override to confirm.
Force Override fires the same email and notification as a standard enable. The reason is recorded in the audit log.
"Verified for Group Lessons" tab
This tab shows all verified tutors who are eligible to teach group lessons. For each tutor you can see their name, avatar, lesson stat chips, and a Revoke button.
Revoking eligibility
- Locate the tutor in the Verified for Group Lessons tab.
- Click Revoke.
- Enter a required reason in the text area (e.g. "Account under review"). The confirm button is disabled until a reason is provided.
- Click Revoke access to confirm.
The tutor is moved back to the Race to Group Lessons tab. They receive an email notifying them of the change and an in-app notification. The reason is recorded in the audit log.
What happens when eligibility is toggled
Every enable or revoke action triggers two side-effects automatically:
| Side-effect | Enabled | Revoked |
|---|---|---|
| Email to tutor | Celebratory eligibility email with group size and pricing details, and encouragement to post on the feed | Informational revocation email |
| In-app notification | Eligibility message with prompt to share on the feed | Eligibility updated message |
Both side-effects are best-effort — if an email or notification fails, the eligibility change is still saved successfully.
Sorting tutors
Use the Sort by (desc) dropdown to reorder tutor rows in either tab:
| Option | Sorts by |
|---|---|
| 1:1 (default) | Completed 1:1 lessons, highest first |
| Total | Total completed lessons, highest first |
| Trial | Completed trial lessons, highest first |
| Group | Completed group lessons, highest first |
Sort order is always descending. The same sort applies to both tabs simultaneously.
Audit log
Every eligibility change is recorded in a TutorEligibilityLog entry. The log captures:
| Field | Description |
|---|---|
action | ENABLED, FORCE_OVERRIDE_ENABLED, or REVOKED |
adminUserId | The admin who performed the action |
metadata | JSON blob with context for sensitive actions (see below) |
createdAt | Timestamp of the action |
Metadata shape by action:
| Action | Metadata |
|---|---|
ENABLED | null — standard threshold-based enable needs no extra context |
FORCE_OVERRIDE_ENABLED | { "lessonCountAtTime": N, "overrideReason": "…" } |
REVOKED | { "overrideReason": "…" } |
Reasons are required in the UI and stored verbatim — write clear, factual justifications.