Privacy Policy
Effective date: October 23, 2026. Policy revision: 2026-10-23-journal-calendar-no-tracking-2.0-77.
Swing-processing disclosure: 2026-07-28-public-v1-2.
Version 2.0, build 77: Rally adds a free manual and timed tennis journal, optional iPhone Calendar planning, court-time Insights and visual PDF export. This version does not include Meta's Facebook SDK, request Apple's tracking permission, collect the advertising identifier, or send app installs, app activity or subscription events to Meta. New product-analytics collection and delivery are disabled in this build, and no Share usage analytics choice is shown in setup or Profile. Existing protected deletion requests for earlier analytics data can still retry. Internal subscription reporting through RevenueCat remains enabled and is described below.
Earlier versions and previously shared data: before version 1.0.14, build 71, versions with optional Meta advertising measurement could share installation and app activation/session events, app/device identifiers including the advertising identifier when permitted by iOS, and associated technical and SDK status information after tracking permission. Those earlier practices do not apply to this version. Updating the app does not retroactively delete information already received by Meta. See sections 5 and 6 for prior-data requests.
This Privacy Policy and biometric retention schedule explain how Rally AI ("Rally," "we," or "us"), operated by Bryce Ranchero, an individual in Illinois, handles information through the Rally AI iPhone app and public-launch website. Privacy questions, rights requests, appeals, and requests for the operator's legal mailing information may be sent to ricebboi@gmail.com.
1. Information and sources
Local video modes: standalone Skeleton Overlay and Wall Practice process the selected video and movement information on your iPhone. These modes do not upload their footage or pose tracks to Rally's analysis server. Original audio may be retained for local playback or export when you choose it. Files you save to Photos or Files, or share with another app or person, follow that destination's settings and policies; deleting Rally data does not delete those exported copies. The audio removal and temporary server-processing descriptions below apply to uploaded swing analysis.
Tennis journal in version 2.0, build 77: when you save a session, Rally stores the date, session type, duration, optional start and end times, title, notes and practice focus on your iPhone, together with its time zone, a local record identifier, manual or timed source and save/update times. Court-hour totals, session counts, court days, average and longest sessions, weekly charts and session-type summaries are calculated on the iPhone. Manual and timed logging, full journal history, editing, deletion, Insights, PDF export and session-data export are free; they do not require a trial, subscription, account, internet connection or Apple Health permission.
Session timer: Start session saves a running Practice session with a local identifier, start time, original time zone and journal date. Closing Rally or locking the phone does not end it; elapsed time is calculated from the saved start. End & save records the duration and end time as one completed journal entry. You can edit it afterward. Discard removes the running timer without adding court time. Delete All Data removes running and completed journal data. Exports include completed entries, not a running timer. No background location, new permission, analytics event or Calendar event is created by timing.
Optional iPhone Calendar planning: with your permission, Rally uses calendars already available on your iPhone to display plans. iOS grants full event access; Rally displays events for the viewed month only from calendars you select. No calendar is selected automatically. By default, titles must contain the word tennis; you can choose to show all events in selected calendars. Calendar identifiers, names, provider names and edit availability populate the chooser. Event identifiers, titles, dates, times, all-day status and calendar names are used in memory for display and to open the event in Apple’s Calendar interface. Calendar selections, connection state and the display filter are stored on your iPhone.
Historical optional product analytics: the following describes earlier analytics-enabled versions, not new collection in build 77. If you affirmatively chose Share usage analytics under the applicable disclosure, those versions collected coarse app opens, setup progress, feature and paywall use, selected tennis level, goal and playing frequency, stroke type, analysis attempts and failure categories, valid first, second and repeat analysis milestones, whether a result appeared, practice/return, sharing/save and workflow outcomes, verified trial or purchase kind, subscription plan/status and the last-observed auto-renewal setting. Events include a random analytics identifier, your opaque RevenueCat customer identifier for connecting subscriptions with usage, an unrelated random analysis-event identifier, event time, session and app version. For a first-time choice in version 1.0.13, the optional checkbox is preselected; you can turn it off before tapping Agree. No collection begins from merely displaying the form. Confirming the sharing choice and tapping Agree grants permission. Superseded permission starts unchecked and requires a fresh choice. Recorded opt-outs remain off. This choice is separate from the agreement required to process a swing. This version does not request advertising permission. Declining does not change Free or Pro access. These random identifiers are pseudonymous; they are not a name or a count of people.
- Swing video: the clip you record in Rally or choose from your photo library. Rally removes audio on your iPhone before upload.
- Temporary body-landmark and mechanics data: MediaPipe software running inside Rally's hosted service estimates 33 whole-body pose landmarks on each detected frame. The internal track includes a small set around the face and hands. The app receives a compact motion track containing only 13 measured joints—nose, shoulders, elbows, wrists, hips, knees, and ankles—and does not receive the other internal landmarks.
- Analysis inputs and results: selected stroke and hitting hand; measured mechanics; score, confidence, technique breakdown, priority fix, drill, contact image, and compact motion track. Missing or low-confidence joints remain missing rather than being guessed.
- Authorization, consent, and service records: a random installation identifier; hashed or scoped device, credential, key, installation, and network-source references; App Attest public-key and receipt evidence, environment, counters, and timestamps; a scoped installation credential; consent version, signature time, and random consent record identifier sent with a request; weekly quota, rate-limit, short challenge/reservation, abuse-control, request-size, duration, timing, and coarse success/rejection records. These come from the app, device, network request, and Rally's security service.
- Subscription verification: Apple-signed StoreKit transaction and renewal evidence may be sent with an analysis request to verify Rally Pro access. Rally does not receive payment-card details or Apple Account credentials.
- Subscription reporting: RevenueCat receives App Store purchase and renewal records, product identifiers, subscription status, purchase and expiration dates, price and currency information, and an opaque subscription-service identifier. Apple can deliver subscription notifications directly to RevenueCat. In app versions with RevenueCat reporting enabled, the app also sends purchase records during purchase, restore, or synchronization of an existing subscription, together with app/SDK version, operating-system and ordinary network-request information. Rally does not send RevenueCat swing videos, audio, landmarks, scores, coaching, profile answers, your name or email, or advertising identifiers.
- Information on your iPhone: saved results and contact images; for trusted analyses, the processed audio-free review video and compact pose track; profile answers, court nickname, preferences, adult-eligibility result, consent receipt, and reminder state. Review videos use opaque filenames. Rally evaluates the birthdate you enter only on the iPhone and does not save or upload that date.
- Waitlist and support information: the email address and message content you voluntarily submit. Form and email services also receive ordinary request information such as IP address, browser type, access time, and referring page.
- Website delivery information: hosting and font providers receive the technical information needed to deliver and secure the page, such as IP address, browser/device information, requested page, time, referring page, and website hostname.
2. Uses and limits
Tennis journal: Rally uses your tennis journal to display and organize the entries and summaries you request. Rally does not automatically upload or synchronize the journal, or send its dates, times, durations, session types, titles, notes, practice focus, local record identifiers or totals to Meta, RevenueCat, product-analytics providers, AI services or Rally's analysis server. Your optional product-analytics choice does not authorize sharing journal content.
For players who opt into subscription-linked usage measurement, RevenueCat may initialize at opt-in or app launch to provide the existing customer identifier, even before checkout. Rally sends that identifier to Amplitude with permitted usage events; usage events and the Amplitude identity are not sent back to RevenueCat.
In earlier analytics-enabled versions, optional product analytics helped Rally understand whether consenting players obtain a valid result, see it, and return for another swing. Subscription observations can be stale: an enabled renewal setting is not proof of a payment, and an observed trial is not proof of its eventual outcome.
Rally uses the audio-free clip, temporary landmarks, and mechanics only to provide the tennis-swing analysis and measured motion review you request. The skeleton contains measured body joints; Rally does not add a racket path unless a real racket track was produced. Rally does not use the clip or measurements to recognize a face, identify or authenticate a person from their body, provide medical diagnosis or treatment, advertise, create a marketing profile, or train an AI model. Rally bundles and runs MediaPipe 0.10.14 inside Rally's server container hosted on Modal. The swing video, landmarks, mechanics, and analysis-request data are not sent onward to Google, OpenAI, Anthropic, or another external model-inference API.
Rally uses installation, App Attest, scoped credential, consent, network-source, rate-limit, quota, and request records to authorize the genuine app, enforce current consent, prevent abuse, apply the free-use quota, operate the service, and investigate failures. StoreKit evidence verifies subscription access. RevenueCat processes subscription records for purchase support, receipt validation, and subscription and revenue reporting. Rally's own verified StoreKit and server checks decide Pro access; a RevenueCat reporting failure does not revoke access. Launch-list email is used for launch and related product communication. Website information is used to deliver and secure the site and its fonts.
Calendar plans: Rally does not send calendar event content or calendar identifiers to its servers, product analytics, Meta or RevenueCat, and does not add planned events to completed-session totals. Plan tennis and event editing use Apple’s native interface; a change is committed when you choose Save. Your selected calendar provider may store or synchronize the event with your account. Rally does not copy manual journal notes into a calendar draft. Calendar plans and saved analyses are excluded from both journal exports.
3. Biometric notice and written release
Illinois and Texas laws define certain scans or records of hand or face geometry as biometric identifiers. Rally does not create a faceprint or voiceprint and does not use its measurements to identify anyone. Whether a particular pose measurement is legally covered can depend on the law and facts; Rally does not rely on an exemption. It instead applies advance notice, written electronic consent, purpose limitation, security, disclosure controls, and the destruction schedule below.
Before capture, photo-library selection, or upload is available, the person shown must choose a date of birth showing they are at least 18, read the specific disclosure on Rally's ONE AGREEMENT screen, and tap Agree & Continue. The screen states that this tap is voluntary consent and the user's electronic signature. It lists what leaves the iPhone, identifies Modal Labs, Inc. as Rally's contracted processor, explains the analysis purpose, describes the 33-landmark internal processing and 13-joint app output, and explains retention and destruction. If the user does not agree, Rally does not make an upload. Rally does not sell, lease, trade, or otherwise profit from biometric identifiers or biometric information.
4. Service providers and disclosures
Neon PostgreSQL — authorization processor: Databricks, Inc., operating the Neon product with its affiliate Neon, LLC, hosts Rally's private authorization database in AWS Ohio. It stores installation ownership, hashed credentials and deletion capabilities, App Attest public verification records, challenges, quotas, abuse controls, revocations, recovery authorization and analytics deletion request references. It does not receive swing videos, pose data, scores, coaching, StoreKit receipts, RevenueCat identities or contact information through this database. Database access remains server-only; player login is not introduced. The service is governed by Neon's product schedule and the incorporated Databricks agreement, including its data-processing addendum.
Amplitude, Inc.: received optional coarse product events from earlier analytics-enabled versions through Rally's hosted relay for this measurement purpose. This paragraph describes that historical processing; build 77 sends no new product events or customer-identifier links to Amplitude. Existing deletion requests remain available. With your separate analytics permission, these events include your opaque RevenueCat customer identifier so Rally can connect subscription records with app use, valid swing milestones and return visits. This is product analytics, not advertising. Your existing subscription identity and access are unchanged. Rally does not forward the player's network address. Rally does not send Amplitude videos, audio, landmarks, scores, confidence, coaching, receipts, transaction identifiers, installation credentials, name, email, payment details or free-text errors. Rally does not connect this analytics profile to Apple acquisition records or advertising identifiers. No Amplitude session replay, autocapture or advertising destination is enabled. The selected project is on Amplitude's U.S. service; ingestion and deletion must use the matching U.S. endpoints.
- RevenueCat, Inc.: processes the subscription information described above for Rally under its service terms and Data Processing Addendum. Its role is subscription support and reporting, separate from advertising and swing analysis. This version does not synchronize Meta identifiers with RevenueCat or send subscription events to Meta.
- Modal Labs, Inc.: after the user agrees, the app sends the audio-free video and request fields listed above over encrypted HTTPS to Rally's analysis endpoint hosted on Modal's cloud infrastructure. Modal is Rally's contracted processor and the processor to which Rally directly routes the swing-analysis request. Rally bundles and runs MediaPipe 0.10.14 inside Rally's server container hosted on Modal. Modal's terms incorporate a data-processing addendum that limits processing to the contracted service and addresses security, confidentiality, subprocessors, and deletion. Modal states that web-endpoint request and response payloads are proxied to Rally's container and are not stored at its edge.
- Apple Inc.: Apple handles App Store distribution, App Attest, and StoreKit under its own terms. Rally receives signed evidence needed to verify the genuine app and subscription access. Rally may receive feedback or diagnostics a user chooses to share through Apple.
- Formspree, Inc.: Formspree accepts, screens, stores, and emails launch-list submissions and related request information.
- GitHub, Inc.: GitHub Pages hosts the public-launch and policy pages and processes ordinary website request information.
- Adobe Inc.: Adobe Fonts delivers site typefaces and receives the hostname, font-project information, and visitor IP address. Adobe states that its web-font service does not set cookies to serve fonts and does not store the IP address it receives for delivery.
- Google LLC: Gmail processes waitlist notification copies and messages sent to Rally's privacy contact.
For personal data processed during swing analysis, Rally's agreement with Modal incorporates Modal's Data Processing Addendum. It limits processing to providing the contracted service, requires confidentiality and appropriate security, requires deletion, and binds applicable subprocessors to written terms at least as protective as the DPA. Rally therefore requires the same or equal protection for the personal data Modal processes. Rally does not authorize a provider to use swing video or body-landmark measurements for advertising, identity recognition, data brokerage, or model training. Rally may disclose information when required by applicable law or valid legal process, to protect the service and users, or at the user's direction and with legally sufficient consent.
5. Retention and destruction schedule
Tennis journal: entries remain in Rally's protected local storage until you delete an entry, use Delete All Data or remove the app. Rally marks this storage as excluded from device backup, but the system's backup-exclusion setting is not an absolute guarantee. Rally does not provide automatic journal sync, in-app import or guaranteed recovery after reinstalling or changing devices. Export insights creates a visual PDF of completed-session statistics and charts for the selected view. Export session data (JSON), in the export-options menu, contains all completed entries and notes. Neither export includes a running timer, saved analyses or native calendar events. A Files, cloud or app destination you choose may store or synchronize your exported copy under its own settings; later edits in Rally do not update that copy.
Previously shared Meta information: updating the app does not recall information already received by Meta from an earlier advertising-enabled version. This version does not initialize Meta or forward retained SDK activity. Previously shared information follows Meta's applicable terms, Privacy Policy and retention practices; it does not follow the temporary swing-data destruction schedule. Contact Rally through the request process in section 6 about previously shared information. Clearing local Rally data does not automatically delete Meta's records.
Historical optional product analytics: the following retention and queue limits describe analytics-enabled versions and previously collected data. Build 77 does not collect or deliver product-analytics events. In analytics-enabled versions, the iPhone's unsent queue is limited to seven days and 100 events. Local analytics milestone counts remain until withdrawal or deletion. Recent callback-deduplication receipts are limited to seven days and 1,000 records. Amplitude event retention is one month from ingestion, subject to its scheduled retention processing. A new analytics disclosure requires a fresh choice; prior permission is not silently upgraded, old queued events are discarded, and the old analytics identity is retained only for protected deletion retry before a new identity is used. Recorded opt-outs remain off. A separate deletion request can remove an opted-out identity sooner; acceptance or scheduling is not completed provider or backup deletion.
Deletion retries: the iPhone retains the prior analytics identifier and a narrowly scoped deletion capability in protected Keychain storage until the relay accepts the deletion request. These records survive Delete All Data so an offline request can retry on later app use; they grant no analysis or subscription access and are never sent to Amplitude. A legacy request that still needs its old installation credential must be submitted before that credential is erased. Uninstalling the app prevents app-driven retries. Provider acceptance is separate from completed deletion; Rally tracks provider completion, including applicable backups, separately from request acceptance or scheduling.
- Server video and temporary landmarks: Rally's application releases the in-memory 33-landmark track and removes the temporary upload file when the request completes or fails. If normal file removal fails, the application truncates the file content to zero, retries removal, and records a content-free critical privacy event if removal still cannot complete. Rally does not intentionally retain or reuse the file. The clip and landmarks are not written to a Rally backup, Modal Volume, biometric database, or model-training set.
- Server results: the returned contact image, motion payload, score, and coaching result are not intentionally retained by Rally's server after the response.
- Operational logs: logs exclude video, audio, landmark coordinates, contact image, score, detailed mechanics, and coaching result. They contain the limited request and security facts described above. Rally does not copy them into another log archive. Modal's currently published plan-dependent schedule is one day on Starter, 30 days on Team, and configurable on Enterprise.
- Consent receipt: the app keeps the consent version, signature time, and random record identifier on the iPhone and sends them with an analysis request. The server validates them but does not intentionally retain the full signature time or record identifier; the short-lived operational log records the consent version.
- On-device results and motion review: a trusted analysis may retain its audio-free processed video, compact 13-joint pose track, score, coaching result, and contact image on that iPhone until you delete the analysis, delete all Rally data, or uninstall Rally. Withdrawing consent blocks future uploads but does not delete completed analyses.
- On-device consent and preferences: remain until you withdraw consent, delete all Rally data, reset the relevant preference, or uninstall Rally.
- Authorization, quota, and abuse-control records — durable storage: Rally's private Neon PostgreSQL database stores hashed or scoped installation/key/network references, App Attest public verification records, counters, revocations, recovery authorization and analytics deletion ownership and provider references. These identity and security records have no automatic expiry, so inactivity or a local reset does not remove the authorization needed for recovery, revocation or a later deletion retry. A credential's 90-day validity is separate from record retention. Challenges expire after five minutes or are consumed earlier; rate buckets expire at the end of their configured window; weekly quota records expire 14 days after the ISO week begins. Expired operational rows are removed in bounded cleanup batches. Delete All Data does not erase all remote security records. Authenticated privacy requests are reviewed separately, subject to applicable deletion duties and limited legal or security preservation.
- StoreKit evidence and subscription records: Rally's analysis server verifies transaction and renewal JWS values in memory and does not intentionally log or persist those values. Separately, RevenueCat retains subscription records to provide purchase support and reporting under Rally's service agreement. These records do not follow the temporary swing-data deletion schedule. Contact Rally to request access or deletion of identifiable subscription records, subject to applicable legal, security, and transaction-record requirements; deleting local app data does not delete RevenueCat or Apple records.
- Launch list and support: Rally-controlled Formspree and email copies remain only while needed for launch communication, support, legal compliance, security, or an opt-out record. Rally will delete verifiable copies within 30 days after completing a deletion request or ending the launch-list program, subject to limited legal or security preservation. Provider security records may follow longer provider schedules.
- Website delivery records: GitHub, Adobe, and network providers retain delivery/security records under their own schedules. Rally does not maintain a separate website analytics database.
For any covered biometric identifier or information Rally possesses, the permanent-destruction deadline is the earliest applicable deadline: when the collection purpose is satisfied; the Illinois backstop of three years after the person's last interaction; or the Texas backstop of a reasonable time no later than one year after the collection purpose expires. A valid preservation law, warrant, or subpoena may require a limited exception.
6. Your choices, requests, and appeals
Tennis journal choices: you can edit or delete individual sessions in the journal. Delete All Data also removes the journal held by Rally on this iPhone. It does not delete journal files you previously exported to Files, a cloud service, another app or another person. Manage those copies at their destinations. Deleting journal entries or exports does not cancel an Apple subscription.
Calendar choices: Disconnect calendars and Delete All Data clear Rally’s calendar selections, connection/filter preferences and displayed event cache. They do not delete events from your native calendars or revoke the iPhone permission. Manage calendar events through Calendar or its provider and change Rally’s Calendar permission in iPhone Settings. Calendar providers control their own storage, synchronization and deletion.
Cancel billing separately: use iPhone Settings → your name → Subscriptions → Rally AI → Cancel Subscription (or Cancel Free Trial). Deleting Rally, deleting local data, withdrawing processing consent, or turning off optional analytics does not cancel an Apple subscription. See Subscription, Free Trial & Cancellation Terms.
Subscriptions: manage or cancel Rally Pro in your Apple Account subscription settings. Purchase reporting is separate from any optional product-analytics choice; changing those choices does not cancel a subscription or erase Apple or RevenueCat purchase records. For a subscription privacy request, contact Rally with the App Store order or transaction reference needed to locate the record. Do not send payment-card details or Apple Account passwords. Rally will verify and handle the request through its subscription provider, subject to applicable retention obligations.
Advertising measurement: this version has no Meta SDK or advertising-tracking prompt. Product analytics is disabled in build 77, and its Profile choice is hidden. For information previously shared by an earlier advertising-enabled version, use the privacy-request process below. A privacy request does not cancel an Apple subscription.
You may decline the electronic release and no clip will be uploaded. In Progress, delete an analysis and its retained review video and pose track. In Profile → Privacy & Data, review the signature date, withdraw future upload consent, or use Delete all Rally data from this iPhone to remove local analyses, review files, preferences, consent state, and the local installation credential.
Analytics privacy choices: build 77 does not collect or deliver product-analytics events and does not show a Share usage analytics control. To request access or deletion of information shared by an earlier version, use the support and privacy-request process below. Existing protected deletion requests continue to retry on later app use. In an earlier analytics-enabled version that still shows the control, turning Share usage analytics off in Profile stops future collection and clears the local queue and active analytics identity. Rally requests deletion of the prior identity, its RevenueCat customer reference and its events from Amplitude. An offline or failed request remains queued and retries on later app use. In analytics-enabled versions, re-enabling starts a new random analytics identity and, with renewed permission, can link it to the same RevenueCat subscription record. Build 77 offers no re-enable control. Delete All Data also clears local analytics and requests remote analytics deletion, retaining only the protected retry records described above. These actions do not cancel an Apple subscription or automatically delete Apple, RevenueCat or previously shared Meta records.
Delete All Data removes local analyses, review files, preferences, consent state and the installation credential once any legacy deletion prerequisite is satisfied. It does not erase provider logs or all remote service records. Limited authorization, quota, abuse-control and operational records follow the schedule above. Rally does not retain a server swing-history library. For other anonymous-installation privacy requests, contact Rally before deleting the installation credential.
Use the process and exact state-specific response periods on Support & Privacy Choices to request access, correction, withdrawal, deletion, or a third-party list; remove a launch-list submission or manual recovery label; report that a minor used the service; or appeal a refusal.
7. Adults-only service and other people
Rally is not offered to anyone under 18 and is not directed to children. Before recording or choosing a swing, the app requires a neutral birthdate-first eligibility check. The date is evaluated only on the iPhone and is not saved or uploaded. An under-18 result locks the app. Do not upload another person's swing or a clip containing a minor or bystander. The electronic release requires the signer to confirm that they are the adult shown. If Rally learns that a minor submitted information, Rally will disable the relevant credential and delete verifiable information under its control, subject to legal or security preservation.
8. Security and incidents
Rally uses encrypted transport, revocable per-device credentials, temporary server files, minimized logs, opaque local filenames, iOS file protection, and on-device history. Modal states that customer data is encrypted in transit and at rest and that it maintains SOC 2 Type 2 controls. No security measure guarantees absolute protection. Rally will investigate suspected unauthorized access and provide consumer, regulator, processor, or health-data breach notices required by applicable law.
9. Swing-data limits and no advertising tracking in this version
Rally does not sell, lease, trade, or profit from swing video or body-landmark measurements; use them for advertising or cross-context tracking; or use them to train an AI model.
Version 2.0, build 77 contains no Meta SDK or advertising-measurement integration. It does not request Apple's tracking permission, collect the advertising identifier or send installation, activation, session, trial, purchase or renewal events to Meta. Rally does not combine the app's optional product analytics with third-party data for targeted advertising or advertising measurement.
Browser privacy signals: Rally does not operate advertising analytics on this public-launch website or in this app version. Rally's delivery, font, form and email providers may independently process limited technical information under their own policies. Rally does not authorize advertising use of its consumer health or swing data.
10. Changes
Rally may update this policy as the product or law changes. The effective date and version above show the current policy. Rally notifies users of a material change to video, landmarks, purposes, disclosure, or retention by publishing the revised policy and requiring a new in-app notice and electronic consent before another upload. Non-material clarifications may be posted without a new consent.
11. Contact
Operator: Bryce Ranchero, an individual in Illinois.
Privacy questions, rights requests, and appeals: ricebboi@gmail.com.
Support & Privacy Choices
Consumer Health Data Privacy Policy