Student data privacy, in plain words.
what classes collect, who sees it, and the paperwork
At a glance
- A class’s owner can add co-teachers, who see the same class and can send reminders, share reports and score free responses. Connecting Google Classroom or an LMS and sending grades to them stay with the owner.
- Every course page works without an account. A class needs a student account only so the student’s work can reach the teacher.
- Classes are for students 13 and older. We ask at the join page and do not store the answer.
- The teacher sees one course’s progress and the name the student typed. Never the student’s email, other courses, notes, study assistant questions, streak or study time.
- No ads, no selling, no profiling. Student data is used only to run the class for the teacher and the student.
- No parent contact details are collected. Families get a printout or an expiring link the teacher or student hands over.
- Deletion on request within 30 days, and students can delete their own account at once.
- We are willing to sign the Student Data Privacy Consortium’s National Data Privacy Agreement (NDPA) or your state’s version. A draft with our exhibits filled in is below.
This page explains the teacher classes for districts. The privacy policy covers the whole site and is the one that governs; this page adds nothing to it and takes nothing away.
What is collected
| Data | When | Why | Who can see it | Kept until |
|---|---|---|---|---|
| Account email | When the student makes an account (Google sign-in or an emailed code) | Signing in; a reminder email only when the teacher presses Send | Not the teacher. Supabase stores it; Resend delivers the email | Until the account is deleted |
| Name in the class | Typed by the student when joining | So the teacher knows who is who | The teacher and any co-teacher | Until the student leaves, is removed, or the class or account is deleted |
| Progress summary in the class’s course | Sent by the student’s browser while they are in the class, at most once a minute | Scores, mastery by topic and unit, assignments done and when, questions missed or flagged, the answer picked on a multiple-choice question, when they last studied | The teacher (and a family report link, if one is made) | The latest copy only, until the membership ends |
| Free-response answers sent to the teacher | Only when the student presses Send | Teacher scoring against the rubric, with a comment back to the student | The teacher; the student sees the score and comment | Until the membership, the assignment or the class ends |
| Family report links | When a teacher or the student makes one | A read-only report for a parent or guardian | Anyone holding the link, until it expires (1 to 30 days) | Only a one-way hash of the link is kept; deleted when the membership ends |
| Reminder log | When a teacher (or co-teacher) sends a reminder | The limits: one reminder a day per student, 200 a day per teacher | LevlPrep’s operator only, never teachers or students | 30 days, cleared hourly |
| “Stop” choices | When someone presses the stop link in a reminder | Not sending them more | LevlPrep’s operator only, never teachers or students | Until the account is deleted |
| Join link posted in Classroom (only when the teacher presses “Post the join link in Classroom”) | When the teacher presses the button, at most once every 10 minutes per class | One Classroom announcement in the teacher’s linked class: the class name, the join link and the class code. No email is sent; LevlPrep keeps only the time of the last one | The students and teachers in that Classroom class | In Classroom until the teacher deletes it there; the time is replaced by the next one |
| Class Premium quote requests | When a teacher sends the quote form | Answering the request: name, school, numbers typed in, and the account’s email for the reply | LevlPrep’s operator only, never teachers or students | Until the request is handled, or at once when the account is deleted |
| Google Classroom link (only if the teacher connects it) | When the teacher connects and checks the roster | The teacher’s Google token (encrypted), their Google email, the Classroom class id, each matched student’s Classroom user id, posted coursework ids. A student is matched only when they signed in to LevlPrep with Google and that Google account is the one in the roster. LevlPrep does not read students’ email addresses from Classroom; roster names are shown to the teacher and not stored | LevlPrep’s operator only, never teachers or students | Until the teacher disconnects, the membership ends or the class or account is deleted |
| LMS link (only if the school adds LevlPrep to Canvas or Schoology) | When a student opens LevlPrep work from the LMS and signs in | The LMS user id and the gradebook column address, so scores can go back; launch ids for one day, so a launch cannot be replayed | LevlPrep’s operator only, never teachers or students | Until the membership ends or the class or account is deleted |
Outside classes, the site-wide items in the privacy policy apply to every visitor: cookieless analytics (which signed-in students carry as a one-way account tag, and which Do Not Track turns off), anonymous answer totals, error reports and, for a signed-in student, a synced copy of their progress.
FERPA
When a school or district signs a data privacy agreement with us, we act under its direct control as a school official with a legitimate educational interest: we use education records only to provide the classes, do not re-disclose them except to the subprocessors listed below for that purpose, and delete them as the agreement says. Parents and eligible students who want to see or correct a record go through the school, and we help the school answer within the time the agreement sets.
A teacher can also use the free classes without a district agreement. Then it is the teacher’s and school’s decision whether that fits local policy; we handle the data the same way either way.
COPPA and age
LevlPrep is not directed at children under 13, accounts need users to be 13 or older, and classes ask students to confirm it before joining. We do not rely on a school’s consent on behalf of parents under COPPA, because classes are not for children under 13. If we learn an account belongs to a child under 13, we delete it; a parent or school can tell us at [email protected].
Retention and deletion
- A student leaving a class, or a teacher removing them, deletes that membership’s summary, sent answers, scores, report links and Classroom or LMS ids at once.
- Deleting a class deletes its assignments, memberships and everything attached to them. Deleting an account deletes all of these with it, and any Class Premium quote request it sent.
- The reminder log is cleared of anything older than 30 days every hour; expired report links and LMS launch ids go at the same time.
- A school, teacher or parent can email [email protected] to have what we hold for a student’s address deleted; we do it and confirm in writing within 30 days.
- At the end of a district agreement, we delete or hand back the district’s student data as its Directive for disposition (Exhibit D) says.
- Payment records that Polar keeps as the seller, and the one-way hashes the privacy policy lists, are not class data and follow that policy.
Security
- Every database table has row-level security on; the browser reaches class data only through functions that check the signed-in person teaches the class or that the data is their own.
- The keys that can read past those checks stay on our server (a Cloudflare Worker), never in a browser. Google tokens are encrypted before they are stored; report links are stored as one-way hashes.
- All traffic is over HTTPS. We do not hold a security certification such as SOC 2; if your district needs a questionnaire answered, send it.
- If student data is ever exposed, we tell the district in writing, with what happened and what we are doing, within the time the signed agreement sets.
Subprocessors
| Service | What it does | Student data it handles |
|---|---|---|
| Supabase | Accounts and the database | Everything in the table above, stored |
| Cloudflare | Our server (a Worker) and the study assistant’s AI model (Workers AI) | Passes requests through; the assistant gets the question asked, not class data |
| Resend | Email delivery | The address and the text of a sign-in email or a reminder the teacher sent |
| Umami Cloud | Cookieless analytics | Page views and milestones, with a one-way account tag for signed-in students |
| Polar | Sells Premium (merchant of record) | Only if someone buys a pass: what they type at checkout |
| GitHub Pages | Hosts the site | Sees requests for pages, like any web host |
| Google Classroom, only if the teacher connects it; Google sign-in, only if the student chooses it | Roster (names and Google account ids, no email addresses), coursework, the join-link announcement the teacher posts and the grades the teacher sends; sign-in | |
| Your LMS | Canvas or Schoology, only if the school adds LevlPrep | Launch ids and the scores the teacher sends |
| Anthropic | The AI free-response grader, only when it is switched on (off for students today) | The free-response answer being graded |
We tell districts with a signed agreement before adding a subprocessor that handles student data.
Data privacy agreement
This is a draft to fill in, not a signed agreement. It follows the structure of the Student Data Privacy Consortium’s National Data Privacy Agreement (NDPA) and fills in LevlPrep’s exhibits from what the site actually does. The agreement that binds anyone is the SDPC’s official text (or your state’s version) with these exhibits, signed by both sides. LevlPrep’s signature is added by its owner after review; nothing here is signed by LevlPrep. This is not legal advice. The official templates and the registry of signed agreements are at sdpc.a4l.org.
AP® is a trademark registered by the College Board, which is not affiliated with, and does not endorse, this site.