Support
Support and FAQ
Account setup, age-grading explanations, Strava sync, profile visibility, privacy. Email support@racerecords.run for anything not covered. Last updated 2026-05-26.
Getting started
How do I log my first race?From the dashboard, tap New race. Pick surface, distance, date, enter chip time as MM:SS or H:MM:SS. The age-graded percentage computes automatically.#
From the dashboard, tap New race. Pick the surface (road or track), the distance, the date, and enter your chip time as MM:SS (sub-hour) or H:MM:SS (marathon-scale). Optional fields (race name, city, officially-measured toggle, shoes, comments) can be added at the same time or later. Hit Save. The age-graded percentage is computed automatically and your dashboard updates immediately.
What is RaceRecords?A personal age-graded vault for races you actually run, with an optional public profile at /u/your-handle.#
A personal age-graded vault for the races you actually run. Log your race results, get an age-graded percentage on every one, watch your PRs by absolute time and by age-group, and (optionally) share a public profile at /u/your-handle.
How do I sign up?Request a magic-link email from the homepage, fill in a one-time profile, then log a race or connect Strava.#
From the homepage, request a sign-in link with your email. Confirm via the magic-link email, fill out a one-time profile (name, date of birth, gender, country, handle), then log your first race or connect Strava.
Want to test it before signing up?The age-graded calculator at /calculator runs without an account.#
Open the calculator to grade a single race without signing in. Share-links carry your inputs (age, time, distance) but never your date of birth.
Is RaceRecords free?Yes, no subscription. Donations help cover hosting.#
Yes. There is no subscription. Sponsorship and donations help cover hosting costs. Email support@racerecords.run to contribute.
How do I add RaceRecords to my phone's home screen?Install it as an app for a full-screen, no-browser-bar experience. iOS Safari: Share → Add to Home Screen. Android Chrome: menu → Install app.#
RaceRecords is a Progressive Web App, so you can install it straight from the browser — no app store needed. It then opens full-screen, without the browser address bar.
- iPhone / iPad (Safari). Tap the Share button (the square with an upward arrow), scroll down, and tap Add to Home Screen. Installing is required for notifications and the best full-screen experience on iOS.
- Android (Chrome). Open the ⋮ menu and tap Install app (or Add to Home screen). Some phones also show an install banner you can tap directly.
- Desktop (Chrome / Edge). Use the install icon in the address bar to run RaceRecords in its own window.
Age grading
Tables
What is age grading?A percentage of the world-best time for someone of your sex and age at that exact distance. Full algorithm lives on /methodology.#
Age grading converts your race time into a percentage of the world-best time for someone of your sex and age at that exact distance. 100% would equal an open-age world record adjusted for your age band. The full algorithm and the class-tier ladder (70%+, 80%+, 90%+) live on the methodology page.
What tables do you use?Alan Jones 2025 for road, WMA 2023 for track. The version chip on each race shows which was applied.#
Road races use the Alan Jones 2025 road age-grading tables. Track events use the World Masters Athletics (WMA) 2023 tables. Both versions are widely accepted reference points used by event organisers and Masters athletics bodies.
The version applied to a given result is shown next to the percentage on the race detail page (e.g. aj-2025 or wma-2023).
Calculation
How is the percentage calculated?Open-class standard divided by your age-graded time (your time multiplied by the age factor). Higher is better.#
For each event we have an open-class standard time (the world best at your sex and distance) and an age factor (a multiplier that reflects how much an average athlete slows down by age). Your age-graded time is your actual time multiplied by the age factor; your percentage is the open-class standard divided by your age-graded time. Higher is better; faster than world-record-pace would exceed 100%.
Does 70% mean I finished ahead of 70% of my age group?No. Age grading compares your time to the world best for your age and sex — not to the rest of the field. 70% is a share of world-record pace, not a percentile of other runners.#
No — this is the most common misread. Your percentage measures your time against the world-best time for your sex, age, and distance. It is not your placing among the other runners. A 70% means you ran at 70% of world-record-equivalent pace, nothing more. It says nothing on its own about how many people you beat.
If anything, 70% is rarer than it sounds. Across 100,807 Berlin Marathon finishers, fewer than one in ten age-graded 70% or higher, and barely 1% reached 80% — so a 70% there sits near the top 8% of the field, not the bottom 70%. Where you place depends on the race and how deep the field is; the percentage does not. See the full age-grade distribution.
Why does my percentage drop a little each year even when my time is the same?It usually does not. Crossing into a new age band typically nudges the percentage slightly higher, not lower.#
It usually does not. The tables are designed so that as you cross into a new age band, the age factor steps with you. Within a band, your percentage can move slightly because the factor changes by year. If you cross from M40 into M45 (for example), an identical time should produce a slightly higher percentage, not lower.
Edge cases
Are age-graded percentages comparable across distances?Yes. A 75% 5K and a 75% marathon are considered comparable performances.#
Yes. That is the whole point. A 75% 5K and a 75% marathon are considered comparable performances in age-graded terms. The dashboard ranks your races by AG% rather than by absolute time for this reason.
How do you predict my time at other distances?Equivalent times and the target-to-beat projections estimate your time at other distances from your own race — not by holding your age-grade percentage constant.#
The cross-equivalent grid, race-detail equivalents, and the target-to-beat projections estimate other distances from your time, age-adjusted when the prediction is for a different age. Holding your AG% constant instead would scale by the elite world-record ratio and predict the marathon far too fast.
The race-detail equivalents and target-to-beat projections show a best estimate with a range from optimistic to conservative; the cross-equivalent grid shows a single best estimate. If a Marathon and a shorter long race — a Half Marathon, 10 Mile, or 15K — were each a personal best (by time or age grade) within 12 months of each other, we tune the estimate to your own race history for long targets (15K and up) instead of a population average. We look back five years and, when more than one block qualifies, use the most recent — and within the same timeframe your strongest short race by age grade. Full detail on the methodology page.
Why is age grading disabled for some of my races?The tables only apply from age 18 and up. Races run before then are stored without an AG%.#
Age grading only applies from age 18 and up. Races run before you turned 18 are stored and listed, but the AG% column is blank for those rows.
Why don't my 8K, 20K, or ultra races get an age grade?The age-grading tables don't cover those distances yet, so they log without an AG%. They still get equivalent-time predictions on the race page.#
I recently opened up more road distances you can log: Road Mile, 5 Mile, 8K, 12K, 20K, and the ultras (50K, 50 Mile, 100K, and 100 Mile). The WMA and Alan Jones tables I use for age grading don’t publish factors for these, so I can’t put an honest percentage on them. Rather than invent a number, I leave the AG% blank.
For now these races appear in your race history and on the Absolute PRs page with your time and pace, but no age grade. They also stay out of the per-distance record cards on the dashboard. I’d rather ship the distances and let you log them than hold everything back waiting on the factor work.
Equivalent times do show for them. On the race detail page I predict your time at other distances from your actual time using Riegel, which works at any distance and doesn’t need the age-grading tables. The estimate gets unreliable across big jumps, so I only show distances within about six times the one you ran. Adding factors to give these an AG% as well, starting with the ones that hold a World Athletics record (Road Mile, 20K, 100K), is on my list.
What if my race was on an uncertified course?We still compute the AG% but flag the course as uncertified.#
We still compute the AG% but mark the course as uncertified and remind you that the percentage assumes the stated distance is accurate. Use the officially-measured toggle when you log a race to set this correctly.
Account, profile, and visibility
How does the public profile work?Each account picks a handle and gets a URL at /u/your-handle. Visibility is Private, Unlisted, or Public.#
Each account picks a handle and gets a URL at /u/your-handle. Profile visibility is one of three values:
- Private. The URL returns 404 for everyone but you.
- Unlisted. Anyone with the link can read your profile, but search engines are asked not to index it.
- Public. Listed in the site sitemap so search engines can index it.
What do the per-field toggles do?Hide individual fields from the public view without going fully private: race location, age-group place, shoes, race notes, exact age, external links.#
On Settings → Profileyou can hide individual fields from the public view without going fully private: race location, age-group place and finishers, shoes, race notes, exact age (otherwise we show only the age band like M40–44), and external links (official-results and Strava chips). Shoes and race notes are separate toggles, so you can show what you raced in while keeping your notes private.
How do I download my data?Settings → Your data → Download your data exports everything as JSON.#
Settings → Your data → Download your data exports everything we store about you as JSON. Useful for backups or if you want to leave.
How do I delete my account?Settings → Delete account. Cascades to every race, every Strava token, and the auth record. Permanent; export first if you might want the data back.#
Settings → Delete account. The delete cascades to every logged race, every Strava token, and your authentication record. There is no soft-delete or trash bin; export your data first if you might want it back.
Race entry
Logging
What does “officially measured” mean?Tick this when the course was measured by a recognised body. Track-distance races are always treated as officially measured.#
Tick this when the course was measured by a recognised body (e.g. World Athletics or AIMS for road, the track standard for track) and the distance can be trusted. We always treat track-distance races as officially measured. For road races on a club fun-run, set the toggle off. Your AG% is still shown but flagged as uncertified course.
Distances
Which distances are supported?Eight age-graded road distances plus five track distances, with nine more road distances (incl. ultras) you can log without an age grade.#
The age-graded distances are road: 5K, 10K, 15K, 10 miles, half marathon, 25K, 30K, marathon, and track: 1500m, mile, 3000m, 5000m, 10000m. These get an AG% and equivalent times.
On top of those I also let you log nine more road distances: Road Mile, 5 miles, 8K, 12K, 20K, and the ultras (50K, 50 miles, 100K, and 100 miles). These show up in your race history and on the Absolute PRs page, but without an age grade for now, because the age-grading tables don’t cover them. You still get equivalent-time predictions for them on the race page. See the age-grading edge cases for why.
Can I log a race I ran years ago?Yes. Race date cannot be in the future; no lower bound.#
Yes. The only restriction is that the race date cannot be in the future. There is no lower bound. Log every race you remember.
Manual vs imported
What is the difference between manual and imported races?Manual = typed in. Imported = from Strava as a draft. Once confirmed, they are identical.#
Manual races are entries you type in yourself; imported races come from Strava and arrive as drafts you confirm. Once confirmed, they look identical in the rest of the app. Same race detail page, same AG calculation, same place in your history.
How do I merge a Strava draft into an existing manual race?Drafts inbox auto-matches by date + distance + category. Hit Merge on the matched row.#
From the drafts inbox, RaceRecords auto-matches drafts to manual races by date, distance, and category. When there is exactly one match, hit Merge. The Strava link and location fill in on the manual race, your manual chip time is preserved, and the draft is deleted.
Strava integration
Setup
How do I connect Strava?Settings → Strava → Connect with Strava. We request activity:read only.#
Go to Settings → Strava and tap Connect with Strava. You will be redirected to Strava’s authorization page; approve there and you are returned to RaceRecords. We request activity:read only. No write access, no profile-edit access.
What gets imported
What does the sync actually import?Only activities tagged Race on Strava. We read name, distance, elapsed time, start datetime, finish coordinate, and shoes.#
Only activities you have explicitly tagged on Strava as Race. For each one we read the activity name, distance, elapsed time, start date/time, finish coordinate, and (if you have gear set) the shoe brand and model. We do not import the GPS track, heart-rate data, or any other workout file content.
Which distances are imported?Any run tagged Race on Strava that lands within a small tolerance of a supported road distance, from the Road Mile up to 100 miles.#
Strava activities that snap to a supported distance, within a small tolerance, are kept. The rest are skipped and shown in the sync result so you can see what was excluded and why. The road distances covered are Road Mile, 5K, 8K, 5 miles, 10K, 12K, 15K, 10 miles, 20K, half marathon, 25K, 30K, marathon, and the ultras 50K, 50 miles, 100K, and 100 miles.
8K and 5 miles sit very close together, so a GPS reading near 8 km can snap to either one. Imports land as drafts, which lets you fix the distance before you confirm. Anything that falls in the gaps between standard distances, a 45K for example, is skipped and you log it by hand.
Why are my imports listed as drafts?Imports stay private until you confirm them, so you can replace the time with the official chip time first.#
Imported races land in Drafts and stay private to you until you confirm them. Drafts do not count toward your PRs, dashboard KPIs, age-grading averages, or public profile. This gives you a chance to replace the time from Strava with the official chip time before the result goes live.
Troubleshooting
My sync returned 0 imports. What now?Either no activities are tagged Race in Strava, or the matching ones were skipped (distance off-list). Open the sync result panel for the per-activity reason.#
The sync result panel lists every activity it considered with a per-activity decision: imported, skipped (not tagged Race), skipped (distance), or already merged. Tag the activity as Race in Strava if it should have been picked up, then run sync again from Settings → Strava.
I tagged an activity as Race in Strava, but it never arrived. Why?Webhook events occasionally miss. Re-run sync manually from Settings → Strava to backfill the last 30 days.#
We rely on Strava’s webhook to surface newly-tagged activities. If a webhook event is missed (transient network error, Strava maintenance, our service redeploying mid-event), a manual sync from Settings → Strava backfills the last 30 days of Race-tagged activities.
I flipped an activity to Race but no draft appeared. Why?Strava does not send a webhook event for workout-type changes alone. Edit the activity title (or any other field) as well, or use Sync now.#
Strava only emits a webhook event when an activity’s title, type, or privacy changes — switching the workout type from Run to Race by itself does not fire one. To get a draft right away, edit the title (or any other field) in the same Strava session, or run Sync now from Settings → Strava.
Strava says I am connected but RaceRecords does not see anything. What is happening?Likely a stale token. Disconnect from Settings → Strava and reconnect.#
The most common cause is a token that Strava revoked without sending us a deauthorization event. Disconnect from Settings → Strava then connect again. If the symptom persists after a reconnect, email support@racerecords.run with your handle and the approximate time you noticed.
Why is the imported time slightly off?We use Strava's elapsed time (watch start to watch stop), not the official chip time. Edit the draft to replace it.#
We use Strava’s elapsed time(watch start to watch stop). That is closer to your chip time than Strava’s moving time (which auto-pauses for water stops or stoppages), but it is still not the official chip time. Chip time is measured between race-organiser timing mats. If you have the official chip time, edit the draft and replace the time before confirming.
How do I import a race I never recorded on my watch?Add it manually from /races/new. Manual and imported races coexist; matching drafts can be merged into manuals.#
Add it manually from /races/new. Manual entries and Strava drafts coexist. If a Strava draft later matches the date, distance, and category of a manual race, the drafts inbox offers a one-click merge that fills in the Strava link on the existing manual race.
Can I turn off the city/country lookup?Yes. Uncheck the lookup option in Settings → Strava. Imports then land with whatever Strava provided.#
Yes. When Strava omits the city/country on an activity, the sync optionally sends the finish coordinate to BigDataCloud to translate it into a city name. From Settings → Strava, uncheck the Look up city & country from finish coordinates checkbox to skip that third-party call. Imports will land with whatever Strava itself provided (often nothing).
Disconnecting
How do I disconnect Strava?Settings → Strava → Disconnect Strava. Tokens are revoked and unconfirmed drafts are deleted.#
Settings → Strava → Disconnect Strava. We tell Strava to revoke the access token, delete our local token row, and remove any imported drafts that you have not confirmed yet. Races you already confirmed stay in your history.
What if I revoke RaceRecords from inside Strava?Same outcome. Strava's webhook triggers the cleanup automatically.#
Same outcome. Strava sends us a deauthorization event over their webhook and we run the same cleanup automatically. Tokens and unconfirmed drafts are removed.
Privacy and security
Where is my data stored?Supabase (database + auth), Vercel (web app). Full GDPR rights in the privacy policy.#
Database and authentication are managed by Supabase; the web app is hosted on Vercel. Full details and your GDPR rights are in the privacy policy.
How do I report a security issue?Email support@racerecords.run with subject prefix [security]. Acknowledgement target: 72 hours.#
Email support@racerecords.run with the subject prefix [security]. Acknowledgement target is 72 hours. Full incident-response policy lives at /legal/security.
Contact
Email support@racerecords.run and include your handle and the date of the race or the page where the problem happens. Bug reports and feature requests are equally welcome; use the subject prefix [bug] or [feature] so it routes correctly.