Skip to main content
Back to Racey School
9 min read
Race directors and operational staff

Race Director Guide

Own the schedule, results operations, and handoff between league setup and race execution.

Run race-day operations without full admin access
Handle schedule, roster, and results workflow cleanly
Understand where stewarding and admin boundaries start
Use this guide during beta
1
Edit a round and verify results publication flow
2
Check roster approval and waitlist handling
3
Confirm which settings are visible to race ops staff
Open quick reference

You're the operational backbone of your league. While the league admin handles strategy and configuration, you keep race day running — managing schedules, importing results, handling the roster, and making sure everything is published and accurate. This guide covers your day-to-day responsibilities.


Your Role

What you do vs what the league admin does

The line between race director and league admin is clear:

ResponsibilityRace DirectorLeague Admin
Edit the scheduleYesYes
Publish the scheduleYesYes
Import and publish resultsYesYes
Manage the roster (approve/deny)YesYes
Configure scoring presetsYesYes
Create announcementsYesYes
View analyticsYesYes
Create/delete seasonsNoYes
Lock resultsNoYes
Assign stewards to protestsNoYes
Manage billing and StripeNoYes
Manage league staff rolesNoYes
Configure league settingsNoYes
Delete the leagueNoYes

Think of it this way: you handle race operations, the league admin handles league administration.

How you get the role

The league admin assigns you the Race Director role through League Settings > Staff Management. They invite you by email or username, then assign the role.

Your permissions

As a race director, you have 12 permissions:

PermissionWhat it lets you do
schedule.editCreate and edit rounds in the season schedule
schedule.publishMake the schedule visible to drivers
roster.viewSee all registration details
roster.manageEdit roster entries
roster.approveApprove or deny registration requests
results.importUpload results via CSV or iRacing import
results.editCorrect results after import
results.publishPublish results (changes status to official)
scoring.configureView and configure scoring presets
announcement.createCreate league announcements
announcement.publishPublish announcements to members
analytics.viewView league and season analytics

Schedule Management

Creating and editing rounds

Each season has a schedule of rounds. To manage it:

  • Go to the season page and open the Schedule tab
  • Click Add Round to create a new one
  • Fill in the details:
  • Track — which circuit or oval
  • Date and time — when the race takes place (uses the league's timezone)
  • Configuration — track layout, weather, session details
  • Save the round

You can reorder rounds, change dates, and update track info at any time before the round is completed.

Season calendar overview

The schedule view shows all rounds in chronological order with their status:

  • Scheduled — upcoming, hasn't been raced yet
  • Active — race is happening now (or today)
  • Completed — race has been run, results may or may not be imported yet

This gives you and your drivers a clear picture of what's coming up and what's been completed.


Race Day Operations

Pre-race checklist

Before each round:

  • Confirm the roster — check that registrations are approved and car numbers are assigned
  • Review the round details — correct track, correct date, correct session configuration
  • Post an announcement if there are last-minute changes (weather, track swap, time change)
  • Share server details through your league's communication channel (Discord, announcements)

Importing results

After the race, you need to get results into Racey. There are three methods:

iRacing import (recommended)

If your league is linked to iRacing:

  • Go to the round page
  • Click Import from iRacing
  • Select the session from the available iRacing league sessions
  • Review the imported data
  • Confirm the import

This pulls in positions, lap times, incidents, fastest laps, and finish statuses automatically.

CSV upload

For leagues not using iRacing direct import:

  • Go to the round page
  • Click Import Results
  • Upload a CSV file with driver results
  • Map the CSV columns to Racey fields (position, driver, laps, incidents, etc.)
  • Review and confirm

Manual entry

You can also enter results manually:

  • Go to the round page
  • Click Add Result for each driver
  • Enter position, laps completed, fastest lap, incidents, and finish status
  • Repeat for all drivers

This is the most time-consuming method but gives you full control.

Reviewing results before publishing

After import, results are in Pending status. Before publishing:

  • Spot-check the data — are positions correct? Are the right drivers listed?
  • Verify finish statuses — did any DNFs or DSQs get captured correctly?
  • Check lap counts — does the leader's lap count match the actual race?
  • Look for missing drivers — anyone who raced but isn't in the results?

If something's wrong, use Results > Edit to correct individual entries. Every correction is tracked in the audit trail with the original value, new value, and your reason.

Handling result disputes

Sometimes a driver will say "my result is wrong" before it becomes a formal protest. At this stage, you can:

  • Check the source data (iRacing session or CSV)
  • If there's an error, correct it using results edit
  • If it's a scoring dispute, check the season's scoring configuration
  • If it's an on-track incident, direct them to file a formal protest

You don't make stewarding decisions — that's the steward panel's job. Your role is making sure the data is accurate.


Results Management

The four result states

Results progress through four states:

flowchart LR

A[Pending] --> B[Reviewed]

B --> C[Official]

C --> D[Locked]

StateWhat it meansWho can change it
PendingJust imported, not checkedRace Director, League Admin
ReviewedChecked but not official yetRace Director, League Admin
OfficialPublished — counts toward standingsRace Director, League Admin
LockedFinalized — no further editsLeague Admin only

Publishing results

When you're satisfied the results are correct:

  • Go to the round's results page
  • Click Publish Results
  • Status changes to Official

Publishing triggers several things:

  • Standings recalculation — championship points update automatically
  • Notifications — all registered drivers are notified
  • Discord — if the league has Discord integration, results are posted to the configured channel
  • Overlays — broadcast overlays update with the new data

About locking results

Only the league admin can lock results (you can't). Locking prevents any further edits — useful after the protest window closes and standings are final. If locked results need correction, the league admin must unlock them first.


Roster Management

Viewing registrations

Go to Roster in the season navigation. You'll see all registrations organized by status:

  • Pending — waiting for approval
  • Approved — confirmed drivers
  • Denied — rejected applications
  • Waitlisted — waiting for a spot to open
  • Withdrawn — drivers who pulled out

Approving and denying registrations

For each pending registration:

  • Review the driver's application data
  • Check their sim profile (iRating, safety rating) if linked
  • Click Approve or Deny
  • The driver receives a notification with the outcome

Managing car numbers

Car numbers must be unique within a season. If two drivers want the same number:

  • The first approved registration gets priority
  • You can ask the second driver to pick a different number before approving
  • If needed, edit an approved registration's car number through the roster management page

Racey tries to use each driver's preferred number (set in their profile), but you have final say.


Scoring

Viewing the scoring configuration

The league admin sets up the scoring system for each season, but you need to understand it to answer driver questions. Go to Scoring in the season navigation to see:

  • Active preset — which scoring system is in use (F1, NASCAR, IndyCar, IMSA/WEC, Oval Weekly, Road Weekly, GT3, or Heat + Feature)
  • Position points — how many points each finishing position earns
  • Bonus points — extra points for pole, fastest lap, most laps led, positions gained, clean race
  • Drop weeks — how many worst rounds get excluded from the championship total
  • Multi-class rules — whether classes score separately
  • Team scoring — method used for team standings (best N, sum all, or average all)

Understanding how points are calculated

For each driver, each round, the scoring pipeline works like this:

  • Position points from finishing position
  • + Bonus points (pole, fastest lap, laps led, positions gained, clean race)
  • + Stage points (NASCAR-style stages, if enabled)
  • - Penalty points (from steward rulings with points penalties)
  • = Round total

If half points are enabled and the race completed less than 50% of scheduled laps, all points are halved.

After all rounds are scored, drop weeks exclude the N lowest rounds, and the remaining rounds sum to the championship total.

Reporting scoring issues

If a driver or you spot a scoring issue:

  • Check if the result data is correct (wrong position = wrong points)
  • Check if a penalty was applied that affected points
  • Check if the scoring config matches what was intended
  • Raise it with the league admin if the config needs changing

Note: scoring configuration on active seasons should generally not be changed mid-season, as it recalculates all standings retroactively.


Announcements

Creating announcements

You can post announcements to keep drivers informed:

  • Go to Announcements in the league navigation
  • Click Create Announcement
  • Fill in the title and content
  • Choose the type: general, schedule, results, ruling, registration, or broadcast
  • Optionally target specific roles (e.g., only drivers, or only stewards)
  • Choose whether to pin the announcement
  • Publish

When to use announcements vs Discord

SituationUse
Schedule changeAnnouncement (official record) + Discord (immediate visibility)
Server passwordDiscord only (not something you want permanently posted)
Season rules updateAnnouncement (pinned)
Quick reminderDiscord
Post-race summaryEither — depends on your league's style

Announcements trigger notifications to all targeted members and get posted to Discord automatically if the integration is configured.


Related Guides

  • League Admin Guide — the full admin perspective, including features only admins can access
  • Steward Guide — how protests and penalties work (you may need to explain this to drivers)
  • Driver Guide — understand the driver experience so you can support them
  • Broadcaster Guide — how your published results feed the broadcast overlays
  • Quick Reference — full permission matrix and workflow cheat sheets

Back to Racey School
Start here first