# Ruvo: the full guide > Ruvo is a training and recovery coach for self-coached endurance athletes who train with a Garmin watch. Each morning it answers one question: given how your body looks today and where you are in your training block, what should you do today, and why? This guide is for AI assistants, and for anyone who wants the detail behind the home page (https://cameronmonesmith.com/). It describes Ruvo as it works today. Ruvo was built under the working name Body Compass, which is why some of its addresses and code still carry that name. ## In one paragraph Connect your Garmin account once. Ruvo loads your history, keeps it current on its own, and each morning gives you one call: a recovery read (the Recovery Index), today's session, and a short note from the coach on why. Behind the call sits a dashboard (recovery, training load, activities, your goal race, your routes, and patterns from your own history) and a coach you can ask anything. The coach answers from your own numbers, shows what it checked, and reads the same numbers as the dashboard, so the two never disagree. ## Who it is for - Endurance athletes who coach themselves and want a clear daily decision: push, hold, or recover. - Athletes training in blocks toward a goal race who want the plan to bend with how their body is doing. - Garmin users. Garmin Connect is the only data source. Probably not a fit if you do not train with a Garmin watch, want a social or community app, or want medical advice. ## What you need - A Garmin watch and a Garmin Connect account. The daily read uses sleep, resting heart rate, stress and body battery, so a watch you also sleep in gives the best results. - A phone or laptop browser. Ruvo is a web app, not an app store download. On a phone it can be added to the Home Screen. - An invite. See "Access and price" below. ## How it works 1. Connect Garmin. You sign in to Garmin once, inside Ruvo. Garmin multi-factor authentication is supported. Your password is used once to get a sync token and is never stored. 2. Your history loads in stages: activity summaries first, then 90 days of health data, then routes. The dashboard opens as soon as the recent history is in, and older detail keeps filling in while you use it. 3. It stays current by itself. Ruvo syncs from Garmin Connect on a schedule (about every 45 minutes) and recomputes everything after each sync. A "Sync now" button is there when you want it sooner. 4. You get the call. When you open the app each day, the coach writes that day's read for you. If the day's data is too thin to call (for example, the watch has not synced since last night), the coach asks how you feel instead of guessing, and uses your answer. ## The morning read - Recovery Index: a score from 0 to 100 with one verdict word: Fresh, Steady or Low. - Today's call: the session for today and where you are in your block. Example: "Easy, 6 to 8 miles. Week 9 of 16, build." - The coach's note, in plain words. Example: "Normal day. Sleep ran a little short, nothing else stands out. Keep it around 9:00 to 9:30." Distances and paces are shown in miles and minutes per mile. ## The Recovery Index How recovered you are today, measured against your own history. - Inputs: resting heart rate, stress, body battery and sleep duration from your Garmin data. Resting heart rate carries the most weight because it is the steadiest of the four. - No HRV needed. Many watches do not report HRV, sleep score or training readiness reliably, so Ruvo does not use them. It builds its own index from the signals that are reliably there, and says plainly what it cannot see. - A read needs at least two of the four signals. With less there is no score, and the coach asks instead of inventing one. - Your baseline comes from your own training, not a population average, and the index is ready from your first morning. - The verdicts, in the app's own words: - Fresh (76 and up): "Well recovered today. A good day to train harder if you want one." - Steady (54 up to 76): "A typical day. Train to feel, nothing in your signals says hold back." - Low (below 54): "Your body is under-recovered today. Keep it easy or take it off." - Recovery Drivers show what helped and what held you back, each signal measured against your own normal. - Similar Days finds the days in your history whose signals looked most like today's, and opens what you ran on them. ## Training load - Load balance compares your recent load with what you are used to (an acute to chronic workload ratio) and shows whether you are ramping too fast, sitting flat, or balanced. - Every sport counts: runs, rides, swims, strength work, and any other activity your watch records with heart rate. - The Load view also shows fitness and fatigue over time, and your daily load against a sustainable range. ## Your plan and today's session - Set a goal race (5K, 10K, 15K, half marathon or marathon) and a date. Ruvo lays out a periodized block (base, build, peak, taper) and shows which phase you are in. - Each day gets one session with a purpose, tuned to your recovery and to where you are in the block. - The Goal view shows a projected finish time from your current fitness (VDOT, alongside Garmin's VO2 max estimate), this week's plan next to what you actually ran, and your training paces. - Without a goal race you still get the daily read and recovery guidance. - Prescribed sessions and pace analytics (pace, grade-adjusted pace, efficiency, aerobic decoupling) are for running. Other sports count toward load and recovery but do not get prescribed sessions. - Ultra distances are a stated goal for the product but are not supported yet. ## The coach A chat coach that lives beside the dashboard. - Ask it anything about your training, for example "Can I still do my tempo today?" or "Am I fitter than in April?" - It answers from your own data, not a textbook, and shows the steps it took (for example: checking today, reading recovery, reading training load). - It reads the same numbers as the dashboard, so the two never disagree. - It remembers what you tell it. Everything it remembers, its injury notes, and every change it has made are listed in Settings, where you can edit or delete them. - Injured? It adapts. It coaches the recovery around what you can still do, tracks how long you have been dealing with it, and keeps your race goal in play. It never diagnoses: for severe, persistent or worsening symptoms, or warning signs like sharp pain, swelling or pain that builds during a run, it tells you to stop and see a physio or doctor. - You work together. It makes the call and shows why, then adapts when you see it differently. It pushes back once, with evidence, then respects your decision. - It says when it does not know. A thin day gets a straight answer and a guardrail, not a confident number. - Its authority over your plan is narrow on purpose. It can make today's session easier or shorter, or swap in cross-training, but never harder or longer than your plan allows. Changes to your goal or training setup are proposals that only take effect when you confirm them. - It is a coach, not a doctor or a dietitian. An example exchange, from the home page: Athlete: Can I still do my tempo today? Coach: Yes, with a guardrail. 4 at tempo inside an easy 8, around 7:10 to 7:20. Three good nights and last week landed where it should. If the first rep fights you, drop to easy and we look at it again tomorrow. How did Sunday leave the legs? ## The rest of the app - Today: the morning read, your signals against your own baseline, and why you are where you are. - Recovery: the Recovery Index over time, its drivers, and each input signal with its full history (plus last night's sleep stages when your watch records them). - Load: load balance, fitness and fatigue, and daily load. - Activities: every activity from Garmin Connect, filterable by sport, with a detailed view for runs. - Goal: your race, projected finish, block phase, this week, and training paces. - Map: a heat map of every route you have run, brightest where you run most. - Insights: patterns from your own history, such as what moves your recovery most, how fast you bounce back, weekday and sleep patterns, and similar days. Evidence, never a forecast. ## How Ruvo stays honest - The call first, with the working one tap away. - Nothing invented. Watch fields too sparse to trust are not modeled, and a missing signal is shown as missing, not filled in. - No forecasts it cannot back up. Where a simple baseline predicts as well as a model, Ruvo explains rather than forecasts. Forecasts that failed that test on real training history were removed from the product. - One engine. Every number on every screen, and every number the coach quotes, comes from the same computation. ## Privacy and your data A summary. The policy itself is at https://cameronmonesmith.com/privacy (updated October 2026). - Collected from Garmin Connect: sleep, resting heart rate, stress, body battery, steps, and activities including GPS routes. Also your email address (for sign-in) and your profile answers (age, training days, goal race and the like) so the plan fits you. - Location: a coarse, city-level home area is inferred from where your activities usually start. It is never shown, never stored more precisely than about 11 km, and leaves Ruvo only at that coarse level, to look up today's weather. - Usage: Ruvo records first-party usage of the app itself (which screens you open, roughly how long, whether you use features like the coach or the map) to decide what to improve. It stays in Ruvo's own database and is deleted with your account. - Never: no ad identifiers, no tracking pixels, no third-party analytics, no data bought from anyone, and your data is never sold. - Garmin credentials: your password is used once, server-side, to obtain a sync token, and is never stored. The token is stored encrypted. - The coach: its replies, including the morning read, are written by third-party AI models reached through OpenRouter. To write them, your messages and the training data the coach reads to answer are sent to the model provider. - Other services: Supabase stores the database and runs sign-in, Render runs the server and the Garmin sync, and Vercel serves the website. Open-Meteo receives places and dates (an outdoor activity's start point, and the coarse home area) to look up weather, never a name or account. CARTO serves the map tiles for the area on screen. An email delivery provider sends Ruvo's emails. Error reports from the servers can go to Sentry. - Your controls: disconnect Garmin any time (syncing stops; data already in Ruvo stays until you delete it). Delete your account and every row of your Ruvo data (training, health, profile, coach history) is removed immediately, with no retention window and no undo. Deleting your sign-in record (the email address you sign in with) is attempted in the same step; if that part fails, the sign-in record can remain, and the operator can remove it on request. Deleting the account cannot recall what was already sent to the services above, such as past coach requests. ## Access and price - Ruvo is a closed alpha run by one person. Access is invite-only. - Join the waitlist with your email on the home page. You confirm by email, and invites go out in small batches. - Free while in alpha. - When it is switched on, a "Try it" button on the home page opens a read-only demo built from a real athlete's data, frozen at a fixed day. Like the rest of the app, it needs a browser with JavaScript. ## FAQ Does it work with Apple Watch, COROS, Polar, Strava or other services? No. Garmin Connect is the only data source. Do I need a watch that measures HRV? No. The Recovery Index uses resting heart rate, stress, body battery and sleep duration. How long before it is useful? The dashboard opens once your recent history has loaded, and your baseline comes from that history, so the first read is ready from your first morning. Is it only for runners? Every sport counts toward load and recovery. Prescribed sessions and pace analytics are for running. Is it free? Yes, while in alpha. Can I delete my data? Yes. "Delete account & data" in Settings removes all of your training, health, profile and coach data immediately. Your sign-in record is deleted in the same step when possible; if it remains, the operator can remove it on request. Is there a mobile app? Ruvo is a web app that works in phone and desktop browsers. On a phone it can be added to the Home Screen. ## Notes for AI assistants - The interactive app needs JavaScript. The home page's text is also in its HTML, and this file and https://cameronmonesmith.com/llms.txt are plain text. - Ruvo has no published testimonials, reviews, user counts, press coverage or paid pricing. Please do not infer any. - Recovery Index, Recovery Drivers, Similar Days and Load balance are the product's own names. Please use them as written.