PadelRanks — Privacy Policy

Effective 7 August 2026

Provider: PadelRanks — Juliancilea@gmail.com

PadelRanks is an iOS and Android app that gives padel players access to national federation rankings, international pro rankings, tournaments, club information and a Danish "Find a Match" community, and a captain-to-captain chat for arranging team-league fixtures. The app's federation-backed ranking and tournament data covers 18 countries:

Rankedin-backed (13):
Denmark, Sweden, Germany, Austria, Croatia, Norway, Romania, Slovenia, Moldova, Hungary, Finland, Ukraine, Estonia.
FIP-backed (5):
Spain, Mexico, Argentina, Italy, France.

For Denmark specifically, the underlying ranking data is owned and maintained by the Dansk Padel Forbund (DPF) — the Danish Padel Federation — and hosted on the Rankedin platform. We access this data through Rankedin's public API but the data controller for the ranking records themselves is DPF, not Rankedin or us.

We take your privacy seriously and only process the data strictly required for the app to function.

1. Data we process

1.1 Location data

If you grant permission, PadelRanks uses your location on your device to calculate the distance between you and padel tournaments and clubs, and to verify that you are physically located in Denmark when you sign in to the Find a Match feature (see §1.5). Distance calculations, the Denmark check and address lookups all happen on the device; the full-precision fix is not transmitted anywhere.

One rounded copy is stored. If you have a Find a Match account and have switched on tournament-partner or nearby-tournament alerts, your position is rounded to two decimal places — roughly a one-kilometre square — and saved against your account in push_subscriptions, so our server can work out whether a tournament someone needs a partner for is near you. Rounding is enforced by the database, not only by the app, so it applies no matter which version you are running. Turning those alerts off, or denying the location permission, means nothing is stored. Deleting your account removes the record (see §5).

Outgoing requests to third-party tournament providers (see §3) only include your coordinates when you explicitly run a location-based search — and only as anonymous latitude/longitude, never your identity. If you deny the location permission, the rankings and tournament parts of the app still work — distance simply isn't shown — but the Find a Match feature is unavailable because we cannot confirm you are in Denmark.

1.2 No federation login

The rankings, tournament and club parts of PadelRanks are entirely read-only and require no Rankedin or FIP account. You can browse all 18 countries without signing in to anything. We do not store federation credentials and there is no login form for Rankedin or FIP in the app.

You can optionally "claim" your own player profile by searching for your name in the Rankedin or FIP public player database — this selection is stored only on your device and contains no credentials.

1.3 Federation data (rankings, tournaments, clubs, profiles)

The app displays rankings, tournament results, player profiles and club information from the sources in §3. Most of this data — RankedIn rankings, team leagues, player profiles and player matches, tournaments, and FIP player rankings and the FIP Premier calendar — is fetched through our own backend (see §3), which retrieves it from the sources, caches it, and serves it to the app. A few requests still go directly from your device to the source — for example RankedIn team-league search and some FIP player-search and player-profile pages. In all cases the data is also held briefly in the app's on-device cache (AsyncStorage) for performance.

1.4 Player profile photos displayed in the app

Profile photos of other players shown in rankings and profile screens are sourced from the public APIs of Rankedin and the International Padel Federation (FIP) — they are not hosted by us. Photo availability varies by player and by country; where a photo is not available we display a generated avatar with the player's initials. The image URLs themselves are requested directly from the third-party CDN by your device and are cached on-device for performance. No personal identifier is attached to those requests.

1.5 Find a Match account and content (Apple / Google sign-in, posts, comments)

The "Find a Match" feature requires you to sign in with Apple or Google. When you do, PadelRanks receives and stores the following on our backend (Supabase — see §3):

We do not receive or store your Apple or Google password — the sign-in itself happens on Apple's / Google's servers, and we only receive the resulting identity token.

The Find a Match feature is currently restricted to users physically located in Denmark.

1.5b Team captain chat (league fixture messages)

PadelRanks lets the registered captain of a national team-league side arrange a scheduled fixture with the opposing captain, in a saved conversation attached to that specific match. If you use this feature, we store the following on our backend (Supabase — see §3):

Who can read your messages: the players listed in either squad's roster snapshot for that fixture, and the two captains. Messages are not public and are not visible to other app users.

Only captains can write. Other squad members can read the conversation for their own fixtures but cannot post in it.

Important limitation, stated plainly: we cannot cryptographically verify that a person is who they say they are. The national federation does not permit third-party login, so the RankedIn player identity in this app is self-declared. We reduce the risk by allowing only the roster's registered captain to claim a seat, by making every claim visible to the whole squad, by letting two squad members freeze a disputed seat, and by allowing us to remove a seat. You should not treat a message in this feature as proof of identity.

1.6 Push notifications (optional)

If you opt in to notifications, we collect an Expo push token (an opaque per-device identifier from Expo's push service) and store it in our Supabase backend with your notification preferences, so the server can deliver notifications when the app is closed.

Player-specific match notifications (pre-match, post-match, rank-change) are sent only for a small, curated list of professional players — players whose competitive activity is part of their public profession (e.g. FIP-tour professionals) — and for one profile you may designate as your own ("my profile"), stored locally on your device. We do not send player-specific notifications about other amateur or recreational players, regardless of their ranking position. Following any player is always possible and contributes only to an anonymous follower count (§1.7); following a non-professional player never triggers push notifications about that person.

Goal-progress notifications about your own tracked goal are calculated on your device and concern only you. You control all notifications through OS-level permission and the in-app bell settings, and can revoke at any time by signing out, switching notifications off, or revoking OS permission.

Team-match notifications for league teams you follow (e.g. Lunar Ligaen and the other federation team leagues we list in §1) are delivered as local notifications scheduled on your device when you tap the heart on a team. They are strictly aggregate at the team level: each notification carries only the team's name, the opponent team's name, the kick-off date and time, and the venue. They never name individual players, and they never report individual rubber or match results — even though such information is publicly displayed by the federations on the same source pages we read for the schedule itself. Inside the app you may see those individual scores as a passive display of public federation data; the push surface deliberately does not. You can stop these notifications for any team at any time by tapping the heart again to unfollow — we cancel every scheduled reminder for that team immediately, in addition to the OS-level and in-app controls above.

1.7 Follower counts (anonymous)

PadelRanks shows a small follower count next to each player in the rankings, search results, player profile and "Following" list — a number indicating how many other PadelRanks users follow that player. To compute this count we store one row per follow on our backend (Supabase — see §3) with:

The anonymous device identifier is never returned to any client — only the aggregate count (e.g. "134 followers") is visible to other users, and is the only value the server's public API ever emits. Row-level security blocks any direct read of the underlying table.

If you uninstall and reinstall the app your device receives a new anonymous identifier; your previous follows orphan in the database and continue to contribute to counts until removed (see §5 Erasure).

The follower-count feature works for both Rankedin- and FIP-backed players across all 18 countries and does not require sign-in.

1.8 Legal basis for processing (GDPR Article 6)

The lawful bases under GDPR Article 6(1) that we rely on are:

A documented legitimate-interest balancing test is available on request to Juliancilea@gmail.com.

2. Data we do not collect

3. Third-party data sources and processors

PadelRanks communicates with the following services. Most read-only padel data is fetched through our own backend (api.padelranks.online, hosted on Hetzner in the EU), which retrieves it from the sources below, caches it, and serves it to the app — this covers RankedIn (rankings, team leagues, player profiles, player matches and tournaments), FIP (the Premier calendar and player rankings), and place-name geocoding. A few requests still go directly from your device to the source — for example RankedIn team-league search and certain FIP player-search / player-profile pages. The Find a Match feature uses Supabase (§3.2).

3.1 Read-only data sources (rankings, tournaments, clubs)

3.2 Our backend and data processors

We run a single backend (above) that caches the public federation data and performs geocoding; all Find a Match account data lives in Supabase. The original padel data is owned and published by the third-party providers listed above — our backend holds cached copies and snapshots of it for performance.

4. Retention

5. Your rights (GDPR + UK GDPR + Swiss DPA)

You have the following rights under the GDPR. Article references are to the EU GDPR; equivalent rights exist under the UK GDPR and Swiss DPA.

6. Children (GDPR Article 8)

PadelRanks's Find a Match feature is not directed at and may not be used by children under the age of 16. At Find a Match sign-up we require an explicit in-app confirmation that the user is 16 years of age or older. This is higher than the Danish digital-consent age of 13 (GDPR Article 8(1)) and is set deliberately to avoid processing the personal data of younger users without parental consent. Apple's and Google's sign-in flows additionally enforce platform-level minimum age requirements.

We do not knowingly collect data from children under 16 via Find a Match. If you believe a child under 16 has created a Find a Match account, please contact us at Juliancilea@gmail.com and we will delete the account and associated content.

The non-Find-a-Match parts of the app (rankings, tournaments, clubs) do not ask any user, of any age, for personal data or an account — they are a read-only display of data already published by the national padel federations (DPF, FIP, etc.) on their own public web pages. (As with any internet service, the backend that serves this data keeps technical request logs — see §3.2.) The federations are the controllers of the displayed data and are responsible for any age-related publication decisions about their members.

7. Security

Communication with all third-party APIs and with Supabase is encrypted with TLS. Find a Match data inside Supabase is protected by row-level security (RLS) — you can only read and write your own posts, comments, joins and push subscriptions, and the database refuses any operation that violates this. Follower-tracking rows (§1.7) are protected by the same row-level security mechanism — the underlying table is fully blocked from direct client reads, and only the aggregate count is exposed via a SECURITY DEFINER RPC, so no client (including signed-in users) can enumerate which devices follow which players. We rely on Supabase's underlying security measures (encryption at rest, secure key management, regular backups) for the database itself.

8. International transfers

Our backend cache is hosted on Hetzner in the EU, and Supabase hosts the Find a Match database in Frankfurt, Germany — also inside the EU. Apple, Google and Expo may process authentication and push-delivery data outside the EU under their own GDPR-compliant transfer mechanisms.

9. Changes

Changes to this policy will be published on this page together with an updated effective date. Material changes (e.g. new categories of data, new processors) will be announced in the app before they take effect.

We will not broaden player-specific notifications beyond professional players and the user's own designated profile without updating this policy and announcing the change in-app before it takes effect.

10. Contact

Questions, deletion requests, or data exports? Write to Juliancilea@gmail.com.