Privacy Policy

Last updated: May 21, 2026 · Version 2.0

This Privacy Policy describes in detail how Ascend ("we", "us", "our", or "the app") collects, uses, stores, shares, retains, and protects your information when you use the Ascend mobile application and related services. By creating an Ascend account or using the app, you acknowledge and agree to the practices described below.

This policy is written to be exhaustive about every category of information the app touches — even items most users would never notice — because we believe transparency is the only acceptable default for an app that touches health, body composition, and biometric-adjacent data.

Contents

1. Categories of Information We Collect

This is an exhaustive list of every data field Ascend touches, organized by category. Each item identifies what is collected, how the user provides it, and where it lives.

1.1 Account & Authentication

1.2 Profile & Personalization

1.3 Workout & Training Data

1.4 Nutrition & Food Logging

1.5 Body Composition Scans (Face & Physique)

1.6 Health Data (Apple HealthKit, optional)

If you grant the HealthKit permission, Ascend reads only the following:

HealthKit data stays on your device. Step counts are never written to our servers; they are read locally and used to populate today's step-progress in the app. Ascend does not write any data back to HealthKit. See Section 5 for more.

1.7 Discipline Score, Streak & Achievements

1.8 AI Usage Logs

To enforce per-tier rate limits and to bill ourselves accurately for AI usage, we keep an audit log of every AI call you make:

We do not log the content of your photos, prompts, or AI responses in this audit table — only metadata about the request.

1.9 AI Coach Chat (David)

1.10 Subscription & Purchase Data

We never receive, see, or store your payment card information. Apple handles all payment processing under their own terms and policies.

1.11 Device, Diagnostics & Telemetry

We do not use any third-party analytics SDK (e.g. Mixpanel, Amplitude, Firebase Analytics, Segment). We do not collect advertising identifiers (IDFA) or perform cross-app tracking.

1.12 Local Device Storage

Most of the data above is mirrored locally on your device for offline use and fast performance. Local storage keys include your profile, daily logs, achievements, streak, splits, scans, weight history, ratings, chat history, theme, and your acceptance of the Terms of Service. Local data is wiped automatically when you log out or delete your account.

2. How We Use Each Category

CategoryPurpose
Email, password, session tokensAuthenticate you and keep you signed in
Profile (age, height, weight, goals, etc.)Calculate personalized calorie/macro targets and tailor app guidance
Workout logsRender your training history, detect PRs, compute the training component of your Discipline Score
Meal logs & nutrition dataRender your daily macros, compute the nutrition component of your Discipline Score
Face / physique / food photosGenerate the AI analysis you explicitly requested
HealthKit stepsShow today's step progress in the app (read-only, on-device)
Discipline / streak / XP / rankVisualize progress and motivate consistency
AI usage logsEnforce per-tier rate limits and prevent abuse
David chat historyProvide context-aware coaching across sessions
Subscription dataUnlock paid features, manage renewals, prevent re-paywalling paying users
Device diagnosticsDebug crashes, improve stability

We do not:

3. Third-Party Service Providers (Sub-processors)

Ascend uses a deliberately small set of sub-processors. Each handles a specific job under their own privacy and security commitments:

Supabase, Inc. (USA)

Provides our authentication, Postgres database, and serverless functions. Stores: account credentials (hashed), profile, all logged data, scan history, achievements, subscription tier, AI usage logs. Encrypted at rest (AES-256) and in transit (TLS 1.2+). Supabase Privacy Policy.

Google LLC — Gemini API via Google AI Studio (USA)

Processes photos and text we forward to it for AI analysis (face scan, physique scan, food photo, food text description, David chat). We use Google's paid API tier; per Google's terms, content submitted via paid Gemini API is not used to train Google's models and is retained only as long as needed to produce a response and for abuse monitoring (typically <30 days on Google's side). Google Privacy Policy.

RevenueCat, Inc. (USA)

Manages subscription state and entitlement on top of Apple StoreKit. We send your Supabase user ID (a UUID) and receive your subscription status. RevenueCat does not receive your email, name, payment info, or any other personal detail. RevenueCat Privacy Policy.

Apple Inc.

Handles all payment processing for in-app purchases. Apple also provides HealthKit and StoreKit. We never receive your payment card data, Apple ID password, or full Apple Account profile.

U.S. Department of Agriculture — FoodData Central (USA)

Public food database we query when you search for a food. We send your typed query text; no account or user identifier is attached.

Open Food Facts (Worldwide, non-profit)

Public barcode database we may query when you scan a product barcode. We send only the barcode number.

We do not use any other third parties for analytics, advertising, tracking, push notifications, A/B testing, error monitoring, or session replay.

4. Photos & AI Image Analysis (General)

Whenever you submit a photo for AI analysis, the following happens, end to end:

  1. The photo is captured by your device's camera (you grant camera permission once via iOS).
  2. The image is base64-encoded locally and sent over an HTTPS/TLS connection to our Supabase edge function.
  3. The edge function verifies your authentication, checks your usage against the rate limits for your tier, then forwards the image to Google Gemini.
  4. Gemini returns a structured analysis (JSON with the relevant scores).
  5. The edge function returns that analysis to your device.
  6. The original photo is discarded from our server memory immediately after step 5. It is not persisted anywhere on our infrastructure unless you tap "Save Results" in the app.

AI results are estimates produced by a large language model and are not medical diagnoses or measurements. See our Terms of Service for the full disclaimer.

4a. Face Data (Sensitive — Special Handling)

Ascend's optional Face Scan feature lets you submit photos of your face for AI-assisted cosmetic analysis (skin, jawline, symmetry estimates). We treat face photos as sensitive personal data and apply stricter handling than ordinary content.

4b. Physique Photos

Same handling pipeline as Face Data above. Physique photos (typically four — front, back, left side, right side) are sent to Google Gemini for body composition estimation, then discarded from our servers unless you save the scan. Retention, deletion, and third-party rules are identical to Section 4a.

4c. Food / Meal Photos

Food photos are sent to Google Gemini for calorie and macro estimation. The image is discarded from our server immediately after the response is returned. The numerical estimate is saved to your meal log (as a regular meal entry). Food photos are never used to identify the person who took them and are subject to the same third-party and retention rules as Section 4a.

5. Apple HealthKit Integration

If you grant HealthKit permission, Ascend reads your step count for the current day only. This permission is requested only when you tap a HealthKit-relevant control. You can revoke it any time in iOS Settings → Privacy & Security → Health → Ascend, or Settings → Ascend → Health.

HealthKit data is read on-device by iOS and never transmitted to our servers. We do not write any data to HealthKit. We do not read any other HealthKit data type (no heart rate, sleep, weight, workouts, body composition, mindfulness, etc.).

6. Subscriptions, Purchases & RevenueCat

If you purchase Ascend Pro, all payment processing is handled by Apple through StoreKit. We never see your credit card, Apple ID password, or billing address. RevenueCat acts as our subscription state manager. We send RevenueCat your anonymous Supabase user ID; in return we receive your subscription status (active, expired, renewing, cancelled, grace period).

Receipt data, original transaction IDs, and renewal timestamps are stored in your account so the app correctly identifies you as a paying subscriber across devices and reinstalls.

You can cancel anytime in iOS Settings → Apple ID → Subscriptions. Refunds are handled by Apple at reportaproblem.apple.com.

7. AI Coach Chat (David)

When you chat with David, each message you type is sent to Google Gemini together with a context summary (your name, profile, recent discipline score, current streak, and the last few chat turns). David's reply is shown to you and saved to your chat history. We do not log chat content separately in our database for marketing or analytics — it lives only in your account record. Per Google's paid API terms, your chat content is not used to train Google's models.

8. Data Storage, Encryption & Security

Your data is stored on encrypted servers operated by Supabase in the United States. All connections between your device and our servers use HTTPS/TLS 1.2+. Passwords are one-way hashed (bcrypt) before storage; we never see or transmit plaintext passwords. Database fields are encrypted at rest using AES-256. API access requires a per-request JSON Web Token (JWT) tied to your authenticated session.

Per-user data is isolated via Postgres Row-Level Security (RLS): users can only read or write rows that match their own user ID. Administrative access is limited to a small number of operators with audit logging.

We take reasonable industry-standard measures to protect your data, but no system is 100% secure. In the event of a data breach affecting your information, we will notify you within 72 hours of becoming aware, in accordance with applicable law.

9. Data Retention & Deletion

We retain your data as follows:

You can delete your account at any time in Profile → Settings → Delete Account. This calls our server-side deletion function which cascades through every per-user table and removes your authentication record. The process is irreversible once confirmed.

10. Your Rights & Controls

You have the right to:

If you live in the EU/UK (GDPR) or California (CCPA/CPRA), you have these additional rights including the right to data portability and to opt out of the sale or sharing of personal data (we never sell or share — but the right exists). Vermont, Colorado, Connecticut, Virginia, and Utah residents have similar rights under their state laws.

11. International Data Transfers

Our servers (Supabase, Google Gemini, RevenueCat) are located in the United States. If you access Ascend from outside the U.S., your data will be transferred to and processed in the U.S. By using the app, you consent to this transfer. We rely on Standard Contractual Clauses and Apple's Data Processing Agreement for compliance where applicable.

12. Children's Privacy

Ascend is not directed to children under 13 and we do not knowingly collect data from children under 13. If you believe a child under 13 has created an account, contact us in Discord and we will delete it promptly. For users 13–17, parental consent is recommended; Ascend's content (fitness, nutrition, body composition analysis) is intended for general informational use and is not a substitute for guidance from a parent, doctor, or qualified professional.

13. Tracking, Analytics & Advertising

Ascend does not track you across other companies' apps and websites. We do not use the iOS Advertising Identifier (IDFA), the App Tracking Transparency framework's tracking permission, third-party analytics SDKs, or any advertising network. We show no advertisements inside the app. We do not sell any data of any kind.

14. Changes to this Policy

We may update this policy from time to time. Material changes (e.g. new data categories or new sub-processors) will be communicated through an in-app notice or by email to your registered address. The "Last updated" date at the top of this page always reflects the current version. Continued use after a material change indicates acceptance.

15. Contact

Questions, requests, or concerns? Join our community for support: Ascend on Discord. For data-subject requests (access, deletion, export, correction), DM the @support role in Discord and we'll respond within 30 days.