RouteRooster
Back to home

Privacy Policy

Version 1.1  ·  Effective date: 2026-06-10  ·  Applies to RouteRooster Android and iOS applications

1. What RouteRooster does

RouteRooster is a delivery-driver assistant that coordinates job routing, analytics, and earnings tracking. It operates as an intelligence layer on top of your existing delivery app accounts. It does not log in to, control, tap, or automate any other application.

2. What data we collect and why

2.1 Account information

DataHow collectedPurpose
Firebase Auth UIDFirebase AuthenticationAccount identity and session management
Email address hash (SHA-256)Derived at registration — raw email not stored in FirestoreLinking your account without storing personally-identifiable email in operational data
First name and last name (text)Stored in your account profile under users/{uid}Used for in-app personalisation and to generate community contribution initials. Not shared with third parties or other drivers.

Raw email addresses and phone numbers are never stored in the RouteRooster operational database (Firestore). First name and last name strings are stored in your account profile — see the row above. Firebase Authentication itself holds your credentials in its own system for sign-in purposes; this is governed by the Firebase / Google Privacy Policy.

2.2 Delivery job data (Android and iOS)

DataHow collectedPurposeStored?
Job pickup and dropoff locationsFrom accepted notification signals or manual entryRoute planningYes — in your Firestore document
Earnings per jobFrom notification or manual entryAnalytics and income trackingYes
Job state and lifecycle eventsApp state machine transitionsJob history and analyticsYes
Source platformDerived from notification package nameAnalytics categorisationYes

Job data is written directly to your Firestore document path and is owned by your UID. No other user can read your job data. Firestore rules reject cross-user reads and writes.

2.3 Notification content (Android only)

RouteRooster requests notification access on Android to read delivery offer and lifecycle notifications from supported apps.

Only allowlisted delivery app packages are read: Uber Eats, Uber (rideshare), DoorDash, Amazon Flex, Sherpa, HungryPanda. No personal messages, photos, or non-delivery app notifications are accessed.
DataRetentionStored?
Notification title and body (raw snippet)User-configurable window: 0 to 72 hours maximumBoolean flag only — raw text is redacted before any storage
Parsed job signals (earnings, location, state change)Until job completes or history window expiresYes, as structured job fields

Notification content is redacted on-device before any write to Firestore. The raw text of a notification is never stored as a string in the database. Only the derived structured signals (earnings amount, job state, estimated location) are persisted.

If you set the raw snippet retention window to 0 hours, no snippet record is kept at all. The maximum window is 72 hours, enforced at the Firestore rules level — no client setting can extend beyond this limit.

2.4 OCR fallback (Android only)

When the notification content is insufficient and the Android Accessibility tree is unavailable, RouteRooster may perform on-device OCR analysis on the current screen image.

  • No screenshots or images are ever saved to disk or Firestore.
  • OCR frame data is held in memory only for the duration of a single parsing attempt.
  • Frame data is discarded immediately after use.
  • This behaviour is disclosed during onboarding (Accessibility capture step).

2.5 Accessibility capture (Android only — optional)

RouteRooster includes an optional Accessibility Service that can read delivery app UI content.

  • This feature is never requested automatically. It must be enabled by you in Settings.
  • Sessions are read-only — RouteRooster does not perform taps, gestures, or form filling.
  • Sessions are time-bounded to 90 seconds per active capture window.
  • Capture is restricted to declared supported delivery app packages — no other apps.
  • Accessibility payload data is held in memory for the duration of a session and is not persisted to Firestore.
  • You can disable this feature at any time in the Settings tab.

2.6 Analytics (Android and iOS)

RouteRooster computes daily and monthly analytics rollups from your job history.

DataRetentionWho writes
Daily job metrics (count, earnings, distance)User-configurable 30–365 day windowServer-side Firebase Function
Monthly aggregatesSame windowServer-side Firebase Function

Analytics rollup documents are written by server-side functions only — clients cannot write to these paths. Your analytics data is only accessible to your own account (Firestore rules enforce owner-only read access).

Analytics data is not shared with third parties, advertisers, or used for ad targeting.

2.7 Community signals (Android and iOS)

Community features allow you to contribute anonymised delivery signals: trust scores for community insights, demand scores for hot-zone windows, and restaurant wait time estimates.

Community signal documents are stored in your Firestore path (users/{uid}/communityInsights/, etc.) and are readable only by your account. Aggregation of community trend data occurs at the server layer — individual users' raw submissions are not exposed to other users.

Signal values are bounded by Firestore rules (trust score 0–100, demand score 0–100, wait time 0–180 minutes). No personal job details, earnings, or location data are included in community signals.

2.8 Subscription and billing

DataStoredNotes
Subscription tier (FREE or PRO)Yes — server-managed Firestore documentDetermines feature limits
Subscription statusYesACTIVE, GRACE, EXPIRED, REVOKED
Purchase token hash (Android)Yes — SHA-256 hash onlyRaw Play purchase token is never stored
Transaction ID hash (iOS)Yes — SHA-256 hash onlyRaw App Store transaction ID is never stored

Raw purchase tokens and transaction IDs are hashed on the client before transmission. Only the SHA-256 hash is retained in the backend.

2.9 Diagnostics

If you enable diagnostics upload in Settings, redacted diagnostic records may be written to your Firestore path. Diagnostic payloads are capped at 512 characters and contain no raw notification text, screenshots, or personal data.

2.10 Vehicle configuration and efficiency data

DataHow collectedPurposeStored?
Vehicle category and fuel typeEntered by you during onboarding or SettingsUsed to calculate estimated running costs, CO₂ emissions, and to determine platform vehicle eligibility warnings. Optional — defaults to not set.Yes — in users/{uid}/meta/settings
Fuel efficiency (km per litre or kWh per 100 km)Entered by you during onboarding or SettingsUsed to calculate estimated running costs per deliveryYes — in users/{uid}/meta/settings
Energy cost (fuel price per litre or electricity cost per kWh, AUD)Entered by you during onboarding or SettingsUsed to calculate estimated running costs per deliveryYes — in users/{uid}/meta/settings

All vehicle fields are optional. If not set, running cost and emissions estimates are not displayed. No vehicle data is shared with your delivery platforms or third parties.

2.11 Estimated CO₂ emissions

DataHow derivedPurposeStored?
Estimated CO₂ emissions per job (kg CO₂-e)Derived from your declared vehicle category, fuel type, efficiency data, and job distance using DCCEEW National Greenhouse Accounts Factors 2024Displayed in your analytics dashboardYes — in users/{uid}/analyticsDaily/{date} and users/{uid}/analyticsMonthly/{month}
Estimated CO₂ emissions per day and per monthAggregated from per-job estimatesAnalytics display and operator fleet summariesYes — analytics paths above
Disclaimer: Emissions figures are indicative estimates only. They are calculated from your declared vehicle data and NGA Factors and are not suitable for regulatory reporting, carbon offset calculations, or chain-of-responsibility compliance purposes. Results will differ from official fleet telematics or fuel card data.

Emissions data is not shared with third parties, delivery platforms, or other drivers.

2.12 Shift and fatigue awareness

DataHow derivedPurposeStored?
Shift duration (hours, per day)Calculated from your shift start and shift end eventsDisplayed as a fatigue awareness indicator on the Pool screenDerived client-side from shift events already stored in your Firestore path
On-shift hours todayRunning total derived from shift eventsFatigue awareness banner thresholdNot stored separately — computed at display time

Shift duration data is used only for your in-app awareness display. It is not shared with third parties, delivery platforms, or government agencies.

Note on heavy vehicles: If you set your vehicle type to Heavy Truck or Light Truck, the app displays a factual note that HVNL work/rest rules may apply. RouteRooster does not make any statutory compliance determination for any driver type.

3. What data we do NOT collect

The following data is never collected by RouteRooster:

  • Raw email addresses in the operational database (email is processed by Firebase Auth only; see section 2.1)
  • Raw notification text beyond the redacted structure
  • Screenshots or images from OCR
  • Raw Accessibility tree payloads
  • Raw purchase tokens or transaction IDs
  • Personal messages, photos, or contacts from your device
  • Location data beyond what is used for active map display (Android) or route display (iOS)
  • Any data from apps not on the supported platform allowlist

4. Platform capabilities

RouteRooster is available on Android and iOS. The following capabilities are Android-only and are not present on the iOS app:

CapabilityAndroidiOS
Notification listener / ingest✓✗
HUD overlay✓✗
Optional Accessibility capture✓✗
OCR fallback (memory-only)✓✗
WorkManager background scheduling✓✗

The iOS app supports: manual job entry, route view, earnings dashboard, settings, and subscription management.

5. Data sharing

RouteRooster does not share your data with:

  • Third-party advertisers
  • Data brokers
  • Other RouteRooster users (individual signal data)
  • Your delivery platform employers

Data is stored in Google Firebase (Firestore and Firebase Authentication). Access to Firebase infrastructure is governed by the Google Cloud and Firebase privacy policies, which RouteRooster is bound by as a Firebase customer.

6. Data retention

Data typeDefault retentionUser controlHard limit
Raw notification snippetsPer user settingYes (0–72 hours)72 hours (Firestore rules)
Structured job data90 days after completionVia account deletion (Settings → Account)90 days (auto-pruned)
Analytics rollups395 days (global server cutoff)analyticsHistoryDays setting (30–365 days) controls what the app displays; per-user storage enforcement is a planned enhancement395 days (enforced by scheduled prune job)
OCR framesZeroNo setting neededNever stored
Accessibility payloadsZeroNo setting neededNever stored
Diagnostics90 daysVia account deletion90 days (auto-pruned); 512 chars per record
Community signalsUntil signal expires or account deletionVia account deletionSignal-specific expiry
Job lifecycle events395 daysVia account deletion—
Entitlement audit eventsDeleted with accountFor post-deletion billing disputes, contact your payment platform—
Vehicle category and fuel typeUntil updated or account deletionEditable in Settings at any timeDeleted on account deletion
Vehicle efficiency and energy cost valuesUntil updated or account deletionEditable in Settings at any timeDeleted on account deletion
Estimated CO₂ emissions (per-job and aggregate)395 days (stored within analytics rollups)Via account deletion395 days (same prune job as analytics rollups)
Shift event records (used to derive shift hours)395 days (stored within job lifecycle events path)Via account deletion395 days

Account deletion permanently removes all data under users/{uid} and all jobs/routePlans owned by the account.

Note on analytics retention: The analyticsHistoryDays setting (30–365 days) controls how far back the app displays your analytics. However, the server prune job enforces a global 395-day cutoff — your analytics data may be retained server-side for up to 395 days regardless of your display preference setting. Per-user storage enforcement aligned to analyticsHistoryDays is a planned future enhancement.

7. Security

  • All Firestore writes require authenticated Firebase Auth sessions.
  • Firestore security rules enforce strict ownership — your documents cannot be read or written by any other account.
  • Server-side paths (entitlements, analytics, job events) are write-protected from clients.
  • Billing tokens are hashed before transmission; raw values are never stored.
  • Transport is encrypted via HTTPS/TLS.

8. Your rights

  • Access your data — Request a data export via Settings → Privacy & Data → "Export my data". A structured bundle including your profile, settings, jobs, analytics, and community signals is returned immediately. For accounts with more than 200 jobs or 500 job events, a full export is available on request via the support address.
  • Correct inaccurate data — Update settings and routing preferences in the Settings tab.
  • Delete your account — Settings → Account → "Delete account". This permanently deletes all data across all RouteRooster Firestore paths (jobs, analytics, settings, community signals, diagnostics, and entitlement audit records) and your Firebase Authentication record. Deletion is immediate and irreversible. Billing dispute records (purchase history, transaction records) are maintained by your payment platform — Google Play for Android purchases and Apple App Store for iOS purchases — not by RouteRooster. If you need billing history after deleting your account, contact your payment platform directly.
  • Withdraw consent — Accessibility capture, analytics upload, and diagnostics upload can be disabled at any time from the Settings tab. Changes take effect immediately.

9. Email communications

RouteRooster sends transactional emails only:

  • Email verification (on account creation)
  • Password reset (on request)

No marketing emails are sent. Email addresses are processed by Firebase Authentication only.

10. Changes to this policy

Material changes to this privacy policy will increment disclosureVersion in the app. Users who have completed onboarding with a lower disclosureVersion will be prompted to review the updated disclosures on next session.

11. Contact

For privacy enquiries, contact the RouteRooster operator at the support address listed in the app store listing.


Appendix A: Firebase Auth template requirement

Before public launch, the Firebase Authentication email templates (verification and password reset) must be configured with RouteRooster branding: custom sender name, custom reply-to address, branded email body, and production action URL domain.

Appendix B: Google Play Data Safety — operator action required

The Google Play Data Safety form must be updated before the next app release to accurately reflect the following data types collected:

Data typeCollectedSharedThird-party SDKs
Name (first and last)YesNoNot shared with SDKs
Analytics (usage data)YesYes — Firebase AnalyticsFirebase Analytics
Crash logsYesYes — Firebase CrashlyticsFirebase Crashlytics
Device identifiersYesYes — FCM, Firebase InstallationsFCM, Firebase Installations
Vehicle category and fuel typeYesNoNot shared with SDKs
Estimated emissions dataYesNoNot shared with SDKs
Shift duration dataYes (derived)NoNot shared with SDKs

The operator must update the Play Console Data Safety form to declare "Personal info — Name" as collected, confirm Firebase Analytics, Crashlytics, FCM, and Firebase Installations as declared third-party SDK data sharing, and confirm that no data is sold and no data is used for ad targeting.

RouteRooster
Privacy Policy Terms of Service Support Home

© 2026 RouteRooster. All rights reserved.