About r4wRun
The race management platform for downhill and gravity sports. Organize events, run qualifying, knockouts and publish live results for skateboarding, street luge and inline.
Championships
A championship groups multiple race events and tracks overall standings across the season.
- Create a championship with a name, season and optional description and banner image.
- Add multiple organizers who inherit permissions on all events within the championship.
- Events are ordered within the championship (Race 1, Race 2, etc.).
- Optionally add a website URL, rulebook URL and Instagram handle to share with participants.
Points Systems
Each championship has a configurable points system that determines how finishing positions translate into standings points.
| System | Distribution | Min |
|---|---|---|
| Standard | 100, 80, 60, 55, 50, 45, 40 ... | 1 |
| F1 | 25, 18, 15, 12, 10, 8, 6, 4, 2, 1 | 0 |
| Linear | 50, 49, 48, 47 ... | 1 |
| CND | 1000, 940, 885, 835, 790, 750 ... | 0 |
| Custom | Define your own values per position | Custom |
Standings recalculate automatically when the system changes. The points system can be edited from the Standings tab.
League Format & Ladder Stage
Championships can use a League format where riders progress through a multi-stage ladder. This complements the Standard event-by-event format.
- Choose between Standard (one points list per event) and League (a ladder across all events) when creating the championship.
- The ladder stage groups riders into rounds, with results carried forward across events.
- Ladder progression is visualised with an interactive tree view, using smooth Bézier connectors between rounds.
- Your own path through the ladder is highlighted so it's easy to find yourself at a glance.
- Ladder stages lock once downstream stages exist, preventing edits that would invalidate later rounds.
Events
Events are individual races within a championship. Each event goes through: Registration, Qualifying, Knockouts, Results.
- Set name, location, dates and an optional description and banner.
- Choose modalities: Skateboarding, Street Luge, Inline.
- Choose categories: Open, Women, Master (35+), Junior (U17).
- Add event-specific organizers or rely on inherited championship organizers.
- Riders register for a specific category. Registration requires a completed profile.
- Upload a banner and poster with built-in image cropping; the poster opens in a fullscreen preview modal.
- Optionally set a registration price and currency for paid events.
- Optionally add a website URL and Instagram handle displayed on the event page.
Track Details
Events can publish technical details about the track so riders know what to expect.
- Track distance in metres or feet, with the unit shown next to the value.
- Average track grade (slope) as a percentage.
- Estimated max speed in km/h or mph.
- Track details appear on event cards, the event detail page, and in event listings.
Live Event Indicator
Events currently in progress display a pulsing "LIVE" badge so the community knows when racing is happening right now.
- The live indicator shows when the event start time has passed and the event has not finished, based on the event date range.
- The badge appears on event cards in the directory, on the home dashboard hero, and inside event recommendation lists.
Rider Profiles
Every rider has a personal profile that identifies them across events and championships.
- Sign in with Google or create an account with email and password.
- Every profile has a unique username — used for sharing your profile link and for finding you in search.
- Upload a profile photo with built-in image cropping.
- Select your country — displayed with your flag throughout the platform.
- Set your riding stance: Regular or Goofy.
- Choose your preferred modality to be grouped with riders in the same discipline.
- Optional birth date — your age is calculated and shown on the public profile.
- A completed profile is required before registering for any event.
- Add sponsors to your profile — they appear on your rider card and public profile page.
- View your stats: total races, wins and podium finishes.
- The profile shows three tabs: Overview, Detailed Stats, and Achievements.
- Compare your performance against another rider with the personal card and progression chart on championship pages.
- Browse your full race history with results from every event you've participated in.
- Edit your profile and notification preferences from the profile page — turn email categories on or off independently.
- Share your profile via the share button (uses your device's native share sheet or copies the URL).
Racing Suits
Configure your leather suit and helmet colors to help organizers identify you on the track.
- Customize 6 color zones: helmet, chest, left arm, right arm, left leg, right leg.
- Click on any zone in the suit diagram to select a color from presets or use a custom color picker.
- The suit colour picker provides an interactive HSL adjuster with curated swatches for quick selection.
- Your suit colors are displayed on your profile and in the rider modal when clicking on any rider.
- Organizers can enable the Suits toggle in Qualifying and Knockout views to see suit colors next to rider names.
- This helps track officials identify riders as they cross the finish line during heats.
Sponsors & Partners
Riders and events can showcase their sponsors and partners on the platform.
- Add sponsor logos to your profile or event page.
- Sponsor logos are displayed on rider cards, profiles, and event pages.
- A built-in tutorial guides you through uploading and positioning sponsor logos.
- Each sponsor can include a clickable link to their website.
Event Registration Types
Events support different participation modes to accommodate various event formats.
- Competition — Traditional competitive races with qualifying, knockouts and standings.
- Freeride — Non-competitive participation without qualifying or knockout results.
- Competition + Freeride — Events with both competitive heats and open freeride sessions.
- Riders can register for multiple categories in the same event (e.g., both Open and Master divisions).
Registration & Organizers
Riders join events by registering for a specific category. Organizers manage the competition.
- Register for an event by selecting your category (Open, Women, Master, Junior).
- Cancel your registration at any time — unless qualifying times, knockout entries or results already exist.
- Organizers can include a custom registration message that riders see when signing up.
- Registration closes for a category once its knockout has been generated.
- Championship organizers automatically have management permissions on all events within that championship.
- Event-specific organizers can also be added for individual races.
- Organizers can enter qualifying times, generate knockouts, record heat results and manage riders.
- Organizers can open or close registration per category with a toggle.
- Track payment status for each registered rider — mark riders as paid or unpaid.
- Organizers can convert an existing registration between competition and freeride from the riders tab.
- Organizers can bulk-import riders from a CSV with built-in validation.
- Organizers can manually invite riders by email; an invitation is sent automatically.
- Add placeholder riders without an account — useful for in-person events where some riders haven't signed up yet.
- Qualifying and ladder stages lock once downstream stages exist, so registrations and results stay consistent.
Qualifying
Qualifying determines the seeding order for knockout races. There are three qualifying methods — each one locks registrations while active.
Time Trials
Time Trials is the classic qualifying format. Riders complete timed runs down the course and the fastest times earn the top seeds.
- Organizers enter times per modality and run number.
- Times are entered as M:SS.mmm (e.g. 1:23.456) or SS.mmm (e.g. 45.230).
- Multiple runs supported (Run 1, Run 2, Run 3, etc.).
- The best time across all runs determines each rider's seed.
- Riders can be marked as DNF (Did Not Finish).
- Rankings show all riders ordered by best time, with individual run times in columns.
Traditional Race to Qualify
Race to Qualify (RTQ) is an alternative to timed qualifying where riders compete in head-to-head races across multiple rounds, with the fastest advancing automatically to knockout seeding.
Setup
- Heat configuration: Choose riders per heat (2, 4 or 6) and the total number of rounds.
- Round 1 uses <strong class="text-white">snake seeding</strong>: riders are distributed left-to-right, then right-to-left alternating, ensuring balanced heats.
Running
- After each round, riders are automatically rotated into next-round heats based on their finishing positions. Winners advance to specific heat assignments using a rotation formula.
- Downstream rounds are auto-populated as each heat completes — no manual heat generation needed.
- Final rankings are based on total points: 1st place = 1 point, 2nd = 2 points, etc. DNF/DSQ receives penalty points. Lowest total points wins.
Editing & Management
- Heats can be re-edited if downstream heats have no results yet. Resetting a heat clears all downstream heats, ensuring knockout consistency.
Progressive Race to Qualify
Progressive RTQ is a variant of Race to Qualify where riders compete in small heats across multiple rounds, getting shuffled each round so they face different opponents.
Format
- Riders are split into small heats (e.g. 4 riders per heat). Each rider races in one heat per round.
- Scoring per heat: 1st = 3 pts, 2nd = 2 pts, 3rd = 1 pt, 4th = 0 pts. DNF/DSQ = 0 pts.
- Between rounds, riders are shuffled into different heats using a fixed rotation formula — the rotation is not based on results, it's pre-determined so everyone faces different opponents.
Ranking
- The tiebreaker is the sum of the total heat points of all opponents you raced against. If you beat strong riders, your tiebreaker is higher.
- Final Score = Heat Points + Tiebreaker. This determines the final ranking used for knockout seeding.
Scoring example (heat of 4)
- Rounds are generated one at a time. Complete all heats in a round before generating the next one.
Example: With 12 riders, heat size 4, and 3 rounds — each rider races 3 times against 3 different groups of opponents. The rider with the best combination of results and opponent strength ranks highest.
Custom Seeding
Custom Seeding lets organizers set the knockout seed order directly, without running any qualifying heats or timed runs.
- Bib Number Order — seeds riders by their assigned bib numbers (1, 2, 3...). All riders must have bibs first.
- Random Draw — shuffles riders using a numeric seed for reproducibility. Same seed always produces the same order.
- Manual Order — arrange riders in any order using drag-and-drop. Defaults to bib order on first setup.
- Setting up custom seeding locks registrations and bib numbers, just like the other qualifying types.
- Manual seeds can be reordered at any time before the knockout is generated.
Bib Numbers
Each rider receives a unique bib number for identification during the event.
- Bib numbers are automatically assigned when a rider registers.
- Numbers are unique per event — no two riders can have the same bib.
- Organizers can edit bib numbers by clicking on them in the Riders tab.
- Bib numbers are displayed throughout the event: riders list, qualifying, knockouts, and results.
Knockouts & Heats
Single-elimination knockout format. Riders are seeded by qualifying times and compete in heats until a final determines the winner.
Knockout Generation
- Select modality, category and riders per heat (2, 4 or 6).
- Choose knockout size based on how many riders enter (8, 16, 32, 64).
- Preview the seeding before confirming.
- Top seeds are separated so they only meet in later rounds.
Running Heats
- Enter finishing positions for each rider in a heat.
- Mark riders as DNF, DSQ (Disqualified), or DNS (Did Not Start).
- The top half of each heat advances (e.g. top 2 out of 4).
- Next-round heats are generated automatically when the current round is complete.
- Run status indicator shows whether a heat is idle, in start position, or currently running.
- When a heat is running, a countdown timer estimates time to finish. With Time Trials qualifying, it auto-calculates from riders' best times. Otherwise, organizers can set a manual estimate.
Editing & Resetting
- Re-edit a completed heat: later-round heats are cleared and regenerated.
- Reset a heat: clears all positions and returns it to pending.
- The knockout stays consistent when corrections are made.
Seeding Algorithm
Knockout seeding ensures top-ranked riders are placed on opposite sides of the draw so they meet as late as possible.
- Riders are ranked by their best qualifying time — seed 1 is the fastest.
- Seed 1 and seed 2 are placed in opposite halves of the knockout.
- Remaining seeds are distributed so that each heat has a balanced mix of fast and slower riders.
Example with 16 riders (4 per heat):
#1 · #8 · #9 · #16
#4 · #5 · #12 · #13
#3 · #6 · #11 · #14
#2 · #7 · #10 · #15
This ensures a seed 1 vs seed 2 final if both riders advance.
Race Results
Results are computed progressively as the knockout plays out.
- Final round: positions assigned by finishing order.
- Earlier rounds: eliminated riders receive positions based on when they were knocked out.
- Within each elimination group, riders are sorted by qualifying time.
- DNF/DSQ riders are placed last within their group; DNS riders are placed after DNF/DSQ.
- Riders who qualified but didn't make the knockout appear below all knockout participants.
Podium & Results Display
Race and championship results feature a visual podium for the top 3 finishers.
- Gold, silver and bronze pedestals with rider avatars, country flags and stats.
- Click any rider on the podium or results table to view their profile.
- Points are displayed per rider based on position and the championship's points system.
- Riders beyond the podium are shown in a ranked table below.
Live Event Display
Organizers and spectators can view events in real-time as results are entered, with live-updating displays powered by instant Supabase synchronization.
- Live Qualifying shows real-time qualifying results with an RTQ tree view or timed run times. Viewers can click riders for detailed profiles.
- Live Results displays knockout progression as heats complete, with interactive knockout visualization and rider details.
- Live pages are public and shareable — broadcast qualifying or knockout results to spectators, judges, or online viewers.
Import Timings
Organizers can bulk-import qualifying times from a spreadsheet instead of entering them manually one by one.
- Upload an Excel (.xlsx) or CSV file with a bib column and run columns (run1, run2, run3, etc.).
- Times can be entered as M:SS.mmm (e.g. 1:23.456), SS.mmm (e.g. 58.200), or raw milliseconds.
- Empty cells or "DNF" are imported as Did Not Finish.
- Riders are matched by bib number against registered riders in the current modality.
- Bibs that don't match any registered rider are skipped — shown in the preview before importing.
- A preview step shows all matched riders with parsed times before confirming the import.
- Imported times overwrite existing values for the same rider and run number.
Data Export
Organizers can export event data to Excel spreadsheets with flexible field selection for custom analysis and record-keeping.
Fixed & Optional Fields
- All exports include fixed core data (position, bib, rider name, country).
- Select additional optional fields (DNF/DSQ status, points, times, etc.) based on export type.
Export Types
- Export race results with customizable fields — include points, DNF/DSQ status, or other relevant data.
- Export knockout outcomes with optional DNF/DSQ status and country information.
- Export qualifying data (timed qualifying with times, or RTQ with points) with optional additional fields.
Championship Standings
Standings aggregate results from all events in the championship.
- Points are awarded per event based on finishing position and the selected points system.
- Filter by modality and category.
- Each rider shows total points and number of races.
- Riders ranked by total points, highest first.
- Standings show a position delta after each event so riders can see who's moving up.
- Your row is highlighted in the standings table when viewing while logged in.
Embed Standings
Championship organizers can embed live standings on their own website using a simple code snippet.
- Find the embed button next to the share button on any championship page.
- Pre-filter by modality and category using URL parameters.
- The embed auto-resizes to fit its content.
- Dark theme matches the r4wRun look, with a 'Powered by' footer linking back.
<iframe src="https://r4wrun.com/championships/your-championship/embed" width="100%" height="600" frameborder="0" style="border:none;border-radius:12px;overflow:hidden;"> </iframe>
Multi-language
r4wRun is available in multiple languages to serve the global downhill community.
- Currently supported: English, Spanish, Italian and German.
- Switch language at any time using the language selector in the header.
- Each language has its own localized URLs for easy sharing.
Installable App (PWA)
r4wRun is a Progressive Web App — you can install it on your device for a native app experience.
- Install from your browser's menu or the install prompt that appears automatically.
- Runs as a standalone app with its own window — no browser toolbar or tabs.
- Updates automatically in the background so you always have the latest version.
App Updates
We ship updates frequently. When a new version is deployed, the app prompts you to refresh so you get the latest features.
- An update card appears at the top of the page when a new version is available.
- Tap Refresh to load the new version — your place in the app is preserved.
- A service worker handles versioning under the hood, so updates are fast and avoid stale caches.
Contact
For more information, integrations, partnerships or any questions about the platform, please get in touch.
Send us an email at info@r4wrun.com
Organizer Tools
Event organizers have access to comprehensive management tools for riders, qualifying, knockouts, and results.
- Manage riders: edit bib numbers, add notes, track payment status, or remove riders.
- Control qualifying: enter run times (for timed qualifying) or manage RTQ heats with position editing and automatic advancement.
- Generate and manage knockouts: customize heat size, preview seeding, edit heat results, reset heats with cascade protection.
- Add heat comments for notes during competition (e.g., "False start — re-run Heat 3").
- Export final results to Excel for records, sharing with riders, or championship aggregation.
QR Code
Each registered rider gets a personal QR code for quick identification at events.
- QR codes are generated automatically for each rider showing their name, bib number and registered categories.
- Organizers can scan QR codes to quickly identify and check in riders on race day.
- Riders can share their QR code from the event page for easy check-in.
- Event and championship pages auto-generate Open Graph metadata so links shared on social media show the title, date, and a preview image.
Check-In
Organizers have a dedicated check-in page to manage rider arrivals on race day.
- Toggle rider check-in and check-out status with timestamps.
- Track payment status for each rider with payment timestamps.
- Add or edit organizer notes on individual riders.
- Edit bib numbers directly from the check-in view.
- View rider profile with avatar, name, country, and registered categories and modalities.
Rider Dashboard
Every rider has a personal dashboard showing their stats, upcoming events, and recent results.
- View your race statistics: total races, wins, and podium finishes.
- See your next upcoming event with quick access to the event page.
- Browse recent results with color-coded positions (gold, silver, bronze).
- View your current championship standings with points.
- Profile completion tracker showing what's missing (avatar, suit colors).
Performance Radar
Every rider profile — and your own at /profile — shows a 7-axis radar that turns your race history into a quick visual fingerprint. Each axis is scored from 0 to 100, with higher always meaning better. A balanced shape (close to a regular heptagon) is the mark of an all-rounder; a spiky shape means you have clear strengths and clear gaps.
Each vertex sits on one of the seven axes. The closer the point is to the outer edge, the stronger you are on that dimension; the closer it is to the centre, the more room there is to grow. The seven axes fall into three rough families: raw speed (Qualifying), how you race head-to-head (Heat wins, Knockout finish, Consistency, Racecraft), and how your finals go overall (Top 5, Top 10).
The seven axes
Qualifying — single-lap pace
How fast your best timed lap is compared to everyone else who set a run in the same event, modality and category. Pure speed on a single attempt.
For each event-modality-category you raced, you earn a percentile: fastest in the field = 100, slowest = 0, mid-field around 55 in a 10-rider group. The axis is the average of those percentiles.
Example: you set the 3rd-best time in a 9-rider qualifying. Percentile = (1 − 2 / 8) × 100 = 75.
Racecraft — climbing on race day
How much you climb (or fall) between your qualifying position and your final finish. Rewards riders who race smarter than their lap time suggests.
Centred at 50 — same position in qualifying and the final. Climbing through the field pushes you above 50; dropping spots pushes you below. Pole-sitters who keep winning naturally land near 50 (no room to climb); the other axes reward their pure speed. If you have no qualifying-to-final data yet, this axis defaults to 50.
Example: qualified P8, finished P1 in a 10-rider final. Climb ratio = (8 − 1) / 9 ≈ 0.78, score ≈ 89.
Heat wins — head-to-head dominance
Across every knockout and RTQ heat you took part in, how often you crossed the line first.
Simple percentage: heats won divided by heats raced. DNFs, DSQs and DNSs still count in the denominator, so a bad heat hurts.
Example: won 6 of 10 knockout and RTQ heats you raced → score 60.
Knockout finish — advancement rate
How often you advance to the next round when you're in a knockout heat — essentially your survival rate through the knockout. (It is not how deep you reached; that is a separate stat on your profile.)
Eligible heats are non-consolation knockout heats you actually raced (no DNF/DSQ/DNS). Score = advanced ÷ eligible × 100.
Example: advanced from 4 of 5 knockout heats you raced → score 80.
Consistency — where you typically land
Your average position across every heat you finished (knockout and RTQ combined). Riders who reliably land near the front score high.
Linear ramp from P1 = 100 down to P7 = 0, in steps of about 16.7 points per position (so P4 ≈ 50). Heat size is not factored in — finishing P3 scores the same whether the heat had 3 or 4 riders.
Example: average heat position P3 → score = 100 − (3 − 1) × 16.67 ≈ 67.
Top 5 — finals in the top five
Share of your finals where you finished in positions 1 through 5.
Plain percentage: finals finished in the top 5 divided by total finals.
Example: 7 top-5 finishes out of 20 finals → score 35.
Top 10 — finals in the top ten
Share of your finals where you finished in positions 1 through 10. Tracks how often you stayed in the wider pointy end of the field.
Plain percentage: finals finished in the top 10 divided by total finals.
Example: 14 top-10 finishes out of 20 finals → score 70.
Rider archetypes
The chip above the chart distils all 7 axes into one of 8 archetypes. The first rule that matches wins, so a rider could fit several — only the strongest signal is shown.
- Newcomer — fewer than 3 races on record. The shape is not reliable yet, so we hold off labelling.
- Champion — wins finals often (25% or more) and dominates head-to-head heats (45% or more).
- Podium hunter — finishes top 3 in at least a fifth of their finals without quite locking in the win.
- Pole specialist — claims pole at 40% or more of their events, but rarely converts that pace into knockout advancement.
- Heat bully — wins 45% or more of their heats but rarely closes out a final. Strong in the early rounds, fades at the top.
- Comeback kid — qualifies further back yet still advances from 40% or more of their knockout heats. A grinder who races up the order.
- Veteran — 30 or more finals on record without high win rates. Long history, steady presence in the scene.
- All-rounder — solid across the board without one stand-out trait. The default when no other archetype matches.
With fewer than 5 finals on record, a "limited data" notice appears under the chart and the shape is not yet reliable — a single great or bad weekend can swing it dramatically.
Achievement Badges
Earn badges as you race and build your profile. Badges are visible on your rider profile and track your progression across the platform.
- 28 badges across 8 categories: Race Milestones, Podium, Wins, Consistency, Qualifying, Knockout & Heats, Events, and Profile.
- Race milestones reward participation — from your first race all the way to 50.
- Performance badges track wins, podiums, and consistency stats like win rate and podium rate.
- Knockout badges reward heat wins, reaching finals, and high advancement rates.
- Profile badges encourage completing your rider profile — avatar, suit, sponsors, and more.
- Tap any badge to see its description and whether you've earned it.
Feedback & Community
Users can submit feature requests, bug reports, and suggestions. The community votes on ideas and organizers track implementation status.
- Post types: Feature requests, bug reports, and improvement suggestions.
- Organizers track feedback status: under review, planned, in progress, on testing, or completed.
- Vote on posts to show support for features you'd like to see.
News
Events and championships have a news feed for posting updates, results announcements, and community discussion.
- Organizers post text updates with optional images directly from the event or championship page.
- Authors can edit and update their own posts; the feed updates in place without a page reload.
- Riders can like posts; the like count is shown in the feed.
- Each post supports comments — followers and other riders can join the conversation.
- Riders see news posts on the event or championship page in-app.
Follow & Followers
Build your network by following other riders. Followers help surface relevant content and recommendations.
- Tap Follow on any rider card or profile to start following — unfollow at any time from the same button.
- Follower count is shown on each profile.
- The home dashboard surfaces suggested riders based on your preferred modality and follower counts.
- You'll receive an email when someone follows you (manageable from email preferences).
Terminology & Abbreviations
- Modalities: Skateboarding, Street Luge, Inline — the three disciplines supported by r4wRun.
- Categories: Open, Women, Master (35+), Junior (U17) — rider classification groups within each event.
- DNF (Did Not Finish) — A rider failed to complete a run or heat.
- DSQ (Disqualified) — A rider violated rules and was removed from competition.
- Seed — A rider's ranking position in a knockout based on qualifying times. Seed 1 is fastest.
- Heat — A race or qualifying round with a small group of riders (2, 4, or 6).
- Knockout — Single-elimination tournament structure where losers are eliminated each round.
- Round — A stage in a knockout (Round 1, Quarterfinals, Semifinals, Finals, etc.).
© 2025 Adria Arquimbau. All rights reserved.