Parental consent ledger — every student starts without permission, every relationship opens by explicit opt-in
The consent ledger is per-student and per-instructor-relationship. A student begins with no consent granted to any instructor — parental veto is the default state. A parent must explicitly opt in before a lesson relationship opens, before the instructor can see the student’s profile, and before any communication can be sent. Each consent grant is timestamped, each withdrawal is recorded, and each change carries a reason log the organisation can review. Consent can be withdrawn at any time — on withdrawal, the instructor relationship closes and the instructor’s access to the student’s record is revoked immediately. The ledger is the source of truth for every permission in the system; no other code path overrides it. The consent ledger is built and production-ready.
Consent ledger built · parental veto enforced by default
Auditable instructor vetting — the policy is published, no instructor appears until every check is green
The vetting model is auditable by design: the pipeline records each check type, the date it cleared, and the credential source, and an instructor’s profile does not appear in directory results until every required check in the active vetting policy is green. The vetting policy is published in full — not summarised as a badge or a star rating — so a music director or parent can read exactly what the vetting covers before enrolling. When a check lapses or is revoked, the profile is designed to be suppressed automatically, with no manual intervention. The instructor vetting pipeline and the vetted-profile directory are in active development; they are not built today and we do not list them as production-ready.
Vetting pipeline + directory in development · auditable-policy design
Parent-visible communication — no private instructor-student channel, enforced at the code layer
Every message between an instructor and a student’s family routes through the parent-visible app channel. There is no private student inbox, no direct message path that a parent cannot see, and no SMS or external channel that bypasses the record. The constraint is enforced by the channel architecture — not by a policy reminder. A parent sees every message their child’s instructor sends and every reply their child sends back. An organisation can pull a full communication log for a student-instructor pair at any time. The messaging channel infrastructure is built. Delivery to parent devices runs through the provider key layer, which is honest-off without a configured provider key.
Parent-visible channel built · delivery key-gated
School music director mode — bulk roster import, per-student consent batching, no single-family friction
A school music director imports a class roster in one operation — from a spreadsheet, a CSV, or a supported directory export. Consent collection is batched: the platform generates per-student consent requests that go to each family on the roster, rather than requiring every family to navigate enrollment individually. No lesson relationship opens for any student until that student’s family has returned a consent grant. The director sees a roster-level consent status dashboard: which families have responded, which are pending, and which have declined. Declined families are recorded as declined; no follow-up message is sent automatically. School music director bulk enrollment and the roster import flow are built and production-ready.
School director enrollment built · bulk consent batching built
Per-lesson booking and instructor payout — early-access, charge rail honest-off
The per-lesson booking interface — time-slot selection, instructor availability, session-pack configuration, and the scheduling calendar — is in active development. The platform-fee checkout and instructor payout rail are honest-off: they exist in the platform substrate but are not enabled for live transactions today. There is no live booking confirmation, no live billing, and no live payout. A family navigating the platform today reaches the booking surface in its current state and can see the intended flow, but no charge is initiated and no booking is confirmed through a live payment. When the charge rail is enabled (a founder-gated decision), organisations will be notified.
Booking interface in development · charge rail honest-off