Privacy policy
Pace Puffin is an AI running coach, run by Justyn: one person, not a company. This page says what it does with your data.
AI transparency
Pace Puffin is an AI coach. This is what AI does with your data, and why.
- Which AI. Your coach is the AI app you chose, Claude (made by Anthropic) or ChatGPT (made by OpenAI), used with your own account. When you chat, it reads your coaching files and asks the coach's tools for your recent training, and answers from them. Nothing else here is AI: each sync's analysis and race predictions are statistics, worked out by code.
- What for. Only to coach you: to read back what your training shows, answer your questions, and plan and adjust your workouts with you. Nothing is sold, used for advertising, or used to decide anything about you for anyone else.
- Training AI. Pace Puffin trains no AI model, and no other athlete's coach sees your data. Garmin's terms don't let anyone train or test AI on your Garmin data, chats about it included. So before you connect Garmin Connect, turn off the setting in your Claude or ChatGPT account that lets Anthropic or OpenAI use your chats to improve their models.
- Your Garmin data. If you connect Garmin Connect, or import the export Garmin Connect makes of your account, your Garmin data (activities and their original files, with routes; daily summaries; sleep; heart-rate variability) is kept only after you tick its consent box on your Garmin page, and is used only as this section says. For now your coach still reads your training from Intervals.icu: your Garmin data is kept so your history outlives Intervals, and the coach starts reading it later, for the same purpose.
- Withdrawing. At any time. For the connection, in any of three ways: turn off Pace Puffin's data sharing under Account Information in your Garmin Connect account; choose Disconnect on your Garmin page; or ask Justyn. Withdrawing deletes the Garmin data it sent at once. Garmin can't send it again, so if you reconnect, only new data is kept. For an export you imported: choose Delete my imported history on your Garmin page, or ask Justyn; disconnecting leaves it in place. Your coach keeps working from Intervals.
- Changes. If this section changes in a way that affects your Garmin data, you'll be asked for your consent again, and no new Garmin data is kept until you give it.
Health data
Some of what Pace Puffin keeps is health data. It is kept and used only to coach you, as this page says, is never sold or used for advertising, and is deleted when you leave:
- your heart rate, through each activity and at rest, and your heart-rate variability (HRV);
- your sleep: how long, and its score;
- your weight, and how you felt (fatigue, soreness, stress, mood, motivation, readiness), when your watch or Intervals.icu records them;
- the pain, illness and injuries you tell the coach about, in check-ins and in your profile;
- your sex and birth year, only if you choose to give them.
What it keeps, and for how long
Each kind is kept until you leave unless it says otherwise, and deleted then (Leaving, below). What you tell the coach is saved only once you say yes in a chat; the names in small type are what your app shows when the coach saves it.
- Your account: your Intervals.icu athlete id and API key (encrypted), your timezone from the setup form, the day you joined and how many runs Intervals held then, and a fingerprint of your coach address, never the address itself, in a Cloudflare Workers KV database in Justyn's Cloudflare account.
- Your goal race: its name, date, distance and goal time and, if you give them, its town (rounded to about 10 km), start time, the course's climb and descent and a run of yours on the course, in the same KV database and your coaching files. Kept until you change it or leave.
- Your profile, in the same KV database and your latest coaching files, each part kept until you change it
or leave:
- the days a week you can run
running_days_per_week - your long-run day
long_run_day - your injuries, niggles and limits, in your words
injuries_and_limits - what limits when you can train, in your words
schedule_constraints - your running background (years running, recent best times and races), in your words
background - how you like to be coached, in your words
coaching_preferences - your typical weekly distance, asked only when your history is short
weekly_km - your longest recent run, asked only when your history is short
longest_run_km - your sex (female, male or prefer not to say), only if you choose to give it
sex - the year you were born (the year alone, or prefer not to say), only if you choose to give it
birth_year - your threshold heart rate, if you joined with Garmin and confirm it to the coach
lthr_bpm - your threshold pace, if you joined with Garmin and confirm it to the coach
threshold_pace_s_per_km
- the days a week you can run
- Your race answers: which of your runs were races, when the coach asks (each run's id and date, whether it was a race, not a race or you're not sure, and an official distance you give), in the same KV database and your coaching files.
- What the coach remembers between chats, once its memory is on for you, in the same KV database. Each item
is one line in your terms, at most 200 characters, and the coach uses each kind for as long as it says:
- check-ins, for 3 weeks
checkin:- how fresh your legs feel
leg_freshness - how tired you are
general_fatigue - your motivation
motivation - stress outside running
life_stress - how you slept
subjective_sleep - muscle soreness
soreness - pain in one spot, and how bad
focal_pain - where that pain is
pain_location - which side
pain_side - whether you are ill
illness - how hard a run felt
run_rpe
- how fresh your legs feel
- follow-ups: something to come back to on a day you agree, at most 4 weeks ahead, until
a week after that day
follow_up - agreements you accepted, until the day they end, at most 8 weeks on
agreement - decisions you agreed to, for 6 weeks
decision - the week's plan: keep, cut or build your distance, a km target you agreed, and why, for 12 weeks
week_plan - items that are done or ended, with how they ended in a line, for 2 weeks
- check-ins, for 3 weeks
- Your Intervals sign-in, once you add the coach to your app by signing in with Intervals.icu: you approve Pace Puffin on Intervals, which lets it read your activities and wellness and add or change planned workouts in your calendar. The token Intervals gives it is kept encrypted, like your key, and is not used yet: the coach still works through your key. Your coach app gets its own sign-in to Pace Puffin, which reaches only your coach, for as long as you keep using it and until 90 days after you stop.
- Your sign-in email, once Justyn sets it up for you: only a one-way fingerprint of the address (its SHA-256 hash) is kept, so the hub can tell it is yours when you type it, never the address itself. Each six-digit code goes to the address you typed, through Resend, and is kept encrypted for a few minutes until you type it back.
- Feedback you choose to send Justyn through your coach: what you said went wrong, could be better or should be added, in your own words, and only once you have said yes to sending it. It is kept in the same KV database until you leave, read only by Justyn, who may email you about it, and never goes into your coaching files or a log.
- The days you chat with the coach: each day's date alone (UTC), never what you asked or said, in the same KV database for 16 weeks, so Justyn can see how often the coach is used.
- What the coach has raised with you: for each thing it brings up besides what you asked, when it showed it and raised it and how that ended, as codes, never a word, in the same KV database.
- How your syncs went: when each ran and how long it took, the newest run it saw (its id and start), counts of runs, the units your watch records in, and which of the coach's tools your app has, in the same KV database; never a figure from your training.
- Your coaching files, made at each sync from your Intervals activities (each one's date, time, name, device, distance, duration, pace, climb, heart rate, power and load, and second by second its distance, speed, heart rate, power, cadence, ground contact time, altitude and position), your wellness (as Health data lists it) and your planned workouts, in a folder of their own in Justyn's Google Drive, with the history later syncs read back and dated snapshots of earlier files.
- The original files of your activities, as your watch recorded them and Intervals holds them, which include each activity's route, in a private storage bucket in Justyn's Cloudflare account. They are kept so your training history outlives Intervals, which may stop handing out files that came from Garmin; nothing else reads them yet, and nobody can reach them from the web.
- Your Garmin Connect connection and data, if you connect it: the connection's tokens, encrypted, and when you agreed, in the KV database; and in the private storage bucket, what Garmin sends, as Garmin sent it: your activities and their original files (routes included), daily summaries, sleep and heart-rate variability. Kept until you disconnect or leave.
- Your Garmin Connect export, if you import it, from the link in Garmin's email or as the file: your activity files as exported (routes included), and your sleep, daily summaries and HRV. The rest of the export is discarded. Kept until you delete it or leave.
- Your planned workouts, if you joined with Garmin: the workouts you and your coach agreed, kept in the private storage bucket until you leave.
- Your race predictions: each sync keeps the race predictions it made, beside your coaching files, until you leave, to check them against the races you run. They hold the ranges the coach quotes, the spread of times behind each, and your goal race's date, distance and goal time with the training its prediction assumes (your recent weekly distance, long run and quality sessions). Beside them it keeps which method quotes each of your predictions and how your races have judged it. Dated snapshots leave them out, and logs never hold them.
- The analysis runs on GitHub Actions in Justyn's private GitHub repository. Its logs hold an opaque athlete id, counts and status codes, not your training data, and are kept 90 days.
What it is used for
Only to coach you: your coach app (Claude or ChatGPT, through the address you were given, or the one you signed in to with Intervals) reads your coaching files and your recent Intervals activities and wellness, and, after you say yes in a chat, changes planned workouts in your Intervals calendar from today on. It never deletes anything in Intervals. Nothing is sold, used for advertising, or shared beyond the services below. Your races and training never shape another athlete's predictions; those start from published research and public data from other runners.
Beside coaching you, it is used only to run the service: to start your syncs and keep them within their limits, to keep the service secure, to see how often the coach is used (the chat days), and to fix and improve it from the feedback you choose to send.
Activities and wellness recorded on a Garmin device are Garmin's data, whether they reach Pace Puffin through Intervals.icu or from Garmin Connect. Wherever your coach or these pages show that data, or advice drawn from it, they credit Garmin, and the device when it is known, as Garmin's brand guidelines and Intervals' API terms require. Data from another watch, or that you entered yourself, is never credited to Garmin.
Who it goes to
Justyn, who runs the service, can technically see your training data. Beside Justyn, only these services hold or process it, each under its own terms:
- Cloudflare runs the service, and holds the records above, the original files of your activities and your Garmin data.
- Google holds your coaching files, in Justyn's Google Drive.
- GitHub runs each sync's analysis, in Justyn's private repository.
- Anthropic or OpenAI, whichever app you use: what the coach's tools return goes into your chat, in your own Claude or ChatGPT account.
- Intervals.icu, where your training comes from: the planned workouts you approve go to your Intervals calendar.
- Resend sends your sign-in codes by email, when you sign in with your email.
- Open-Meteo, for the weather: only each run's start point and, when you give it, your goal race's town, each rounded to about 10 km, and the dates. When you name the town in a chat, its name goes to Open-Meteo once, to find where it is.
- Garmin, only if you connect Garmin Connect: Garmin sends your data under its own terms with you, and Pace Puffin tells Garmin when you disconnect.
Google user data
The service signs in to Google Drive with the drive.file permission, so it can see and change only the files it
created itself. It uses that access only to store and read the coaching files described above, and does not use Google data
for anything else. Pace Puffin's use and transfer of information received from Google APIs will adhere to the
Google API Services User Data Policy,
including the Limited Use requirements. Someone who runs their own copy of Pace Puffin keeps those files in their own Drive,
and nothing reaches Justyn.
The free-beta waitlist
Asking for a spot in the free beta keeps your email and answers in the same KV database, apart from any athlete's data, only to pick the beta's runners and email you about it. They are deleted when the beta ends.
Seeing, changing and deleting it
- Seeing it. Ask your coach what it keeps about you: your profile, your goal race and what it remembers. For a copy of everything kept about you, ask Justyn through your coach: it comes within 30 days, as files.
- Changing it. Your training comes from your watch's account and Intervals.icu: correct it there, and the next sync picks it up. Your goal race, profile and race answers: tell your coach, which saves a change once you confirm it. Anything else: ask Justyn through your coach.
- Deleting part of it. Ask your coach to forget a memory item, a day's check-in or everything it remembers, and it is deleted at once. Your Garmin data: choose Disconnect on your Garmin page, or Delete my imported history for an export you uploaded, and it is deleted at once (AI transparency). Anything else: ask Justyn through your coach.
- Stopping a use. Ask Justyn through your coach to pause your syncs, or to stop any use of your data, without leaving.
Leaving, and deleting your data
- Regenerate your Intervals API key (Intervals → Settings → Developer Settings) to cut the service off at once.
- If you connected Garmin Connect, withdraw in any of three ways: turn off Pace Puffin's data sharing under Account Information in your Garmin Connect account; choose Disconnect on your Garmin page; or ask Justyn through your coach. Your Garmin data is deleted at once.
- Tell your coach you want to leave, and you are removed within 7 days: your records and the original files of your activities are deleted, your app's sign-in and your Intervals approval are withdrawn, Garmin Connect is disconnected, and your Drive folder goes to the trash, which Google empties after 30 days.
Contact
Questions about your data or this page: ask Justyn through your coach.
Help · Support · Terms of use · Privacy policy · AI transparency