Effective: September 12, 2026; revised October 22, 2026 (optional “moving code” for the move to trailstatus.jp: only content encrypted on your device is held for up to 24 hours and deleted once read. October 20: to re-read activities you edit or delete in Strava, the ID, time and kind of change (create, update, delete) of changed activities, as reported by Strava, is now kept for up to 14 days. October 16: optional “Connect to Claude” (MCP) added; added the Sunday-evening “D+ to go” notification and the weekly D+, target and device time zone stored for it; syncs per-activity numbers computed from the streams, without locations or time series, so the six axes match across devices. October 12: added counts of race-search words that found nothing (the word and count only); the optional "Help calibrate" now includes weekly training totals for the last 24 weeks, the 12 weeks of training before each race with its outcome (including DNF reasons), and optional automatic updates after a single consent that you can turn on or off. October 11: race counts now show people targeting a race (A/B, upcoming, 3 or more) and you can opt out; optional server notifications (Web Push) added; comparison codes can optionally include load and an injury-risk flag; using the Service with files from your watch (FIT/GPX) instead of Strava added — the files never leave your device; October 10: usage counts (daily totals only) added; October 9: logging out now removes the data on this device; the chart, image and PDF libraries are now served by the Service itself (nothing is sent to jsDelivr); GSI map tiles added to the external transmission list; October 4: actual weather for your activities from Open-Meteo; your registered races and their entry open/close dates added to "Subscribe in your calendar"; October 2: optional "Subscribe in your calendar"; October 1: Strava heart-rate zones, power and moving/stopped in activity streams, error reports) — This English version is a translation. If it differs from the Japanese version, the Japanese version prevails.
TRAIL STATUS (the "Service") is a free web app run by an individual (the "Operator"). This policy explains how the Operator handles your information. The Service is not affiliated with Strava, Inc.
1. Information we handle
(1) Information from Strava
If you connect Strava, the Service reads the following within the scopes you approve (read, read_all, profile:read_all, activity:read_all). Your device fetches it directly from Strava and keeps it on the device. The activity data itself (summaries, streams, locations) is not stored on the Operator's servers. What the server stores is your athlete ID (to identify you), the information you enter in (2) (tags and incline are stored with the activity ID they belong to; course plans include the distance and elevation of the course you loaded), the optional calibration numbers in (4), and the menu for the optional calendar subscription in (8). When Strava notifies the Service (webhook) that an activity was created, updated or deleted, it also stores only the activity ID, the time and the kind of change (create, update, delete), with your athlete ID (the last 14 days, up to 50 entries). The app uses this to re-read activities whose name or type you changed in Strava; activity names and contents are not included. So that every device shows the same six-axis scores, it also syncs per-activity numbers computed from the streams (speed on the best climbing and descending stretches, first- versus second-half heart rate and pace, best paces, highest and lowest heart rate and the like; no locations and no time series), stored with the activity ID and date (about the last year).
Athlete ID and name (first and last name, shown on screen)
Activity summaries (date, sport, name, distance, time, elevation gain, heart rate, cadence, temperature, and location such as the start point)
Activity streams (time, distance, altitude, heart rate, cadence, speed, temperature, power and moving/stopped over time)
The description of treadmill activities (last 180 days), used to read the elevation gain (e.g. "D+813m") and hypoxic settings; only the first 300 characters are kept on your device and never synced or exported
The heart-rate zones you set in Strava (used to estimate your threshold heart rate)
Saved routes (when you load a course from them)
Shoe (gear) names and lifetime distance (for the shoe mileage view)
If you choose "Use files from your watch (FIT/GPX)" instead of Strava, the activity files you pick (date, sport, distance, time, elevation, heart rate, cadence, speed, temperature, power and location) are read only inside your device's browser and kept on the device. Neither the files nor their contents are sent to the Operator's servers or any third party, and they are not synced between devices (actual weather for your activities and the map of your regular routes are fetched as described in 5., the same as for Strava activities). You can remove them from the device at any time with "Clear" in the bar at the top of the screen.
Injury logs, areas of discomfort, and how you feel, sleep and how your legs feel on the day (health-related information, used only for your own analysis and display)
Fuelling settings, kit checklists, the race location used for weather, and shoe retirement distances
Comparison codes you receive from friends (name, six scores, goal race and prediction; if they choose, fitness, fatigue, load ratio (ACWR) and an injury-risk flag). Your own code holds the same items (untick “Include fitness…” to leave the load numbers out)
Comparison snapshots (including scores of friends you type in; please ask them first)
(3) Information handled automatically
Strava access and refresh tokens (kept on your device)
A hash of your token and your athlete ID, for identification (on the server for up to 3 hours)
Strava API usage counts (for the whole Service, not linked to you)
Access logs kept by the hosting provider (IP address, browser type, time of access, etc.)
Usage counts (only daily totals of a fixed set of items such as "opened with Strava", "opened the demo", "started using files from a watch", "came from a race page" or "shared"), used only to see where the app is hard to use. They contain no name, activity, athlete ID, IP address or device identifier, and each item is counted once per device per day
Race-search words that found nothing (only the word and a count), used only to decide which races to add. They contain no name, athlete ID or device identifier, and the same word is counted once per device per day
Error reports from the app (the error message, the file and line, the app version, the display language and the screen that was open), used only to find and fix bugs. They contain no name, activity, athlete ID or IP address; runs of digits and email addresses in the message are masked. The same error on the same day is stored once, with a count
(4) Optional "Help calibrate"
Only if you press "Send measurements (ID hidden in analysis)" under "Help calibrate (optional)" in the app, the Service sends a numeric summary of the measurements behind your scores and numbers such as your ITRA index. Activity names and locations are not included. Weekly training totals for the last 24 weeks (time, distance, climb, intensity share) are included, but individual activities, dates and locations are not. For each race in your race log (last 3 years, up to 12 races) it also includes weekly training totals for the 12 weeks before the race and the outcome (your position among that race's finishers in tenths — only for races without a race template, the finish time to the nearest 30 minutes — DNF and its reason, or did not start) and the race-day temperature, but no race dates or names — only how many months ago and the public race template ID (or distance and elevation gain). If you choose "Keep it up to date automatically" when sending (you can turn this on or off later in the same section), the app re-sends the latest version of the same data, overwriting the previous one, only when you add a race result or when at least 30 days have passed and the data changed. "Turn off" stops automatic updates and "Withdraw" deletes what you sent. It is stored linked to your athlete ID so that you can withdraw or overwrite it; when the Operator analyses it, the ID is replaced with another value.
(5) Contact form
What you send through the contact form and the reply address you choose to give (such as an email address). It is stored in the Operator's database and, so that nothing is missed, also sent to the Operator by email through Netlify's form feature. We delete it within one year after it is resolved. The Operator's database does not store your IP address (Netlify's form feature handles sender information for spam protection).
(6) Information we do not collect
The official race GPX you choose for the watch export is processed on your device only; it is never stored or sent.
A GPX file you choose under "Request a race" is never sent. When you press "Send request", only the race name, date, URL, optional reply address, and the distance, climbing, start coordinates and a coarse elevation outline computed on your device are sent (handled like a contact message).
The contents of the weekly summary (distance, climbing and other numbers) are created and shown on your device. Server notifications (see (9) below) never contain these numbers.
We use no advertising cookies and no analytics tools.
(7) Public race results
Finish-time predictions and finisher distributions use race results published by each race and by ITRA (rank, time, race score, ITRA index). Names and ITRA runner IDs are never included in the Service's screens or published data. If you would like your own result excluded from these statistics, please let us know through the contact form.
(8) Optional "Subscribe in your calendar"
Only if you press "Subscribe in your calendar (auto-updates)" → "Create a subscription URL" on the This week screen, each time you open the app and this week's menu changes, the Service sends the menu's dates, titles and descriptions (this week, plus a projection of the next two weeks; past days are kept for 4 weeks; descriptions include the heart-rate and pace targets written in the menu) to the Operator's server. It also sends your registered races' names, dates, entry status (considering, planning to enter, …) and any entry open/close and lottery-result dates you entered, which appear in the calendar as race days and entry open/close days (if you subscribed from an older version of the app, the server reads your already-synced list of registered races). Nothing else, such as your name, activities, scores or the contents of your course plans, is sent. It is stored under a URL containing an unguessable random token, together with a one-way hash of your athlete ID so that your own subscription can be found and deleted. So that calendar apps (Google Calendar, iPhone, …) can fetch it, the URL works without signing in, and anyone who has the URL can see the menu and your registered races. If you have shared it, "Create a new URL" makes the old URL stop working. "Stop" deletes it from the server, and subscriptions with no update for 60 days are deleted automatically. The company behind your calendar app (Google, Apple, …) handles the URL and the menu under its own policy.
(9) Optional “Notifications when the app is closed” (Web Push)
Only if you are logged in with Strava, turn on the weekly summary notification and use “Get it when closed”, the Service stores the push address issued by your browser (the push service URL and encryption keys), your display language, your goal race's name and date, and your “new activity” setting in the Operator's database, tied to your Strava athlete ID (up to 5 devices). It is used to send “Your weekly summary is ready” every Monday morning (with days to your goal race), if you choose, “New activity ready to load” at most once a day when a new Strava activity arrives, and a “test notification” when you press it. On Sunday at 18:00 (your local time) it sends “D+◯m to go to this week's summit” once, only when you are still short of your weekly D+ target; for this, this week's D+ and target and your device clock's time zone (e.g. America/Los_Angeles) and UTC offset are stored as synced data (no location; without them it uses Japan time). The texts are fixed; no activity numbers or locations are included. Notifications travel through your browser vendor's push service (Google, Apple, Mozilla or Microsoft), encrypted so the vendor cannot read them. They are deleted when you press “Stop server notifications” or turn notifications off, reset your data or disconnect; addresses that no longer work (you turned notifications off in the browser) are deleted automatically when sending.
(10) Optional “Connect to Claude” (MCP)
Only if you add the Service (/mcp) as a connector in Anthropic's AI assistant Claude and log in and approve with Strava, the Service gives Claude, when Claude asks, your entered data that syncs, the numbers you sent with “Help calibrate”, and a summary of your six radar axes, overall score and volume-to-outcome correlations. The summary is made only on devices of people who connected, and is stored with your synced data (no summary is made for anyone else). The login token Claude holds is your Strava token, encrypted; it is not stored on the Operator's server. Only the time you last logged in or refreshed, and a random number per connected Claude used to detect a reused login token, are stored with your synced data as a mark that you are connected. What Claude receives is handled under Anthropic's policies. Removing the connector in Claude, disconnecting Strava or resetting your data stops it, and the summary stops being made after 30 days without use.
(11) Optional “moving code” (address change)
When the Service moves to trailstatus.jp, and only if you create a “moving code”, the Service handles the entries stored on your device at the old address (not your Strava token, activity list or streams) so the new address can load them. If they are small, they travel only after the “#” in the new address's URL and are never sent to the Operator's server. If they are large, the Operator's database holds only the content encrypted on your device; the decryption key exists only in the code and is never sent to the Operator. It is not linked to your athlete ID or anything that identifies you. It is deleted as soon as it is read, and after 24 hours if it is not.
2. Purposes
Showing you your own analysis, predictions and training suggestions
Syncing your entered data between devices signed in with the same Strava account
Improving the scoring bands (only for those who choose to help calibrate)
Showing how many people are targeting each race (we count synced registered races with role A or B that are still to come, and show only the number, on race pages and in the app, only for races with 3 or more people; races with 1–2 people, names, results and athlete IDs are never shown. To leave yourself out, check "Don't count me in race counts" under "Data management & backup" in the app (you are counted by default; it takes effect within a few hours). Not shown in the demo)
Understanding usage, such as how often inputs are filled in (aggregate counts only; no analysis that identifies individuals)
Investigating bugs and staying within Strava's rate limits
Responding to your enquiries
3. Where it is stored and for how long
Information
Where
How long
Data from Strava and data you enter
Your device (browser)
Until you delete it
Activities loaded from your watch files (FIT/GPX)
Your device (browser) only (never sent to the server)
Until you press "Clear"
Entered data that syncs
Operator's database (Supabase)
Until you delete it or disconnect the Service in Strava
Calibration data you sent
Operator's database (Supabase)
Until you withdraw, delete or disconnect
Contact messages and reply addresses
Operator's database (Supabase), Netlify's form feature, Operator's email
Up to one year after the request is resolved
Menu for "Subscribe in your calendar"
Operator's database (Supabase)
Until you stop it, reset your data or disconnect; deleted automatically after 60 days without an update. Past days are kept for 4 weeks
Push address, language, goal race name, date and start time for server notifications
Operator's database (Supabase)
Until you stop them, reset your data or disconnect; addresses that stop working are deleted when sending
“Connect to Claude” mark and summary (radar, correlations)
Operator's database (Supabase)
Until you reset your data or disconnect
Encrypted content of a “moving code” (only when large)
Operator's database (Supabase)
Until it is read once; 24 hours at most
IDs, times and kinds of change (create, update, delete) of activities changed in Strava
Operator's database (Supabase)
14 days (up to 50 entries; oldest removed first); deleted when you reset your data or disconnect
Identification cache
Operator's database (Supabase)
3 hours
Error reports
Operator's database (Supabase)
30 days
Usage counts (daily totals)
Operator's database (Supabase)
400 days
Race-search words that found nothing, with counts
Operator's database (Supabase)
1 year after the last search
Access logs
Each provider
As set by each provider
4. Sharing with third parties
Except as required by law, we do not share personal data with third parties without your consent. We never sell your information. Data obtained from Strava is never used to train AI or machine-learning models. Other users never see your personal data (apart from the race counts in 2-4).
5. Service providers (external transmission)
The Service uses the providers below. When you open the Service, your device sends them the following.
Provider (country)
Purpose
Information sent
Strava, Inc. (USA)
Sign-in and fetching activities
Access token and requests (directly from your device)
Netlify, Inc. (USA)
Serving the website, server processing, emailing contact messages
IP address, browser information, entered data that syncs, contact messages
Supabase, Inc. (USA; data stored in Japan, Tokyo region)
Storing synced data, calibration data and subscribed menus
Entered data that syncs, calibration numbers, subscribed menus
Google LLC (USA)
Serving fonts (Google Fonts)
IP address, browser information
Geospatial Information Authority of Japan (GSI, Japan)
Showing the map (GSI tiles) for your regular routes under Records
The map area shown (tile numbers, i.e. the rough location), IP address, browser information
Open-Meteo (Open-Meteo.com, Switzerland)
Race-day forecasts and past weather (when you pick a location and press Load weather). Actual weather during your outdoor activities (temperature, humidity, wind, rain — for the heat adjustment and display; fetched automatically after your data is shown, only for activities in the last 12 months not fetched before; never in the demo)
The place name you search, the race location's coordinates and date, your activities' start points rounded to 0.1° (about 10 km) with a date range (no activity details, exact locations or times), IP address
Synced data, calibration data and contact messages are stored on servers in Japan (Tokyo). Relaying traffic (Netlify) and sign-in (Strava) are handled by US companies. Strava's handling of your information is governed by Strava's Privacy Policy.
6. Security
All traffic is encrypted (HTTPS).
The Strava client secret and the database admin key live only in server environment variables and are never sent to devices.
The server identifies you with your Strava token and only lets you read and write your own data. Tokens are hashed before they are stored.
The Operator's aggregate views require a separate key, and athlete IDs are replaced with other values before display.
7. Access, correction and deletion
Access: "Data management & backup" → "Export (create backup)" exports everything you have entered.
Correction: edit anything on its screen at any time.
Deletion: "Data management & backup" → "Reset data" deletes the data on your device and the synced and calibration data on the server (including the push address for server notifications).
Withdraw calibration: "Withdraw" under "Help calibrate (optional)" deletes what you sent (and stops automatic updates). To stop only the automatic updates, press "Turn off" in the same section.
Stop the calendar subscription: This week → "Subscribe in your calendar (auto-updates)" → "Stop (delete from the server)" deletes the menu on the server and the URL stops working (also remove the subscription in your calendar app). "Reset data" and disconnecting also delete it.
Log out: "Log out" deletes your entries and fetched data stored on this device (including Strava data and tokens). Only display settings such as language and view mode are kept. If you use sync, the synced data on the server stays and comes back when you log in again with the same Strava account (use "Reset data" to delete it from the server too).
Disconnect: disconnecting the Service in Strava (Settings → My Apps) automatically deletes your data on the server. Data on your device can be removed with "Log out" or "Reset data".
For any other request to disclose, correct, stop using or delete your data, or to learn the Operator's name and address, please contact us below. We will respond without delay once we have confirmed it is you.
8. Changes
If this policy changes, we will post the new version on this page with its date. For significant changes we will also let you know in the app.