Privacy Policy.
How we at JudoLytics process, protect, and respect your personal data.
Last updated: June 18, 2026
Table of contents
01Who we are
JudoLytics is a sports analysis platform for judo. We help judokas, coaches, and club administrators analyze match performance, track training and body measurements, monitor recovery, create development plans, and manage judo clubs.
Data controller: Bloei.ai
Chamber of Commerce number: 66950376
Address: Clavisstraat 33, 6515GA, Nijmegen, Nederland
Email: info@judolytics.com
The Dutch Data Protection Authority (Autoriteit Persoonsgegevens) is the Dutch supervisory authority for the protection of personal data. More information at autoriteitpersoonsgegevens.nl.
02What data we collect
We only collect data that is necessary for providing our service or for which we have another legal basis. Below you will find an overview per category.
| Category | Data | Purpose | Legal basis |
|---|---|---|---|
| Account data | Email address, name, year of birth, profile photo | Account management and authentication | Performance of contract |
| Sports performance data | Match results, scores, techniques, match duration, weight category | Analysis and performance insights | Performance of contract |
| Strategic notes | Match plans, reflections, opponent notes | Personal match preparation | Performance of contract |
| Opponent data | Name, country, birth year, weight category, IJF and JudoManager ID | Profile building and analysis | Legitimate interest |
| Payment data | Stripe customer ID, subscription status, billing period | Subscription management and billing | Performance of contract |
| Technical data | IP address (at registration), browser information (when submitting feedback), session tokens | Security and debugging | Legitimate interest |
| Recovery data | Sleep quality, physical recovery, energy level, motivation, soreness (each on a 1-10 scale), readiness score, recovery notes | Recovery monitoring and recovery advice | Explicit consent (Art. 9 GDPR) |
| Training data | Session date, duration, type, intensity (RPE), training load, exercises, techniques, coach notes, reflections | Training logging and load monitoring | Performance of contract |
| Body measurements | Weight, height, body fat percentage, strength, endurance, power, and flexibility measurements | Physical progress and performance monitoring | Health data — explicit consent (art. 9 GDPR) for body composition; performance of contract for performance metrics |
| Development plans | Goals, categories (technique, tactics, strength, mental, etc.), check-ins, self-assessments, coach feedback, progress indicators | Personal development and goal management | Performance of contract |
| Notification preferences | Email and push settings, quiet hours, notification types, frequency limits | Personalized communication | Performance of contract |
| Referral data | Referral code, click and signup tracking, reward status | Referral program and rewards | Performance of contract |
| Gamification | Badges, streaks, achievements, and associated timestamps | Motivation and engagement | Performance of contract |
| Club and membership data | Your club memberships, your role in the club (administrator, coach, or judoka), and group assignment; for club administrators also the club name, address, location (coordinates), and club logo | Club and group management and coach functionality | Performance of contract |
Please note: recovery data (sleep quality, physical recovery, energy, motivation, soreness) is considered health data within the meaning of Article 9 GDPR. We process this data exclusively on the basis of your explicit consent, which you provide by voluntarily entering this data. You can stop entering recovery data at any time and delete existing data.
Explanation of legal bases: "Performance of contract" means that the processing is necessary to provide you with the service. "Legitimate interest" means that we have a business interest in the processing, always weighing it against your privacy interests.
03External data sources
When you link an opponent to an external profile, we retrieve additional data from publicly accessible sports databases at your request:
- IJF (International Judo Federation) — Public match data, world rankings, competition history, and weight category via the IJF Judobase.
- JudoManager — National match data, statistics, and club information via the JudoManager API.
This data is temporarily cached to optimize platform performance. The cached data is automatically refreshed and can be deleted by you by removing the opponent from your account.
04Processors and recipients
We share your personal data with the following service providers (processors) who process data on our behalf. We have concluded a data processing agreement with each processor in accordance with Article 28 GDPR.
| Processor | Service | Data | Country | Safeguard |
|---|---|---|---|---|
| Supabase | Database, hosting, and authentication | All stored data | EU/US | Data processing agreement + SCCs |
| Stripe | Payment processing | Customer ID, subscription data | US | Data processing agreement + EU-US Data Privacy Framework + SCCs |
| Resend | Email delivery | Email address, name, email content | US | Data processing agreement + EU-US Data Privacy Framework + SCCs |
| Cloudflare | CAPTCHA verification (Turnstile) | IP address, browser characteristics | US | Data processing agreement + EU-US Data Privacy Framework + SCCs |
| PostHog | Product analytics and session recordings | Anonymized usage events, session recordings (all text and input masked) | EU | Data processing agreement |
| Sentry | Error monitoring | Error messages, stack traces, performance metrics (no personal data) | US | Data processing agreement + EU-US Data Privacy Framework + SCCs |
| OAuth authentication (sign in with Google) | Email address, name (only when using Google sign-in) | US | Data processing agreement + EU-US Data Privacy Framework + SCCs | |
| CookieYes | Consent management (cookie banner) | Consent preferences | EU | Data processing agreement |
| Website analytics (Google Analytics 4 via Google Tag Manager) | Page views, visitor statistics, Core Web Vitals (anonymized) | US | Data processing agreement + EU-US Data Privacy Framework + SCCs | |
| Microsoft | Session recordings and heatmaps (via Google Tag Manager) | Click and scroll behavior, session recordings (text masked) | US | Data processing agreement + EU-US Data Privacy Framework + SCCs |
| Meta | Advertising measurement (Meta/Facebook Pixel via Google Tag Manager) | Page views, conversion events | US | Data processing agreement + EU-US Data Privacy Framework + SCCs |
| Vercel | Hosting, CDN, and application delivery | IP address, browser characteristics, and technical request data | US | Data processing agreement + EU-US Data Privacy Framework + SCCs |
| Address autocomplete and map display for club locations (Google Maps Platform) | Entered address searches, club location (coordinates), IP address | US | Data processing agreement + EU-US Data Privacy Framework + SCCs | |
| YouTube | Embedding instructional videos (loads only when you play a video) | IP address, video and playback data | US | Data processing agreement + EU-US Data Privacy Framework + SCCs |
SCCs = Standard Contractual Clauses — contractual safeguards approved by the European Commission for international data transfers (Implementing Decision (EU) 2021/914). The EU-US Data Privacy Framework is an additional safeguard: US organizations certified under the framework provide an adequate level of protection for personal data transferred from the EU (European Commission adequacy decision of 10 July 2023).
To display country flags, we load static images from a public flag CDN (flagcdn.com). This only exposes the IP address that every internet request requires; no account data is shared.
05Club functionality and shared data
JudoLytics offers the ability to join a judo club within the platform. Within a club, coaches, administrators and — depending on your settings — fellow club members can view certain member data, but only to the extent you have set this yourself. When you join a new club, nothing is shared by default until you make a choice.
You decide per data category who you share with, via the privacy settings in your dashboard. For each category you choose one level: 'Don't share' (private), 'Coaches only', or 'With the whole club'. You can set this for the following types of data:
- Match results, scores and statistics
- Opponent information and notes
- Match plans
- Match reflections (lessons learned for a match)
- Body measurements, including weight (set separately)
- Training, recovery check-ins and your personal development plan — these can only be shared with coaches, never with the whole club
A sharing setting applies to all your data in that category — including data you entered earlier. If you set a category to private, coaches and fellow club members will no longer see your older data in that category either. You can change all of these settings at any time via your privacy settings in the dashboard.
06Anonymization and aggregated use
We reserve the right to anonymize and aggregate your data for the following purposes:
Product improvement
Analysis of usage patterns, performance benchmarks, and feature usage to improve the platform and develop new features.
Research and publication
Sharing aggregated insights about judo performance, training patterns, and sports analysis with third parties, including in marketing materials, public reports, and research publications.
When anonymizing, we ensure that:
- Data is aggregated at group level (minimum 5 users)
- Individual identifiers are irrevocably removed
- It is impossible to trace results back to individual persons
- Anonymized data is not combined with other sources for re-identification
Anonymized and aggregated data no longer falls under the General Data Protection Regulation (GDPR) and can therefore be used without restriction, including for external publication and marketing purposes.
Legal basis: Legitimate interest (Article 6(1)(f) GDPR). We have conducted a balancing test weighing the interest of product improvement and knowledge development in judo against your privacy interests. Since the data is fully anonymized, we consider the risk to your privacy minimal.
07Retention periods
We do not retain your data longer than necessary for the purpose for which it was collected, unless a legal retention obligation applies.
| Data | Retention period | Explanation |
|---|---|---|
| Account data | Until account deletion + 30 days | Deletion upon request |
| Sports performance data | Until account deletion | After deletion, the data is stored in anonymized form |
| Payment data | 7 years after last transaction | Legal retention obligation (tax law) |
| Email logs | 1 year | Debugging and auditing |
| In-app notifications (read/dismissed/failed) | 90 days | Unread notifications remain available until interaction |
| Cached external data | Until opponent removed or 1 year | Performance optimization |
| Technical logs | 90 days | Security and debugging |
| Recovery data | Until account deletion | Stored in anonymized form after deletion |
| Training data | Until account deletion | Stored in anonymized form after deletion |
| Body measurements | Until account deletion | Stored in anonymized form after deletion |
| Analytics data (PostHog) | 1 year | Anonymized product analytics |
08Security
We know your recovery, performance, and health data is personal. That is why security is not an add-on but the foundation JudoLytics is built on. We take appropriate technical and organizational measures to protect your personal data against unauthorized access, loss, or modification. Below we explain, in plain language, how.
- Encryption — All your data is encrypted in transit (the entire app runs only over a secure HTTPS connection, enforced via HSTS) and encrypted at rest (encryption at rest via Supabase).
- Secure login — Login is via email and password or via Google (OAuth 2.0), with a PKCE-secured login flow and optional two-factor authentication (MFA/2FA) via authenticator apps.
- Access control (Row-Level Security) — At the database level, it is enforced that you can only access your own data. No other judoka or coach can see your data unless you choose to share it. This rule is enforced in the database itself, not only in the app, and is tested automatically.
- CAPTCHA protection — Cloudflare Turnstile protects the registration process against automated attacks.
- Rate limiting — Protection against brute-force login attempts and API abuse.
- Audit logging — Administrative actions are logged for accountability and debugging.
- MFA enforcement — Two-factor authentication is mandatory for administrator and support roles. Regular users can enable MFA voluntarily, with recovery codes and trusted devices.
- Security headers — A strict Content Security Policy and additional security headers counter common web attacks, such as clickjacking and code injection.
- Input validation — Everything you enter is checked both in your browser and on the server before it is stored.
- You stay in control — You can download all your data at any time or have your account and data permanently deleted, directly from your settings.
In short: your data is encrypted and technically isolated. No other user, not even a coach in your club, can see your data unless you choose to share it. Our database is hosted in the European Union; where we use service providers outside the EU, appropriate safeguards apply (see section 11). You remain the owner of your data and stay in control at all times.
09Your rights
Under the General Data Protection Regulation (GDPR), you have the following rights regarding your personal data:
Right of access (Article 15 GDPR)
You can request which personal data we process about you and receive a copy thereof.
Right to rectification (Article 16 GDPR)
You can request correction of inaccurate or incomplete data. You can adjust much of this data yourself via your settings page at judolytics.com/dashboard/settings.
Right to erasure (Article 17 GDPR)
You can delete your account and personal data. You can do this yourself via Settings > Privacy at judolytics.com/dashboard/settings. After the request, your account is permanently deleted after 30 days. Anonymized aggregated data and data we are legally obligated to retain (such as payment data for tax purposes) fall outside this right.
Right to restriction of processing (Article 18 GDPR)
You can request temporary suspension of the processing of your data, for example when you dispute the accuracy of your data.
Right to data portability (Article 20 GDPR)
You can download your data in a structured, commonly used, and machine-readable format (JSON) via Settings > Privacy at judolytics.com/dashboard/settings. This enables you to transfer your data to another service provider.
Right to object (Article 21 GDPR)
You can object to the processing of your data based on our legitimate interest. We will cease processing unless we demonstrate compelling legitimate grounds for the processing.
Right regarding automated decision-making (Article 22 GDPR)
JudoLytics does not make automated decisions with legal effects or similarly significant consequences for you. All analyses and insights are informational in nature.
Submit a request: Send your request by email to info@judolytics.com. We will respond within 30 days. To verify your identity, we may ask you for additional information.
Self-service
Many rights can be exercised directly without an email request:
- Edit profile: Settings > Account
- Download data (JSON): Settings > Privacy
- Delete account: Settings > Privacy
- Manage club privacy: Dashboard > Club > Privacy
- Notification preferences: Settings > Notifications
- Email preferences: Settings > Notifications
10Cookies and local storage
JudoLytics uses cookies and local storage in your browser for the functioning of the application. Below you will find a complete overview of all cookies and storage mechanisms we use, divided into strictly necessary and optional (consent required).
Strictly necessary cookies and storage
These cookies and storage items are necessary for the website to function. They cannot be disabled.
| Type | Purpose | Strictly necessary | Consent required |
|---|---|---|---|
| Session token (Supabase Auth) | Authentication and session management (localStorage). Contains your login token, expiration time, and PKCE verification code. | Yes | No |
| Role cache | Platform role caching for performance optimization (localStorage, valid for 60 minutes) | Yes | No |
| Consent cookie (CookieYes) | Storage of your cookie consent preferences (cookie) | Yes | No |
| Sidebar state | Remembers whether the side menu is expanded or collapsed (cookie, valid for 7 days) | Yes | No |
| Language preference | Your selected language setting and whether you dismissed the language banner (localStorage) | Yes | No |
| UI preferences and application state | Onboarding status, module settings, referral codes, guides, MFA reminders, and other interface preferences (localStorage) | Yes | No |
Analytics cookies (consent required)
These cookies are only placed after your explicit consent via the cookie banner. You can withdraw or adjust your consent at any time.
| Type | Purpose | Strictly necessary | Consent required |
|---|---|---|---|
| PostHog | Product analytics, usage statistics, and session recordings (all text and input masked). Without consent, PostHog runs in memory mode without any storage. | No | Yes (via cookie banner) |
| Google Tag Manager | Manages the loading of analytics scripts. Activated based on your CookieYes consent choice. | No | Yes (via cookie banner) |
| Google Analytics 4 (via GTM) | Website analytics, page views, Core Web Vitals, and visitor statistics. Sets cookies such as _ga and _ga_* (valid up to 2 years). | No | Yes (via cookie banner) |
| Microsoft Clarity (via GTM) | Session recordings and heatmaps for usability analysis. Sets cookies _clck (1 year) and _clsk (1 day). | No | Yes (via cookie banner) |
Advertising cookies (consent required)
These cookies are used to measure the effectiveness of advertising campaigns. They are only placed after your explicit consent.
| Type | Purpose | Strictly necessary | Consent required |
|---|---|---|---|
| Meta/Facebook Pixel (via GTM) | Measures conversions and page views for advertising campaigns. Sets cookie _fbp (3 months). | No | Yes (via cookie banner) |
Embedded third-party content
Some pages may embed third-party content. This content only loads when you use it, and may then set cookies from that party. We therefore do not place these cookies in advance.
| Type | Purpose | Strictly necessary | Consent required |
|---|---|---|---|
| YouTube (embedded video) | Plays instructional or match videos. Loads only when you click play. YouTube may then set cookies such as VISITOR_INFO1_LIVE and YSC. | No | Loads only when you play a video |
| Google Maps (map and address autocomplete) | Shows club locations on a map and helps you enter an address. Loads only when you use the map or address feature. Google may then set cookies. | No | Loads only when you use the map or address search |
You can view and adjust your cookie preferences at any time by reopening the cookie banner. Click the button at the bottom of the page or use the link:
The strictly necessary cookies and storage are required for the functioning of the service. Under the Dutch Telecommunications Act (Article 11.7a), prior consent is not required for these. Analytics and advertising cookies are only placed after your explicit consent via the CookieYes cookie banner. Fonts are self-hosted; no external requests are made to Google Fonts or other CDN services.
11International transfers
Some of our service providers are based in the United States. This means that your personal data may be processed outside the European Economic Area (EEA).
To ensure an adequate level of protection, we use:
- Standard Contractual Clauses (SCCs) — Standard contractual clauses approved by the European Commission in accordance with Implementing Decision (EU) 2021/914.
- Data processing agreements — Written agreements have been concluded with all processors that comply with Article 28 GDPR.
- Additional technical measures — Encryption of data in transit and at rest.
12Children
JudoLytics is intended for judokas and coaches of all ages. Judo is a sport practiced from a young age, and we understand that minors may also use our platform.
In accordance with Article 8 GDPR and Article 5 of the Dutch GDPR Implementation Act (UAVG), consent from a parent or legal guardian is required for users under 16 years of age to create an account.
The platform offers the ability to enter recovery and health data (such as sleep quality and physical recovery). For minor users, the parent or legal guardian must give consent for the processing of this special category of personal data.
We do not actively verify age at registration. If we become aware that a minor is using our platform without parental or guardian consent, we will delete the relevant account and associated data. Parents or guardians can contact us at info@judolytics.com.
13Changes
We may update this privacy policy from time to time, for example in response to new features, legal obligations, or changes in our service.
For substantial changes, we will inform you via:
- An email notification to the email address we have on file
- A notification within the application
The "Last updated" date at the top of this page is updated with each change. We recommend reviewing this privacy policy regularly.
14Contact and complaints
Do you have questions about this privacy policy or about the processing of your personal data? Please contact us:
Bloei.ai
Email: info@judolytics.com
Address: Clavisstraat 33, 6515GA, Nijmegen, Nederland
Chamber of Commerce: 66950376
If you believe that we are not processing your personal data correctly, you have the right to file a complaint with the Dutch Data Protection Authority:
Dutch Data Protection Authority (Autoriteit Persoonsgegevens)
Postbus 93374, 2509 AJ Den Haag
Phone: 088 - 1805 250
Website: autoriteitpersoonsgegevens.nl
This privacy policy has been drawn up in conjunction with the Terms of Service of JudoLytics. In case of conflict between this privacy policy and the Terms of Service, this privacy policy prevails insofar as it concerns the processing of personal data. Terms of Service