In short
- Batch cards are read on your device. Screen content is not stored as images and is not uploaded.
- The app keeps your settings and the last 100 evaluations on your phone only.
- If you create an account (optional), we keep your email address, your sign-in method and your choice about news emails. Nothing about your batches is stored with it.
- Other than that, the only data that leaves your phone is the text you type in “Report a problem”, if you use it, plus the app version, the phone model and an email address if you choose to give one so we can reply.
- We do not sell, share or use any data for advertising.
1. What the app reads
BatchCheck reads the batch list shown by the Instacart Shopper app to find, for each batch: the pay, the distance, the number of items and customers, the store name and flags such as heavy items or tips. It uses that to calculate a verdict (Accept, Maybe, Not recommended) with the rules you set.
On iPhone
The app uses the iOS screen broadcast feature. Frames are processed by the app’s own text recognition on the device and discarded immediately. No video or screenshots are saved or transmitted. Reading runs only while you keep it on, and stops when you tap Stop or end the broadcast.
On Android
The app uses the Android Accessibility API to read the text of the Instacart Shopper app only. It is configured to receive events from that app alone and ignores every other app. It reads text while the Shopper app is in front and does not capture images, keystrokes or passwords. This use of the Accessibility API is not for assistive purposes; it exists solely to read batch cards and show the verdict in a floating window.
2. What the app stores on your phone
| Data | Why | Where |
|---|---|---|
| Your rules (minimums, costs, time model, state, language, switches) | To calculate verdicts | App storage on the device |
| Last 100 evaluations (pay, miles, items, store chain, verdict, time) | History tab | App storage on the device |
| Batch card lines from the last reading (pay, miles, items, store). Other text on the screen is never stored. | Diagnostics, so misreads can be reported | App storage on the device, erased when reading stops and in any case one hour after the last reading |
Customer names, addresses, order contents and anything not needed for the verdict are not extracted or saved. You can clear the history in the app and remove everything by uninstalling it.
3. Location
BatchCheck can use your location for two things, both optional:
- State defaults. Approximate location is used once to find your US state or Canadian province and suggest a minimum hourly rate. Only the state name is kept.
- Drive to the store (iPhone). While reading is on, the app estimates the distance from where you are to the store of each batch using Apple Maps. Apple receives the store chain name and your location under Apple’s privacy terms. Your location is not stored by BatchCheck.
Both features stop working if you decline the permission; the rest of the app keeps working.
4. What leaves your phone
The app uses two services outside your phone: an optional account (Google Firebase) and one endpoint for problem reports.
Account (optional)
You can use BatchCheck without an account. If you create one, with Google or with an email and password, Google Firebase Authentication keeps: your email address, a random account ID, the sign-in method, and when the account was created and last used. If you sign in with Google, Firebase also receives the name and profile photo on your Google account; we do not use them. Your password is handled by Firebase and is never visible to us.
We also keep one small record in Google Firebase Firestore, readable only by your own account: whether you agreed to receive news emails (and when), the platform (Android or iPhone), the app version and when that record last changed. We use the account creation date to give early users their launch bonus (3 months of the subscription free when it launches).
News emails. We only send news and offers if you tick the box when signing in or turn it on in Settings. Every email has an unsubscribe link, and you can turn it off in Settings at any time.
App integrity check
To stop scripts from abusing the account service, the Android app asks Google Play Integrity to confirm that requests come from a genuine copy of BatchCheck installed from Google Play. Google receives technical information about the app and device for that check under its own terms; we receive only a pass or fail result.
Report a problem
When you send a report from Settings, the app sends over HTTPS to report.batchcheck.dev: the text you typed, the app version, the operating system version, the phone model, the app language, your state (if set), the email address you type in the optional field (empty unless you want an answer) and, only if you check the box (it starts unchecked), the diagnostics text (the batch card lines from the last reading; on iPhone also your current rules and the reading, drive-to-store and demo switches). The report is forwarded to our support mailbox and kept there until it is handled. No identifier of you or your Instacart account is included. The email field is optional and exists only so we can reply to you about that report; we do not add it to any mailing list, and it is deleted with the report. Our hosting provider (Cloudflare) processes the request and may keep short-lived technical logs such as the IP address, under its own privacy policy.
Encryption and where the data is processed
Everything the app sends leaves your phone encrypted in transit (HTTPS/TLS). The optional account and problem reports are processed on servers in the United States (Google Firebase and Cloudflare). If you are in Canada or elsewhere outside the United States, that data is transferred there.
Usage statistics (Android, from version 0.1.5)
The Android app counts how it is used with Google Analytics for Firebase, so we know whether people who install it turn the reader on, get verdicts and reach the subscription screen. It sends: a random app instance ID (not your advertising ID, which the app cannot read), the events reader_on, reader_off, card_seen (only the verdict: accept, maybe or decline), paywall_view, report_sent, login and sign_up (only the method), screen_view (only the screen name, such as home or settings), plus app opens, app version, Android version, device model, language and country. It never sends batch card text, pay, miles, stores, your history, your rules or anything from your account. Ad personalization is off. You can turn this off in Settings, "Share anonymous usage statistics"; the app works the same. Google processes this data under its own privacy policy. The iPhone app sends the same events, with the same switch in Settings, and never reads the advertising identifier.
Nothing else
Beyond the usage counts above there is no crash reporting, no advertising SDK and no third-party tracking of any kind. Batch data (pay, miles, stores, history) stays on your phone, with or without an account. The only exception is a problem report you choose to send with the diagnostics box checked.
5. Permissions the app asks for
| Permission | Platform | Used for |
|---|---|---|
| Screen broadcast | iPhone | Reading batch cards on the device |
| Location while in use | iPhone | Distance to the store; state defaults |
| Accessibility service | Android | Reading text of the Instacart Shopper app |
| Approximate location | Android | State defaults |
| Internet | Android | Optional account and sending a problem report |
| Network state | Android | Lets the optional account know when the phone is online |
6. Children
BatchCheck is made for adult gig workers and is not directed to children under 13. We do not knowingly collect data from children.
7. Your choices and data deletion
- Turn reading off at any time with Stop, or by disabling the accessibility service (Android) or ending the broadcast (iPhone).
- Clear the history in the History tab.
- Uninstall the app to delete everything it stored.
- Delete your account. In the app, open Settings, Account, Delete account. Your account and its record are deleted right away. You can also email support@batchcheck.dev from the account’s address and we delete it within 7 days.
- Stop news emails with the unsubscribe link in any email or the switch in Settings, Account.
- Delete a problem report. Email support@batchcheck.dev with the approximate date of the report; it is removed within 7 days and we confirm by reply.
8. This website
batchcheck.dev uses Google Analytics to count visits and see which pages and links are used. Google sets cookies in your browser for that and receives the pages you open, the links you click, your approximate location (country and region, derived from the IP address, which Google Analytics does not store), your browser and device type, and the site that sent you here. We do not send names, email addresses or anything typed into a form, and we have turned off sharing this data with other Google products. Google processes it under its own privacy policy. You can block it with the Google Analytics opt-out add-on or any content blocker; the site works the same without it.
The site is served by Cloudflare, which may keep short-lived technical logs (such as the IP address) under its own privacy policy.
9. Changes
If this policy changes, the new version will be published on this page with a new effective date. Material changes will also be mentioned in the app’s release notes.
10. Contact
BatchCheck is made and operated by Thiago, an individual in Florida, United States, not a company. Questions, requests and deletions: support@batchcheck.dev.