Privacy Policy — YSS (Your Sailing Stats)
Draft notice. This document is a working draft prepared from the YSS
codebase to accurately describe the platform's current data practices. It is not
legal advice and must be reviewed and adapted by qualified legal counsel (and
localized for your target jurisdictions) before it is published or relied upon. Bracketed
[...] values are placeholders that must be completed.
This Privacy Policy explains how [Legal Entity Name] ("YSS", "we", "us") collects, uses, shares, and protects personal data when you use the YSS sailing/GPS analytics service — the mobile app, website, and backend API (together, the "Service") available at https://your-sailing-stats.net.
For the purposes of the EU/UK General Data Protection Regulation (GDPR), [Legal Entity Name] is the data controller for the personal data described here. If you are in the EU/UK, our representative is [EU/UK Representative] and our Data Protection Officer (if appointed) can be reached at [DPO contact].
1. Summary
- YSS analyzes GPS activity tracks (sailing, windsurfing, and similar). To do this we process precise location data and, when present in your files, heart-rate data. These are sensitive categories and receive special treatment (see Section 9).
- You control who can see each track — public, friends-only, or private — and what details are shown (see Section 8).
- We use a small set of service providers ("sub-processors") to run the Service (hosting, content delivery, email, optional weather enrichment, sign-in, telemetry). We describe them in Section 4.
- We do not sell your personal data, and we do not use it for third-party advertising.
- You can delete individual tracks yourself at any time, and you can request deletion of your account and associated data by contacting us (see Section 6 and Section 8).
2. Personal data we collect
2.1 Account and profile data
- Email address (used to sign in, verify your account, and send transactional messages).
- Display name and, optionally, an avatar image.
- Preferences and settings — measurement units (e.g. knots / km/h), appearance settings, and your default track-privacy preference.
- Subscription tier (currently free for all users), used to apply the correct usage/rate limits. We do not currently collect or process any payment or billing information; if we introduce paid plans, we will update this Policy before doing so.
- Account timestamps — when your account was created and last active.
2.2 Authentication and device/session data
- Password — if you register with a password, we store only a cryptographic hash of it, never the plaintext.
- Third-party sign-in identifiers — if you sign in with Google, we receive and store basic profile information from Google (your email, name, and profile-picture URL) to create and identify your account, together with the access token Google issues for that sign-in. (Other social sign-in providers may be offered in the future.)
- Session tokens — we issue short-lived access tokens and longer-lived refresh tokens so you stay signed in. For refresh tokens we store a one-way hash of the token, an expiry, and, where available, your client's user-agent (device/browser identifier).
- Verification codes — short-lived one-time codes generated for email confirmation and password reset.
2.3 Location and activity data (sensitive)
When you upload or record an activity, we process:
- Precise GPS location data — the route's coordinates over time (latitude/longitude), start/finish times, and derived geometry (e.g. a bounding box of the track).
- Performance data — speed, distance, duration, and tactical metrics (e.g. tacks/jibes).
- A place label (e.g. the venue name) and any description and tags you add.
- Weather/wind data associated with the track (see Section 4 on how this is obtained).
2.4 Health data (special category)
Activity files may include heart-rate measurements. Where present, we process heart rate as part of your activity. Heart rate is treated as a special category of personal data (health) and is processed only on the legal basis described in Section 9.
2.5 Uploaded files
- The original activity files you upload (e.g. GPX or FIT), including their file name, type, and size, and the location/heart-rate/time data they contain.
- Activities imported from third-party archives at your request (e.g. a Garmin export you provide) are processed the same way.
2.6 Social and community data
- Connections — friends, friend requests, and follows.
- Groups — groups you create or join, including a group's optional location, group membership and roles, invitations, and blocks.
- Content you post — posts that share your tracks in a group and comments you write.
- Fleets — collective replays that match eligible participants' tracks over a time window and area, including who is a candidate and whose tracks are included.
2.7 Derived and aggregate data
- Aggregates, statistics, histograms, and polar diagrams computed from your activities.
- Leaderboard entries — your ranked performance within groups.
- Categories and tags you define.
2.8 Technical and usage data
- IP address — for anonymous (signed-out) requests we read the client IP
(from
X-Real-IP/X-Forwarded-Forheaders) solely to apply rate limits. These IP values are used for in-memory/short-lived counters and are not written to durable logs by the Service. - Operational telemetry — request metrics and traces used to keep the Service reliable; these may include an account identifier for diagnostics.
3. How we use personal data and our legal bases
We use personal data for the following purposes. Where GDPR applies, the corresponding legal basis is shown.
| Purpose | Examples | Legal basis (GDPR) |
|---|---|---|
| Provide the Service | Create/authenticate your account; store and analyze your tracks; show your stats | Performance of a contract |
| Sharing you control | Show tracks to the audience you select (public/friends/group/fleet) | Contract, and your consent/choice via privacy settings |
| Process sensitive data | Precise location & heart-rate analysis | Your explicit consent (see Section 9) |
| Account & transactional email | Email verification, password reset, security notices | Contract; legitimate interests (account security) |
| Security & abuse prevention | Rate limiting, session management, fraud/abuse mitigation | Legitimate interests |
| Reliability & improvement | Operational metrics/traces, debugging | Legitimate interests |
| Legal compliance | Responding to lawful requests; record-keeping | Legal obligation |
We do not use your personal data for third-party advertising or profiling that produces legal or similarly significant effects.
4. How we share personal data
4.1 With other users — according to your settings
Your tracks are shared with other people only as you direct:
- Track privacy: Public (anyone), Friends (your friends only), or Private (only you). You set a default and can change it per track.
- Share settings: fine-grained toggles control which details (description, tags, category, speed/turn/polar details, etc.) are visible to viewers.
- Groups and fleets: if you post a track to a group or participate in a fleet, it is visible to the members/participants of that group or fleet according to its visibility rules.
4.2 With service providers (sub-processors)
We use the following categories of providers to operate the Service. Each processes personal data only to provide services to us, under contract.
| Sub-processor (category) | What it does | Data involved |
|---|---|---|
| [Hosting provider] / database | Runs our servers and PostgreSQL database | All stored account, activity, and social data |
| Amazon Web Services — S3 & CloudFront | Stores processed track files and delivers them via time-limited signed URLs | Processed track data blobs; the request that fetches them |
| [SMTP / email provider] | Sends transactional email | Your email address; verification/reset codes |
| Google (Sign-In) | Optional social sign-in | Profile data we receive from Google when you connect (email, name, picture) plus the sign-in access token |
| Garmin (import) | Optional, user-initiated import of your activity archives | The archive you provide |
| OpenWeatherMap and Visual Crossing | Optional wind/weather enrichment of a track | We send track coordinates and timestamps to retrieve historical wind/weather |
| Rate-limit store (Redis) | Short-lived request counters | Account identifier or IP for the counter key |
| Monitoring (self-hosted OpenTelemetry → VictoriaMetrics / VictoriaLogs / VictoriaTraces) | Operational metrics, logs, and tracing | Technical telemetry; may include an account identifier. We use no third-party product-analytics, advertising, or crash-reporting SDKs |
Note on weather providers: to add wind/weather to a track we transmit the track's location coordinates and time to the weather provider(s). No account identifier is required for this lookup. Weather responses may be cached to improve performance and reduce repeat lookups.
The specific legal names, locations, and contact details of these providers should be listed and kept current here: [Sub-processor list / DPA references].
4.3 Legal and safety disclosures
We may disclose personal data if required by law, regulation, legal process, or governmental request, or to protect the rights, safety, and security of our users, the public, or the Service.
4.4 Business transfers
If we are involved in a merger, acquisition, or asset sale, personal data may be transferred as part of that transaction; we will notify you and honor the commitments in this Policy.
4.5 No sale of personal data
We do not sell your personal data, and we do not "share" it for cross-context behavioral advertising, as those terms are defined under applicable U.S. state privacy laws (e.g. CCPA/CPRA).
5. International data transfers
The Service and its providers may process data in countries other than yours. Where we transfer personal data out of the EEA/UK, we rely on appropriate safeguards such as the European Commission's Standard Contractual Clauses (and the UK Addendum), or another lawful transfer mechanism. Details and a copy of the safeguards are available on request at [Privacy Contact Email]. [Confirm hosting/CDN regions and transfer mechanisms.]
6. Data retention
We keep personal data only as long as needed for the purposes above, then delete or anonymize it.
| Data | Retention |
|---|---|
| Account, profile, and activity data | Until you delete the item, or until your account is deleted (on request) |
| Processed track files (S3) | Until the track is deleted; a track file is immutable — when a track is re-processed, split, or merged, a new file is written and the previous one is deleted |
| Refresh tokens (sessions) | Become invalid after ~30 days, or when you sign out / sign out of all sessions; expired records are cleared on our maintenance cycle |
| Email verification / password-reset codes | Short-lived (~10 minutes), then invalid; removed after use or on our maintenance cycle |
| Signed track/download URLs | Time-limited (default ~1 hour); the link then expires and must be re-requested |
| Rate-limit counters | Ephemeral — expire automatically within the rate-limit window (seconds to about an hour) |
| Fleet-shared segments | Until the fleet or your participation is removed (see below) |
| Operational telemetry | Per our monitoring retention configuration — [state period] |
Deletion mechanisms.
- Deleting a track: when you delete a track, we remove its database record and the associated stored files (both the processed track object and your original uploaded file).
- Account deletion: account deletion is currently performed by us on your request (see Section 8). It cascades across the database, removing your owned data — tracks, uploaded files, categories, aggregates, friend connections, group memberships, and fleet participation. Residual copies in backups or content-delivery caches may persist for a limited period before they expire or are overwritten.
- Fleet "crypto-shredding": each participant's segment inside a shared fleet replay is individually encrypted; removing your participation destroys the key needed to decrypt your segment, rendering those bytes permanently unrecoverable without rewriting the file.
7. How we protect personal data
We use technical and organizational measures appropriate to the sensitivity of the data, including:
- Encryption in transit (TLS) for connections to the Service, terminated at our ingress/CDN edge.
- Password protection: passwords are stored only as cryptographic hashes (Argon2id); refresh tokens and email/reset codes are stored only as one-way hashes.
- Encryption of fleet data at rest using authenticated encryption (AES-256-GCM) with per-participant keys, enabling the per-participant deletion described above.
- Other stored data (processed track files and the application database) is protected by the access controls below and by infrastructure-level encryption provided by our hosting and object-storage providers, rather than application-level encryption.
- Access controls: track and fleet access is enforced by ownership, friendship, and group/fleet membership checks; stored track files are delivered only through time-limited signed URLs.
- Abuse controls: rate limiting on sensitive operations.
No method of transmission or storage is completely secure; we cannot guarantee absolute security.
8. Your choices and rights
8.1 In-product controls
- Set your default track privacy and change per-track privacy (public / friends / private).
- Adjust share settings to control which details viewers can see.
- Manage friends, group membership, and fleet participation.
- Delete individual tracks you have uploaded.
- Update your profile and preferences, or sign out of all sessions.
- Request account deletion by contacting us (see Section 6).
8.2 Your legal rights
Depending on where you live, you may have the right to:
- Access the personal data we hold about you and obtain a copy (portability).
- Correct inaccurate data.
- Delete your data ("right to be forgotten") — including account deletion described in Section 6.
- Object to or restrict certain processing.
- Withdraw consent at any time where processing is based on consent (this does not affect prior processing).
- Lodge a complaint with your data protection authority.
For residents of California and similar U.S. states (CCPA/CPRA): you have the right to know, access, delete, and correct your personal information, to opt out of any "sale"/"sharing" (we do neither), and to non-discrimination for exercising your rights. You may exercise these rights, including via an authorized agent, using the contact below.
8.3 How to exercise your rights
Use the in-product controls where available, or contact us at [Privacy Contact Email]. We may need to verify your identity before acting. We respond within the timeframes required by applicable law.
9. Sensitive data
The Service processes two categories of sensitive data:
- Precise geolocation — the routes and positions in your activities.
- Health data — heart-rate measurements, where present in your files.
We process these only with your explicit consent, given when you create an account and upload or record activities that contain this data, and/or through a clear in-product consent where required. You can withdraw consent by deleting the relevant activities or your account. If you do not wish us to process heart-rate data, do not include it in the files you upload.
10. Children's privacy
The Service is not directed to children under [Minimum Age], and we do not knowingly collect personal data from them. If you believe a child has provided us personal data, contact [Privacy Contact Email] and we will delete it.
11. Cookies, local storage, and tokens
The YSS app and API authenticate you using access and refresh tokens (stored on your device), not third-party tracking cookies. The web-based administration panel uses a session cookie that is strictly necessary to keep an administrator signed in. We do not use advertising or cross-site tracking cookies. [If the website uses any analytics/cookies, list them here.]
12. Automated processing
We apply algorithmic processing to your tracks (e.g. filtering GPS noise, computing speeds, detecting maneuvers, and building statistics). This is analytics on your own data to produce the results you request. We do not make automated decisions that produce legal or similarly significant effects about you, and we do not perform behavioral profiling for such decisions.
13. Changes to this Policy
We may update this Policy from time to time. We will post the updated version with a new "Effective date" and, for material changes, provide additional notice as required by law. Your continued use of the Service after an update means you accept the revised Policy.
14. Contact us
Questions or requests regarding this Policy or your personal data:
- [Legal Entity Name]
- [Postal Address]
- Email: [Privacy Contact Email]
- EU/UK Representative: [EU/UK Representative]
- Data Protection Officer (if applicable): [DPO contact]
If you are in the EEA/UK and believe we have not addressed your concern, you may lodge a complaint with your local supervisory authority. This Policy is governed by the laws of [Governing Law / Jurisdiction].