Skip to main content

For Schools › Data inventory

Data inventory

Every piece of information The Lab Games stores about a person, taken from the site's database design.

Where: “Database” means the Cloudflare D1 database behind thelabgames.org/api, in the United States. “Device” means the user's own browser storage. Retention: “Account” means kept until the account is deleted, by the user or after 24 months without use.

Accounts

FieldPurposeStoredWho can see itRetention
UsernameIdentity on the siteDatabasePublic (leaderboards); user; their teachers; adminsAccount
Country code (optional, 2 letters)Flag on leaderboardsDatabasePublic (as a flag)Account; user can clear it
Avatar skin and skin toneCharacter in games and on leaderboardsDatabasePublic (leaderboards, games)Account
Account type (learner or teacher); admin flagWhat the account can doDatabaseUser; adminsAccount
Confirmed 13+ (yes) and confirmation timeAge requirement. The birth date is never stored.DatabaseAdminsAccount
Onboarding, creation and last-active timesSetup; inactivity deletionDatabaseUser (download); adminsAccount
Google account ID, email, nameSign-in (keyed on the Google ID); teachers recognize studentsDatabaseUser; teachers of classes joined; adminsAccount; removed on unlink
Lab Token balanceAvatar shopDatabaseUser; adminsAccount
Owned skins, with purchase timeAvatar shopDatabaseUser; adminsAccount
Token ledger (each change: amount, earned/spent, reason, game, time)Checking the token systemDatabaseUser (download); adminsAccount
Game sessions (game, start and claim time)Server-checked Lab Token awardsDatabaseUser (download); adminsAccount; unclaimed ones are deleted after 2 days
Username removal count, and whether the account may be a teacher or file reportsModerationDatabaseAdminsAccount
Hidden-from-leaderboards flagA reported name is hidden until reviewedDatabaseAdminsAccount

Classes and schoolwork

FieldPurposeStoredWho can see itRetention
Class name, period, school year, class code, join settingsRunning a classDatabaseThe teacher; admins. Students see the class and teacher name.While the teacher's account exists (archived on teacher deletion)
Name on the roster (typed by the teacher or the student)Teacher's roster and gradebookDatabaseThat class's teacher; the student; adminsUntil the student leaves or is removed, or the account is deleted
Student ID number (optional)Class-code sign-in; matching grades to a school gradebookDatabaseThat class's teacher; admins. Never shown to other students.Same as above
Approval status; joined and first-sign-in timesSelf-join approvalDatabaseThat class's teacherSame as above
Turned-in results: activity, score, maximum, first-attempt score, attempt number, start/submit/receive times, duration, activity version, and the activity's reported details (such as answers)Saved progress; teachers' gradebooksDatabaseThe student; teachers of classes they join; adminsAccount (kept if the student leaves a class)
Which attempt counts (a teacher's choice)GradebookDatabaseThat class's teacherUntil the student leaves the class

Games

FieldPurposeStoredWho can see itRetention
Best score per game board, level reached, run length, dateLeaderboards; Games tabDatabasePublic under the username (with flag and avatar)Account
Recent score-post countsStopping automated score spamDatabaseNobody (automatic)Minutes to an hour

Moderation records

FieldPurposeStoredWho can see itRetention
Username reports (name, reporter, time, decision)Admin review queueDatabaseAdminsDeleted 24 months after the report is resolved, or sooner with the reported account
Admin log (who did what, when, to which account)AccountabilityDatabaseThe site owner only24 months
Blocked usernames (the name only)A removed name can't be reusedDatabaseAdminsPermanent

Site improvement records

FieldPurposeStoredWho can see itRetention
Teacher suggestions: original message, attribution, optional reply email, manual activity links, category and workflow statusImproving activities and addressing teacher feedbackDatabaseSite adminsDeleted with the teacher account; linked triage goes with the suggestion
Explicit test-account and internal-class analytics exclusions, with reasonSeparating test records from adoption reportsDatabaseSite owner onlyUntil removed or the referenced account/class is deleted
Owner-entered release date, version and change descriptionObservational activity release comparisonsDatabaseSite owner onlyKept with the owner account
Owner-only product bookmarks, notes, status and resolution summary (activities, aggregate reports or suggestions)Planning product improvements; no student links or profilesDatabaseSite owner onlyKept with the owner account; suggestion-linked items are deleted with the source suggestion

Security and technical

ItemPurposeStoredWho can see itRetention
Sign-in cookie (signed; not readable by page scripts)Staying signed inDeviceNobody7 days
Helper cookies: sign-in in progress; age retry block; class sign-in without an accountSign-in stepsDeviceNobody30 minutes; 24 hours; 180 days
tlg_in=1 hint cookieTells pages a session existsDeviceNobody7 days
Attempt counters keyed by a hashed connecting address (never the raw address)Rate limits on sign-in, account creation and class codesDatabaseNobody (automatic)Minutes to an hour
Anonymous daily counts (“page viewed” by page address, “sim opened,” “game finished,” most people on the site at once)Usage statisticsDatabaseAdminsTotals only; no identifier is ever stored
Live “on the site now” signal: a random code for the browser tab (made fresh on each page and never saved on the device), the page address, and signed in yes/no. Sent about once a minute while the page is on screen; stops when the tab is hidden or closed.Showing admins how many people are on the site right nowDatabaseAdmins (as counts only)Deleted within 10 minutes
Signed-out visitor estimate: a one-way hash of IP address + browser name and version + a random daily value. The IP address and browser details themselves are never stored.Counting different signed-out visitors per day, without cookiesDatabaseNobody (automatic); admins see the daily totalThe hashes and the daily value are deleted at midnight UTC; only the daily total is kept
Daily number of signed-in accounts (a count, not which accounts)Usage statisticsDatabaseAdminsTotals only
Browser storage: display name, queued turn-ins, game settings, local best scoresWorking offline; settingsDeviceThe userUntil cleared
Hosting providers' server logsOperating the serviceNetlify, CloudflareProviders; site operatorUnder each provider's own policy

Teacher accounts also store the Google profile picture link, shown in the teacher's own header. See the Privacy Policy for download and deletion.