Privacy Policy
Last updated: April 21, 2026
Introduction
FairSub ("the app") is developed by AD AH AB ("we", "us"), a Swedish company based in Stockholm. This privacy policy explains what data the app collects, where it is stored, and your rights.
We collect less than most apps in our category, and we tell you exactly what we do with it. FairSub is designed so that giving every child fair playing time doesn't require a database of personal information about those children.
This policy covers the Free and Coach tiers. Additional tiers may be introduced later — this policy will be updated before they launch.
What FairSub collects — and what it doesn't
About players (entered by the coach)
FairSub stores only what the match engine needs:
- Name — first name or nickname is enough
- Preferred positions — optional, Coach tier only
Match and playing-time data (generated during use)
- Match metadata (opponent, date, formation, period length, rotation style)
- Playing time per player per period
- Goalkeeper time
- Substitution history and injury markers
- Match rate — a fairness signal calculated over time
What FairSub never collects
- No photos of players, ever
- No parent contact information — no names, phone numbers, or emails
- No health notes, allergies, medications, or fitness data
- No jersey numbers — there is no field for this, structured or free-text
- No free-text notes about individual players
- No location data
- No advertising identifiers (IDFA)
- No cross-app tracking — the app never shows the App Tracking Transparency prompt
- No contacts, calendar, camera, or microphone access
Where your data is stored
Free and Coach tiers — local-first
All player, match, and history data is stored in a local SQLite database on your device. It is not synced to any server, backed up to any cloud, or shared with any third party by us.
If you uninstall the app, all local data is permanently erased.
When data leaves your device
There are three situations where limited data leaves your device. Each is listed below with exactly what is sent and why.
1. Subscription purchases (Coach tier)
If you subscribe to FairSub Coach, the purchase is processed by Apple In-App Purchase and tracked through RevenueCat, a subscription management service.
- RevenueCat receives: purchase history, device type, and OS version
- RevenueCat receives an anonymous identifier (
app_user_id) — it is not linked to your name, email, or Apple ID - RevenueCat does not receive any player, match, or team data
- RevenueCat acts as a data processor under our instructions. A Data Processing Addendum (DPA) is in place
- More information: revenuecat.com/privacy
2. Monthly Report sharing (Coach tier)
The Monthly Report feature lets you generate a shareable HTML summary of a month's playing time and match rate data. This is an explicit action you take — nothing is uploaded automatically.
When you generate a report:
- The app sends a JSON payload (team name, player first names, per-period playing time, match rate) to a Cloudflare Worker in an EU region
- The Worker renders the HTML report and stores only the rendered HTML in Cloudflare R2 (EU region) — the original JSON payload exists only in Worker memory during rendering and is not persisted
- The team name is stored (lowercased) as object metadata so it can be checked at sign-in; it is deleted together with the report after 60 days
- The report is reachable via a URL with a random 36-character identifier — the URL itself contains no match ID, date, or player names
- The report is marked
noindex, nofollow(both as meta tag and HTTP header) so search engines do not index it - Anyone with the URL must enter your team name to view the report
- After successful sign-in, a short-lived session cookie (HttpOnly, Secure, 24-hour lifetime, random identifier only) is set so you don't have to sign in again on the same device
- Reports are automatically deleted after 60 days
You can generate a new report at any time, and the old one remains reachable until it expires.
3. Live Activity push notifications (Coach tier)
If you use Live Activity on the lock screen during a match, FairSub uses Apple Push Notification service (APNs) via a Cloudflare Worker to deliver the whistle sound and substitution updates on time, even when the app is in the background.
- The Worker receives: a Live Activity push token, the scheduled time of the next substitution, and the first names of the two players involved (e.g. "Emil → Elise") so they can appear on the lock-screen alert
- No match identifiers, no history, no team name, no opponent name
- Schedules are stored only until the alert fires, and are cancelled when the match ends or the app returns to the foreground
Third parties we use
| Service | Purpose | Data processed | Region |
|---|---|---|---|
| Apple In-App Purchase | Payments | Purchase history | Apple region |
| RevenueCat | Subscription management | Anonymous purchase metadata | US (with EU DPA) |
| Cloudflare R2 + Workers | Monthly Report hosting + APNs scheduling | Report content, push tokens | EU |
We do not use analytics, advertising, tracking, or crash-reporting services.
Children's privacy
FairSub is designed for coaches of youth sports teams, typically ages 5–12. The app does not interact with children directly — it is a tool for the coach.
Under the EU General Data Protection Regulation (GDPR), when a coach enters a player's name into the app on their device, the coach is the data controller for that information. FairSub, as the app developer, does not receive the data and has no technical ability to access it (for Free and Coach tiers, data never leaves the device except as described above, and none of those cases include raw player names going to us).
By designing the app to work without photos, contact details, health notes, or free-text fields, we help coaches avoid collecting information that would put them in a more complex position under GDPR, COPPA (USA), and similar laws.
Your rights
Because Free and Coach data stays on your device, you have full control:
- Access — all data is visible within the app
- Correction — edit any player, match, or setting at any time
- Deletion — delete any record within the app, or uninstall to remove everything
- Portability — future app versions will include an export function
For data that leaves your device (purchase history with RevenueCat, shared Monthly Reports, Live Activity push tokens), you can:
- Cancel a subscription via your Apple ID settings — RevenueCat stops receiving renewal events
- Delete a Monthly Report from within the app, or wait for the 60-day automatic expiry
- End a Live Activity to cancel all scheduled push notifications for that match
To request deletion of any data we may hold about you, contact us using the email below.
Data retention
- Local app data — kept until you delete it or uninstall the app
- Purchase records (RevenueCat) — retained as long as your subscription is active, then for the period required by tax and accounting law
- Monthly Reports (Cloudflare R2) — deleted automatically after 60 days
- Live Activity push schedules — deleted when the match ends
Changes to this policy
If we update this privacy policy, we will post the revised version on fairsub.app/privacy and update the "Last updated" date above. Significant changes will be communicated in the app's release notes.
Contact
Questions about this privacy policy, or requests for data deletion:
- Email: privacy@fairsub.app
- Website: fairsub.app
- Company: AD AH AB, Stockholm, Sweden