Privacy Policy

Effective October 10, 2026

This Privacy Policy explains what information PassFEPE (passfepe.com) handles, where it is kept, and what you can do about it. The short version: you need an account to practice, and your study history is stored in your browser and in your account so it can follow you to other devices. Handbook PDFs you add are never uploaded. We advertise on Google, so the site tells Google Ads when you arrive from one of our ads, create an account or buy a plan, which shows us which ads work. Section 4 explains what it sends and how to opt out. The site uses no other analytics, advertising or tracking tools.

1. On your device vs on our servers

PassFEPE stores your data in your browser's own storage (IndexedDB). What leaves your device depends on whether you are signed in.

If you are not signed in, you can open the home page, the sign-in page and these policies, but not practice:

  • Practice you did while signed out, before PassFEPE required an account, stays in this browser only. This browser is the only copy, and it is not sent to us unless you import it into your account.
  • Your browser still downloads the practice problems for every published exam from our content database, and checks for new exams when you open or return to the app. Those requests carry your IP address and basic browser information, like any web request.

If you are signed in:

  • Your study history, unfinished sessions and some settings upload to your account automatically. This includes saved answers before grading, your place in a session, flags, hints, timer state and exam section progress. Sync runs when you open the app, save or change a session, hide or return to the tab, reconnect, or retry a failed sync. While the app is visible, it also checks for unfinished sessions every 30 seconds. There is no setting to turn this off while signed in.
  • Your history and unfinished sessions download to any other device where you sign in, so you can continue where you left off. Changes made offline stay in that browser until they can sync.
  • Handbook PDFs and their search text still stay on the device where you added them. They are never uploaded.

Each account on a device gets its own local database, separate from the signed-out one and from other accounts.

Whether or not you are signed in, Google's advertising tag can run when you arrive from one of our ads, create an account or buy a plan. Section 4 explains when it runs, what it sends and how to opt out.

2. What we collect and why

Account information (only if you create an account):

  • Your name, email address and password, to create your account and sign you in. Your password goes only to our sign-in provider, Supabase Auth, which stores a hashed form of it, not the password itself. The app never saves your password on your device or in the tables that hold your study data.
  • If you sign in with Google, the basic profile information Google shares with us, which Supabase stores with your account. This is usually your name, email address, profile picture link and Google account ID. The app uses only your name and email address. If Google gives us no name, we show the first part of your email address instead.
  • Sign-in records kept by Supabase Auth, such as when you signed up, confirmed your email and last signed in. Supabase Auth may also record your IP address and browser information with your sign-in sessions and in its security logs.
  • If you opt out of advertising measurement (section 4) in a browser where you are signed in, a note of that choice, stored with your account so it applies on your other devices too.

Study data (only uploaded if you are signed in):

  • Practice and exam sessions: which exam, the mode, settings for the session, when it started and was submitted, total study time and your score summary. Unfinished sessions also include the question order, current question, timer and break state, and completed sections, so you can resume on another device.
  • Each question in a session: your answer, whether it was correct, time spent, how often you visited it, whether you flagged it, whether you used a reference, and hints revealed.
  • A record of each graded answer, including the exam, topic, difficulty, your response, the result and when it was answered. The server also records when it received each record.
  • Bookmarks and questions you've chosen to hide.
  • Your chosen exam and study preferences, such as feedback mode, timer display and session defaults.
  • If you choose to bring practice you did while signed out into your account, that history is uploaded, along with a record of the import and any older records that couldn't be matched to current questions. On a shared browser, signed-out practice may include other people's work, so only import it if it's yours.
  • A random ID created each time the app loads and saved with each practice session to note which app load started it. It is not a hardware or browser fingerprint.

Plan information (only if you buy a plan): which plan you have, whether it is active, when it renews or ends, and the customer and subscription IDs Stripe gives it. Stripe sends us this so we know what your account can open. Your payment details go to Stripe, not to us: we never see your full card number.

We use this data to run PassFEPE for you: to sign you in, save and sync your history, show your progress, know which plan you have, and send you account emails. The only part of it that goes to an advertising service is what section 4 lists for Google Ads: your account ID, a hashed copy of your email address if your account has a password and you haven't opted out, and the price and Stripe subscription ID of a plan you buy. Your study data never does. We don't collect notes, phone numbers or locations. The tables that hold your study data have no fields for IP addresses or browser details.

Selling and sharing. We don't sell your personal information for money, and we don't let Google use your visits to PassFEPE to personalize the ads you see. The Google Ads measurement in section 4 does give Google information about your visit, sign-up or purchase. The privacy laws of California and some other US states may treat that as a "sale" of personal information, as "sharing" it for cross-context behavioral advertising, or as processing it for targeted advertising. You can opt out at any time, as section 4 describes.

  • What it involves, and the only personal information we have sold or shared in the past 12 months: identifiers (your PassFEPE account ID, a hashed copy of your email address, the IDs in Google's cookies and ad clicks, and your IP address); internet activity (the address of the page the tag runs on and of the page you came from, and your browser information); and commercial information (the price of a plan you buy and its Stripe subscription ID).
  • Who receives it: Google, an advertising network, through Google Ads.
  • Why: to measure which of our ads lead to new accounts and paid plans.
  • We don't knowingly sell or share the personal information of anyone under 16.

We don't use or disclose sensitive personal information to infer things about you.

Google user data. What PassFEPE receives through Sign in with Google is used only to sign you in, identify your account and, if you buy a plan, give Stripe your email address for the payment. It is never used to train artificial intelligence, machine learning or computer vision models, including models that generate or manipulate images. It is never sold, never used for advertising, and never shared with anyone other than Supabase, which runs sign-in for us, and Stripe, which receives your email address only if you buy or manage a plan, to run that payment. The Google Ads measurement in section 4 doesn't use it: for an account that signs in with Google, the reports sent to Google Ads carry no email address, name or Google account ID. PassFEPE's use of information received from Google APIs follows the Google API Services User Data Policy, including the Limited Use requirements.

Emails. We send emails about your account only. These include a link to confirm your email address when you sign up (sent again if you ask) and a link to reset your password if you ask. Each contains your email address and a single-use link that expires after a short time. We may also email you about important changes to these terms or this policy, or in reply to a request you send us.

Automated decisions. We don't make decisions about you by automated means that have legal or similarly significant effects. Progress charts and study suggestions are calculated in your browser for your own use.

Legal bases (for users in the EEA, the UK and Switzerland). We use your account information and synced study data because we need them to provide the service you asked for (performance of a contract). We use technical request data, such as IP addresses in our providers' logs, for our legitimate interests in delivering the app, keeping it secure and preventing abuse. We may also keep or disclose information when the law requires it (legal obligation). We don't ask for consent to advertising measurement, so Google's advertising tag doesn't run in a browser set to a European time zone. In a browser set to another time zone, it runs with every advertising permission switched off for visitors Google places in those regions (section 4).

3. Service providers

We use a small number of providers to run PassFEPE:

  • Supabase. Handles sign-in, stores your account information and synced study data, and serves the practice problems. It receives what is described in section 2, plus the technical details that come with any web request, such as IP address and browser information. Supabase, or an email delivery service it is set up to use for us, sends account emails and receives your email address and the message content to do so.
  • Google sign-in, only if you choose "Continue with Google". Google confirms who you are and shares your basic profile with us, as described in section 2. Google's own privacy policy applies to your Google account.
  • Google Ads, our advertising service. Google's advertising tag runs on passfepe.com when you arrive from one of our ads, create an account or buy a plan, as described in section 4. Google receives what that section lists, plus the technical details that come with any web request, such as your IP address and browser information. Google's own privacy policy applies to how it uses that information, and Google explains how it uses information from sites that use its services at https://policies.google.com/technologies/partner-sites.
  • Our website hosting provider, which delivers the app's files to your browser. It receives the technical details that come with a web request, such as your IP address and browser information.
  • Stripe, only if you buy a plan. Stripe runs the checkout and billing pages, processes your payment, and receives your email address, payment details and billing information to do so. It also sends you receipts and tells us which plan you have, as described in section 2. Stripe's own privacy policy applies to the information it collects.

These providers keep their own operational logs, such as request and sign-in logs, under their own policies. Apart from Google Ads, we haven't added any analytics, error-tracking or advertising services to PassFEPE. The app's fonts, math rendering and PDF viewer are served from our own site, not from third-party servers. Google's advertising tag is loaded from Google's servers.

4. Advertising measurement, cookies and browser storage

We advertise PassFEPE on Google. To see which ads lead to new accounts and paid plans, the site uses Google's advertising tag (gtag.js), loaded from Google's servers. The tag starts only on a page you open from one of our ads, and when you create an account or buy a plan. It reports nothing about your practice, exams or history. It sends Google:

  • Each time it starts: the address of the page and of the page you came from, your IP address and browser information, and, if you came from one of our ads, Google's ID for that ad click.
  • When you create an account: a sign-up report with your PassFEPE account ID, so the same sign-up is counted only once. For an account with an email address and password, it is sent when you confirm your email address, from the browser you confirm it in. For "Continue with Google", it is sent the first time you use it.
  • When you come back from Stripe after buying a plan, to the browser tab you left from, and the plan is active: a purchase report with the plan's price and your Stripe subscription ID, so the same purchase is counted only once.
  • With those reports, only if your account has a password: a SHA-256 hash of the email address you confirmed, made in your browser, which Google uses to match the report to a Google account that saw or clicked our ad. Google calls this enhanced conversions. Google receives the hash, not your address. We never send it for an account that signs in with Google, or if you have opted out.

The tag tells Google not to use any of this to personalize ads, so we don't build remarketing audiences from visits to PassFEPE. Google's own privacy policy covers what Google does with what it receives, including how long it keeps it. Google explains how it uses information from sites like ours at https://policies.google.com/technologies/partner-sites.

Cookies. PassFEPE's own code sets no cookies. Google's tag sets cookies on passfepe.com whose names start with _gcl_, such as _gcl_au and, after an ad click, _gcl_aw. They hold a random identifier and the ad click's ID for up to 90 days, so that a later sign-up or purchase can be matched to the ad. Google's tag may also keep the ad click's ID in local storage under a name starting with _gcl_ (such as _gcl_ls), for the same period. When the tag sends Google anything, Google may also read or set its own cookies on its own domains, such as google.com and doubleclick.net. If you use Continue with Google, or buy or manage a plan on Stripe's pages, Google or Stripe may set their own cookies on their own sites under their own policies.

In the EEA, the UK and Switzerland. Our ads are for the United States, and we don't ask for consent to advertising measurement. So the tag doesn't run at all in a browser set to a European time zone, and the site keeps no advertising notes there. If your browser is set to another time zone, the tag can run, but for visitors Google places in those regions by their IP address it starts with every advertising permission switched off: it sets and reads no _gcl_ cookies, removes the ad click's ID from what it sends, and doesn't collect the hashed email. Google may still receive a notice, without cookies, that a visit from an ad, a sign-up or a purchase happened, and the site still keeps the checkout note described below.

Opting out. Turn on Global Privacy Control (GPC) in your browser, or use the switch below. Either one opts out the browser you use it in. Once you sign in to that browser, we also record the opt-out on your account, and it then applies wherever that account is signed in. When you have opted out, the tag turns on Google's restricted data processing, under which Google limits its use of the data to measuring for us, and we don't send the hashed email. Sign-ups and purchases are still counted. A Do Not Track signal doesn't change what the site does.

To stop the tag entirely in a browser, use a content blocker that blocks googletagmanager.com and googleadservices.com. PassFEPE keeps working without the tag. Blocking third-party cookies stops Google's cookies on google.com and doubleclick.net, but not the _gcl_ cookies, which belong to passfepe.com itself. You can delete those in your browser settings. Don't block all site data for passfepe.com: the app needs local storage and IndexedDB to keep you signed in and to hold your practice. Google's My Ad Center (https://myadcenter.google.com) controls how Google personalizes the ads it shows you.

PassFEPE also uses your browser's storage:

  • IndexedDB holds your practice data, settings, a cached copy of the practice problems, and any handbook PDFs you add.
  • Local storage holds your sign-in session, managed by Supabase's sign-in library, and two small notes: which account your signed-out data was imported into, and your plan's status, renewal or end date and Stripe subscription ID, so the app opens the right problems while you're offline.
  • If you opt out with the switch above, local storage keeps that choice (passfepe:ads:optout) until you opt back in or clear this site's data, even after you sign out or delete your account.
  • Session storage holds one note while you are on Stripe's checkout: that this browser tab started a checkout, and when (passfepe:ads:checkout: followed by your account ID). It lets the purchase report go only for a checkout started in that tab within the past day, so an old purchase isn't reported again. It is deleted once the purchase is reported or your account is deleted, and your browser deletes it when you close the tab.

Apart from the checkout note, which only keeps the Google Ads count accurate, we use this storage only to make the app work and to remember your choices. When you add a handbook PDF, the app asks your browser to keep its storage so it isn't cleared automatically. Your browser may still clear it, and you can clear it yourself in your browser settings.

5. How long we keep data

On your device, data stays until you delete your account on that device, delete a handbook, clear this site's data, or your browser clears its storage.

On our servers, we have no schedule that deletes your account or synced data. It stays while your account exists, unless we close the service or your account as described in the Terms of Use. When your account is deleted, the study data tied to it on our servers is deleted with it. This does not remove copies on your other devices (see section 6). Our providers may keep backups and logs under their own policies, so deleted data may remain in those copies for some time after your account is deleted.

6. Your choices

  • Delete a handbook. Removing a handbook from your library deletes the PDF and its search text from the database that is currently open on this device. If you copied it in by importing signed-out practice, the signed-out copy stays until you clear this site's data in your browser settings.
  • Sign out. Signing out ends your session on this device only. Your account's data stays on this device after you sign out. On a shared computer, clear this site's data in your browser settings after signing out. Anything you practiced while signed out is kept separately, and clearing this site's data removes it too.
  • Delete your account. Settings > Account > Delete my account deletes your account and the study data synced to it from our servers, and clears it from that device. A plan that will still renew has to be cancelled in Settings > Billing first. You can also email contact@passfepe.com from your account's email address and we will do it for you. Copies on your other devices stay until you clear this site's data in the browser settings there.
  • Get a copy or correct your data. Email contact@passfepe.com for a copy of your data or other help. You can reset your password from the sign-in page. To change the email address on your account, contact us.
  • Advertising measurement. To opt out, turn on Global Privacy Control or use the switch in section 4. A content blocker that blocks Google's tag stops it entirely. Clearing this site's data in your browser settings removes Google's _gcl_ cookies and local storage entry, along with everything else the site keeps in that browser, including an opt-out made there with the switch. One recorded on your account stays.

You can't delete synced records from our servers one by one. This covers your graded answers, practice sessions, bookmarks and settings. They are all deleted when your account is deleted.

7. Your privacy rights

Depending on where you live, you may have the right to: know what personal information we hold about you and get a copy; correct it; delete it; get it in a portable format; object to or restrict how we use it; opt out of its sale, sharing or use for targeted advertising; and withdraw consent where we rely on it.

If you live in California, you also have the right to know what categories of personal information we collect, sell or share and why, to delete and correct it, to opt out of its sale or sharing, and to not be treated differently for using these rights.

To opt out of sale, sharing or targeted advertising, turn on Global Privacy Control or use the switch in section 4. It takes effect in that browser at once and, once you sign in there, on your account. To use any of the other rights, email contact@passfepe.com from the address on your account. We may ask you to confirm the request comes from you. You can have an authorized agent make a request for you where the law allows. We will respond within the time the law requires. If you are in the EEA, the UK or Switzerland and are unhappy with how we handled your information, you can complain to your local data protection authority.

8. Security

Access to synced data is controlled in the database itself, so a signed-in user can read and write only their own records. If you sign up with an email and password, you must confirm your email address before you can sign in. Sign-in is handled by Supabase using its standard PKCE flow. Your sign-in session is kept in your browser's local storage.

No system is perfectly secure, and we can't guarantee that your data will never be accessed without permission. Data on your device is only as safe as your device and browser. Anyone who uses the same browser can see signed-out data stored there.

9. Children

PassFEPE is meant for people preparing for engineering licensure exams. It is not directed to children, and you must be at least 13 to use it. We don't knowingly collect personal information from children under 13. If you believe a child under 13 has created an account, contact contact@passfepe.com and we will delete it.

10. International users

Our service providers may store and process your information in the United States or other countries, which may have different data protection laws from where you live. Where data protection law requires safeguards for these transfers, we rely on the safeguards our providers offer in their data processing terms, such as the European Commission's Standard Contractual Clauses.

11. Changes to this policy

We may update this policy. When we do, we'll change the effective date at the top. If a change is significant, we'll try to give notice, for example on the site or by email if you have an account.

12. Contact

Questions or requests about your privacy? Email contact@passfepe.com.