PilotBound Privacy Policy

Your privacy matters. Protect yourself with a secure VPN.
Sponsored

# PilotBound Privacy Policy

 

**Effective Date:** April 25, 2026

**Last Updated:** June 28, 2026

 

This Privacy Policy describes how FlightXplorer LLC. ("FlightXplorer," "we," "us," or "our") collects, uses, shares, and protects information when you use the PilotBound mobile application (the "App") or the PilotBound website at pilotbound.app, including its subdomains (the "Website"). We refer to the App and the Website together as the "Services."

 

PilotBound is a flight-training companion for student pilots. The App helps you keep a personal logbook, estimate and track the cost of training toward your next certificate, and (optionally, in a future release) connect with your flight school. The Website offers free flight-training cost calculators, by-state flight-school and aviation-college cost directories, a free training plan and checklist you can build with or without an account, and information about the App. The directories are informational and free to browse without an account, and they do not collect personal information from you (see Section 1.13).

 

By creating an account or using the Services, you agree to this Privacy Policy. If you do not agree, please do not use the Services. You can browse the Website's informational pages and use its calculators without creating an account.

 

---

 

## 1. Information We Collect

 

We collect only the information needed to operate the Services, organized into the following categories.

 

### 1.1 Account Information

- Email address

- First name and last name (collected during onboarding)

- A public display name we generate as your first name + last initial (e.g., "Sam P.")

- A profile photo if you choose to upload one

- Sign-in provider used (email/password or Sign in with Apple)

- For Sign in with Apple users, an Apple-issued refresh token, stored encrypted-at-rest so we can revoke your Apple authorization when you delete your account (required by App Store Guideline 5.1.1(v))

 

### 1.2 Training Profile

- Certificate goal (e.g., Private Pilot, Instrument, Commercial)

- Training program (Part 61, Part 141, or unsure)

- Training pace (accelerated, standard, casual)

- Home airport (ICAO code)

- Current training stage and held certificate

- Training milestones (solo date, first cross-country date, written test date, checkride date)

 

### 1.3 Flight Data

For each flight you enter in your logbook:

- Date and duration

- Aircraft tail number and make/model (if you provide them)

- Departure, arrival, and any intermediate airports (if you provide them)

- Notes and remarks you write

- The cost of the flight (if you choose to record one, or if it was pre-filled from your default or aircraft-specific rates × total time), the currency it is recorded in, and the certificate the flight is attributed to — only when you have enabled the optional cost-tracking feature (see Section 1.11)

 

Flights are entered manually. The App does not record your location or GPS position.

 

### 1.4 Logbook Entries

- All FAA-style logbook fields you enter (PIC time, dual received, solo, cross-country, night, instrument, approaches, landings, holds, etc.)

- Instructor name and FAA certificate number (only if you choose to record them)

- Aggregate totals derived from your logbook (total hours, total flights, longest flight, etc.)

 

### 1.5 School Affiliation (Optional)

Note: as of the current App version, the school connection feature is not yet enabled. Any school name you enter during onboarding is stored on your account but is not shared with any school until the feature launches and you grant explicit consent at that time.

 

- The flight school you affiliate with

- The date and version of the consent you gave for that affiliation

- The specific data-sharing flags you authorized (see Section 3.2 below)

 

### 1.6 Notifications and Device Information

- Firebase Cloud Messaging (FCM) push notification token

- App version

- Notification preferences

 

### 1.7 Engagement Information

- A "training momentum" score we calculate from your flight frequency

- Streak counts (consecutive weeks with at least one flight)

- Last 30/60-day flight counts

- Daily momentum history (kept for 90 days, then automatically deleted)

 

### 1.8 Diagnostic and Crash Data

We use Firebase Crashlytics to detect, diagnose, and fix crashes and stability issues so we can keep the App reliable. When the App crashes or experiences certain non-fatal errors, Crashlytics automatically sends a diagnostic report containing:

 

- A randomly generated, app-specific Crashlytics installation identifier (this is **not** your Firebase user ID, your email, or any account identifier; it is reset when you reinstall or reset the App)

- Device model, iOS version, device language, and time zone

- App version, build number, and the time the crash or error occurred

- Whether the App was in the foreground or background

- Approximate device memory and disk-space state at the time of the crash

- Whether the device is jailbroken

- The stack trace, exception type, and any crash-related logs the App produced in the seconds leading up to the crash

 

Crash reports do **not** include your name, email, profile photo, flights, logbook entries, or any other content you create in the App. We do not associate Crashlytics installation identifiers with your account.

 

Crashlytics retains crash reports for up to 90 days. Aggregate, non-personal stability metrics may be retained longer.

 

### 1.9 Product Analytics

 

We use **Firebase Analytics** to understand how the App is used in aggregate so we can improve the product. Each event is a simple action label plus a small set of categorical (non-identifying) parameters. We log the following events:

 

| Event | When it fires | Parameters |

|---|---|---|

| `signup_completed` | After your account is created | sign-in provider (`apple` or `email`) |

| `onboarding_completed` | After you finish the onboarding flow | training stage, certificate goal, certificate held, whether a school name was entered, whether an avatar was uploaded — all categorical, no free-text |

| `flight_logged` | After a flight is saved to your logbook | source, bucketed total time (e.g. `1_2`, `2_4`), whether the flight is cross-country, whether the flight included night time |

| `flight_shared` | When you share a flight card to another app | layout (square / story), the share surface, whether an achievement was shown, whether the optional cost strip was on |

| `flight_card_cost_chip_enabled` | When you share a flight card with the optional cost strip turned on | none |

| `cost_setup_completed` | After you finish (or skip) the cost-tracking setup sheet | whether you opted in (`opted_in: true/false`), entry path (`onboarding` or settings) |

| `cost_baseline_provided` | When you enter pre-tracking hours or spend (the "before tracking" baseline) | whether you provided hours, whether you provided spend, source — categorical only, never the actual hours or amounts |

| `aircraft_profile_created` | When you save a new aircraft in cost settings | none |

| `expense_logged` | When you save a one-time expense | category (e.g. `headset`, `ground_school`), whether the expense is "lifetime equipment" — never the amount |

| `flight_cost_set` | When a flight is saved with a cost value | whether the cost was auto-filled or manually edited |

| `cost_dashboard_viewed` | When the cost detail screen opens | none |

| `cost_projection_viewed` | When a cost projection actually renders on the dashboard (distinct from merely navigating to the screen) | active certificate (categorical) |

| `cost_card_shared` | When you share a cost-progress card to another app | layout (square / story), the share surface, card kind (`milestone` / `progress`), whether dollar amounts were shown, certificate (categorical) |

| `cost_intro_shown` | When the cost-tracking intro sheet appears | none |

| `cost_intro_completed` | When you finish the cost-tracking intro | none |

| `cost_tip_shown` | When an in-app cost-tracking tip appears | which tip (`log` / `pace` / `refine`) |

| `certificate_journey_created` | When a per-certificate cost journey first opens (initial cost setup or a post-checkride next-cert advance) | certificate (categorical), source (`setup` or `checkride`) |

| `certificate_journey_completed` | When you mark a checkride passed and the per-certificate cost journey is frozen | certificate (categorical) |

 

Alongside events we set the following **user properties** so we can segment retention metrics by training context:

 

- `training_stage` (e.g. PRE_SOLO, POST_SOLO_PRE_XC)

- `certificate_held` (e.g. none, privatePilot, cfi)

- `has_school` (true/false)

 

**What product analytics do NOT collect:**

 

- Your name, email, username, or any other identifier — we deliberately do **not** call `setUserID` and do **not** include any free-text content in parameters.

- The contents of your flights, photos, or any free-text fields.

- Exact flight hours, exact streak counts, exact dollar amounts, hourly rates, expense amounts, or any other exact totals — we bucket or omit numeric values before logging. No dollar amount, rate, or hour value is ever sent in an analytics event parameter.

- The iOS Advertising Identifier (IDFA). We disable IDFA collection (`GOOGLE_ANALYTICS_ADIDCOLLECTION_ENABLED = false`), which is why the App does **not** show an App Tracking Transparency prompt.

 

Analytics data is processed by Google as part of Firebase Analytics. Google's data handling practices for Firebase Analytics are described in [Google's Firebase Privacy and Security documentation](https://firebase.google.com/support/privacy). Firebase Analytics retains user-level data for the period configured in the project (default: 14 months) before automatic deletion. Aggregate, non-personal usage metrics may be retained longer.

 

When you sign out, the App calls `Analytics.resetAnalyticsData()`, which clears the on-device Analytics installation ID so a subsequent sign-in starts a fresh anonymous session.

 

### 1.10 Aggregated and De-identified Data

 

We create aggregated statistics and de-identified datasets from the information we collect for purposes including:

 

- Improving the App and developing new features

- Understanding how student pilots progress through training (for example, typical time-to-checkride, training cadence patterns, common points where students stall or fall behind their declared pace, and typical cost-to-certificate ranges by program type or region)

- Producing benchmarks and insights for flight schools, instructors, the general aviation industry, researchers, and other third parties

- Research and publication on pilot training, including academic, industry, or internal research

- Marketing and communications about PilotBound

 

"Aggregated" means information combined across many users so that it does not identify any single individual (for example, "the median Part 141 pre-solo student logs 4.2 flights per month"). "De-identified" means information from which direct and indirect identifiers have been removed in a way that we have a reasonable basis to believe cannot be used, alone or in combination with other information reasonably available to the recipient, to identify a specific individual.

 

We may retain, use, and share aggregated and de-identified information indefinitely, including after you delete your account. We commit not to attempt to re-identify de-identified data, and we contractually require any recipient of de-identified data to make the same commitment.

 

Aggregated and de-identified data is not personal information under this Policy. Any use of identifying personal information continues to be governed by the other sections of this Policy.

 

### 1.11 Cost Tracking Data (Optional)

 

PilotBound includes an optional cost-to-certificate feature that helps you estimate and track what your training is costing. The feature is **off by default**. You enable it from Settings → Cost Tracking, and you can edit any value at any time. When cost tracking is enabled, we collect the following on your account:

 

- **Aircraft profiles** you save — tail number, make/model (if you enter it), hourly rate, category (e.g., single-engine, complex/high-performance, multi-engine, simulator), and the currency the rate is denominated in

- **One-time expenses** you log — category (e.g., headset, ground school, checkride fee), amount, currency, the date you incurred it, the certificate it applies to, any free-text note you write, and a flag indicating whether the expense is gear you keep across certificates ("lifetime equipment")

- **Per-certificate cost journey** — a small per-cert record holding the date you began tracking cost for that certificate, an opening "before tracking" estimate of prior hours and spend (if you enter one), a running denormalized cost-and-hours total maintained as you log flights and expenses, your override of the national-average completion-hours figure (if you set one), your overrides of the national-average one-time-fee estimates (if you set any), and the certificate's status (active, completed, paused)

- **Per-flight cost** — see Section 1.3

- **Default hourly rates** you enter for aircraft and instructor time

- **Your preferred currency** (an ISO 4217 code such as USD, EUR, GBP)

- **The date you first completed cost-tracking setup**

 

All of the above is stored on your user account and is **never shared with other users, your flight school, or any third party**, except as described in the next paragraph. The cost projections you see in the App are computed locally from your data plus national-average reference figures we ship with the App (for example, a typical hours-to-Private-Pilot figure); the projections themselves are derived values and are not personal data.

 

**One opt-in sharing surface — flight and cost cards.** When you share an individual flight card or cost-progress card (an exported image or text summary) to another app or social network, you can optionally include cost information — a thin "cost strip" on a flight card showing that flight's cost and your progress toward your current certificate, or a cost-progress card showing your tracked spend and progress. These options are **off by default**. You toggle them on per share in the share sheet, and the share sheet remembers your last choice for next time. They only ever show information you yourself chose to record. We do not share your aircraft profiles, expenses, baseline, or projections outside of what you choose to include in such a card.

 

National-average reference figures used in projections (for example, "78 hours typical for a Part 141 Private Pilot certificate") are derived from publicly available sources and are not customized from individual user data; they do not identify anyone.

 

### 1.12 Training Plan and Checklist (Website and App)

 

The Website offers a free training plan: a step-by-step checklist from deciding to fly to passing your checkride. When you use it, we collect what you put into it:

 

- **Your cost estimate snapshot** — the certificate you're aiming for, what you already hold, training program (Part 61/141), region, aircraft type, how often you plan to fly, any real hourly rates you enter, and the projected cost range the estimator computed

- **Checklist step state** — which steps you've completed or skipped, and the details you attach to steps, such as a discovery flight date, school, and cost; medical certificate class and dates; FAA Tracking Number (FTN) application dates; ground school provider; gear you've acquired; examiner name, checkride date, and fee

- **Funding plan details** — your monthly training budget, savings you plan to put toward training, how you plan to pay (e.g., savings, financing, GI Bill, scholarship, family), and scholarships you're interested in

- **School selection** — the state you're searching in and the school you choose or type in

- **Training milestones** you check off (solo, first cross-country, written test, checkride, with optional dates)

 

The plan becomes part of your account when you create one (see Section 1.13 for the anonymous phase before that). If you also use the App, the same plan syncs to it. Plan data is private to your account; it is never visible to other users, and it is shared with a flight school only under the explicit opt-in described in Section 3.2.

 

### 1.13 Website Data (pilotbound.app)

 

**Anonymous plan accounts.** You can start building a training plan on the Website without signing up. When you do, we create an anonymous account identifier and store your plan against it so you don't lose your work. Anonymous plans are automatically deleted approximately 60 days after creation if you never save them to an account, and unused anonymous identifiers are automatically cleaned up after 30 days. If you create an account (email/password or Sign in with Apple), your anonymous plan becomes part of that account and the automatic expiry is removed.

 

**Estimator email capture (optional).** The cost estimator offers to email you your results. If you enter your email there, we store the email address you provided together with your estimate inputs in a spreadsheet operated by us on Google's services (Google Sheets via Google Apps Script). We use it to send you the estimate you requested, and we may send occasional PilotBound updates to that address. You can opt out of updates at any time using the unsubscribe link in those emails or by contacting us (Section 11).

 

**Flight-school and aviation-college directories.** The Website's directories list real schools by name with their published rates or tuition figures alongside PilotBound cost estimates. They are informational, free to browse, and require no account. We do not collect personal information from you when you browse them. The "Correct or remove this listing" option on each listing opens your own email app with a pre-filled message addressed to us (a `mailto:` link); we do not collect or transmit anything through the Website when you use it. If you (for example as a school representative) email us a correction or removal request, we process that correspondence, including your email address and whatever you include, only to review and act on your request. How the directory cost figures are produced and how to correct or remove a listing is described in full on each directory's disclaimer and removal-policy page and in our Terms (Section 14.9).

 

**Browser storage.** The Website uses browser local storage and similar technologies for functionality, not advertising: keeping you signed in (Firebase Authentication), holding an unsaved plan in your browser, and remembering small UI choices (such as dismissing a banner). The Website does not use advertising cookies.

 

**Bot protection (reCAPTCHA).** The Website is protected by Google reCAPTCHA v3 (via Firebase App Check) to keep bots from abusing our backend. reCAPTCHA collects device and behavior signals and sets cookies, and is subject to the [Google Privacy Policy](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms).

 

**Website hosting and analytics.** The Website is hosted on Vercel, which processes requests (including IP addresses) to serve and secure the site. We use Vercel Analytics for privacy-focused, aggregate page analytics on the Website; it does not use cross-site tracking cookies and we do not use it to identify you.

 

### 1.14 Information We Do **Not** Collect

 

- We do not record your location or GPS position

- We do not use the iOS Advertising Identifier (IDFA)

- We do not use third-party advertising networks

- We do not use Segment, Mixpanel, Amplitude, PostHog, or any other product-analytics service besides Firebase Analytics in the App (Section 1.9) and Vercel Analytics on the Website (Section 1.13)

- We do not access your location, contacts, calendar, microphone, camera, photo library (other than the photo you select to upload), HealthKit, or Bluetooth

- We do not collect your date of birth or government identifiers

 

---

 

## 2. How We Use Your Information

 

We use the information we collect to:

 

- Create and maintain your account (including upgrading an anonymous Website plan into your account when you sign up)

- Provide the App's core features: your logbook, cost-to-certificate tracking, and training progress

- Provide the Website's features: the cost estimator and calculators, the flight-school and aviation-college directories, and your training plan and checklist (including syncing it between the Website and the App)

- Send you your estimator results by email if you request them (Section 1.13)

- Review and act on correction or removal requests about a directory listing (Section 1.13)

- Protect the Services from bots and abuse (App Check: DeviceCheck in the App, reCAPTCHA on the Website)

- Enable optional flight school connection (a future feature; see Section 3.2 for what would be shared if you opt in)

- Calculate your training momentum and streaks

- Create aggregated and de-identified datasets and statistics as described in Section 1.10

- Send you push notifications you've opted into (e.g., flight saved, momentum alerts)

- If and when you affiliate with a flight school (a feature coming with a future release), share specific consented fields with that school per your opt-in settings (see Section 3.2)

- Verify your email when you sign up with email/password

- Detect and prevent abuse, fraud, and violations of our Terms

- Comply with legal obligations

- Communicate with you about service-related issues, security alerts, and important account changes

 

We do not use your information for behavioral advertising or targeted marketing.

 

---

 

## 3. How We Share Information

 

We share information only as described below.

 

### 3.1 Sharing You Initiate (Flight and Cost Cards)

 

When you share an individual flight card or cost-progress card (an exported image or text summary) to another app or social network, you can optionally include cost information — a thin "cost strip" on a flight card, or a cost-progress card. These options are **off by default**. You toggle them on per share in the share sheet, and the share sheet remembers your last choice. They only ever show information you yourself chose to record. We do not share or display your aircraft profiles, expenses, baseline, projections, or any other cost data outside of what you choose to include in a card you share.

 

Sharing happens on your device, to the app or destination you select. Where it goes from there is governed by that destination's own policies, not ours.

 

### 3.2 With Your Affiliated Flight School (Optional, With Explicit Consent)

If you choose to affiliate with a flight school, the school sees only the fields you specifically opt in to share, which may include:

 

- ✓ First name and last initial

- ✓ Training momentum score and trend

- ✓ Days since your last flight

- ✓ Number of flights logged in the last 30 days

- ✓ Total logged flight hours

 

The school **never** sees:

 

- ✗ Your detailed logbook entries

- ✗ Your email address

- ✗ Your photos

- ✗ Your aircraft profiles, flight cost, expenses, baseline, cost projection, or any other cost-tracking data (Section 1.11)

 

You can disconnect from your school at any time from the Profile screen. When you disconnect, the school's view of your data immediately stops updating, and the affiliation status is set to "revoked." A historical record of the affiliation is retained for audit purposes only.

 

**School inquiries from your training plan (future feature, explicit opt-in).** The training plan includes a "a school may contact me" consent flag. It is **off by default**, and as of the current version there is no surface to turn it on and no information from your plan is shared with any school. If and when we launch a feature that lets flight schools respond to interested students, it will activate only for users who explicitly turn that setting on at that time, the consent screen will state exactly which fields a school would receive, and you will be able to turn it off again at any time. We will update this Policy with the specifics before any such sharing begins.

 

### 3.3 With Service Providers

We use the following third-party service providers to operate the Services. Each receives only the data necessary for the service it provides:

 

| Service | Provider | Data Shared | Purpose |

|---|---|---|---|

| Authentication, database, file storage, push notifications, server functions | Google (Firebase) | All data described in Section 1 | Hosts the entire backend |

| Crash and stability diagnostics | Google (Firebase Crashlytics) | The diagnostic data described in Section 1.8 (anonymous installation ID, device model, OS version, app version, crash stack traces). No content, no account identifiers. | Detect, diagnose, and fix App crashes and stability issues |

| Product usage analytics | Google (Firebase Analytics) | The events and segment user properties described in Section 1.9 (categorical labels only — no name, email, content, or exact numeric values). IDFA is disabled. | Understand how the App is used in aggregate so we can improve it |

| Sign in with Apple | Apple Inc. | Your Apple ID token at sign-in time | Lets you sign in with Apple |

| Push delivery | Apple Push Notification service (APNs) | Device push token; notification payload | Delivers push notifications |

| App-integrity protection (App) | Apple DeviceCheck (via Firebase App Check) | An anonymous device-attestation token | Prevents API abuse |

| Bot protection (Website) | Google reCAPTCHA v3 (via Firebase App Check) | Device and behavior signals collected by reCAPTCHA; see Section 1.13 | Prevents bots from abusing our backend |

| Website hosting and analytics | Vercel | Request data (including IP address) to serve the site; aggregate page analytics (Section 1.13) | Hosts pilotbound.app; aggregate usage statistics |

| Estimator email capture (Website, optional) | Google (Sheets / Apps Script, operated by us) | The email address and estimate inputs you submit on the estimator | Sends you your estimate; stores the lead list (Section 1.13) |

| School-side dashboard (optional, for affiliated users only) | FlightXplorer (operated by us) | The consented fields listed in Section 3.2 | Lets your school see your training momentum on its own dashboard |

 

Our service providers are contractually required to use your data only for the purposes we authorize.

 

### 3.4 Legal and Safety

We may disclose information if we believe in good faith that disclosure is necessary to:

- Comply with applicable law, legal process, or governmental request

- Enforce our Terms of Service

- Detect, prevent, or address fraud, security, or technical issues

- Protect the rights, property, or safety of FlightXplorer, our users, or the public

 

### 3.5 Business Transfers

If FlightXplorer is involved in a merger, acquisition, financing, or sale of assets, your information may be transferred as part of that transaction. We will notify you (for example, by email or in-app notice) before your information becomes subject to a different privacy policy.

 

### 3.6 We Do Not Sell Your Personal Information

We do not sell, rent, or trade your **personal information** to third parties, and we do not share your personal information for cross-context behavioral advertising. As described in Section 1.10, we may share or commercialize aggregated or de-identified information that cannot reasonably be used to identify you; that information is not personal information under this Policy.

 

---

 

## 4. Where Your Data Is Stored

 

Your data is hosted on Google Cloud (Firebase) servers in the United States (us-central1 region by default). The Website is served by Vercel, whose edge network may process requests closer to you before they reach our United States infrastructure. If you access the Services from outside the United States, your information will be transferred to, stored in, and processed in the United States. By using the Services, you consent to this transfer.

 

---

 

## 5. Data Retention and Deletion

 

### 5.1 How Long We Keep Your Data

- **Account, profile, flights, logbook, training plan, and cost-tracking data (aircraft profiles, expenses, cost journeys, baselines, rates, currency preference):** Retained for as long as your account is active.

- **Anonymous (not-yet-saved) training plans on the Website:** Automatically deleted approximately 60 days after creation; unused anonymous account identifiers are automatically cleaned up after 30 days (Section 1.13).

- **Estimator email captures:** Retained until you ask us to remove yours (Section 11).

- **Daily momentum history:** Automatically deleted after 90 days.

- **Account deletion audit log:** A minimal record (your former user ID, deletion timestamp, counts of objects removed) is retained indefinitely for fraud-prevention and dispute-resolution purposes. It does not include your name, email, or any of your content.

- **Aggregated and de-identified data (Section 1.10):** Retained indefinitely. Because it cannot reasonably be used to identify you, deleting your account does not require us to delete or alter this data.

 

### 5.2 Deleting Your Account

You can delete your account from either surface, and both run the same deletion pipeline:

 

- **In the App:** open **Profile → Delete Account**, re-authenticate, and confirm.

- **On the Website:** open your training plan at pilotbound.app/plan, choose **Delete account**, re-authenticate (re-enter your password, or confirm with Apple), and confirm.

 

When you delete your account, we will:

1. Permanently delete your user profile, your training plan and checklist, all flights, all logbook entries, all photos, all training history, and all cost-tracking data (aircraft profiles, expenses, cost journeys, baselines, rates, currency preference)

2. Delete your push notification token

3. Revoke your Sign in with Apple authorization (if you signed in with Apple)

4. Delete your Firebase Auth account so you can no longer sign in

 

This typically completes within minutes, and at most within 30 days.

 

### 5.3 Deleting Specific Items

You can delete individual flights, individual expenses, and your profile photo from inside the App without deleting your entire account.

 

---

 

## 6. Your Rights

 

### 6.1 All Users

You can:

- Access the personal information we hold about you by viewing your Profile screen in the App, or your training plan at pilotbound.app/plan

- Correct your name, home airport, training profile, plan details, and other fields directly in the App or on the Website

- Disconnect from your affiliated flight school at any time

- Adjust your push notification preferences

- Delete individual flights or expenses, or your entire account (from the App or the Website; Section 5.2)

 

### 6.2 If You Are in the European Economic Area, United Kingdom, or Switzerland (GDPR)

You have the right to:

- **Access** the personal data we hold about you

- **Rectify** inaccurate or incomplete data

- **Erase** your data (the in-app "Delete Account" feature satisfies this right)

- **Restrict** or **object** to certain processing

- **Receive a copy** of your data in a portable format (contact us — see Section 11)

- **Withdraw consent** at any time where processing is based on your consent (e.g., school affiliation)

- **Lodge a complaint** with your local data protection authority

 

Our legal bases for processing are: (a) performance of our agreement with you (operating the App); (b) your consent (school affiliation, push notifications); (c) our legitimate interests (security, fraud prevention, service improvement, and producing aggregated and de-identified statistics, benchmarks, and research as described in Section 1.10); and (d) compliance with legal obligations.

 

### 6.3 If You Are a California Resident (CCPA / CPRA)

You have the right to:

- Know what personal information we collect, use, and disclose

- Delete your personal information

- Correct inaccurate personal information

- Opt out of the sale or sharing of personal information (we do not sell or share for cross-context behavioral advertising)

- Limit the use of sensitive personal information (we do not use it beyond providing the App)

- Non-discrimination for exercising your rights

 

To exercise any of these rights, use the in-app controls described above or contact us at the address in Section 11.

 

---

 

## 7. Security

 

We use the following safeguards to protect your information:

 

- **Encryption in transit:** All communication between the App and our servers uses HTTPS/TLS.

- **Encryption at rest:** Firebase encrypts stored data at rest using AES-256.

- **Authentication:** Access to your data requires a valid Firebase Auth session tied to your account.

- **Authorization rules:** Firestore and Firebase Storage rules enforce that only you can read or write your private data (including your training plan).

- **Client integrity:** Firebase App Check prevents unauthorized clients from calling our backend (Apple DeviceCheck in the App; Google reCAPTCHA v3 on the Website).

- **Re-authentication:** Sensitive actions like account deletion require you to re-enter your password (or re-confirm with Apple) within the last 5 minutes, in the App and on the Website alike.

- **Apple token handling:** Your Apple refresh token is stored in an admin-only collection that no client can read, and is revoked on account deletion.

- **Audit logging:** Server-side actions on your data are logged for security and compliance purposes.

 

No method of transmission or storage is 100% secure. We work to protect your information but cannot guarantee absolute security.

 

---

 

## 8. Children's Privacy

 

PilotBound is intended for users **13 years of age and older**. We do not knowingly collect personal information from children under 13. If you believe a child under 13 has provided us with personal information, please contact us at the address in Section 11 and we will delete it.

 

If you are between 13 and the age of majority in your jurisdiction, you may use the App only with the involvement and consent of a parent or legal guardian.

 

Note: The FAA permits student pilots as young as 14 (gliders) or 16 (powered aircraft). Use of PilotBound is permitted at age 13 or older for educational purposes regardless of whether you currently hold a student pilot certificate.

 

---

 

## 9. Permissions the App Requests

 

The App may ask for the following permissions on your device:

 

- **Notifications:** Used to send the push notifications you opt in to (flight saved, momentum alerts, etc.). You can change your preferences in iOS Settings → Notifications → PilotBound at any time.

- **Photos:** When you choose to add a profile photo, iOS asks for permission to access the specific photo you select.

 

The App does not request location, contacts, calendar, microphone, camera, HealthKit, or Bluetooth access.

 

---

 

## 10. Changes to This Policy

 

We may update this Privacy Policy from time to time. If we make material changes, we will notify you in the App or on the Website and update the "Last Updated" date at the top. Your continued use of the Services after changes take effect constitutes acceptance of the revised policy.

 

---

 

## 11. Contact Us

 

If you have questions, concerns, or requests regarding this Privacy Policy or your data, please contact us:

 

- **Email:** info@flightxplorer.com

- **Postal mail:** FlightXplorer LLC., 30 N Gould St, Ste 32705 Sheridan, WY 82801 , United States

 

For data protection inquiries from the EU/UK, you may also contact our representative at the same email address.

 

---

 

*This Privacy Policy is provided in English. Any translation is provided for convenience; in the event of any conflict, the English version controls.*