Data Handling & Privacy

Our Commitment

The platform authenticates no students and collects no verified student identity. Any name shown is a self-entered, unverified display name with no link to institutional identity, records, or grades. AI conversation content is processed through the institution's own AI provider account.

No student email, student ID, demographic data, or grade is stored in any sub-processor system. IP addresses are processed transiently for rate limiting and expire within 60 seconds. Conversation content is routed through each institution’s own AI provider relationship (bring-your-own-key).

Design Constraints

The following constraints are enforced by design and must hold true for this privacy posture to remain valid:

  1. No authentication of students. The student runtime never verifies identity. There is no roster, no SSO, no student account.
  2. Name is an unverified display name. The student types a free-text name used only to label their session and messages in the UI. It is not validated, matched, or linked to any institutional record.
  3. No student record fields. The system collects no email, student ID, demographic, or grade data for students. IP addresses are processed transiently to rate-limit the student endpoints and expire within 60 seconds.
  4. No grade/assessment linkage. Conversations are not tied to grades or institutional outcomes.
  5. BYO-key data flow. AI request/response content is sent to the institution's own provider account (their Claude/OpenAI/Gemini key), not a vendor-owned account.

What Is Stored

Sub-Processors

Sub-ProcessorRoleData CategoriesLocationNotes
ClerkAuthentication & organization managementInstitution admin and instructor accounts only (no student accounts)United StatesStudents are never authenticated; Clerk handles only institutional (admin/instructor) identity.
NeonDatabase (PostgreSQL)Simulation definitions + display-name-only conversation transcripts (no verified student identity)United StatesData encrypted at rest (platform-level); TLS in transit.
VercelHosting & edge deliveryRequest/response data in transit (transient only, no persistence)United StatesTLS enforced; no student data at rest on Vercel.
StripeBilling & subscription managementInstitution billing data (payment methods, invoices); no student billing dataUnited StatesOnly institution-level billing contact; no student billing data.
UpstashRate limiting (Redis)Request counters keyed by IP address; no names, no message content, no account dataUnited StatesKeys hold an IP address and a request count for the length of the rate-limit window (60 seconds), then expire automatically. Used to protect the student chat and report endpoints from abuse.
Configured AI Provider (Anthropic / OpenAI / Google)AI conversation processingConversation content (student messages + AI responses), via institution's own API keyPer the institution's own provider accountContent is processed through the institution's own provider account and key — not a vendor-managed key.

Scope Boundary

This posture is valid as long as students remain anonymous, which is the committed product direction: professors share a link, students self-identify with an unverified display name, and no LTI, roster, or grade integration is built. FERPA compliance (DPA, retention, audit, the "school official" exception) would only become necessary if a future decision reintroduced authenticated student identity — currently out of scope.

Last updated: 2026-09-09

Data Handling & Privacy · Interactive Case Study Builder