Skip to main content

Data Retention & Deletion Policy

Last updated: March 25, 2026

1. Purpose

This policy defines how long Ludwitt retains different categories of data, when and how data is deleted, and the procedures for post-termination data destruction. It applies to all data collected through the Ludwitt platform, including data from institutional customers. This document is intended for university procurement teams, compliance officers, and data protection personnel.

2. Active Account Data

The following data is retained for the duration of an active user account, unless otherwise specified.

Data CategoryExamplesRetention PeriodJustification
Account credentialsEmail, hashed password, OAuth tokensDuration of accountRequired for authentication
Profile informationDisplay name, avatar, preferencesDuration of accountUser-controlled
Learning progressAccuracy rates, XP, difficulty levels, streaksDuration of accountCore product functionality
Problem attemptsAnswers submitted, correctness, timestampsDuration of accountRequired for adaptive learning algorithms
Achievement dataBadges, milestones, leaderboard positionDuration of accountGamification features
Credit transactionsDeposits, usage, balancesDuration of account + 7 yearsFinancial record-keeping requirements
Subscription dataPlan type, billing cycle, Stripe IDsDuration of subscription + 7 yearsFinancial/tax requirements

3. Sensitive Data (Enhanced Protection)

Sensitive data receives additional encryption and access controls beyond standard protections.

Data CategoryExamplesRetention PeriodProtection
Date of birthUsed for COPPA age verificationDuration of accountAES-256-GCM encrypted at rest
Parental consent recordsConsent status, parent emailDuration of minor's account + 3 yearsEncrypted, audit logged
FERPA audit logsData access records (who accessed what, when)3 years from creationImmutable, append-only

4. Transient Data (Short-Term)

The following data is ephemeral and retained only for the minimum period required for system operation.

Data CategoryExamplesRetention PeriodNotes
AI API payloadsQuestions and answers sent to AnthropicZero — not persistedProcessed in-memory only
Session tokensFirebase Auth tokens7 days maximumAuto-expire, cleared on logout
Rate limit countersRequest counts per user1–60 minutesRedis TTL-based
reCAPTCHA tokensAnti-abuse verificationDuration of requestNot stored

5. Infrastructure & Operational Data

Operational infrastructure generates logs and diagnostic data that are retained on defined schedules.

Data CategoryExamplesRetention PeriodNotes
Server logsVercel function logs30 daysMetadata only, no request bodies
Error reportsSentry error captures90 daysMay contain stack traces; PII scrubbed
Database backupsDaily Firestore snapshots30 days rollingEncrypted, same access controls as production
CI/CD logsGitHub Actions run logs90 daysNo user data

6. Institutional Post-Termination Deletion

Upon termination or non-renewal of an institutional contract, Ludwitt follows a structured, phased deletion process. Institutions can request data export at any time during the active contract period via /api/data-export/download.

PhaseTimelineActions
NotificationContract end dateInstitution notified of upcoming data deletion
Grace period30 days post-terminationInstitution can export all data (final opportunity)
Primary deletion31–60 days post-terminationAll student records, progress data, analytics, and org configuration deleted from production database
Backup purge61–90 days post-terminationData removed from all backup systems as backups rotate (30-day rolling backups)
CertificationWithin 90 daysWritten proof of deletion provided to institution

7. Deletion Certification

Upon completion of data destruction, Ludwitt provides the institution with a signed Certificate of Data Destruction containing:

  • Date range of the deletion process
  • Categories of data deleted
  • Systems from which data was removed (production, backups, logs)
  • Confirmation that no copies remain in any Ludwitt-controlled system
  • Confirmation that sub-processors have been notified (where applicable)
  • Name and title of certifying officer

Institutions may request a deletion certification at any time by contacting dpo@ludwitt.com. Certifications are provided within 90 days of contract termination.

8. Individual User Deletion

Users can delete their account at any time through self-service options:

  • Settings → Account → Delete Account in the platform UI
  • API endpoint: DELETE /api/user/delete-account

Deletion Cascade Scope

When a user account is deleted, the following data is removed:

DataActionTimeline
Account credentialsDeleted from Firebase AuthImmediate
Profile informationDeleted from Firestore users collectionImmediate
Learning progressDeleted from all progress subcollectionsImmediate
Achievement dataDeleted from achievements collectionImmediate
Credit balanceZeroed, remaining balance forfeitedImmediate
Credit transaction historyAnonymized (userId removed), retained for financial recordsImmediate anonymization, 7-year retention
Subscription dataCancelled in Stripe, record anonymizedImmediate
FERPA audit logsRetained (regulatory requirement)3-year retention
Uploaded filesDeleted from Firebase StorageImmediate
Organization membershipRemoved from org member listsImmediate

9. Automated Compliance Deletion

A daily automated process runs at 3:00 AM UTC via the/api/compliance/deletion-process endpoint to enforce retention schedules:

  • Process any pending deletion requests
  • Remove expired data per retention schedules
  • Clean up orphaned records
  • Verify deletion completeness

This automated process ensures that data retention schedules are enforced consistently, even if manual deletion requests are not submitted. All automated deletions are logged for audit purposes.

10. Data Subject Rights

Right to Access (GDPR Article 15 / FERPA)

  • Users can export all their data via Settings → Account → Export My Data
  • API endpoint: GET /api/user/export-data
  • Export format: JSON
  • Response time: Immediate (automated)

Right to Erasure (GDPR Article 17)

  • Users can request deletion through the platform UI or by emailing dpo@ludwitt.com
  • Response time: Within 30 days
  • Exceptions: Data required for legal obligations (financial records, audit logs)

Right to Rectification (GDPR Article 16)

  • Users can update their profile information at any time through account settings
  • Institutions can request corrections to student records via their admin dashboard

Right to Data Portability (GDPR Article 20)

  • Data export available in machine-readable JSON format
  • Institutional bulk export available in CSV and JSON
  • Anonymization option available for research use

11. Sub-Processor Data Handling

The following table describes how each sub-processor handles data retention.

Sub-ProcessorData ReceivedTheir RetentionOur Control
AnthropicEducational content only (no PII)Zero (stateless API)API terms prohibit retention
StripePayment informationPer Stripe's retention policyWe do not store card numbers
Google/FirebaseAll platform dataOur retention policy appliesWe control deletion
VercelRequest logs (metadata)30 daysAutomated rotation
Daily.coVideo/audio streamsDuration of session onlyNo recording by default
SentryError reports90 daysConfigurable, no PII in reports

12. Policy Enforcement

  • This policy is enforced through automated processes (daily deletion cron), Firestore security rules, and application-level controls
  • The Data Protection Officer (dpo@ludwitt.com) is responsible for policy compliance
  • This policy is reviewed and updated annually or when significant changes occur
  • Institutional customers are notified 30 days in advance of any material changes to this policy

For data retention inquiries, contact dpo@ludwitt.com.