ParkRide Planner Privacy Policy
Effective date: 3 August 2026
ParkRide Planner is an independent mobile app for checking supported NSW Park&Ride availability and related planning information. This policy explains what the iOS and Android apps and backend use.
Information used by the app
The app stores favourites, display preferences, alert schedules, snooze state, Supporter entitlement state, optional guidance settings, and optional saved Location Context on your device. Android also stores a usual drive time you choose for each car park when you use Leave-Time Guidance. This private app data is excluded from Android cloud backup and device transfer so installation identifiers and access tokens are not restored onto a different installation.
If you choose to share your location, the app uses it for nearby sorting and distance display. On iOS, Apple Maps may also provide optional drive-time estimates. On Android, the app uses Android and Google location services to obtain a current location, and the device geocoder to search an address, suburb, or place; Android Leave-Time Guidance uses the usual drive time you set rather than sending a route to the ParkRide Planner backend. Opening directions hands the destination to the maps app you choose. Apple, Google, or that maps app may process the information under their own privacy policies.
Your device location, saved Location Context, entered address/suburb/place, route, drive-time estimate, usual drive time, reminder time, and leave-by time are not sent to the ParkRide Planner backend.
Information sent to the backend
The app requests parking availability, history, typical patterns, Plan results, service notices, and related data from the ParkRide Planner backend. Like most web services, the backend and its hosting provider may process ordinary request metadata such as IP address, request time, URL, and user agent for delivery, security, logging, and operations.
If you enable alerts, the app sends an installation identifier, an Apple Push Notification service token or Android Firebase Installation ID registered with Firebase Cloud Messaging, selected parking locations, selected weekdays, alert time windows, repeat interval, snooze state, and limited Leave-Time Guidance readiness/status fields. The guidance fields can identify the selected car park and why guidance is unavailable, but do not contain your location, route, or drive time. This information is used to evaluate and send requested notifications. iOS can also send ActivityKit push tokens for requested Live Activity updates.
If you use a Supporter Home Screen widget or Apple Watch complication, the app may send the same installation identifier and purchase evidence to verify Supporter access and issue a short-lived widget access token. On iOS this is an Apple-signed StoreKit transaction. On Android this is a Google Play purchase token. The backend stores relevant product and transaction/order identifiers, store environment, status, expiry, signing/event time, ownership type where Apple provides it, and a one-way hash of the purchase evidence. It does not store the complete StoreKit transaction or raw Google Play purchase token. The widget and complication use the short-lived token to request parking availability for the selected car park.
The app may send a daily active-use heartbeat with an installation identifier, app version, build number, platform, distribution channel such as TestFlight, App Store, Play testing, or Google Play, and coarse Supporter state. The backend hashes the installation identifier before storing the daily heartbeat and uses it for capacity, cost, reliability, build-channel, and supporter/free trend monitoring. The heartbeat does not include your location, saved Location Context, selected car parks, routes, or screen-level interaction history.
The backend may also aggregate app version, build number, platform, and broad endpoint group from normal app API request headers. This is used to understand whether older app versions are still actively calling the service before changing backend compatibility support. This aggregate request signal does not store installation identifiers, IP addresses, selected car parks, routes, or screen-level interaction history.
Purchases
Supporter subscriptions are handled by Apple using StoreKit on iOS and Google Play Billing on Android. ParkRide Planner reads and verifies store entitlement state to unlock supported app features. Apple may provide Family Sharing entitlement information. The backend receives authenticated store lifecycle notifications about events such as renewal, expiry, refund, revocation, grace period, pause, or account hold so access can stay current when the app is not open. The app and backend do not receive or store your payment-card or bank-account details and do not run their own payment processing.
Service providers
Cloudflare hosts the ParkRide Planner backend and database. Apple provides StoreKit, Apple Push Notification service, ActivityKit, Apple Maps, and App Store lifecycle services for relevant iOS features. Google provides Firebase Cloud Messaging, Google Play Billing and purchase verification, Google Cloud Pub/Sub for Play lifecycle notifications, and Android/Google location services for relevant Android features. These providers may process data needed to deliver their services under their own privacy terms.
Tracking and advertising
ParkRide Planner does not show third-party advertising and does not track you across apps or websites.
Data sources
ParkRide Planner uses Transport for NSW Open Data through a backend proxy. Parking availability can lag actual conditions and should be treated as guidance. ParkRide Planner is not an official Transport for NSW app and is not endorsed by Transport for NSW.
Retention
Alert registration data is kept while alerts or Live Activity updates are enabled or until it is replaced by a newer registration. When alerts are disabled, the backend deletes the alert device registration and alert schedule rows. A one-way hashed registration-order marker may remain so a delayed older request cannot restore a disabled registration. Notification delivery events, backend operational events, and daily active-use heartbeat rows are retained for limited periods for deduplication, reliability, capacity, cost, and operations. App Store and Google Play lifecycle notification receipts are retained for up to 180 days by default. Current verified transaction and installation entitlement state is retained while needed to provide and protect Supporter access, including preventing an older transaction or notification from overriding a later refund, expiry, or revocation.
Contact
For privacy questions or support, email feedback@parkrideplanner.com.