Public policy · Across Hours
Privacy Policy — Across Hours
Last updated
Across Hours is designed around local data and deliberately limited measurement. This policy explains what the website, PWA, Android app, and widgets store, send, and do not send.
01 About Across Hours
Across Hours is a local-first world-time globe for understanding daylight, local time, saved people or places, and preferred contact hours. It is available as a website and installable PWA, and through an Android Trusted Web Activity with native home-screen widgets.
Across Hours has no user accounts. You do not need to provide a name, email address, contact list, or profile to use the product.
02 Data stored locally
Saved-person or place labels, coordinates, time zones, ordering, contact windows, your available-hours preference, language preference, and internal saved-entry identifiers are stored in your browser's local storage. Your language preference is only the selected supported language code. Your available hours are stored as a recurring wall-clock range and follow your current device timezone. Searches use an index shipped with the app and run on your device. Globe selections and timezone lookup also run locally.
On Android, choosing Widget · Sync creates a payload from your saved entries and passes it directly from the web app to the Across Hours Android app. The native app stores that data in private on-device storage as the widgets' local mirror. The mirror may include labels, coordinates, time zones, and contact windows. Widget globe orientation is also stored privately on the device. Widget data is not uploaded to Across Hours servers.
A separate browser local-storage record may hold the PWA telemetry installation UUID and fixed-size delivery state described below. Android keeps its different telemetry UUID and bounded pending-event queue in private app storage.
Links you choose to share
When you explicitly use Share overlap, Across Hours creates a versioned link containing the origin timezone and your explicitly configured availability window, plus the destination timezone, public place and coordinates, and that person's availability window. These two windows let the recipient reproduce the overlap without an account or backend. You can also explicitly choose Include names in shared link and review or edit the optional names before sharing. A saved-person label may prefill the recipient name field, but it is included only with your explicit choice to select that control. When name sharing is disabled, saved-person labels are not included. Internal saved-entry identifiers, other contacts, installation identifiers, and telemetry identifiers are never included. The link is generated on your device and no share record or name preference is stored by Across Hours.
A share link is not secret or encrypted. It is encoded only for compactness. Anyone who receives it can read or forward the comparison data it contains. The complete requested URL may also be processed by browsers, messaging services, recipients, referrer destinations, Vercel hosting, and the anonymous URL measurement described below. Create or send a link only when you intend to share those place, timezone, coordinate, availability-window, and optional name details. Anyone with the link can see any names you choose to include.
03 Analytics and operational data
Google Play Data Safety alignment
Across Hours declares Approximate location, Diagnostics, App interactions, and Device or other IDs in Google Play Data Safety as collected, not shared, required, retained beyond ephemeral processing, and used for Analytics. The service providers named below process these limited categories on behalf of Across Hours to operate and measure the product; Across Hours does not sell them or provide them for independent advertising.
Hosting and web analytics infrastructure may derive a coarse geographic area, such as country, city, or region, from network information including an IP address. This is approximate location, not precise or GPS device location. Across Hours does not request Android location permission, and its first-party telemetry does not collect precise or GPS location. Infrastructure may process an IP address to deliver and protect the service, but raw IP addresses are not persisted in Across Hours first-party telemetry storage.
Coordinates for people or places that you save or select are product data, not device location. They remain local-first and are not uploaded through Across Hours first-party telemetry or attached to web analytics. The exception is the minimum comparison data you deliberately place into a share link, as described above; that data travels as part of the URL when the link is opened.
First-party product telemetry
Across Hours accepts only a small allowlist of signals. Android may report first launch, daily activity, and whether the people or globe widget provider is enabled or disabled. An installed PWA may report a browser-observed app installation, its first standalone launch, and daily activity. These signals are used to understand product installations, recent activity, PWA installation signals, and widget-provider state.
Android generates a random installation UUID with the platform UUID generator. The PWA generates its own random UUID with the browser cryptography API. The identifiers are separate and are not shared or correlated, even when Android and the PWA are on the same device.
The telemetry endpoint validates the installation UUID, platform, allowlisted event, bounded app version, and optional widget type. Clients do not send timestamps. Before persistence, the server transforms the UUID with HMAC-SHA-256 using a server secret. Only the HMAC-derived member and the relevant server receipt time or state are persisted. Raw installation UUIDs, client timestamps, app versions, and raw event payloads are not persisted, and the HMAC digest is not returned to clients.
Anonymous website and performance measurement
On the exact production origin https://acrosshours.com, the globe application uses Vercel Web Analytics for anonymous page-view and visitor measurement. Across Hours does not send custom analytics events or attach saved product data, and this integration does not use an Across Hours telemetry identity cookie.
The globe application also uses Vercel Speed Insights to understand real-world web performance. Vercel records anonymous performance data points such as the page route and URL, Web Vitals and their page-element attribution, network speed, browser, operating system, device type, country, SDK information, and server receipt time. Vercel states that its Web Analytics and Speed Insights records are not tied to an individual visitor or IP address and do not reconstruct a browsing session across pages.
As with ordinary web hosting, Vercel processes requests needed to deliver the site, scripts, assets, and API and to protect and operate that infrastructure. Such requests can include standard network information such as an IP address, requested path, browser headers, and receipt time. This operational request handling is separate from the pseudonymous first-party telemetry storage described above.
04 Data first-party telemetry does not collect
The Across Hours first-party telemetry system does not read, collect, transmit, derive, log, or store:
- saved-person IDs, labels or names, coordinates, time zones, or contact windows;
- search queries, selected locations, globe orientation, or user-entered text;
- email addresses, phone numbers, account identity, Google account data, or contact lists;
- advertising IDs, Android IDs, IMEI numbers, MAC addresses, or cross-app identifiers;
- telemetry identity cookies, device or browser fingerprints, or a precise device model as identity; or
- raw IP addresses in first-party analytics storage.
Across Hours does not use Google Analytics, Firebase Analytics, an advertising SDK, or another third-party product analytics SDK. Vercel's limited anonymous website and performance fields are described separately above.
05 Support communications
If you email help@acrosshours.com, Across Hours receives your email address and whatever information you voluntarily include in the message. That information is used to answer your question, investigate a problem, provide support, or handle a privacy request. It is not app telemetry.
Email delivery and mailbox providers process support messages so they can be routed, stored, and answered. Please do not include passwords or unnecessary sensitive personal information in a support message.
06 Service providers
Across Hours uses providers only where needed to operate and support the service:
- Vercel provides website and API hosting, anonymous Web Analytics, and anonymous Speed Insights performance measurement.
- Upstash Redis stores the HMAC-derived installation members, server receipt times, and widget or PWA state used by first-party telemetry.
- Email service providers route, store, and deliver messages you choose to send to support.
These providers process information to provide their services. Across Hours does not provide saved-person data or support-message contents to analytics providers, and does not use the collected information for advertising.
07 Data security
Across Hours limits telemetry fields at both client and server, sends telemetry over HTTPS, keeps server credentials out of the browser bundle, HMACs installation UUIDs before storage, and keeps saved and widget data in local private storage. Input size, event names, and widget payloads are strictly validated. No system can guarantee absolute security, but the product is designed to minimize the data available in the first place.
08 Retention and deletion
Local product data
Browser-saved entries remain until you delete an entry in Across Hours or clear the site's browser data. Contact hours can be cleared in the entry editor. Clearing site data also removes the local PWA telemetry identity and delivery state. A synchronized Android widget mirror remains in the Android app's private storage until it is replaced by a later sync, or Android app data is cleared or the app is uninstalled. Clearing Android app data or uninstalling also resets the Android telemetry identity.
First-party telemetry
There is no raw event log and no daily counter series. The HMAC-derived first-seen, last-seen, PWA-install-signal, and widget-state identity structures do not have an automatic expiry. An Android widget-disabled signal removes that installation from the corresponding active-widget set. If no disabled signal arrives, the private 30-day widget metric stops counting an active assertion after 30 days, but there is no expiration job that deletes the underlying member.
Clearing local app or browser data prevents the old installation UUID from being used again but does not by itself remove an already stored HMAC-derived server member. Because Across Hours has no account system and does not retain raw installation UUIDs, it may not be possible to associate a telemetry member with a particular person. Send privacy or deletion questions to help@acrosshours.com.
Support messages and provider data
Support correspondence is kept for as long as reasonably needed to answer and follow up on the request, maintain support records, and meet security or legal obligations. You may ask for deletion by replying to the support thread. Providers may retain limited records or backups under their own retention and legal obligations.
09 User choices
- Use Across Hours without creating an account or supplying profile information.
- Choose whether to save entries, set your available hours or contact hours, install the PWA, or sync Android widgets.
- Delete saved entries, clear your available hours or contact hours, clear browser site data, or clear or uninstall the Android app.
- Block or disable browser storage; the PWA telemetry path then disables itself, although saved entries will not persist.
- Use browser privacy or content-blocking controls for Vercel's analytics and performance scripts.
- Contact Across Hours with a privacy or data question.
10 Changes to this policy
This policy may change when the product or its data practices change. The public page will show a revised last-updated date. Material changes will be described clearly in the updated policy.
11 Contact
For privacy requests or questions about this policy, email help@acrosshours.com.