Skip to content
Learn Vedic Math

Data retention

Draft under review. This text is being checked by a lawyer and may change before Learn Vedic Math is launched.

Owner of this policy: the information security coordinator, Madhav Srinivasan, the site's operator (see how we keep the site secure). Reviewed at least once a year, and whenever what the site collects changes.

Principles

  1. Keep as little as possible, for as short a time as possible.
  2. Prefer the Player's device to any server. What is only on the device is the device owner's to keep or delete.
  3. No information from a child under 13 is kept on any server we control, beyond what our host and analytics process for internal operations and the anonymous feedback taps described below (fixed choices, the Mode and the day; no free text, no identifier, no age; ADR 0017).
  4. Deletion is automatic wherever the tool allows it, so it does not depend on someone remembering.

What we keep, why, and for how long

InformationWherePurposeBusiness needDeletedHow
Players, progress, settings, Device boardThe Player's browser (localStorage)Let the Player keep playingThe game does not work without itWhen the Player is removed or site data is clearedBy the device owner (Me page or browser settings)
World board entry: Nickname, avatar color, score, time, expiry, random ID (Players 13 and older only)Google Firestore, in the site's own Firebase projectShow the World boardBoards are part of the gameNo longer readable once it expires, 30 days after its last update (the rules refuse reads of any Board older than 28 days, which is before any of its entries can expire, and the app hides expired entries too); then physically deleted by Firestore's TTL clean-up, which runs in the background and usually finishes within a few days of expiryFirestore TTL policy on exp; rules refuse longer exp and older Boards
Anonymous sign-in record for that random ID (Players 13 and older only)Google Firebase AuthenticationLet a Player update their own entryStops one Player from overwriting anotherWorld boards are switched off for now, so no such record exists. When they are switched on, this row will say when these records are deletedTo be set with the Firebase project, before World boards are switched on
App Check / reCAPTCHA assessmentGoogleKeep scripts from posting fake scoresFair BoardsWe do not keep it; Google keeps it under its terms for reCAPTCHA Enterprise. World boards are switched off for now, so none is made todayGoogle
Request logs (IP address, browser, path)CloudflareDeliver pages, stop attacksRunning a websitePer Cloudflare's standard log handling; we do not export or store themCloudflare
CSP reports (directive, blocked origin, page path, browser family)Cloudflare Workers LogsFind security problemsSecurityAfter Workers Logs' retention period, a few days (Cloudflare sets it by plan)Automatic
Cloudflare Web Analytics (aggregate page loads, no cookies)CloudflareKnow traffic and speedRunning and improving the siteKept by Cloudflare as totals, under its own retention; no per-person data existsCloudflare
GoatCounter counts (fixed-word events, path, referrer, browser, country, screen size; no IP stored, no cookie)GoatCounterLearn which parts help people learnImproving the sitePer-visit records: the time is still being set in GoatCounter's "data retention" setting, and this policy will say it once it is; totals kept as totalsGoatCounter setting
Talk with the Family: a message (the Skill, the question's numbers, the words of that visit) and its reply (Players 13 and older who turned it on)Our Worker (in memory, for the request), then Anthropic (the Claude model, under its API terms)Let Bolt and the Family answer a question about the methodHelp that fixed lines cannot giveNot kept: discarded once the reply is returned; the Worker logs one fixed word per message and nothing of what was saidNothing stored
Talk with the Family: the session ticket from the Turnstile checkThe Player's browser (sessionStorage), in a request headerProve the bot check passedKeep scripts from running up the bill30 minutes, or when the browser session ends; never stored on a serverThe browser; the Worker only verifies it
Talk with the Family: the count of messages per connection address this hour (the address only as a keyed hash whose key changes every day)Our VoiceLedger Durable Object (Cloudflare)About 20 messages an hour per addressBound the cost of the AI model inside the daily and monthly capsWhen its hour ends (deleted at the next request after that)Automatic (expiry on each row)
Turnstile assessmentCloudflareKeep scripts from sending messagesBound the costWe do not keep it; Cloudflare keeps it under its terms for TurnstileCloudflare
Feedback answers: the Mode (Explorer, Challenger or Pro), the day (never a time), the fixed choices tapped, and, from Players 13 and older only, an optional note with email addresses, phone numbers and long numbers removedCloudflare D1 (database learnvedicmath-feedback), behind our WorkerLearn what is fun, what is too hard and what to build next, and hear about problemsDeciding what to fix and build12 months after the answer's day. Any single answer sooner, on request or when the owner sees a note that names a person. D1's Time Travel can restore the database to a point in its own window (7 days on the Free plan, 30 days on the Paid plan), so a deleted answer is gone for good at most that long after its deletionAutomatic: a daily scheduled job deletes every answer older than 12 months; the owner deletes single answers on the results page
Feedback: the count of sends per connection address for the day (the address only as a keyed hash whose key changes every day)Cloudflare D1 (feedback_quota)About 20 sends a day from one addressKeep scripts from flooding the answersAfter its day: deleted at the next send and by the daily jobAutomatic
Feedback: the session ticket from the Turnstile check (Players 13 and older who write a note)The Player's browser, in a request headerProve the bot check passed before a note is acceptedKeep scripts from sending notes30 minutes, or when the browser session ends; never stored or logged on a serverThe browser; the Worker only verifies it
Hand-off payload from sbmadhav.comOnly in the URL fragment, on the deviceMove progress to the new siteOne-time moveRemoved from the address bar at once; never sent to a serverImport page
Emails to privacy@, hello@, security@Cloudflare Email Routing (passes through), then the owner's GmailAnswer questions and requestsRequired contact for parents12 months after the conversation ends, or 30 days after a deletion request is completed, whichever is soonerOwner deletes; reviewed each quarter
Old site's World board data (sbmadhav.com, project sbmadhav-vedic-math)Google FirestoreNone after the moveNoneWrites stop when the old address starts sending visitors here; the project is deleted when the move is finished (Google purges it 30 days later)Owner, as part of the move

There are no backups of any of the server-side data above, and no copies outside the tools listed, apart from D1's own Time Travel window for the feedback answers (named in its row).

Requests to delete

A parent, or a Player 13 or older, can ask at privacy@learnvedicmath.com for World board entries to be deleted (give the Nickname, color and date). We delete them, confirm by email, and then delete the email thread within 30 days. There is never anything server-side for a Player under 13 except anonymous feedback taps, which hold nothing that ties them to a Player and are deleted after 12 months.

Review

At each annual review (part of our security program) the coordinator checks every row against what the site really does (the game's note for grown-ups, the Firebase set-up, the Firestore deletion setting, the GoatCounter setting), and updates this policy and the published version together.