Privacy policy
Effective: October 20, 2026
WaterExamMath is operated by Nyphex LLC, 5900 Balcones Drive, Suite 100, Austin, TX 78731 (“we”). It is math practice for the California drinking water operator exams (Treatment T1-T3, Distribution D1-D3), on waterexammath.com, as an app in ChatGPT and as a connector in Claude. This policy explains what we collect, why, who receives it, how long we keep it, and your controls. Questions or requests: support@waterexammath.com.
1. Data we collect
- Account: your email address and a sign-in user ID from our sign-in provider. We don't ask for your address, date of birth, employer or certificate number. If a payment is disputed or flagged as possible fraud, we note that on your account for review.
- Study settings: the grade you chose, and per grade your exam date, problems per day and your browser's timezone (so “today” in your plan is your day).
- Learning records, per grade: each answer you give (problem, option chosen, right or wrong, time), your per-topic mastery, your review schedule, and your timed sets (problems, answers, score, start and submit times).
- Crews: if you buy a Crew Pack: the crew's name, seat count, expiry, invite code, the sets you assign (grade, topics, number of problems, due date, title) and the purchase IDs. If you join a crew: which crew, when you joined, and the display name you chose for it; we also keep a record that you were admitted to that crew (crew and date) after you leave, because each crew can admit a limited number of different people.
- Purchases: your Stripe customer ID, the Checkout Session and payment IDs, amount, currency and refund status. Card details are entered on Stripe and never reach us. Stripe also collects what you enter on its payment page (name, email, card details, billing country and ZIP) under its own privacy policy.
- Usage records: simple product events (for example “timed set started”, “answer checked” with the topic and whether it was right, “crew joined”, the number of invite emails a crew sent) to apply limits and understand how the product is used. They contain no free text and no email addresses.
- Technical data: IP address, browser type and request logs kept by our hosting provider, and the cookies our sign-in provider needs to keep you signed in. We count page views with Vercel Web Analytics, which uses no cookies. Your browser also stores your theme choice and the answers of a timed set in progress, on your device only.
The demo on our home page runs in your browser and sends nothing to us.
2. What a crew supervisor sees
When you join a crew with an invite link or code, the person who bought that crew (a supervisor or instructor) can see: the name you choose when you join; for each set they assign: how many problems you answered on its topics since it was assigned, and your accuracy on them; for that set's grade: your readiness per topic and overall, and the date you last practiced, based on all your practice on that grade (including practice before you joined). They also see the date you joined.
They cannot see your email address, your individual answers, your exam date or anything else in your account, or your data for grades they haven't assigned. Supervisors only ever see members of their own crew. You can leave a crew at any time on the Crew page; from then on the supervisor sees nothing about you. A supervisor can also remove you, which frees your seat. Leaving or being removed doesn't delete your own practice data.
If a supervisor emails invites, we use the addresses they type only to send one invite email each through Resend. We don't store them in our database; Resend keeps a delivery log (address, subject, status) for a limited period under its retention policy.
3. Data we receive through ChatGPT and Claude, tool by tool
When you use WaterExamMath in ChatGPT or Claude, the assistant sends us only the inputs of the tools it calls for you. We never request, read or store your chat history. Signing in from an assistant gives us your WaterExamMath sign-in ID and email, and no access to your ChatGPT or Claude account. Every tool except get_exam_overview requires you to be signed in. Crew features are not available in assistants.
- get_exam_overview. Input: optionally an exam id (grade, e.g. ca-d2); without it, the grade you saved (in Settings or with save_study_settings) is used; works signed out. Output: the list of grades, or one grade's math topics, timed set format, problem bank size and official sources. Purpose: explain what the practice covers. Stores nothing.
- practice_questions. Input: how many problems, optionally a topic, and optionally an exam id (grade, e.g. ca-d2); without it, the grade you saved (in Settings or with save_study_settings) is used. Output: problems and options without answers. Purpose: pick problems for you from your mastery and review schedule in that grade. Stores nothing.
- check_answer. Input: a problem ID and the letter you chose. Output: right or wrong, the correct answer, the worked solution and its source. Purpose: give feedback and track progress. Stores the answer as a learning record for that problem's grade, updates your mastery and review schedule, and adds a usage record (topic, right or wrong); creates your account on first use. If you are in a crew, the answer counts in the stats described in section 2.
- get_progress. Input: optionally an exam id (grade, e.g. ca-d2); without it, the grade you saved (in Settings or with save_study_settings) is used. Output: your readiness by topic, counts, last-practiced dates, due reviews, exam date and suggested next steps for that grade. Stores nothing.
- start_mock_exam. Input: optionally an exam id (grade, e.g. ca-d2); without it, the grade you saved (in Settings or with save_study_settings) is used. Output: a timed set ID, deadline and problems without answers (or the set you already have open for that grade). Purpose: run a timed math set. Stores the timed set and a usage record; creates your account on first use. It closes or cancels nothing; a set left open more than 7 days past its deadline is closed without a score by a daily cleanup.
- submit_mock_exam. Input: a timed set ID and your answers (letters). Output: your score, score by topic, and the missed problems with worked solutions. Stores your answers and score as learning records, updates your mastery for that grade and adds a usage record. If you are in a crew, these answers count in the stats described in section 2.
- get_study_plan. Input: optionally an exam date and optionally an exam id (grade, e.g. ca-d2); without it, the grade you saved (in Settings or with save_study_settings) is used. Output: a day-by-day plan. Purpose: plan your study from your mastery. Stores nothing (a date given here is not saved).
- reset_progress. Input: a confirmation and optionally an exam id (grade, e.g. ca-d2); without it, the grade you saved (in Settings or with save_study_settings) is used. Output: a confirmation message. Purpose: erase your progress when you ask. Deletes your learning records, mastery, review schedule and timed sets for that grade only, and adds a usage record that a reset happened (each call adds one).
- save_study_settings. Input: an exam id (grade), and optionally your exam date and problems per day. Output: the saved settings. Purpose: remember your grade and date so the other tools use them. Replaces your saved grade (and that grade's exam date or daily target, when given) and adds a usage record; creates your account on first use.
Tool results go to the assistant you are using; its handling of them is governed by OpenAI's or Anthropic's privacy policy. Tool results contain your progress and problems, never your email address, payment details or crew information.
4. How we use it
- To provide the service: choose practice problems, score answers and timed sets, track mastery, build your study plan, and run crews. All of this is plain code; we don't send your data to any AI model.
- To run your account: sign-in, rate limits that stop abuse, one-time purchases (Pass Pack, Crew Pack), and support.
- To keep the service secure and working: preventing abuse and fixing errors.
We do not sell personal data, share it for advertising, use advertising trackers, or use your data to train AI models.
5. Who receives it
Only these recipients, each for the purpose listed, and nobody else except where the law requires:
- The supervisor of a crew you joined: only what section 2 lists.
- Vercel: hosting, request logs and cookieless page-view counts.
- Neon: our database.
- Clerk: sign-in and account security, including the sign-in used by ChatGPT and Claude.
- Stripe: payments for one-time purchases on our website, and the invoice for a Crew Pack.
- Resend: crew invite emails a supervisor asks us to send, and operational email to us (for example payment-risk alerts). We don't send you marketing email.
- Forward Email and our mailbox provider: messages you send to support@waterexammath.com.
- OpenAI or Anthropic: only the tool results described in section 3, and only when you use WaterExamMath in their assistant.
6. How long we keep it
- Account, study settings and learning records: while your account is open, or until you reset your progress for a grade. Deleted within 30 days after you ask us to delete your account; backups age out within a further 30 days.
- Crew membership: until you leave, are removed, or the crew's owner deletes their account. Crew records (name, sets) stay while the owner's account is open.
- Usage records: up to 13 months.
- Record that you were admitted to a crew: until the crew's owner deletes their account or you delete yours.
- Request logs: up to 30 days.
- Purchase records: when you delete your account we delete our copy of your purchase and crew records. Stripe keeps its own record of the payment (amount, date, and the details you entered on its page) as payment and tax law requires, usually up to 7 years, and we keep the payout and invoice records we export from Stripe for the same period.
- Invite email addresses: not stored.
7. Your controls
- Change your grade, exam date and pace at any time in Settings (or with save_study_settings in an assistant).
- Erase your progress for a grade in Settings (or with reset_progress in an assistant).
- Leave a crew at any time on the Crew page.
- Disconnect WaterExamMath in ChatGPT's or Claude's settings to stop the assistant reaching your account.
- Ask for a copy of your data, a correction, or deletion of your account by emailing support@waterexammath.com. We reply within 30 days. Depending on where you live (for example under California law or GDPR) you may have further rights, including complaining to a regulator.
8. Security
Data is encrypted in transit (HTTPS) and at rest by our providers. Answer keys stay on our servers and are never sent before you answer, except for the public worked examples and the home-page demo.
9. Other
WaterExamMath is not directed to children under 13, and users under 16 should have a parent's permission. Our providers process data in the United States. If we change this policy we will update the date above and, for material changes, tell you in the app.
Do Not Track and Global Privacy Control: we don't track you across other websites and don't let third parties do so on ours; Vercel Web Analytics counts page views without cookies or cross-site identifiers. We treat every visitor the same whether or not their browser sends a Do Not Track or Global Privacy Control signal.