Open Login
Go to Login and choose manual archive import for first-time ZIP onboarding, or Strava Connect for last-3-years history and future sync.
Keystone is built around auditable physiology: current thresholds, ride evidence, durability attribution, lactate context, altitude-aware power, and nutrition notes. This page is the operating guide for reading the app and keeping the data clean.
Beta setup
New athletes can connect Strava to import the last 3 years of supported activities. Use manual archive import when you need older history, ZIP completeness, or a no-OAuth setup. Manual profiles still use the invite code, original Strava export ZIP, and recovery code.
Go to Login and choose manual archive import for first-time ZIP onboarding, or Strava Connect for last-3-years history and future sync.
Enter the athlete name, email, and beta access code from the coach.
Upload the original Strava export ZIP for manual onboarding. Use FIT/FIT.GZ files only as a fallback or for later gaps. TCX and GPX archive entries are not imported.
After import, save the one-time recovery code. Later login works by email magic link or recovery code.
Start here
Most days, Keystone should be used in this order: import the ride, check the Dashboard for current state, open Daily Snapshot for the selected ride, inspect full ride detail when something needs proof, then use Trends for historical context.
Start from Login. Manual archive import is the most complete first-time ZIP path; Strava Connect imports the last 3 years and supports future sync.
Start with Dashboard for current LT1/LT2, load direction, durability watch list, meaningful changes, data gaps, and inspection priorities.
Use Daily Snapshot for one selected ride: what the file showed, evidence quality, zones, ride trace, and the link to full detail.
Trends shows threshold history, power-duration changes, durability, heat exposure, zones, wellness, and high-intensity reserve over time.
The app is intentionally split by question. Dashboard answers where things stand today. Daily Snapshot answers what a selected ride showed. Activities answers what happened across the training log. Trends answers how physiology changed over time. Settings answers what assumptions, manual imports, beta limits, and optional connections feed the model.
Current LT1/LT2, load direction, durability watch list, meaningful changes, data quality gaps, and inspection queue.
Selected-ride interpretation: load, best powers, durability, evidence quality, zones, ride trace, altitude context, and full-detail link.
Calendar and activity library with ride detail pages, streams, intervals, heat tags, lactate, nutrition, and activity QA.
Guided longitudinal analysis for thresholds, power-duration, high-intensity reserve, durability, heat, zones, wellness, and running context.
Profile assumptions, altitude, lab tests, beta onboarding/imports, optional connections, running profile, and model reruns.
Model literacy
Keystone separates raw evidence, physiology-adjusted current values, and display interpretation. That keeps the headline useful without hiding the audit trail.
The aerobic threshold estimate. Keystone treats this as fresh, non-fatigued aerobic capacity, not late-ride durability decay.
Use it to pace easy endurance, heat work, long aerobic rides, and the top of truly controlled all-day riding.
Keystone's threshold-power estimate. It is intentionally not labeled as FTP, CP, or MLSS because those are related but not identical ideas.
Use it as the high-end anchor for threshold work, high-intensity reserve, power zones, and hard effort interpretation.
Power normalized for altitude strain. It answers: what would this effort roughly be worth at sea level?
Use SLE watts when comparing Boulder/altitude rides to sea-level history. Heart rate is kept as observed physiology in canonical thresholds.
A marker for work you can do above engine LT2 in hard efforts. Extreme historical values are flagged as anchor-review signals.
Use it to track punch, VO2-style capacity, and whether older LT2 estimates were probably under-anchored.
How the power/heart-rate relationship changes late in long rides after accounting for workout structure and nutrition context.
Use it to separate true endurance durability from hard intervals, altitude strain, heat, fueling risk, or sodium risk.
Heat tags, carbs, sodium, fluid, and caffeine help Keystone explain why a late ride looked strained.
Log ride totals so durability flags are interpreted against moving-time fueling and sodium rates instead of guessed from the file.
Aero Lab estimates apparent CdA from outdoor cycling rides with power, speed, elevation, and weather context.
Use saved CdA analyses as inputs for Course Plan. Treat weather and speed-banded CdA as assumptions to inspect, not hidden truth.
How to
These are the practical moves that keep the model honest and make ride review faster.
Recent lab or manual anchors can govern active LT1 and engine LT2, while field estimates continue updating beside them. Lab gravity fades with age, so the app can explain when a test is evidence versus an override.
For long rides, nutrition can explain late cardiac cost. Logged carbs and sodium move durability attribution from unknown to useful.
Guest access is read-only by design. Beta memberships let owners and coaches work across assigned athletes without turning a guest link into account control.
FAQ
Practical answers for beta athletes: how to import data, what keeps running in the background, how to read model changes, and what access controls mean.
Use manual archive import when the goal is the most complete first-time ZIP onboarding or no-OAuth setup. Use Strava Connect when you want the easiest last-3-years import and future sync. If you use both, make the archive the source for the bulk first import and Strava the future-sync connection.
Strava Connect imports supported cycling, running, and swimming activities from the last 3 years. It is intentionally capped so beta onboarding does not try to ingest unlimited history through Strava API limits.
The archive ZIP avoids Strava API daily read limits and gives Keystone file-level activity data plus archive metadata. It is the safer path for a large first beta import.
Yes. Strava gives you the archive as a full ZIP. Settings archive import is currently scoped to the last 3 years; first-time manual onboarding can use the original ZIP for a fuller beta backfill when that is the chosen setup path.
On desktop Strava, open https://www.strava.com/athlete/delete_your_account and use the Download or Delete Your Account section to request the archive. The page name is awkward, but that is where Strava exposes archive downloads.
Upload the original Strava account export ZIP. Use individual FIT or FIT.GZ files only when the ZIP is unavailable or for later gap fills. TCX and GPX archive entries are skipped today.
No. Wait for the active archive import to finish before uploading another ZIP. This prevents a second large upload from replacing the in-progress import queue.
Yes. Open Settings and use Strava Archive Import. Keystone imports the archive onto the current athlete profile and leaves Strava Connect active for future sync.
It should not. Keystone checks for existing activities around the same start time and reuses them instead of creating duplicates.
Yes. Once Strava authorization succeeds, the import job is stored server-side. Your laptop and Wi-Fi do not need to stay online for the background import to continue.
Keep the tab open until the ZIP upload finishes and Keystone shows the completion/progress page. After the upload is accepted and queued, background import and model processing can continue server-side.
Large histories can contain hundreds or thousands of activities. Strava API imports are paced by API read limits. Archive imports still need to parse FIT files, write streams/laps, dedupe, and then run model recompute.
Keystone queues model work: activity derived data, thresholds, historical snapshots, HR anchors, durability features, and threshold-impact annotations. Dashboard and Trends can continue improving after the activity count stops changing.
Skipped items are usually unsupported sports, older-than-window archive entries, duplicate activities, empty streams, oversized files, or file types Keystone does not import yet. Skips are expected in Strava archives.
Keystone records failed queue jobs for review instead of hiding them. Most transient Strava/API failures can be retried; file-specific archive failures usually mean that one entry was unsupported or unreadable.
Wait for the completion/progress page to say the model work is complete. Early dashboard values can be useful, but thresholds, Trends, durability, and activity labels are more reliable after recompute finishes.
Yes for lactate and model-triggering edits. Lactate readings are evidence, not instant threshold replacements: low lactate can conservatively lift LT1 after the model reruns, with caps and provenance. Heat and nutrition edits change interpretation context and may require a model rerun when they should affect downstream rows.
Canonical LT1 represents fresh aerobic threshold. Late cardiac cost is preserved as durability evidence, not treated as a direct downward vote on LT1.
A strong 20-minute effort can reveal that the previous LT2 estimate was too low. Keystone can backcast recent prior weeks with confidence limits rather than showing a fake one-week physiology jump.
Field estimates are kept fresh for comparison, but lab or manual HR anchors can still have active precedence. Keystone shows both so the audit trail is not hidden.
Raw values are kept for audit. Display values may apply physiology guardrails, confidence labels, or interpretation caps so the app does not overstate an uncertain model fit.
Use an outdoor cycling ride with power, speed, elevation, and enough steady data. Weather and air density matter, so Keystone reports apparent CdA rather than pretending it is a lab-perfect value.
Energy balance estimates the drag needed to explain power and speed over a segment. Virtual elevation checks whether a CdA value makes the reconstructed elevation profile behave plausibly. Agreement between the two is more useful than one isolated number.
Course Plan needs route distance, grade, heading, and weather exposure. Guest/read-only views and privacy-trimmed contexts do not expose route tools.
It lets apparent CdA vary by speed so slow climbing segments and very fast segments do not inherit one flat race-position number. The segment table shows effective CdA so the assumption stays inspectable.
Keystone falls back to altitude-estimated no-wind assumptions and shows a warning. For manual weather, leaving rho blank uses course-altitude density; enter measured rho only when you have a trusted value.
If an email was saved on the manual profile, request an email magic link from Login. If that fails, ask the coach/admin to help regenerate access.
No. Guest links intentionally create read-only sessions. They can view dashboards, activities, trends, and help content, but cannot upload, sync, edit, rerun models, or change settings.
Yes. Settings includes Strava disconnect controls. Disconnecting stops future Strava sync, but existing imported activities remain in Keystone unless an admin removes them.
No. The beta-supported set is cycling, running, and swimming. Other sports may appear in Strava or in the archive but are skipped unless support is added later.
Next step
Current-state review starts on Dashboard. Ride-level interpretation starts in Daily Snapshot. Training-log cleanup starts in Activities. Long-term physiology interpretation starts on Trends. Assumptions, lab data, beta imports, and connections live in Settings.