Studying for the SAT?

Join free live tutoring classes on Schoolhouse.
Join free

LEGAL

Privacy Policy

Last updated: September 20, 2026

This document is based on inspection of the CrystalSAT GitHub repository and describes the application’s current implementation as reflected in that code. It is not legal advice. Before publishing, the CrystalSAT team should confirm provider-level practices, retention periods, operational details, and any legal requirements that apply to the organization and its users.

A. DATA INVENTORY

Current application data map

Data CategoryExact Data CollectedSourceRequired / OptionalWhy We Collect ItWhere StoredWho Can Access ItRetention
AccountEmail; account/authentication identifier; account roleRegistration/authenticationRequired for accountAccount creation, login, authenticationBase44 auth/account systemAccount holder and authorized platform/admin systemsExact period not specified
ProfilePhoto/avatar URL; presence status; Google Meet URL; notification preferences; push subscriptions; survey-completed flagUser/account systemMostly optionalProfile, communication, notifications, team functionalityBase44 User recordDepends on field and application permissionsExact period not specified
Mastery / educational progressDiagnostic score/answers; study-plan answers/progress; test answers/scores; topic/skill stats; missed/covered questions; stage; attempts; completion dateMastery featuresGenerated by usePersonalized study progression and performance trackingBase44 MasteryPathOwning user under row-level accessExact period not specified
Practice progressQuestion status: not-started/completed/incorrectPractice activityGenerated by useProgress trackingBase44 SiteUserProgress for logged-in users; localStorage for anonymous usersUser-specific; anonymous copy remains on deviceExact period not specified
Question flagsFlagged/favorited state per questionPractice UIOptionalPersonal organizationBase44 SiteUserProgress or localStorageUser-specificExact period not specified
Onboarding surveyReferral source; SAT goal; test timing; study-plan interestOnboarding surveyOptionalUnderstand how students use/discover CrystalSATOnboardingSurveyResponseAdmin-only read accessExact period not specified
AnalyticsPage path; page-view/custom events; session ID; user ID when logged in; timezone; OS; device; browser; referrer; custom propertiesAnalytics trackerAutomatically generatedUsage understanding, improvement, troubleshootingBase44 analytics + SiteAnalyticsEventAnalytics/admin systemsExact retention not specified
Referral trackingReferral code; platform; link owner; random visitor fingerprint; signup conversion user ID; questions completed; funnel statusReferral links only on referral visitsGenerated by useMeasure outreach and signup attributionBase44 referral entities + localStorageAuthorized referral/admin systemsExact period not specified
ContactName; email; messageContact formOptionalRespond to inquiriesmailto: email flow; not stored in CrystalSAT DB by current codeEmail recipient/providerProvider-dependent
ChatMessage body; channel; thread relationship; member/channel metadataTeam chatTeam useInternal communicationBase44 chat entitiesCurrent entity rules restrict reads to adminsExact period not specified
Chat attachmentsOriginal filename; MIME type; size; R2 object key; message/channel IDsTeam chat uploadOptionalAttach files to internal messagesBase44 metadata + Cloudflare R2Authorized team/admin systemsExact period not specified
Question reportsQuestion ID/reference; free-text report; status; assignee; reviewer notesQuestion reportingOptionalReport errors/problemsBase44 ReportedIssueCreation open; reads admin-only in entity definitionExact period not specified
Browser storageTheme; anonymous progress/flags; referral code/fingerprint; analytics session identifierBrowserFeature-dependentPreferences, resume anonymous activity, referral attribution, analytics session groupinglocalStorage/sessionStorageAnyone with access to that browser profileBrowser-dependent; no app expiration defined
Push notificationsPush endpoint and p256dh/auth keysNotification subscriptionOptionalWeb push notificationsBase44 User recordAuthorized notification systemsExact period not specified
Volunteer applicationsFull name; account email; grade; graduation year; country; selected volunteer subjects and interests; SAT participation and self-reported section scores; uploaded SAT score report; experience; motivation; optional sample question review; application status; admin notes and review metadataVolunteer applicationOptionalReview volunteer applications, verify score eligibility, and administer the volunteer programBase44 VolunteerApplication + uploaded file storageAuthorized Crystal SAT administrators; applicant can view application statusNo fixed retention period currently specified

B. PRIVACY POLICY

1. Introduction

CrystalSAT ("CrystalSAT," "we," "us," or "our") is a student-run educational project that provides free SAT preparation resources, practice questions, study tools, and related features.

This Privacy Policy explains what information CrystalSAT collects, how we use it, where it is stored, and the choices available to you.

This policy describes the application as currently implemented. It is not legal advice and should be reviewed by a qualified privacy attorney before publication.

2. Information We Collect

We collect information that you provide directly, information generated when you use CrystalSAT, and limited information processed by services that help us operate the site.

Account information

When you create or use a CrystalSAT account, our authentication system processes information needed to create and authenticate your account, including your email address and account identifier. CrystalSAT accounts also have an assigned role, such as user, tutor, or administrator.

Depending on how your account is used, your account may also contain profile information such as a profile photo, avatar, presence status, notification preferences, push-notification subscriptions, and other settings.

Google sign-in is available. When you choose Google authentication, authentication is handled through Google and information made available through that authentication flow may be processed by Google.

Educational and practice information

When you use CrystalSAT’s practice and mastery features, we may store information about your learning activity, including questions you have attempted; whether answers were correct or incorrect; question completion status; flagged or favorited questions; diagnostic answers and scores; study-plan answers and progress; test answers and scores; topic and skill performance; missed and previously encountered questions; and mastery stages, test attempts, and related progress information.

This information is used to provide progress tracking, personalized study plans, scoring, and other educational features.

Onboarding survey information

Authenticated students may be shown an optional onboarding survey asking about topics such as how they heard about CrystalSAT, their SAT goals, when they plan to take the SAT, and whether they are interested in a study plan.

The current submission flow stores only the survey question and selected answer and is intentionally decoupled from the student’s account, email address, and name.

Analytics and usage information

CrystalSAT collects usage information to understand how the Service is used and to improve it. Depending on the event, this may include pages visited; page paths; page-view events; a session identifier; logged-in user ID when available; time zone; operating system; device type; browser; referring page; and custom event properties.

Page-view events are sent through Base44’s analytics functionality, while custom events may also be stored in CrystalSAT’s SiteAnalyticsEvent system.

Referral information

When you visit CrystalSAT through one of our referral links, the site stores a referral code and a browser-specific random identifier so that the visit can be attributed to the appropriate referral campaign.

When a referred visitor later creates an account, the referral system may associate the resulting account ID with the referral visit.

Contact information

Our Contact page allows visitors to enter a name, email address, and message. The current implementation opens the visitor’s email client using a mailto link rather than storing the submitted form in a CrystalSAT database.

Once a message is sent, it may be retained by the email provider and mail systems involved in delivering or storing it. CrystalSAT does not define those providers’ retention periods in its code.

Volunteer applications

If you apply to volunteer with Crystal SAT, we store the information you submit in the volunteer application form, including your name, account email, grade, graduation year, country, selected volunteer areas and interests, SAT participation and section scores, an uploaded SAT score report for score verification, relevant experience, your motivation for volunteering, and an optional sample question review.

Applicants may redact unrelated information from the uploaded score report before submitting it. Volunteer application records and the uploaded report are used to review applications, verify the 700+ section-score requirement, and administer the volunteer program. Submitting an application does not automatically grant volunteer access.

3. Information We Do Not Intentionally Collect

Based on the current application code, CrystalSAT does not intentionally request or store payment-card information, payment credentials, GPS coordinates, or a physical mailing address as part of its normal student-facing features.

The application also does not contain a normal student-facing feature specifically requesting demographic information such as gender or age.

This does not mean that third-party infrastructure may never process technical information as part of delivering the Service. Third-party providers have their own privacy practices.

4. How We Use Information

We use information to create and authenticate accounts; provide practice and educational features; save and resume progress; calculate scores and learning statistics; generate and maintain mastery and study-plan progress; provide account and notification functionality; operate internal communication features; understand how the Service is used; improve reliability, performance, and functionality; understand referral and outreach effectiveness; review volunteer applications and administer volunteer access; respond to questions and support requests; and protect the Service and investigate misuse or security issues where necessary.

5. Educational and Student Data

CrystalSAT uses learning activity primarily to provide educational functionality.

For example, mastery records store diagnostic answers, study-plan answers, test answers, topic statistics, skill statistics, scores, and progress information. These records are associated with the user’s MasteryPath record and protected by ownership-based row-level access rules.

Practice progress is likewise associated with the user’s account when the user is authenticated. For users who are not logged in, certain practice status and flag information is kept in the browser instead.

6. Cookies, Local Storage, and Similar Technologies

CrystalSAT uses browser storage for several functions, including theme preferences; anonymous practice progress; question flag/favorite state; referral information; and an analytics session identifier.

The analytics implementation stores its session identifier in sessionStorage. The application also uses localStorage for theme preference, anonymous practice state, question flags, and referral state.

The code reviewed does not show CrystalSAT intentionally using advertising cookies for behavioral advertising.

Browser storage is controlled by the browser, so exact deletion and retention behavior can depend on the device and browser.

7. User-Generated Content and Communications

CrystalSAT includes internal communication functionality for its team workspace.

Chat messages may contain message text, channel information, and thread relationships. Chat attachments may contain an original filename, MIME type, file size, and an R2 storage key.

Question reports can also contain free-text descriptions submitted by users when reporting an issue with a question.

8. Files and Storage

CrystalSAT uses Cloudflare R2 object storage for certain application files.

For example, chat attachments may be stored in R2. The database stores the object’s storage key rather than a permanent public URL, and the attachment record includes the original filename, MIME type, and file size.

CrystalSAT also uses server-side access to R2 rather than placing R2 credentials in the browser. Administrative storage operations use protected backend functionality and temporary signed URLs.

9. Third-Party Services

Base44: CrystalSAT uses Base44 for application hosting/backend functionality, authentication, database functionality, backend functions, and analytics.

Google: Google authentication is available as a sign-in option.

Cloudflare: CrystalSAT uses Cloudflare R2 for object storage.

Desmos: CrystalSAT embeds the Desmos Graphing Calculator in an iframe hosted by Desmos. Your browser may communicate directly with Desmos while the calculator is used.

YouTube: CrystalSAT links to YouTube content and resources. When you follow those links, YouTube’s own policies apply.

Third-party providers may process information according to their own systems, privacy policies, logging, cookies, and retention practices. CrystalSAT’s code cannot establish every category of information those providers may independently process.

10. How We Share Information

CrystalSAT does not have an advertising-sales feature or a system that intentionally sells student information to advertisers.

Information may be shared with service providers when necessary to operate the Service, including hosting, authentication, storage, analytics, embedded tools, and communication infrastructure.

Information may also be accessible to authorized CrystalSAT administrators or team members where necessary for operating the platform.

We may disclose information where reasonably necessary to comply with law, respond to valid legal requests, protect users or the Service, or investigate abuse, fraud, or security incidents.

11. Data Retention

CrystalSAT’s current source code does not define a universal retention schedule for account information, mastery data, educational progress, chat data, uploaded files, referral records, or most analytics records.

For that reason, this policy does not state a specific number of days or years for retention unless the application explicitly defines one.

Some analytics dashboards use recent reporting periods, but that should not be interpreted as a guaranteed deletion deadline.

When a user requests deletion, CrystalSAT will review the request and, where applicable, delete information from systems under CrystalSAT’s control, subject to legitimate operational, security, or legal retention requirements.

Third-party providers may retain information according to their own policies.

12. Data Security

CrystalSAT uses several technical controls in the current implementation, including authenticated access, role-based access controls, row-level access restrictions for user-specific records, and server-side handling of sensitive storage credentials.

For example, MasteryPath and SiteUserProgress are protected by ownership-based rules for normal user access.

CrystalSAT cannot guarantee absolute security. No internet service or electronic storage system can be guaranteed to be completely secure.

13. Your Privacy Rights

Depending on where you live, you may have rights concerning personal information we hold about you. These may include access to your information; correction of inaccurate information; deletion of your account or personal information; information about how your data is used; and other rights provided by applicable privacy law.

To make a privacy request, contact us at hello@crystalsat.com.

We may need to verify your request before completing it, and we will handle requests in accordance with applicable law.

14. Children’s Privacy

CrystalSAT is an SAT-preparation service and may be used by students who are under 18.

We do not intentionally design the Service to collect extensive personal information from students. The primary account information used for normal registration is an email address and authentication information, with educational data generated from use of the Service. Volunteer applications collect additional information because applicants voluntarily provide it to be considered for the volunteer program.

We do not claim in this policy that the Service is compliant with any particular children’s privacy law without a separate legal review.

Parents or guardians who have questions about a child’s information may contact us at hello@crystalsat.com.

15. International Data Processing

CrystalSAT can be accessed by users in different countries.

The Service relies on third-party providers such as Base44, Google, Cloudflare, and Desmos. Those providers may process information in locations outside the country where you live, depending on their infrastructure and policies.

Because the CrystalSAT codebase does not establish the exact geographic locations or legal transfer mechanisms used by each provider, this policy does not state a specific country, transfer mechanism, or legal basis without further provider-level verification.

16. Changes to This Privacy Policy

We may update this Privacy Policy when the Service changes, when our data practices change, or when additional clarification is needed.

When material changes are made, we may update the “Last updated” date and, where appropriate, provide additional notice through the Service or another reasonable method.

17. Contact Us

For privacy questions, requests concerning your personal information, or concerns about this policy, contact:

hello@crystalsat.com

C. ITEMS TO CONFIRM BEFORE PUBLICATION

Exact Base44 retention periods for account, analytics, mastery, chat, and other data.
Provider-level privacy and retention practices for Base44, Google, Cloudflare/R2, Desmos, YouTube, and the email systems used by CrystalSAT.
Whether any additional third-party scripts or infrastructure are active in the production environment but absent from the repository snapshot.
Whether the organization needs specific GDPR, UK GDPR, COPPA, U.S. state privacy, UAE, or other legal disclosures.
Whether the public /privacy route should be enabled; the current repository contains a Privacy page and footer link, but the route itself is currently enabled in App.jsx.
Whether the team wants to define formal account-deletion and data-retention periods going forward.

Prepared from the CrystalSAT GitHub application audit on September 6, 2026.

CrystalSAT is a student-run project providing free educational resources and services.
© 2026 Crystal. Made for students, by students.
SAT® is a trademark registered by the College Board, which is not affiliated with, and does not endorse, this website.