Who we are
Punch Clock is made by StackCurious ("we", "us"). Questions and requests go to stackcurious@gmail.com.
What stays on your device
Everything you enter is stored in the app on your device, on every platform:
- Shifts: punch-in and punch-out times, breaks and notes
- Jobs (projects), rates and pay rules
- Clients, invoices and your business and payment details
- Settings, including the workplace you save on Android
- Daily backups, kept in the app's own storage (the newest 14)
We never receive any of this. Timesheets, exports and invoices go only where you send or save them.
Copies in your own cloud
iCloud sync (iPhone, iPad and Mac, Pro)
If you use iCloud sync, your data is stored in the private database of your own iCloud account through Apple's CloudKit. It is protected by your Apple Account and encrypted by Apple in transit and at rest; with Advanced Data Protection turned on, Apple encrypts it end to end. We cannot read it. Sync can be turned off in Settings.
Android backup (Android)
Punch Clock lets Android's built-in backup copy its database, its settings (including a saved workplace) and its daily backups to your own Google account, so a new phone can restore them. This is Android's backup service, run by Google under your account; we cannot read it. It follows your phone's backup setting (Settings → Google → Backup on most phones), and you can turn it off or delete the backup there. Analytics and review counters are left out of it.
Google Drive sync (Android, Pro, where available)
If you connect Google Drive sync, the app keeps one sync file of your shifts, jobs, clients and invoices in the hidden app-data folder of your own Google Drive. The app asks only for access to that folder, not to your other files, and we cannot read it. It is off unless you connect it. You can disconnect in the app, and remove the data in Google Drive under Settings → Manage apps → Punch Clock → Delete hidden app data.
Permissions, used on your device only
- Notifications: the running-shift notification, the forgot-to-punch-out reminder and the Weekly Pay Summary. Asked for at your first punch-in, not at launch.
- Calendar (Rewind): only if you turn on calendar suggestions. The app reads your calendar events on the device to suggest time you forgot to track. Events are never sent to us. A suggestion you choose to log becomes an ordinary shift on your device.
- Location (Android only, Pro workplace reminder): only if you set up the workplace reminder, after a notice in the app. You allow location "All the time", and Android's location services (Google Play services) watch the edge of the one circle you saved, so the app can ask "At work?" when you arrive and "Leaving work?" when you leave. It never punches by itself. The app stores only the circle you saved (its centre and radius), on the phone and in your Android backup. It does not keep a location history, and your location is never sent to us. Remove the workplace or turn off the permission at any time. On iPhone, iPad and Mac, Punch Clock does not ask for location.
- Mac away detection: reads only how long it has been since the last keyboard or mouse input. No screenshots, keystrokes or other apps.
Usage analytics (Pulse)
To learn which parts of the app are used and whether upgrades work, the app sends usage events over HTTPS to Pulse, our own analytics service run by StackCurious (pulse.stackcurious.com). An event is a name such as "app opened", "punch in", "paywall shown" or "timesheet shared", with coarse details such as where it came from (app, widget or notification) or which plan was picked. Each batch of events carries:
- a random install identifier created by the app, not linked to your name, email, Apple Account or Google account. No advertising ID or Android ID is used
- the app version, OS version, the kind of device (iPhone, Mac or Android) and the country or region setting of the device (not its location)
- whether the app is a test build or the store version
Events never include your shifts, hours, pay amounts, job names, client names, notes, invoices, calendar events or location. Purchase events also name the plan, product and offer and, on Android, the Google Play order ID and the RevenueCat customer ID, so we can match a purchase to the screen that led to it. There is no in-app switch to turn analytics off. Debug and test builds send nothing.
Purchases
On iPhone, iPad and Mac
Subscriptions and the Lifetime purchase are processed by Apple. The app attaches its random install identifier to the purchase, so we can tell whether it came from an install that saw the upgrade screen. When the app offers a discount, it sends the plan, the offer and the install identifier to Pulse to have the offer signed. Apple does not share your identity or payment details with us.
On Android
Subscriptions and the Lifetime purchase are processed by Google Play. The app uses RevenueCat (RevenueCat, Inc.) as our service provider to check which purchases are active. RevenueCat receives the Google Play purchase details (product, purchase token, order ID and dates), an anonymous RevenueCat customer ID created on your phone, the app's install identifier, and the technical information its SDK needs, such as app version, platform and IP address. RevenueCat sends purchase and renewal events to Pulse. Your card and payment details are handled by Google and never reach the app, RevenueCat or us. See RevenueCat's privacy policy.
Ratings
Now and then the app asks the store to show its rating prompt (Apple's or Google Play's in-app review). The prompt is run by Apple or Google; we see only the public rating or review you choose to post.
Who receives data
- StackCurious (Pulse): the analytics and purchase events described above.
- RevenueCat (Android): purchase details and IDs, as our service provider.
- Apple: App Store purchases, iCloud sync and rating prompts, under your Apple Account and Apple's privacy policy.
- Google: Google Play purchases and rating prompts, location services for the workplace reminder, Android backup and, if you connect it, Google Drive, under your Google account and Google's privacy policy.
We don't sell or share personal data, we don't use it for advertising, and the app contains no ads, advertising SDKs or data brokers.
How long we keep data
Your work records stay on your device and in your own iCloud, Android backup or Google Drive until you delete them; we hold no copy. We keep analytics and purchase events while Punch Clock is offered, to understand use and to support purchases, and delete an install's events when you ask. RevenueCat keeps purchase records on our behalf until we delete the customer. Apple and Google keep their own purchase records under their policies.
Your choices and deletion
- Export: Settings → Data saves everything as JSON or CSV, free.
- Delete on the device: delete any shift, job or invoice in the app. Deleting the app removes its data from the device. Remove iCloud data in your device's iCloud settings, Android backup data in your phone's Google backup settings, and Google Drive sync data in Google Drive as described above.
- Delete what we hold: email stackcurious@gmail.com and ask. On Android, include the Install ID shown in Settings → About (and your Google Play order ID if you bought Pro); we delete that install's events in Pulse and its customer in RevenueCat, and confirm by email. The iPhone, iPad and Mac app does not show its install identifier, so we cannot find its events; they contain no personal information.
Security
Data the app sends travels over HTTPS. Everything else stays on your device, protected by your device's lock and encryption, or in your own Apple or Google account.
Children
Punch Clock is a work tool for adults paid by the hour. It is not directed at children, and we don't knowingly collect personal information from children under 13 (or the age set by your country's law).
This website
punchclockapp.com uses Google Analytics and Vercel Web Analytics to count visits and see which pages are read. These services receive standard web request data such as your IP address, browser and the pages you view. Google Analytics sets cookies; you can block them in your browser or with Google's opt-out add-on. The website has no forms and asks for no personal information.
Changes
If this policy changes, we'll update it here and change the date at the top.
Contact
StackCurious · stackcurious@gmail.com