Upsy

Privacy Policy

Last updated: 1 October 2026

Upsy watches you through the camera to count your reps. The video it reads to do that never leaves your phone. This page says what that means exactly, what does leave, and what you can do about it.

The camera feed never leaves your phone. The pose model runs on the device. No video, no frame the model reads, no pose and no inference is uploaded, to anywhere, at any point. Upsy does keep one photo per set, and it backs those photos up to your own account so a new phone gets them back. Nobody else can see them, deleting one deletes it everywhere, and you can switch them off in Settings (section 4.3).

Contents

  1. Who we are
  2. The camera, and what it does not do
  3. What stays on your phone
  4. What leaves your phone
  5. Who processes it for us
  6. Why we are allowed to
  7. Advertising, and the App Tracking Transparency prompt
  8. Notifications
  9. How long it is kept, and how to delete it
  10. Your rights
  11. Where the data goes
  12. Children
  13. Security
  14. Changes to this policy
  15. Contact

1. Who we are

Upsy is published by TC ADVANCED ANALITIQ SRL, a company registered in Romania, trading as Tome Apps. For the purposes of the EU General Data Protection Regulation (GDPR) we are the data controller for the personal data described here.

You can reach us at support@tomeapps.com. There is no contact form on this site, on purpose: an email goes nowhere near us until you decide to send it.

2. The camera, and what it does not do

Counting reps is the whole product, and it is done entirely on your device. The camera feed is read frame by frame by a pose model that runs locally. The result of that model is a set of body keypoints, used for a fraction of a second to decide whether a rep happened, and then discarded.

None of the following is ever transmitted, to us or to anyone else:

There is no upload path for these in the app. It is not a setting that could be switched on by accident, and there is no share button anywhere near them.

The one image that is kept is the set photo: a single frame chosen at the end of each set and saved as a picture of you training. It is a separate file from anything the model reads, and section 4.3 says where it goes.

3. What stays on your phone

Upsy is local first. Every screen reads from on-device storage, and the app works with no network connection once the coach's voice has been downloaded. Stored locally:

Deleting the app deletes all of it from the phone. Your training log, settings and set photos are also kept in your account (section 4), so signing in on a new phone brings them back. Deleting the app does not delete the account; Delete Account does (section 9).

4. What leaves your phone

Eight things, and this list is exhaustive.

4.1 The coach's voice clips come down

The spoken count is recorded audio, fetched read only from Firebase Storage during setup. The files are identical for every user. Nothing about you goes up with the request beyond what any HTTP request necessarily reveals, which is your IP address and a request timestamp in the hosting provider's logs.

4.2 Your own training log and settings go up, to your own account

Every install signs in anonymously on first launch and is given an account identifier (a uid). Your training log and settings are mirrored to that account so that they can be handed back to you on your next phone. That is the entire purpose. The mirror holds:

There is no feed, no leaderboard and no public profile. Nothing in your account is readable by any other person, and the database rules make that structural rather than a promise. The one thing another person can ever see is the card described in 4.4, and only people you added as friends can see it.

Signing in with Apple or Google attaches that credential to the same account. When you do, the sign-in provider gives us the name and email address you choose to share. If you use Apple's Hide My Email, we receive the relay address and never your real one. That name and email are used to recognise your account and for nothing else, and they are never passed to the analytics or advertising services below.

4.3 Your set photos go up, to your own account

Each set photo is uploaded to your account in Firebase Storage, together with a small record of when it was taken and which exercise it was. This is so that a new phone, or the same phone after a reinstall, gets your photos back, which is the only reason it is done. On a new phone the photos come down when you open them.

4.4 Friends: a card they can read, and a nudge they can send

Friends are optional and off until you set them up, which needs a name for friends to see and an Apple or Google sign-in. You add a friend by sharing an invite code, and you can have up to four. While you have friends:

Removing a friend ends both: they stop seeing your card and can no longer nudge you. Regenerating your invite code stops anyone holding the old one from adding you.

4.5 RevenueCat receives your purchase receipts, your account id and device identifiers

Upsy is a subscription app, and subscriptions are handled by RevenueCat on top of Apple's and Google's billing. RevenueCat receives the store receipt, your account id and the subscription events that follow (a purchase, a renewal, a cancellation, a refund). Our server receives those events and writes the resulting status to your account. We never see your card details, which stay with Apple or Google.

RevenueCat also receives the device's vendor identifier and, only if you allowed it at the App Tracking Transparency prompt, its advertising identifier. It uses them for one thing: matching the purchase events it forwards to AppsFlyer (section 4.7) to the install they belong to.

4.6 Mixpanel receives usage events

To understand how the app is used and where people get stuck, Upsy sends product analytics events keyed to your account id: which screens were opened and in what order, navigation between them, and the steps of the first-run setup. Every event carries the platform, the app version and the build number.

The vocabulary of events the app is capable of sending is fixed in the source code, and anything outside it will not compile. What Mixpanel never receives: anything the camera saw, anything you typed, your email address, and any measurement of your body.

Like any server, Mixpanel sees the IP address a request comes from. It uses it to estimate a country and city for the event, and does not keep the address itself.

4.7 AppsFlyer receives the install and two events

This is advertising attribution: working out which advert produced which install, so that money spent on adverts can be pointed at something. AppsFlyer receives the install itself, the device and advertising identifiers it needs for that (on iOS, the advertising identifier only if you allowed it at the App Tracking Transparency prompt), your account id, and two of the app's own events: finishing setup, and starting a subscription, recorded only as a free trial or a paid one.

Not screens, not taps, not the setup funnel, and nothing about your training. The purchase itself, with its amount, renewals and refunds, reaches AppsFlyer from RevenueCat's servers, which hold the receipts, rather than from your phone. On iOS, Apple's own attribution system (SKAdNetwork and AdAttributionKit) also sends AppsFlyer a copy of the postback it sends to the advertising network; that postback names the campaign and a small number describing what happened after install, and by Apple's design it identifies neither you nor your device.

4.8 The app asks Firebase Remote Config for its settings

At launch, and when you come back to the app, it fetches a few values we set centrally: the oldest version of the app that is still supported, what the free plan includes, and which accounts may open an internal screen we use to film adverts. The answer is the same for everybody. The request carries a Firebase installation identifier, a random id for this install of the app that Firebase uses to deliver the values, and nothing about you or your training.

5. Who processes it for us

Service What it gets Why
Google Firebase (Authentication, Firestore, Storage, Cloud Functions, Cloud Messaging, Remote Config, Hosting) Account id, sign-in credential, training log, settings, set photos, subscription status; the friends card, invite code and push token if you use friends; an installation id The account and the backup that restores it on a new phone, friends and their nudges, and the app's central settings
RevenueCat Store receipts, account id, subscription events, device identifiers Managing the subscription and telling the app whether it is active
Apple / Google Play Payment details, purchase history Taking the payment. They are controllers in their own right for that.
Mixpanel Account id, screen views, navigation, setup steps, app version Understanding how the app is used and where people get stuck
AppsFlyer Install, device and advertising identifiers, account id, one setup event, one subscription-started event Attributing installs to adverts

We do not sell personal data, and we do not share it with anyone outside this list. There is no crash reporting service and no Firebase Analytics in the app, both left out deliberately.

6. Why we are allowed to

Under the GDPR, our legal bases are:

7. Advertising, and the App Tracking Transparency prompt

On iOS you will be asked, during setup, for permission to track. That prompt is about advertising measurement only. Saying no is a normal answer and is the answer we assume: the app works identically either way, none of the training features change, and attribution falls back to Apple's own SKAdNetwork, which does not identify you.

You can change your mind at any time in iOS Settings, under Privacy and Security, Tracking. On Android the equivalent control is the advertising ID setting in your Google settings.

Upsy does not show adverts inside the app, and it never has.

8. Notifications

The reminders are scheduled by your phone, for your phone. No server is involved in them and nothing about them is registered with us. If you switch reminders off, or deny the permission, nothing about that leaves the device.

Nudges from friends are the one exception, because they come from somebody else's phone. They are push notifications, and section 4.4 says exactly what they involve. If you have no friends in the app, no push token exists for your phone.

9. How long it is kept, and how to delete it

10. Your rights

If you are in the EU or the UK, you have the right to access your data, to have it corrected, to have it erased, to receive a copy in a portable format, to restrict or object to certain processing, and to withdraw consent where consent is what we relied on. Withdrawing consent does not affect processing that already happened.

Most of these you can exercise yourself in the app: your training log and photos are on your phone in front of you, and Delete Account erases the account copy. For anything else, write to support@tomeapps.com and we will answer within one month.

If you think we have handled your data badly, you can complain to your local supervisory authority. In Romania that is the National Supervisory Authority for Personal Data Processing (ANSPDCP, dataprotection.ro).

If you are in California, you have the right to know what is collected, to delete it and to opt out of its sale or sharing. We do not sell or share personal information as those terms are defined by the CCPA, and we do not discriminate against anyone who exercises these rights.

11. Where the data goes

We are based in Romania. The services listed in section 5 are operated by companies in the United States, so personal data is transferred outside the European Economic Area. Those transfers rely on the European Commission's Standard Contractual Clauses, and where applicable on the EU-US Data Privacy Framework, together with the safeguards each provider commits to in its own data processing agreement.

12. Children

Upsy is not directed at children. It is not intended for anyone under 16, and we do not knowingly collect data from anyone under that age. If you believe a child has given us data, write to support@tomeapps.com and we will delete it.

13. Security

Data in transit is encrypted with TLS. Data at rest in Firebase is encrypted by Google. Access to your account in the database is enforced by server-side rules rather than by the app being polite about it: an account can read and write only its own data, the one exception being the friends card, which the people on its owner's friends list can read. The subscription and the friends list cannot be written by any client at all, and a nudge can only be created by our server. No system is perfect, and we do not claim ours is.

14. Changes to this policy

If this policy changes we will update the date at the top. If the change is material, meaning it affects what leaves your phone or who receives it, we will tell you in the app before it takes effect.

15. Contact

TC ADVANCED ANALITIQ SRL, Romania.
support@tomeapps.com