PatternPro Privacy Policy
Last updated: 2 August 2026
PatternPro ("the app") is provided by Zaid Bin Tariq ("we", "us"). This policy explains what the app does with your data. It is written to match what the software actually does.
Summary
- An account is optional. Analysing targets, saving history and correcting hits all work signed out, and we do not know who you are unless you choose to sign in.
- Your saved patterns, photos and analysis live on your device.
- A target photo is sent to our server when your device cannot analyse it locally.
- If you agreed when accepting the Terms, those photos are kept and used to improve the detection model. This is optional, is off unless you tick it, and you can withdraw it.
- If you sign in, your saved patterns and target photos are backed up to your account so they survive a lost phone and follow you to a second device. Signed out, nothing leaves the device except what is described above.
- We collect anonymous usage events to understand whether the app is useful.
- We do not sell personal data, and we use no advertising or third-party analytics SDK.
0. Accounts
You can use PatternPro without an account. Signing in is needed only for AI Insights credits, for keeping Pro access across a reinstall or a second device, and for cloud sync.
If you sign in we process your email address and a user id issued by our authentication provider (Supabase). We use them to identify your account and nothing else. We do not use your email for marketing unless you separately opt in.
Signing in links your purchase record to your account so Pro follows you. Signing out unlinks it on this device.
Legal basis (UK/EU): performance of a contract, since these features cannot work without an identity.
0a. AI Insights
AI Insights is optional, and nothing else in the app depends on it. If you never open it, no part of this section applies to you.
When you send a message, two things leave your device: your typed question and a short computed summary of your saved targets. That summary is generated on your device and is deliberately limited to figures, for example "23 sessions, average 61%, largest gap 5.1in, point of impact 4.2in high-right". You can see exactly what it contains, because it is the same set of numbers the Insights screen shows you.
What is never sent: your target photographs, the notes you type against a session, your email address, your account id, your device identifiers, or your location.
Your question and that summary are sent to our own server, which forwards them to OpenRouter and the model provider it routes to. We do not use them to train any model, and our providers are contractually bound not to train on them either.
Your conversation is saved to your account so it is still there when you come back and on your other devices. You can clear it at any time, signing out removes the copy held on the device, and deleting your account deletes the conversation with it. We keep the message count separately, to meter the monthly allowance.
Answers are generated by a language model and can be wrong, including about your own figures. They are not advice about whether a shot is safe, legal or ethical, and the responsibility for that judgement stays with you.
0b. Cloud backup of your patterns
If you are signed in, the app keeps a copy of your saved sessions in your account: the measurements, the hit coordinates, the load and choke you recorded, your notes, and the target photograph itself. The copy is yours alone. Row Level Security in our database and per-user rules on file storage mean no other account can read it, and we do not read it to build profiles or to train anything.
Signed out, none of this happens. Analysis, history and export stay entirely on the device, exactly as before, and the app remains fully usable that way.
Two deliberate limits on how it behaves:
- Photographs upload only on an unmetered connection such as wifi. A season of targets is hundreds of megabytes and spending your mobile data unasked would not be reasonable.
- The device stays the working copy. Analysis runs on-device so the app works with no signal; the cloud is a backup and a way to reach a second device, never a requirement.
Deleting a session deletes it from your account too. The record is kept briefly as a marker so the deletion also reaches your other devices, then removed. Deleting your account removes every pattern, photograph and message it holds.
1. What the app stores on your device
Saved patterns, hit coordinates, load and choke details, distances, and your analysis history are written to local storage on your device, and deleting the app deletes them.
Signed out, they stay there and are not transmitted anywhere. Signed in, a copy is also kept in your account as described in section 0b, so uninstalling no longer loses them.
2. Target photographs
PatternPro counts pellet holes in a photograph of a paper target.
On-device analysis. Where your device supports it, counting runs entirely on the device, so you get a result with no network at all. If you have consented to retention, the photograph is additionally uploaded in the background afterwards, purely as training data. That upload waits for an unmetered connection such as wifi, so it never spends your mobile data, and it is discarded rather than sent if you withdraw consent first.
Server analysis. Where on-device analysis is unavailable or fails, the photograph is uploaded over HTTPS to our detection service so it can be counted, and the hit coordinates are returned to your app.
Retention for model improvement. When you accept the Terms you are asked, as a separate and optional choice, whether we may keep the target photos you analyse in order to improve the detection model. The box is not ticked by default.
- If you agree, photographs analysed on our server are stored, together with the shot details you entered (distance, choke, shot size, payload), and used as training data.
- If you decline, the photograph is analysed and not retained.
- Declining does not restrict the app. Every feature works either way. We ask this way because consent that is a condition of using the software would not be freely given.
You can withdraw consent at any time; it applies to analyses from that point onward.
Contributed photos. Tapping Contribute additionally sends your corrected hit coordinates, which are far more valuable as training data than the model's own guesses.
Photographs of paper targets are not intended to contain people or identifying information. Please do not analyse an image showing anything you would not want retained if you have consented to retention. Stored photographs carry no identifier linking them to you, which also means we cannot single one out to delete on request (see section 7).
Legal basis (UK/EU): legitimate interest for server-side counting, which is necessary to provide the feature you asked for; consent for retaining photographs as training data, given by the separate optional tick box on the Terms screen.
3. Usage analytics
The app records anonymous product events, for example: the app was opened, an analysis was started, an analysis was saved, how many detected hits were corrected, a price tier was tapped, onboarding finished.
Each event carries a randomly generated installation identifier, the platform name, and the app version. The identifier is created on your device, is not derived from any hardware or advertising ID, cannot be linked to you, and is destroyed when you uninstall the app.
Events are queued locally and sent in batches to our own server. We do not use a third-party analytics or advertising SDK, and no data is shared with data brokers or ad networks.
We do not collect your name, email address, phone number, contacts, precise or coarse location, or any firearm identifier such as a serial number.
Legal basis (UK/EU): legitimate interest in understanding whether the app works and is used, on the basis that the data is anonymous and low-risk.
4. Crash reports
If the app crashes, a diagnostic report is sent to Sentry so the fault can be fixed. Reports are configured with personally identifying information disabled. Before a report is sent, we strip user identity, device name, and any local file paths (such as photo locations), which could otherwise reveal album or file names.
5. Purchases
Subscriptions are processed by Google Play and managed through RevenueCat. We never see or handle your card details. RevenueCat receives a pseudonymous customer identifier and the purchase state needed to unlock paid features.
6. Who your data is shared with
| Recipient | What they receive | Why | Where |
|---|---|---|---|
| Modal (our detection and analytics service) | Target images for counting; those images retained where you consented; anonymous usage events; AI Insights questions and the computed summary they are asked about | Runs the model, meters AI usage and stores our own analytics | United States |
| OpenRouter, and the model provider it routes to | Your typed question and the computed summary described in section 0a. No images, no email address, no account id | Generates the AI Insights answer | United States |
| Supabase | Email address and account id; and, when you are signed in, your saved patterns, target photographs and AI conversations | Authentication, and the cloud backup described in section 0b | See your project region |
| Sentry | Crash diagnostics, scrubbed of identity and file paths | Fault diagnosis | United States |
| Google Play / RevenueCat | Purchase and subscription state | Billing and entitlements | United States |
These transfers leave the UK/EEA. Where required we rely on the providers' standard contractual clauses.
We do not sell personal data, and we do not use your data for advertising or profiling.
7. Retention
- On-device data: until you delete it or uninstall the app.
- Server-side target images, where you have not consented to retention: not retained.
- Images queued on your device awaiting background upload: held until sent, dropped immediately if you withdraw consent.
- Server-side target images, where you have consented: retained indefinitely as model training data, along with the shot details you entered.
- Contributed corrections and labels: retained indefinitely as model training data.
- Anonymous usage events: retained in aggregate.
- Crash reports: per Sentry's retention, typically 90 days.
- Account record: until you delete your account.
Because stored images and analytics events carry no identifier that links back to you, we genuinely cannot locate "your" records in order to export or erase them individually. This is a deliberate privacy trade-off: we hold less about you, but we also cannot tie anything to you on request.
8. Your rights
If you are in the UK or EEA you have rights of access, rectification, erasure, restriction, objection and portability under the UK GDPR / GDPR. Given the above, the practical routes are:
- Stop all analytics: turn analytics off in the app, or uninstall it.
- Stop photo retention: withdraw training-data consent. Analyses from that point on are counted and not kept.
- Erase everything held on device: uninstall the app.
- Delete one saved session: long-press it in History. It goes from your account and from your other devices too, not just from the phone you are holding.
- Delete your account: open Account and choose Delete account. This removes the account record, every synced session, every backed-up photograph and your AI conversation, immediately and without needing to contact anyone. You can also email us and we will do it within 30 days. Note that neither route reaches anonymous training contributions, which carry no link to you and therefore cannot be singled out.
To ask a question or make a request, contact zaidkhawaja21.zz@gmail.com. You may also complain to the Information Commissioner's Office (ico.org.uk).
9. Children
PatternPro is not directed at children and is not intended for use by anyone under 18. We do not knowingly collect data from children.
10. Changes
Material changes will be reflected here with a new "last updated" date, and where the change is significant we will surface it in the app.
11. Contact
Zaid Bin Tariq Eid Ghah Road, Gulshan Colony, Muzaffarabad, Azad Kashmir 13100, Pakistan zaidkhawaja21.zz@gmail.com