Privacy Policy
What we collect, in plain English.
Got Stripes has no accounts and asks for nothing about you personally. Your study work stays on your phone. A small amount of anonymous information does leave the device — crash reports and product-analytics events — and this page explains exactly what that is, because you deserve the specifics rather than a reassuring sentence.
The short version
- No account, no sign-up. We never ask for your name, email, phone number or address.
- Your study work stays on your device. Progress, scores, streaks, bookmarks and saved questions are stored locally on your phone and are not uploaded to us.
- Anonymous usage events do leave the device. We record which features get used — for example that a quiz set was completed — so we can tell what is working. These events are anonymous and carry no study content. See Product analytics.
- Crash reports leave the device when something breaks. They contain technical diagnostics, not your study answers. See Crash reporting.
- Notifications are optional. On iPhone, from version 1.6.0, if you allow them, a push token is stored so reminders can reach you. The Android app uses no push token. See Notifications.
- Apple or Google handles all payment. We never see your card details.
- Ad tracking is off unless you turn it on. On iPhone, iOS asks you once; if you decline, no advertising identifier is collected and the app works identically. The Android app never collects the advertising ID. See Got Stripes on Android.
Earlier versions of this policy said Got Stripes sent no crash reports and used no analytics. That was true then, and it is no longer true — crash reporting and anonymous product analytics were added in the version this policy covers. This page has been rewritten to describe them accurately rather than leave the old wording in place.
What we never collect
The app does not ask for, and is not built to collect, any of the following:
- Your name, email address, phone number or postal address
- Date of birth, employer, rank, badge number or agency
- Precise or approximate location
- Contacts, photos, camera, microphone, or health and fitness data
- Payment card numbers or bank details
- The text of questions you answered, the answers you chose, or anything you have bookmarked
There is no login, so there is no profile to build. Analytics events are never tagged with a name or email, because the app has neither.
Your study data
The following is written to your device's local storage and stays there:
- Per-module progress — best score, attempts, accuracy
- Your daily streak and last study date
- Bookmarks and the auto-saved list of questions you missed
- Recent quiz and practice-exam state, so you can resume
- Your settings, including the daily goal and difficulty level
An important distinction. The content of your study work — which questions, which answers, what you saved — stays on the device. What does leave the device is anonymous metadata about activity: for example, "a 5-question set was completed in the Title 39 module, on a device without a subscription." That event contains no question text and no answer text. Both statements are true at once, and the difference matters, so we would rather spell it out than say something simpler that is not quite right.
You can erase all local study data at any time from Settings → Reset Progress inside the app. Deleting the app also removes it.
Product analytics (PostHog)
Got Stripes uses PostHog to understand which features are actually used, so development effort goes to the parts people rely on. Data is sent to PostHog's United States cloud.
The app does not identify you. It never calls PostHog's identify() function and never creates a named person profile. PostHog sees an anonymous, app-generated device identifier and nothing that ties it to you.
The events recorded are a fixed, closed list. They cover:
- App lifecycle — installed, updated, opened, backgrounded
- Screen views within the app
- Onboarding steps and completion
- Your answer to the notification permission prompt
- Quiz and question-set activity, including sets completed
- Views of a locked feature or the subscription screen
- Purchase flow outcomes — attempted, completed, restored
- Practice exams started and finished
- Scenario completions
- Use of study features such as the Missed Queue, exam date planning, exam mode, backups and invites
- Streak and rank milestones
- When a review prompt is shown
Event properties are deliberately limited to controlled values — a module name such as "Title 39", a count, a true/false flag, a short enum-like status, and whether the device currently has premium access. There is no free-text field anywhere in the event schema.
What is never sent to PostHog: your name or email (we have neither), question text, answer text, any free text you could type, contacts, precise location, photos, microphone data, or payment-card data.
PostHog's privacy information is at posthog.com/privacy.
Crash reporting (Sentry)
Got Stripes uses Sentry to capture crashes and errors, so faults can be found and fixed rather than silently affecting people.
When something fails, Sentry may receive:
- The error or exception and its stack trace
- App version and build number
- Device model and operating-system version
- Performance and trace data for the operation that failed
- Breadcrumbs — a short technical trail of what the app was doing immediately beforehand
- Other technical context surrounding the failure
Performance tracing is sampled in production, not recorded for every interaction — only a fraction of sessions send trace data.
The Sentry SDK is configured with send-default-PII disabled. Got Stripes does not intentionally send your name, email address, study answers or any free-text content to Sentry.
We want to be precise about one thing rather than over-promise: a crash-reporting service necessarily receives a network request from your device, and Sentry's own documentation describes technical identifiers and IP address as data its platform can process depending on configuration. We therefore do not claim that Sentry never sees an IP address or an SDK-generated technical identifier. What we can say is that Got Stripes does not deliberately attach personal information to reports. Sentry's privacy policy is at sentry.io/privacy.
Purchases (Apple, Google Play and RevenueCat)
Apple processes every payment on iPhone, and Google Play on Android. Your card details go to Apple or Google and never to us. We are told only whether a purchase succeeded.
Subscription state is managed with RevenueCat, which receives:
- An anonymous, app-generated user ID — a random string, not your name or email
- The purchase token and product identifier issued by Apple or Google Play
- Purchase and renewal dates, and current entitlement status
- Anonymous activity markers, such as the install date and whether onboarding and a first question set were completed
- On iPhone, from version 1.6.0, a push token if you allow notifications (see Notifications)
One important qualification for iPhone. On every launch, whatever your tracking choice, the app asks RevenueCat to record standard device details: the vendor identifier (IDFV, which Apple scopes to one developer's apps and which is not the advertising identifier), the device and iOS version, the IP address of the request, and the tracking choice you made. The advertising identifier (IDFA) is included only if you grant Apple's App Tracking Transparency permission; otherwise iOS supplies zeros in its place. If you grant permission, the app also passes RevenueCat an anonymous Facebook identifier, so that a subscription can be attributed to the advertisement that led to the install. If you decline, no Facebook identifier is sent. An earlier version of this page said device identifiers reached RevenueCat only when tracking was allowed. That was wrong about the vendor identifier, and this paragraph corrects it.
RevenueCat's privacy policy is at revenuecat.com/privacy.
Notifications
Notifications are optional, and the app works the same whether you allow them or not. Study reminders are scheduled on your phone itself and need nothing from us.
On iPhone, from version 1.6.0, if you allow notifications, iOS also gives the app a push token: an address that lets a notification reach this install. The app stores that token with RevenueCat, next to the same anonymous user ID described above, and notifications are delivered through Expo's push service and Apple. The token carries no name, email or study content. We use it for study and subscription reminders, and we will not send promotional offers unless you have separately opted in to them in the app.
The Android app does not obtain a push token; its reminders are scheduled on the phone only. To stop notifications, turn them off in iOS Settings → Notifications → Got Stripes on iPhone, or Settings → Apps → Got Stripes → Notifications on Android. Expo's privacy policy is at expo.dev/privacy.
Advertising and your tracking choice
Got Stripes is advertised on Meta's platforms. The Meta SDK is included so we can tell which advertisements actually bring officers to the app. It is important to separate two different things.
Standard app events — always on
Meta receives conversion events regardless of your tracking choice:
- App installs and app opens
- Free-trial starts
- Subscription purchases, including the purchase value and currency
- Standard device and app metadata accompanying those events, such as device model, OS version and app version
Your advertising identifier (IDFA) — your choice
The app ships with advertiser tracking and advertiser-ID collection switched off. They are enabled only after you explicitly grant permission on Apple's App Tracking Transparency prompt.
- If you allow tracking, advertiser-ID collection is enabled. Meta may use your advertising identifier to connect your install to an advertisement you saw and to measure across other apps and websites.
- If you decline, or never answer, advertiser-ID collection stays off and no IDFA-based cross-app or cross-site tracking takes place.
Every feature works identically either way — nothing in the app is gated on your answer. You can change your decision at any time in iOS Settings → Privacy & Security → Tracking. On Android there is no choice to make: advertiser-ID collection stays off and the app does not have permission to read the Android advertising ID.
Meta never receives your study data — no questions, answers, scores, streaks or bookmarks. Meta's privacy policy is at facebook.com/privacy/policy.
Got Stripes on Android
The Android app works the same way as the iPhone app described above, with these differences:
- Payments are processed by Google Play. RevenueCat receives the Google Play purchase token and product identifier instead of Apple's.
- No advertising ID. The app does not request permission to read the Android advertising ID, and advertiser-ID collection in the Meta SDK is always off. Meta still receives the standard app events listed above (installs, app opens, trial starts and purchases) with device and app metadata, but without an advertising identifier.
- No device identifiers to RevenueCat. The iPhone app asks RevenueCat to record device details on every launch; the Android app does not.
- No push token. Study reminders are scheduled on the phone itself; nothing is stored with RevenueCat or sent through a push service.
- Where the install came from. Once, after you install, the app reads Google Play's install referrer, which says whether the install came from the Play listing, a Facebook or Instagram ad, or another link. That source is recorded with RevenueCat. For installs from a Meta ad, Google Play also passes along encrypted ad details; the app sends them, with the anonymous RevenueCat user ID, to our product analytics (PostHog), and we decrypt them ourselves to record the campaign, ad set and ad names with RevenueCat. This is how we learn which ads bring officers to the app. No advertising ID is involved.
- Product analytics and crash reports work exactly as described in the sections above.
This website
This site is deliberately plain. It has:
- No website analytics — we do not measure your visit here at all
- No advertising or marketing pixels
- No cookies — the site sets none
- No third-party requests. Fonts, scripts and images are all served from this domain. The site does not contact Google Fonts, a CDN, or any embedded video player.
The site is hosted on Netlify. Like any web host, Netlify processes standard server-log and technical request information — such as IP address, user agent, and the page requested — in order to serve and secure the site. That is a function of web hosting, not something we collect for our own purposes.
Children
Got Stripes is intended for adults preparing for law enforcement promotional and certification examinations. It is not directed at children, and we do not knowingly collect data from them.
Your choices
- Erase your study data — Settings → Reset Progress in the app, or delete the app.
- Turn off notifications — iOS Settings → Notifications → Got Stripes.
- Change your tracking decision — iOS Settings → Privacy & Security → Tracking. Declining limits nothing.
- Manage or cancel a subscription — iOS Settings → your name → Subscriptions. Subscriptions are managed by Apple, not by us.
- Restore a previous purchase — Settings → Restore Purchases in the app.
- Ask us anything — email support@gotstripes.app and a person will answer.
Changes to this policy
When what the app collects changes, this page changes with it and the "Last updated" date above moves. Material changes are also noted in the App Store and Google Play release notes. We would rather rewrite this page than let it drift out of date — which is precisely what happened to the previous version, and why it was replaced.
Contact
Got Stripes is published by AAK Studio LLC, a New Jersey limited liability company. Mailing address: 971 US Highway 202 N, Ste R, Branchburg, NJ 08876. The controller of any personal data described on this page is AAK Studio LLC.
Privacy questions support@gotstripes.app Questions about this policy or your data, answered by a human.This page describes how the app handles data. It is not legal advice.