Last updated:
Privacy Policy
Effective Date: October 24, 2026
Provider: Joshua Robins DBA EveryLastMile (“EveryLastMile,” “we,” “us,” “our”)
Contact: privacy@everylastmile.app
Privacy Officer: privacy@everylastmile.app
This Privacy Policy explains how EveryLastMile collects, uses, shares, and protects information when you use the EveryLastMile mobile application and related services (collectively, the “Services”). We built EveryLastMile with a privacy-first architecture: the vast majority of your data never leaves your device.
1. Scope and Roles
This Policy applies to the EveryLastMile iOS application and our marketing website at everylastmile.app. For the purposes of applicable privacy laws (including the California Consumer Privacy Act, as amended by the California Privacy Rights Act), we act as the “business” or “controller” for the personal information we process.
1.1 Marketing Website (everylastmile.app)
Our marketing website is intentionally minimal. It collects no personal information from you, sets no third-party cookies, and runs no advertising pixels. Browser storage is limited to first-party interface preferences such as theme choice and smart-banner dismissal; it is not used for analytics, advertising, or cross-site tracking.
Cloudflare Web Analytics: We use Cloudflare Web Analytics to count aggregate page views and understand which pages are useful to visitors. Cloudflare Web Analytics is cookieless and does not track individuals across sites. It does not use IP addresses for tracking (your IP is anonymized at ingestion), does not build user profiles, and does not share data with advertising networks. Aggregate data is retained per Cloudflare’s defaults (six months at the time of writing). For details see Cloudflare’s privacy commitments and the Web Analytics documentation.
PostHog Web Analytics, Web Vitals, and positional heatmaps: We also use PostHog to understand which website pages are useful, how quickly they load and respond, and where on the page visitors interact. Our website integration is configured for page analytics, Web Vitals performance analytics, and positional heatmaps only: no cookies or browser persistence, no form or click autocapture, no surveys, no session recording, and no anonymous person profiles. Positional heatmaps record only the on-page coordinates of clicks, mouse movements, and scrolls — they do not record element content, text, CSS selectors, the URLs of links clicked, form values, or anything typed. Website events may include page URL, referrer, browser/device metadata, page leave timing, Web Vitals performance metrics such as first contentful paint, largest contentful paint, interaction to next paint, and cumulative layout shift, and positional heatmap coordinates; they do not include trip data, GPS coordinates, street addresses, account profile information, or anything typed into forms.
Cloudflare hosting: Like every web request, our pages are served by Cloudflare Workers (Cloudflare, Inc.) acting as our hosting provider. Cloudflare maintains routine server logs (timestamp, requested URL, user agent, anonymized IP) used for operational security, abuse prevention, and performance monitoring. We do not associate these logs with any individual identity.
No cookies, no fingerprinting. The marketing website does not set any cookies of its own and does not employ browser fingerprinting techniques.
Everything below this section applies to the EveryLastMile iOS application, where data collection necessarily differs because the app provides the core mileage-tracking service.
2. Information We Collect
2.1 Information You Provide Directly
| Data | Examples | Purpose |
|---|---|---|
| Account information | First name, last name, email address (via Apple Sign In) | Account creation, identification, customer support |
| Trip classifications and notes | Business/personal designation, business purpose, trip notes | Mileage recordkeeping for your tax authority (IRS or CRA) |
| Vehicle information | Vehicle nickname, make, model, year, license plate, odometer readings | Associate trips with vehicles, reporting |
| Saved locations | Location name, address, GPS coordinates, location type (home, work, client) | Auto-classification, trip enrichment |
| Expense data | Parking costs and toll costs, in the currency you enter them in | Expense tracking and reporting |
| Support communications | Emails, feedback, diagnostic exports you share with us | Respond to inquiries, troubleshoot issues |
2.2 Information Collected Automatically from Your Device
Why we request “Always Allow” location: EveryLastMile uses background location access to automatically detect when you begin and end a drive, so trips are recorded without you having to remember to start the app. Drive detection runs on your device, and your trip history is stored there. We do not operate a server that holds your trips, routes, or addresses, and your location is never sent to our analytics provider. After a drive is recorded, limited coordinates may be sent to Apple and Mapbox for addresses, road-snapping, and weather conditions, as described in Section 2.4. Without this permission, you can still record trips manually, but automatic detection will not function.
Depending on the permissions you grant, we collect the following on-device:
Precise Geolocation Data
- GPS coordinates (latitude, longitude) captured continuously during trip recording
- Speed, course (direction of travel), and course accuracy at each recorded point
- Parking spot locations (origin and destination)
- Reverse-geocoded street addresses derived from GPS coordinates (via Apple MapKit)
- Limited location data used to support map, route, and trip-accuracy features (via Mapbox)
Note on reverse geocoding: When the app converts GPS coordinates into a readable street address, it sends those coordinates to Apple’s MapKit service. Per Apple’s stated MapKit privacy practices, these queries are not associated with your Apple ID and are not used to build a profile of you. We do not see or store the relationship between your coordinates and your identity beyond what is stored locally on your device.
Note on Mapbox: The app uses Mapbox for limited map and location processing that supports trip accuracy and route display. Mapbox requests are limited to what is needed for those app features and do not include your name, email, Apple ID, trip classifications, vehicle information, notes, expenses, or other account profile details.
Motion and Fitness Data
- Activity classification signals from Apple CoreMotion (walking, running, driving, stationary)
- Used solely to detect when you begin and end a drive for automatic trip recording
- Raw accelerometer or gyroscope data is not stored
Car Connection Data
- When your iPhone connects to a car’s audio over Bluetooth or CarPlay, the app reads that audio device’s name and identifier from iOS. It does not scan for Bluetooth devices
- Used solely to detect when you begin and end a drive, and to note where you parked when the car disconnects
- The app remembers on your device which audio devices are car stereos. If you link a car stereo to a vehicle, its name and identifier are stored with that vehicle, which syncs to your private iCloud while you are signed in (Section 3.2)
- Device names and identifiers are never sent to us, to our analytics provider, or to our crash-reporting provider
Device and App Information
- Device model, operating system version
- App version and build number
- Locale and timezone
- Subscription tier (Free or Premium)
- Permission states (location, motion, notifications)
2.3 Analytics and Diagnostics
We use PostHog, a product analytics service, to collect usage events that help us maintain and improve the Services. Analytics events are not linked to your name, email, or any directly identifying personal information when transmitted to PostHog. You can turn analytics off at any time in Profile > Share analytics. Section 4.1 sets out what we never use analytics for.
What the analytics toggle does and does not stop. Turning it off stops the app from sending product analytics. Two other flows are unaffected, because neither originates on your device: crash reports (see below), and subscription lifecycle notifications that Apple sends to us server-side (see Section 2.6). Neither carries location data, trip data, or anything you have typed.
What analytics collects:
- Session events (app opened, session started)
- Screen navigation events (which screens you view)
- Trip lifecycle events (trip started, trip completed, trip deleted), with rounded bands for the trip’s distance, duration and time of day (for example, “morning”) and whether it was detected automatically, but never exact values, GPS coordinates, route data, or street addresses
- Purchase funnel events (paywall viewed, where it was opened from, such as a reminder, plan selected, purchase outcome), for both subscriptions and one-time purchases
- A rounded band of your estimated deduction when you view it or choose the free version (never the exact amount)
- Which version of a screen you were shown, when we test a change to the app with randomly chosen users
- Answers you submit to in-app surveys or feedback forms, including any text you type, and a link to any screenshot you attach (the image itself is stored in Firebase Storage, Section 5)
- Feature usage events (classification changes, bulk actions, import operations)
- An anonymous installation identifier (a random UUID generated on your device)
Device and app context attached to each event:
- Operating system and version (e.g., iOS 26.4)
- App version, build, and bundle identifier
- Device type (e.g., Mobile)
- Your device’s region and language, and the currency you use in the app
- Your subscription status (for example, trial, paid, or cancellation scheduled)
- Rounded bands derived from your activity (numbers of trips, business trips, unclassified drives, vehicles and saved locations, and the share of your drives you have classified)
- Whether certain features are enabled (auto-tracking, business hours, connected vehicle), whether automatic tracking is ready or blocked, and whether Low Power Mode is on
- Authentication provider (e.g., Apple Sign In, anonymous)
What analytics does NOT collect:
- GPS coordinates, route points, or trip routes
- Street addresses or location names
- Personal profile information (name, email, phone number)
- Vehicle details (make, model, license plate)
- Trip notes, business purposes, or expense amounts
- Exact trip distances, durations or times, or exact deduction amounts
- Saved location data
- Contact names, contact addresses, or how many contacts you have
- IP addresses (we have configured PostHog to discard IP addresses at ingestion)
- Geographic location derived from IP (we have disabled PostHog’s GeoIP enrichment, so country, city, region, and approximate coordinates are not derived from your IP address)
Anonymous and Pseudonymous Identification
- Before you sign in, events are associated with a randomly generated installation ID stored on your device
- After you sign in with Apple, your Apple User ID is mapped to a separate analytics identifier; your real name and email are not sent to PostHog
- After you sign in, the device and activity details above are also kept on an analytics profile for that identifier, so we can understand usage over time. The profile does not hold your name or email
- The app asks PostHog which features to turn on for you (feature flags). We use flags to roll features out gradually or to test changes with randomly chosen users. The only flag that looks at what you have done is the one that stops showing you a survey after you have answered or dismissed it. No flag looks at your driving data (Section 4.1)
Crash diagnostics (Firebase Crashlytics). In App Store (Release) builds, we use Firebase Crashlytics (Google LLC) to receive automatic crash reports when the app stops unexpectedly. A crash report contains technical diagnostics only — stack traces, device model and OS version, app build metadata, and a random Crashlytics installation identifier. It does not include your trips, routes, GPS coordinates, addresses, name, or email. Crash collection is disabled entirely in development builds.
2.4 Information from Third-Party Services
| Service | Data Received | When |
|---|---|---|
| Apple Sign In | Name, email (as you authorize) | When you create an account |
| Apple StoreKit | Subscription and purchase status, transaction verification | When you subscribe, make a one-time purchase, or restore purchases |
| Apple MapKit | Street addresses from GPS coordinates | When resolving trip start/end addresses |
| Apple MapKit | The text of a contact’s postal address, without the contact’s name; coordinates are returned | Only while “Show contact names on drives” is on and the app is open, when the app locates the addresses of contacts you allow |
| Apple Maps Server | Coordinates of trip endpoints | When reconstructing a drive’s route (road-snapping) |
| Apple Weather (WeatherKit) | The starting coordinate and start time of a single drive | When you open the details of a drive recorded in the last 30 days, and only while Drive Weather is on in Profile |
| Mapbox | The starting coordinates of a drive and their timestamps, truncated to roughly 11 cm, for the first stretch of the route | When road-snapping the start of a drive during enrichment |
| U.S. DOE FuelEconomy.gov | Vehicle year, make, and model listings | When you add a vehicle (public data; no personal data sent) |
2.5 Artificial Intelligence and Machine Learning
The app ships no artificial-intelligence or machine-learning models. Drive detection is sensor fusion — GPS, motion, CarPlay, Bluetooth and geofences combined by ordinary rules — not a learned model.
- Nothing is pooled: We do not aggregate or transmit your trip data, routes, addresses, or classifications to train shared models
- Nothing of yours trains anything: Your trips, routes, and personal data are not used to train any model we develop, or that any third party develops
- If this changes: Any future on-device processing of this kind will be described here before it ships, and this section will say plainly what runs where
If we ever change this approach (for example, to introduce optional cloud-based AI features), we will update this Policy and provide you with meaningful notice and choice before any change takes effect.
2.6 Subscription Notifications From Apple
When you buy, renew, cancel, or receive a refund for a subscription, Apple notifies us directly from Apple’s servers. This is how we learn that a cancellation or a billing failure happened at all — the app itself would not find out until you next opened it.
Those notifications arrive at a small service we operate on Cloudflare Workers, which records them in our analytics (PostHog) and keeps a short-lived record of each notification’s identifier to avoid counting it twice.
| What is involved | Detail |
|---|---|
| What Apple sends | The kind of event (renewal, cancellation, refund, billing failure, expiry), the product purchased, price, currency, expiry date, any promotional offer used, and Apple’s own transaction identifier |
| What is not involved | No location, no trips, no routes, no addresses, no name or email, no device data, and nothing you have typed |
| How it is identified | A random identifier created on your device for purchases, which is not the identifier your in-app analytics uses; where that is unavailable, Apple’s transaction identifier, recorded without creating a profile |
| Where it is processed | Cloudflare Workers (Cloudflare, Inc.), then PostHog |
| Your controls | Because this path runs between Apple and our service, the in-app analytics toggle does not stop it. Deleting your account erases the identifier, so later purchases cannot be attributed to you |
2.7 Contact Names on Drives (Optional)
“Show contact names on drives” is off by default. We do not collect your contacts: the matching runs on your device, and neither contact names nor contact addresses are sent to us.
- If you turn on “Show contact names on drives” in Profile and allow access to Contacts, the app reads the names (including company names) and postal addresses of the contacts you allow. iOS lets you share all of your contacts or only the ones you choose
- Used solely to show a contact’s name on a drive that started or ended at that contact’s address (for example, “Drive to John Smith” in place of a street address)
- The app does not read phone numbers, email addresses, photos, birthdays, notes, or any other contact field
- The app does not store contact names; it looks them up from Contacts when it displays a drive. They are not copied into your trip records, not included in reports or exports, and not synced to iCloud. They are not sent to us, to our analytics provider, or to our crash-reporting provider. The one exception is a screenshot or diagnostic export you choose to send us with feedback (Section 5), which may show whatever was on your screen
- If you choose to save a matched place as a Saved Location, the name and address you save become a saved location like any other (Section 2.1), including iCloud sync while you are signed in
Note on contact names: To work out where a contact’s address is, the app sends the text of that postal address to Apple’s MapKit service and receives coordinates back. It does this only while the app is open. The app does not include the contact’s name or other details in the request. The coordinates are stored on your device only, next to iOS’s identifier for the contact and a one-way fingerprint of the address, not the name or the address itself. This store is excluded from device backups and is deleted when you turn this setting off. If Apple cannot place an address, the app remembers that, so it does not send the same address again for 30 days.
3. Where Your Data Is Stored
3.1 On-Device Storage (Primary)
All trip data, route points, vehicle information, saved locations, and profile data are stored locally on your device in an encrypted SQLite database within the app’s private Application Support directory. This data is protected by iOS device encryption (Data Protection).
| Storage Location | Contents |
|---|---|
| Application Support directory (SQLite) | Trips, route points, vehicles, saved locations, user profile, aggregate statistics |
| iOS Keychain (hardware-encrypted) | Apple Sign In identity (user ID, name, email, sign-up date) |
| UserDefaults | App preferences, analytics opt-in status, anonymous installation ID |
| Application Support directory (file) | Contact-match cache: contact identifiers, address fingerprints and coordinates; no names and no address text. Excluded from device backup |
3.2 iCloud Sync
If you sign in with Apple and iCloud is available on your device, your trip data, profile, and settings are synchronized to your private iCloud account using Apple CloudKit. Signing in is optional; there is no separate in-app switch for sync. Your profile record includes the name and email you shared at sign-in and any phone number you added. This data is:
- Stored in your personal iCloud private database (not shared or accessible to us)
- Encrypted in transit and at rest by Apple
- Subject to Apple’s iCloud privacy policy
- Removable by deleting your account, which erases your EveryLastMile CloudKit records
Contact names, the contact-match cache and the “Show contact names on drives” setting are not part of this sync. A place you save as a Saved Location is.
3.3 Debug Logging (Development Builds Only)
In development builds used by our own team, the app writes detailed diagnostic logs to an on-device file. These logs may include GPS coordinates, state transitions, and performance metrics. Debug logging is disabled in every build distributed to users, including TestFlight beta builds and App Store builds, and the logs are never transmitted off-device unless they are manually exported and shared.
4. How We Use Information
| Purpose | Legal Basis | Data Used |
|---|---|---|
| Provide trip detection, recording, and mileage logs | Performance of contract | Location, motion, trip data |
| Generate mileage reports and logbooks (IRS-style in the US, CRA-style in Canada) | Performance of contract | Trip history, classifications, addresses |
| Sync data across your devices (if enabled) | Your consent | All trip and profile data (via your iCloud) |
| Process subscription and one-time purchases | Performance of contract | Transaction data (via Apple StoreKit) |
| Understand and improve the app: reliability, usability, performance and features, including how people use the trial and plans in aggregate, and testing changes with randomly chosen users | Legitimate interest | Usage analytics events (not linked to your name or email) |
| Show reminders about EveryLastMile Premium (Section 4.2) | Legitimate interest | Your drive count and estimated deductions, used on your device only |
| Provide customer support | Performance of contract | Information you share with us |
| Show a contact’s name on drives to or from their address (optional) | Your consent | Names and postal addresses of contacts you allow, on-device; postal address text sent to Apple MapKit |
| Comply with legal obligations | Legal obligation | As required by applicable law |
| Detect and prevent fraud or abuse | Legitimate interest | Account and transaction data |
4.1 What We Never Use Your Data For
We do not sell your personal information, and we do not share it with advertising networks or data brokers.
We do not use your driving data (your trips, routes, GPS coordinates, addresses, saved locations, vehicles, classifications, notes, and expenses) or your individual product analytics:
- For advertising, our own or anyone else’s
- To build advertising or marketing audiences, or to target marketing or promotions from our servers, from our analytics provider, or through any other service
- To decide the price you pay, your trial, any discount, or which features you can use. Prices come from the App Store. Everyone on the same plan gets the same features, apart from features we roll out gradually or test with randomly chosen users. Some App Store offers depend only on your subscription history, such as whether you have subscribed before
We use product analytics only to understand and improve EveryLastMile, as described in Section 4. The only promotional messages that use your activity are the reminders in Section 4.2, which the app works out on your iPhone.
4.2 Reminders About EveryLastMile Premium
During your free trial, after it ends, and while you use the free version, the app may show reminders about EveryLastMile Premium, in the app and as notifications. Some mention your own activity, for example “You tracked 32 drives worth $1,240 in deductions.” The app may also ask you to rate it in the App Store after milestones such as your first automatic drive; Apple limits how often that prompt can appear.
- The app decides whether to show a reminder, and writes it, on your iPhone, from data already there. Your drives are not sent anywhere to choose or write a reminder
- Reminders about Premium stop once you subscribe
- To stop reminder notifications, turn off notifications for EveryLastMile in iOS Settings > Notifications. This also stops service notifications, such as reminders to classify drives
- Our analytics record when you open the subscription screen from a reminder, as part of the purchase funnel (Section 2.3)
5. How We Share Information
We do not sell your personal information. We do not share your personal information for cross-context behavioral advertising.
We may share information in the following limited circumstances:
| Recipient | Data Shared | Purpose |
|---|---|---|
| PostHog (analytics provider) | Pseudonymous app usage events, answers you submit to in-app surveys, and privacy-limited website page and Web Vitals performance analytics (never location data, addresses, or profile details) | Product and website analytics, under contractual data processing obligations |
| Firebase Authentication (Google LLC) | Apple Sign In identity token, exchanged for a Firebase authentication credential. Firebase stores an opaque user identifier and the verified email associated with your Apple Sign In, used solely to authenticate you across sessions and devices. Firebase does not receive trip data, location data, vehicle details, or usage analytics. | Secure account authentication |
| Firebase Crashlytics (Google LLC) | In App Store (Release) builds, when the app crashes: a crash report containing stack traces, device model and OS version, app build metadata, and a random Crashlytics installation identifier. No trip data, location data, addresses, or account profile details. Crash collection is disabled entirely in development builds. | Diagnose and fix crashes and launch failures |
| Firebase Storage (Google LLC) | Screenshot images you choose to attach when you submit in-app feedback or a survey response. A screenshot may include whatever was visible on your screen when you captured it. Used only for feedback you initiate — never for automatic collection. | Store optional feedback and survey attachments |
| Firebase Cloud Functions (Google LLC) | A request to mint a short-lived Apple Maps access token used to render in-app maps. No trip data, location data, or account profile details are sent. | Issue short-lived map access tokens |
| Firebase App Check / App Attest (Google LLC) | A hardware-based app-integrity attestation generated by your device (Apple App Attest). Contains no personal information. | Verify requests come from a genuine, unmodified app and prevent backend abuse |
| Apple (via StoreKit, MapKit, Apple Maps Server, WeatherKit, CloudKit) | Subscription and one-time purchase transactions; address search queries, including the postal addresses of contacts while “Show contact names on drives” is on; trip endpoint coordinates for road-snapping; a single drive’s starting coordinate and time for weather conditions; synced data when you are signed in | Subscription processing, geocoding, showing contact names on drives, route reconstruction, drive weather, cloud sync |
| Mapbox, Inc. | The starting coordinates of a drive and their timestamps, for the first stretch of the route (no names, emails, Apple IDs, profile details, notes, or expense data) | Road-snapping the start of a drive |
| Cloudflare, Inc. | Subscription lifecycle notifications sent by Apple, as described in Section 2.6 (no location, trip, profile or free-text data), and routine hosting and security logs for our marketing website | Receiving Apple’s subscription notifications; website hosting |
| Legal and safety | As required by law, subpoena, or court order, or to protect rights, property, or safety | Legal compliance |
| Business transfers | In connection with a merger, acquisition, bankruptcy, or sale of assets, with advance notice to you | Business continuity |
We do not share data with:
- Advertising networks
- Data brokers
- Social media platforms
- Any other third parties not listed above
6. Location and Sensitive Data Controls
Precise geolocation data can reveal sensitive information about your life. We provide multiple layers of control:
6.1 In-App Controls
| Control | Effect |
|---|---|
| Disable auto-tracking | Stops all background location monitoring; only manual trips are recorded |
| Disable analytics | Stops the app sending product analytics. Does not stop crash reports or Apple’s subscription notifications (Sections 2.3 and 2.6) |
| Turn off Drive Weather | Stops any coordinate being sent to Apple Weather; the app makes no request at all |
| Turn off “Show contact names on drives” | Stops the app reading your contacts and sending any contact address to Apple; the app makes no request at all, and the on-device match cache is deleted |
| Sign out | Stops account-based iCloud synchronization |
| Delete individual trips | Permanently removes specific trip data including all route points |
| Delete account | Permanently removes all data (see Section 10) |
6.2 iOS System Controls
| Permission | How to Change | Effect if Revoked |
|---|---|---|
| Location, “Always Allow” | Settings > Privacy > Location Services > EveryLastMile | Automatic trip detection disabled; manual recording still works with “While Using” |
| Location, “While Using the App” | Same as above | Manual trip recording works only when app is in foreground |
| Location, “Never” | Same as above | All trip recording disabled |
| Precise Location toggle | Same as above | Approximate location used (reduced accuracy) |
| Motion & Fitness | Settings > Privacy > Motion & Fitness | Automatic driving detection quality reduced |
| Contacts (all or selected contacts) | Settings > Privacy & Security > Contacts > EveryLastMile | Contact names no longer appear on drives, which show the address instead. The setting turns off and the on-device match cache is deleted the next time the app opens |
| Notifications | Settings > Notifications > EveryLastMile | No reminders for unclassified trips or tracking alerts |
| Background App Refresh | Settings > General > Background App Refresh | Background sync and auto-tracking may not function |
7. Data Retention
| Data Type | Retention Period | Deletion Method |
|---|---|---|
| Trip data and route points | Retained until you delete individual trips or your account | In-app trip deletion or account deletion |
| User profile | Retained until account deletion | Account deletion |
| Vehicles (including any car stereo linked to them) and saved locations | Retained until you remove them or delete your account | In-app removal or account deletion |
| Analytics events (PostHog) | Retained for 12 months from the date of capture, after which they are automatically deleted | Automatically expired; or contact us for deletion |
| Subscription notification records | Held by PostHog for the same 12 months as other analytics events; the de-duplication record on Cloudflare expires after 30 days | Automatically expired |
| Anonymous installation ID | Regenerated on sign-out; cleared on account deletion | Sign out or account deletion |
| Apple Sign In identity (Keychain) | Retained until account deletion | Account deletion |
| iCloud synced data | Retained in your iCloud until you delete your account | Account deletion |
| Contact-match cache (on-device file: contact identifiers, address fingerprints and coordinates; no names and no address text) | Until you turn off “Show contact names on drives”, revoke Contacts access, delete your account, or delete the app; an entry is also removed when its contact or address is removed, and an address Apple could not place is retried after 30 days | Turn off the setting, revoke access, account deletion, or deleting the app |
| Debug logs (development builds only) | Until manually cleared or app reinstallation | In-app export/clear or app deletion |
We retain information only as long as necessary for the purposes described in this Policy, to comply with legal obligations (such as tax recordkeeping requirements), to resolve disputes, and to enforce our agreements.
8. Security
We implement the following safeguards to protect your data:
- On-device encryption: All data stored in the app’s private SQLite database is protected by iOS Data Protection (AES-256 encryption tied to your device passcode)
- Keychain encryption: Authentication credentials are stored in the iOS Keychain, which uses hardware-backed encryption
- Transit encryption: All network communications (analytics, authentication, iCloud sync, MapKit, Mapbox, StoreKit) use TLS/HTTPS encryption
- No custom backend servers for your trips: We do not operate servers that store your trip data, routes, or addresses; your trip data lives on your device and, while you are signed in, in your personal iCloud account. The limited Google Firebase services we use (authentication, app integrity, crash diagnostics, and optional feedback attachments) never receive your trips, routes, or addresses.
- App integrity: We use Apple App Attest through Firebase App Check to verify that requests come from a genuine, unmodified copy of the app. Attestation relies on hardware-backed device keys and contains no personal information.
- Minimal data transmission: GPS coordinates, street addresses, and personal details are never sent to our analytics provider
- Verified transactions: Subscription and one-time purchases are cryptographically verified using Apple StoreKit 2
If we become aware of a security incident affecting your personal information, we will notify affected users and applicable regulators in accordance with applicable law (including California Civil Code §1798.82 and Canada’s Personal Information Protection and Electronic Documents Act (PIPEDA)).
No system is 100% secure, and we cannot guarantee absolute security. We encourage you to use a strong device passcode and keep your iOS version up to date.
9. Children
The Services are not directed to children under 13 (or under 16 in jurisdictions where a higher age of consent applies). We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, please contact us at privacy@everylastmile.app and we will promptly delete it.
10. Your Privacy Rights and Choices
10.1 Data Export
You can export all of your data at any time from Settings within the app. Exports are available in:
- JSON format: complete structured export of all trips, vehicles, and saved locations
- CSV format: spreadsheet-compatible export of trips (date, addresses, distance, classification, purpose, notes), vehicles, and saved locations
Exports are generated entirely on your device and delivered via the iOS share sheet.
10.2 Account and Data Deletion
You can permanently delete your account and all associated data from Settings > Delete Account. This removes:
- All drive records (classified, unclassified, and historical)
- All vehicles and odometer records
- All saved locations
- All synced iCloud data (CloudKit records)
- All app preferences and settings, except your choices for analytics sharing, automatic tracking, and Drive Weather, which stay as you set them
- The on-device contact-match cache
- Your authentication credentials
If your iPhone has no usable iCloud account when you delete (for example, you are signed out of iCloud), the app tells you that your iCloud copies cannot be reached and offers to delete your data from this iPhone only. Your iCloud copies then remain until you delete your account from a device signed in to that iCloud account.
Account deletion is immediate and irreversible. Active auto-renewing subscriptions must be cancelled separately through your Apple ID subscription settings, as Apple manages billing independently. Lifetime Premium is a one-time purchase and does not need to be cancelled; it remains associated with your Apple ID and deleting your EveryLastMile account does not revoke it. If you hold both, the subscription must still be cancelled separately.
10.3 U.S. State Privacy Rights
Depending on your state of residence (California, Virginia, Colorado, Connecticut, and others), you may have the right to:
- Access the personal information we hold about you
- Correct inaccurate personal information
- Delete your personal information
- Obtain a portable copy of your data (see Section 10.1)
- Opt out of the sale or sharing of personal information for targeted advertising (we do not sell or share your data for this purpose, so no opt-out is needed)
- Limit use of sensitive personal information (we use precise geolocation solely to provide the core trip-tracking service you requested)
- Non-discrimination (we will not discriminate against you for exercising your privacy rights)
- Appeal a decision regarding your privacy request
Categories of Personal Information Collected (CCPA disclosure):
- Identifiers (name, email, Apple User ID, anonymous installation ID)
- Geolocation data (precise GPS coordinates during trip recording)
- Internet or electronic network activity (app usage analytics)
- Commercial information (subscription status, purchase history via Apple)
- Inferences (trip classifications you assign; IRS deduction calculations)
- Sensitive personal information (precise geolocation), used only for the trip-tracking service
Categories of Sources of Personal Information:
- Directly from you (profile, classifications, vehicle and location entries)
- Automatically from your device (location, motion, device metadata, usage events)
- From Apple Inc. (Apple Sign In identity, subscription transactions, address resolution via MapKit)
- From Mapbox, Inc. (map and route-related service responses)
- From Google LLC / Firebase (authentication credentials; crash diagnostics; app-integrity attestation)
- From the U.S. Department of Energy (public vehicle make and model reference data)
How to exercise your rights: Email privacy@everylastmile.app with your request. We will verify your identity before processing. You may also use the in-app data export and account deletion features. We respond to verifiable requests within 45 days (or as required by applicable law).
Global Privacy Control (GPC): We honor Global Privacy Control browser signals on our website as a valid request to opt out of the sale or sharing of personal information. Because we do not sell or share your personal information for cross-context behavioral advertising, GPC signals do not require additional action on our part, but we acknowledge and respect them.
10.4 Communications and Marketing Preferences
The app sends you two kinds of messages:
- Service messages: a drive was recorded, automatic tracking needs attention (for example, Low Power Mode is on), drives are waiting to be classified, daily or weekly summaries, and a new app version is available
- Reminders about EveryLastMile Premium, as described in Section 4.2
We do not currently send marketing emails. If we do in the future, you can opt out via the unsubscribe link in any marketing communication or by contacting us.
10.5 Mexico
If you use the Services in Mexico, our Aviso de privacidad (México) also applies. It is in Spanish and explains how to exercise your rights of access, rectification, cancellation, and objection (ARCO rights).
11. International Transfers
The Services are designed for use in the United States and Canada, and are distributed only in non-EEA jurisdictions. If you use the Services from outside the United States, your information may be processed in the United States or other countries where our service providers operate (including Google/Firebase for authentication, app integrity, crash diagnostics, and related backend services, PostHog for analytics, and Cloudflare for receiving Apple’s subscription notifications and hosting our marketing website). These countries may have data protection laws that differ from your jurisdiction. By using the Services, you consent to such transfers.
12. Third-Party Services and Links
The Services integrate with the following third-party services, each governed by its own privacy policy:
| Service | Provider | Their Privacy Policy |
|---|---|---|
| Apple MapKit | Apple Inc. | apple.com/legal/privacy |
| Mapbox | Mapbox, Inc. | mapbox.com/legal/privacy |
| Apple iCloud (CloudKit) | Apple Inc. | apple.com/legal/privacy |
| Apple StoreKit | Apple Inc. | apple.com/legal/privacy |
| Firebase Authentication | Google LLC | firebase.google.com/support/privacy |
| Firebase Crashlytics | Google LLC | firebase.google.com/support/privacy |
| Firebase Storage | Google LLC | firebase.google.com/support/privacy |
| Firebase Cloud Functions | Google LLC | firebase.google.com/support/privacy |
| Firebase App Check | Google LLC | firebase.google.com/support/privacy |
| PostHog Analytics (iOS app and marketing site) | PostHog, Inc. | posthog.com/privacy |
| Apple Maps Server | Apple Inc. | apple.com/legal/privacy |
| Apple Weather (WeatherKit) | Apple Inc. | apple.com/legal/privacy |
| Cloudflare Workers (marketing site hosting, and Apple subscription notifications) | Cloudflare, Inc. | cloudflare.com/privacypolicy |
| Cloudflare Web Analytics (marketing site, cookieless) | Cloudflare, Inc. | cloudflare.com/privacypolicy |
| FuelEconomy.gov | U.S. Dept. of Energy | fueleconomy.gov/feg/privacy.shtml |
We are not responsible for the privacy practices of third-party services.
13. Changes to This Policy
We may update this Policy from time to time. If we make material changes, we will notify you through an in-app notice or other reasonable means before the changes take effect. The “Effective Date” at the top of this Policy indicates when it was most recently revised. Your continued use of the Services after the effective date of any changes constitutes acceptance of the updated Policy.
14. Contact Us
| Purpose | Contact |
|---|---|
| Privacy requests and questions | privacy@everylastmile.app |
| Privacy Officer | privacy@everylastmile.app |
| General support | support@everylastmile.app |
| Legal notices | legal@everylastmile.app |
If you have an unresolved privacy concern that we have not addressed satisfactorily, you may have the right to file a complaint with your state attorney general or applicable data protection authority. In Canada, you can complain to the Office of the Privacy Commissioner of Canada and, in Québec, to the Commission d’accès à l’information.