EverJoy Privacy Policy — Supplemental Schedules
Version: 2026-07
Parent Document: 01-Privacy-Policy.md
This supplement provides additional detail referenced by the EverJoy Privacy Policy.
EverJoy operates a shared-database, multi-tenant architecture with logical isolation enforced through PostgreSQL Row-Level Security (RLS).
| Scope | Identifier | Isolation Mechanism |
|---|---|---|
| Family | family_id | All family members share family scope |
| Child | student_id | Access via owns_student() or family membership |
| School | school_id | School affiliation on child profile; partner assignments |
| Partner | capture_partner_id | Partner-scoped via partner_serves_school() |
| Platform | N/A | Platform admin bypass with audit logging |
Parents can SELECT/INSERT/UPDATE/DELETE only on:
profiles rowstudents where family_id matches or parent_id matchesmemories where student ownership verifiedconsent_records for their profileParents CANNOT:
student_roster (server-side matching only)Capture Partners can SELECT on:
artifacts for assigned schools onlycapture_jobs for their partner IDpartner_school_assignments for their assignmentsServer-side API routes use Supabase service role for:
Service role is never exposed to client-side code.
| Category | Trigger | Provider | Data Included |
|---|---|---|---|
| Account verification | Signup | Postmark | Email, verification link |
| Password reset | User request | Postmark | Email, reset link |
| Billing receipt | Stripe webhook | Postmark | Email, amount, plan |
| Consent update | Policy change | Postmark | Email, policy link |
| Deletion confirmation | Deletion request | Postmark | Email, confirmation link |
| Capture notification | Artifact captured | Postmark | Email, child name, count |
Transactional email logs retained per provider policy (typically 45 days). EverJoy stores delivery status metadata for 1 year.
SMS adapters may be configured for critical notifications. SMS consent will be collected separately if implemented.
When NEXT_PUBLIC_POSTHOG_KEY is configured:
Analytics events do NOT include:
EverJoy may use aggregated, de-identified analytics for:
Aggregated data cannot identify individual users or children.
EverJoy uses Stripe for:
Payment metadata retained 7 years for tax and accounting compliance.
EverJoy is operated from the United States with primary focus on California schools and families.
If you access the Service from the EEA or UK:
EverJoy does not currently offer data localization outside the United States. Data is processed in U.S.-based cloud infrastructure.
| Activity | Purpose | Data Categories | Recipients | Retention |
|---|---|---|---|---|
| Account management | Provide Service | Account data | Supabase | Account + 365 days |
| Memory storage | Core feature | Photos, documents | Supabase Storage | ~7 years |
| AI classification | Organization | Memory content | OpenAI | ~7 years |
| Partner capture | School scanning | Artifact images | Supabase, Partner | ~7 years |
| Roster matching | Activation | Roster data | Supabase | Agreement + 90 days |
| Billing | Subscriptions | Billing metadata | Stripe | 7 years |
| Analytics | Improvement | Usage events | PostHog | Per provider |
| Communications | Email address | Postmark | 1 year metadata | |
| Audit | Security | Action logs | Supabase | 3 years |
EverJoy conducted an internal privacy impact assessment covering:
| Processing | Risk | Mitigation |
|---|---|---|
| Child photo storage | Unauthorized access | Private buckets, signed URLs, RLS |
| AI processing of child content | Third-party exposure | Separate consent, OpenAI DPA, TTL URLs |
| Roster DOB matching | Sensitive data exposure | Server-side only, no parent browse |
| Partner capture | Third-party access | Certification, scoped access, anonymous labels |
Privacy impact assessment reviewed annually or upon material feature changes.
Supplemental Schedules version 2026-07.