Privacy Policy
Last updated: August 28, 2026
Introduction
Ascend ("we", "our", or "us") is a stair stepper racing app. You race real landmark climbs on a stair stepper, and Ascend records those climbs and the leaderboards, achievements, and progress that come out of them. This Privacy Policy explains what information we collect, how we use it, how we share it, and the choices you have.
Every climb, routine, and record in Ascend comes from a session you performed in Ascend. Ascend does not import workouts from Apple Health or any other app, and it does not accept manually entered workouts.
Information We Collect
Depending on how you use Ascend, we may collect the following information:
- Account information: Your email address, authentication provider, user ID, display name, profile photo, joined date, and account settings.
- Profile and onboarding information: Display name, private date of birth, derived age, gender, body height, body weight, city, region, country, stair-stepper experience, exercise baseline, goals, motivation, notification preference, and first-climb recommendation. Ascend publishes only your derived age for leaderboard and profile context, never your date of birth.
- Climb and fitness data: Steps, floors, duration, cadence, heart rate, calories, session dates, Live Climb attempt state, climb completion state, personal records, leaderboard entries, achievements, and related session metrics, all produced by sessions you perform in Ascend.
- Routines you create: The name, description, interval plan, folder organization, and completion history of routines you build yourself. These are backed up to your account so they survive a reinstall and appear on your other devices. They are private to you and are never shown to other users.
- Apple Health data: With your permission, Ascend reads heart-rate and active-energy samples from Apple HealthKit for the time window of a climb you performed in Ascend, and attaches your average and maximum heart rate, the heart-rate series, and active-energy calories to that climb. Those two types are the only Apple Health data Ascend asks for. Ascend does not read workouts from Apple Health, does not read anything outside a climb's own time window, and does not write anything to Apple Health.
- Photos, videos, notes, and feedback: Media and notes you attach to your climbs, profile photos you upload, and feedback or support messages you send us.
- Safety and moderation information: The user IDs on your personal block list and profile reports you submit, including the reported user ID, selected reason, originating app surface, and submission time.
- Purchase and subscription information: Trial, subscription, entitlement, restore-purchase, paywall interaction, and purchase-status information processed through Apple, RevenueCat, and Superwall.
- Product usage analytics: Screen views, onboarding funnel events, feature interactions, paywall events, and other first-party product analytics collected through Firebase Analytics and Mixpanel in non-debug builds.
- Notification data: Notification preferences, iOS notification permission state, and APNs/FCM push registration tokens used to send opted-in app notifications such as climb-drop alerts.
- Diagnostics: Crash reports, performance data, non-fatal error logs, app version, operating system version, device model, and related debugging context collected through Firebase Crashlytics, Sentry, and app telemetry.
- Crash screen captures: When a release build of Ascend crashes, it attaches a masked picture of the screen you were on and a structural outline of that screen, so the failure can be diagnosed. A release build is the build we publish to the App Store, and it is also the build pre-release testers receive through TestFlight, so a crash on a tester's device sends these too. The debug and staging builds we run internally send nothing to Sentry at all. These captures are masked before they leave your device: all text, all images, your photos and videos, and the charts that show your health data are painted over as solid blocks, so no heart-rate value, name, email address, or account identifier appears in them. Ordinary handled errors carry no screen capture - only a crash does.
- City search and map context: Searches and selected city-level location information used to help you pick profile and leaderboard context. If you choose current location during onboarding, Ascend uses it once to find your city, then saves only city, region, and country. Ascend does not collect continuous background location or gym-level location for leaderboards.
How We Use Information
We use information to operate and improve Ascend, including to:
- Create and authenticate your account.
- Record, store, sync, and display the stair-stepper climbs and routines you perform in Ascend.
- Calculate climb progress, records, achievements, trends, and recommendations.
- Operate leaderboards, public profile surfaces, First Ascent status, and community climb context.
- Personalize onboarding, first-climb recommendations, app settings, and notifications.
- Process subscriptions, trials, entitlements, paywalls, and restore-purchase flows.
- Analyze onboarding conversion, product usage, app quality, and crash trends.
- Respond to support requests and investigate bugs or abuse.
- Hide identities you block and review profile reports for safety and moderation.
- Comply with legal, security, and App Store obligations.
Public and Shared Surfaces
Ascend is built around racing other climbers, so some information is visible to other users on profiles, leaderboards, climb history, and achievement surfaces. This may include your display name, profile photo, public profile statistics, city-level profile location, joined date, achievements, climb completions, leaderboard rankings, and public climb summaries. Your email address, authentication provider details, personal block list, submitted reports, private account fields, and private workout backups are not meant for public display.
Apple HealthKit
Ascend uses Apple HealthKit only with your permission, and only to enrich a climb you performed in Ascend. When you finish a climb, Ascend reads the heart-rate and active-energy samples Apple Health holds for that climb's own time window, and attaches your average and maximum heart rate, the heart-rate series, and active-energy calories to the climb. This is how an Apple Watch, or any other wearable that writes to Apple Health, can supply your heart rate for a climb.
Heart rate and active energy are the only two types Ascend requests, and they are the only two it uses. Ascend does not read workouts from Apple Health, does not read any sample outside the time window of a climb you performed in Ascend, and does not create or change anything in Apple Health.
When HealthKit data is attached to an Ascend climb, the resulting record, including session metrics and associated heart-rate samples, may sync to Firebase under your Ascend account for backup, restore, and cross-device access.
- We do not use HealthKit data for advertising, marketing, or cross-app tracking.
- We do not sell HealthKit data.
- We do not share HealthKit data with advertisers, data brokers, or ad networks.
- Ascend requests read-only HealthKit access. We do not write data back to Apple Health unless a future feature clearly asks for permission and explains why.
- You can revoke HealthKit access at any time in iOS Settings or in the Health app.
Analytics, Tracking, and Advertising
Ascend uses first-party analytics to understand whether onboarding, subscriptions, climbs, leaderboards, and core features are working. We use Firebase Analytics and Mixpanel for product analytics, Firebase Crashlytics and Sentry for crash reporting and diagnostics, and Superwall and RevenueCat for subscription and paywall analytics.
When you are signed in, Ascend sends your Ascend account user ID to Firebase Analytics, Mixpanel, Firebase Crashlytics, and Sentry so product usage and diagnostic events can be associated with your account. Firebase Analytics and Mixpanel collect app-specific device identifiers for analytics. Ascend sends the same account user ID to RevenueCat and Superwall so they can link subscription status and purchase history to your account across sessions and devices. Ascend also sends your email address to RevenueCat, so a subscription, trial, or grant can be matched to your account when you contact support. Superwall also collects an app-specific vendor identifier for paywall analytics. Ascend also attaches profile demographics to Firebase Analytics and Mixpanel as account-level user properties: your gender (profile_gender), your age group (profile_age_group), your body-weight group (profile_weight_group), and your country (profile_country). Your onboarding fitness answers - stair-stepper experience (stair_stepper_exp), exercise level (exercise_level), motivation (motivation), planned weekly frequency (planned_frequency), and your selected goals (goal_*) - are attached as user properties as well. Your body-height group (profile_height_group) is sent to the same two providers as a parameter on the onboarding analytics event that records your body metrics, and the age-group and body-weight bands you choose as leaderboard filters (age_group, body_weight_filter) are sent as parameters on leaderboard filter events. When a paywall is skipped or fails to present, Ascend sends the paywall placement together with the paywall SDK's own skip reason (reason) or error description (error) to Firebase Analytics and Mixpanel as diagnostic parameters.
Ascend does not sell personal information, does not use advertising networks, does not use the iOS advertising identifier (IDFA), and does not track you across other companies' apps or websites for targeted advertising. Because we do not perform App Tracking Transparency-style tracking, Ascend does not show the ATT prompt.
Third-Party Services
Ascend uses service providers to run the app. These providers process information only for the services they provide to Ascend, subject to their own terms and privacy commitments.
- Apple: App Store, StoreKit, Sign in with Apple, Apple HealthKit, Apple Health, and Apple MapKit.
- Google Firebase: Authentication, Firestore, Storage, Cloud Functions, Analytics, Crashlytics, and Hosting.
- Google Sign-In: Optional account authentication.
- RevenueCat: Subscription status, entitlements, purchase history, and restore-purchase support. RevenueCat receives your Ascend account user ID and your email address so a subscription can be matched to your account.
- Superwall: Paywall presentation, paywall analytics, campaign logic, and subscription conversion measurement.
- Mixpanel: First-party product analytics and onboarding funnel measurement.
- Sentry: Crash reporting, non-fatal error diagnostics, performance diagnostics, breadcrumbs, masked crash screen captures, and release health investigation. Only release builds of Ascend report to Sentry, which includes the release builds pre-release testers receive through TestFlight; the debug and staging builds we run internally send nothing.
- Resend: Email delivery. Resend receives the recipient email address and the contents of the message we send. When you send feedback or a support message, your email address is also used as the reply-to address on the notification sent to us.
- Beehiiv: Newsletter subscription management. Beehiiv holds the email addresses submitted through the Ascend website before waitlist signup was retired, along with the signup source and campaign information for those submissions.
Data Storage and Security
Ascend stores your climb and session data locally on your device and uses Firebase/Google Cloud for backup, sync, authentication, media storage, and server-owned app functionality. We use reasonable technical and organizational safeguards, including encryption in transit and cloud-provider security controls. No system is perfectly secure, so you should use a strong account credential and keep your device protected.
Data Retention
We keep account and workout information for as long as your account is active or as needed to provide Ascend. If you delete your account, we delete or de-identify associated account data from active systems within a reasonable period, generally within 30 days, except where we need to retain limited records for security, fraud prevention, legal compliance, backup integrity, or transaction records.
Your Choices
- Account data: You can update profile information in the app where supported.
- Account deletion: You can delete your account in the app. You may also contact us if you need help.
- Blocking and reporting: You can block or report another profile from that profile's actions menu. You can reverse blocks in Ascend's Settings under Blocked climbers.
- HealthKit: You can grant or revoke HealthKit permissions in iOS Settings or the Health app. Revoking them stops Ascend from reading HealthKit data and prevents Apple Health heart rate and active-energy calories from attaching to your climbs; everything else in Ascend keeps working.
- Notifications: You can enable or disable notification categories in Ascend where supported, and you can turn all notifications off in iOS Settings.
- Emails: Climb and progress emails are sent only to people who have chosen to receive them, and that choice is recorded. You can make or change it in Ascend's Settings under Notifications, and every such email includes an unsubscribe link that changes the same preference. Opting out stops climb and progress emails, including any already queued to send. Account, security, and other transactional messages still come through. If you joined the Ascend waitlist or newsletter, that is a separate subscription with its own unsubscribe link.
- Photos: You can control Photos access in iOS Settings. When you choose one of your own photos or videos as the background for a share card, Ascend reads it from your library and composes the card on your device. The background you choose is not uploaded to Ascend.
- Subscriptions: You can manage App Store subscriptions through your Apple account subscription settings.
- Support requests: You can contact us to request access, correction, deletion, or export of personal information, subject to identity verification and applicable law.
Children's Privacy
Ascend is not intended for children under 13, and onboarding accepts only birth dates that produce an age from 13 through 120. We do not knowingly collect personal information from children under 13. If we learn that we collected personal information from a child under 13, we will delete it as required by law.
International Users
Ascend is operated from the United States. If you use Ascend from outside the United States, your information may be processed in the United States and other countries where our service providers operate. Privacy laws may differ from those in your location.
Changes to This Policy
We may update this Privacy Policy as Ascend changes. When we do, we will update the "Last updated" date above. If a change materially affects your rights or how we use your information, we will provide additional notice when appropriate.
Contact Us
If you have questions about this Privacy Policy or your data, contact us at pavayt@gmail.com.