Privacy Policy — Overtime HQ

Last updated: November 4, 2026 (team calendar, version counts, crash reports)
Contact: overtimeanddetail@gmail.com

Overtime HQ ("the App") helps you track overtime, paid details, pay and retirement. It is built so your information stays on your phone. This policy explains what the App stores and when anything leaves your phone.

The short version

Information stored on your phone

Everything you enter or import — overtime entries, paid detail shifts, pay stubs, paid overtime and W-2 figures from ESS, leave balances, calendar events, retirement figures, your profile (name, rank, command, email for slips) and your signature — is stored in the App's storage on your phone, encrypted with AES-256. The encryption key is kept in your phone's secure Keychain (iOS) or Keystore (Android).

Deleting the App deletes your records. iOS may keep the App's encryption key in the Keychain, but it cannot open anything once the records are gone.

Shared calendar (optional)

The shared calendar lets you post overtime slots and share them with people you invite with a code or link. It is the only part of the App that uses an account and a server.

NYC Employee Self-Service (ESS)

The optional ESS import opens the City of New York's own Employee Self-Service website inside the App. You sign in on the City's page, including any verification code the City sends you. The App then reads the pages you are signed in to — pay stubs, overtime inquiry, pay type inquiry and tax summary — and saves the figures on your phone. Overtime HQ is not affiliated with the City.

If you choose "save my login", your ESS username and password are stored only in your phone's Keychain (iOS) or Keystore (Android), on that phone only, protected by Face ID or your device passcode, and used only to fill in the City's sign-in page. They are never sent to us or to anyone else. "Disconnect ESS" deletes them at any time; if you delete the App, a saved login is removed the next time the App is installed.

The App never stores or reads your verification codes.

Photos and scanning

Photos of overtime slips, paid detail cards, checks or screenshots are read on your phone with Google's on-device text recognition (ML Kit). The images and their text are not uploaded. Google's ML Kit software may send Google anonymous information about how the text recognition performs (for example, how long it took); it does not include your images, their text or anything that identifies you.

Moving to a new phone

Settings › Backup & restore makes one encrypted backup file, locked with a passphrase you choose. You decide where to keep it (for example Files or iCloud Drive). We never receive it, and it cannot be opened without your passphrase, which is not stored anywhere.

Email, print and share

When you email an overtime slip, a report or a problem report, or share a file, the App opens your phone's Mail app or share sheet with the content filled in. Nothing is sent until you tap Send, and it goes through your own email account to the addresses you choose. ESS problem reports leave out passwords, codes, names and pay amounts.

Notifications

Reminders (for example a paid detail starting soon) are scheduled on your phone; no server is involved. Shared calendar notifications come from our server, as described above, only if you use the shared calendar and allow notifications.

Version counts and crash reports

So we know how many members are still on an older version, and how many use the App, the App sends once a day at most, when it opens: a random number made on your phone (not linked to you, your name, your sign-in, ESS or anything you entered), the App's version and build, and whether the phone is an iPhone or Android. Our server (Google Firebase, United States) keeps only that and the day it was last seen, deletes it after 15 days without a new one, and shows us only totals — phones per version, and phones that opened the App in the last 7 and 14 days.

From the 1.1.1 store version, if the App crashes — or shows its "Something went wrong" screen — it sends a crash report through Google Firebase Crashlytics: which screen was open (its name, like "Overtime"), the error and where in the App's code it happened, the phone model, system version, App version, and a random identifier Crashlytics makes for the installation. Never your name, sign-in, notes, pay or anything you entered. Google keeps crash reports for up to 90 days.

Settings › App version has a switch for each: Count this phone in app usage and Send crash reports.

Advertising, tracking

The App contains no advertising and no cross-app tracking. We do not sell or share personal information. The shared calendar information above is used only to run the shared calendar; version counts and crash reports are used only to support and fix the App.

Deleting your information

Settings › Danger zone › Reset all data deletes everything the App has stored on your phone. If you used the shared calendar, also use Settings › Shared calendar › Delete my shared calendar data (or email us) to delete what is on the server. Emails you sent stay in your own mailbox and with the people you sent them to.

Children

The App is not directed at children under 13, and we do not knowingly collect information from children.

Changes to this policy

If this policy changes, the updated version will be published at the same address with a new "Last updated" date.

Contact

Questions: overtimeanddetail@gmail.com

Overtime HQ is an independent app. It is not affiliated with, endorsed by, or connected to the New York City Police Department, the City of New York or any union.