Your one-page cheat sheet for Racey. Permissions, plans, workflows, and troubleshooting — all in one place.
Role Permission Matrix
Racey has 37 permissions across 7 roles. Here's the complete mapping.
League & Settings
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
league.manage | Yes | Yes | — | — | — | — | — |
league.settings | Yes | Yes | — | — | — | — | — |
league.delete | Yes | Yes | — | — | — | — | — |
Seasons
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
season.create | Yes | Yes | — | — | — | — | — |
season.edit | Yes | Yes | — | — | — | — | — |
season.delete | Yes | Yes | — | — | — | — | — |
Schedule
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
schedule.edit | Yes | Yes | Yes | — | — | — | — |
schedule.publish | Yes | Yes | Yes | — | — | — | — |
Roster
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
roster.view | Yes | Yes | Yes | — | — | — | — |
roster.manage | Yes | Yes | Yes | — | — | — | — |
roster.approve | Yes | Yes | Yes | — | — | — | — |
Results
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
results.import | Yes | Yes | Yes | — | — | — | — |
results.edit | Yes | Yes | Yes | — | — | — | — |
results.publish | Yes | Yes | Yes | — | — | — | — |
results.lock | Yes | Yes | — | — | — | — | — |
Scoring
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
scoring.configure | Yes | Yes | Yes | — | — | — | — |
scoring.override | Yes | Yes | — | — | — | — | — |
Protests & Penalties
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
protest.submit | Yes | — | — | — | — | — | Yes |
protest.review | Yes | Yes | — | Yes | — | — | — |
protest.rule | Yes | Yes | — | Yes | — | — | — |
protest.assign | Yes | Yes | — | — | — | — | — |
penalty.apply | Yes | Yes | — | Yes | — | — | — |
penalty.edit | Yes | Yes | — | — | — | — | — |
Announcements
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
announcement.create | Yes | Yes | Yes | — | — | — | — |
announcement.publish | Yes | Yes | Yes | — | — | — | — |
Teams
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
team.create | Yes | Yes | — | — | — | — | — |
team.manage | Yes | Yes | — | — | — | Yes | — |
Broadcasting
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
broadcast.access | Yes | Yes | — | — | Yes | — | — |
broadcast.overlay | Yes | Yes | — | — | Yes | — | — |
Staff & Billing
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
billing.manage | Yes | Yes | — | — | — | — | — |
staff.manage | Yes | Yes | — | — | — | — | — |
staff.invite | Yes | Yes | — | — | — | — | — |
Analytics & API
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
analytics.view | Yes | Yes | Yes | — | Yes | — | — |
api.keys | Yes | Yes | — | — | — | — | — |
Platform (System-Wide)
| Permission | Platform Admin | League Admin | Race Director | Steward | Broadcaster | Team Captain | Driver |
|---|
platform.admin | Yes | — | — | — | — | — | — |
platform.moderate | Yes | — | — | — | — | — | — |
platform.billing | Yes | — | — | — | — | — | — |
Totals by role
| Role | Permission count |
|---|
| Platform Admin | 37 (all) |
| League Admin | 33 |
| Race Director | 12 |
| Steward | 3 |
| Broadcaster | 3 |
| Team Captain | 1 |
| Driver | 1 |
Plan Comparison
| Feature | Free | Pro | Enterprise |
|---|
| Price (monthly) | $0 | $9.99/mo | $29/mo |
| Price (annual) | $0 | $79/yr | Custom |
| Leagues | 1 | Unlimited | Unlimited |
| Seasons per league | 1 | Unlimited | Unlimited |
| Drivers per league | 20 | Unlimited | Unlimited |
| Scoring presets | 2 (Road/Oval Weekly) | All 8 + custom | All 8 + custom |
| Broadcast overlays | No | Yes (6 types) | Yes (6 types) |
| Stewarding system | No | Yes | Yes |
| Analytics dashboard | No | Yes | Yes |
| Discord integration | No | Yes | Yes |
| Public API access | No | Yes | Yes |
| Stripe Connect (entry fees) | No | Yes | Yes |
| Season cloning | No | Yes | Yes |
| Priority support | No | Yes | Yes |
| White-label branding | No | No | Yes |
| Custom domain | No | No | Yes |
| SSO / SAML | No | No | Yes |
| Dedicated onboarding | No | No | Yes |
| "Powered by Racey" watermark | Shown | Hidden | Hidden |
Special pricing
| Program | Price | Details |
|---|
| 90-day reverse trial | Free | Every new account gets Pro features for 90 days (with narrower limits: 2 leagues, 3 seasons). After day 90, data stays accessible — only mutations are gated. |
| Launch offer | $6.99/mo or $59/yr | 45 limited spots. Price locked for life. One per user, one per league. |
| Founding member | Free forever | First 5 leagues get permanent Enterprise access at no cost. |
Key Workflows
Create a league
- Sign up and log in
- Click Create League — enter name, description, discipline, sim
- Invite staff (admin, race director, stewards, broadcasters)
Set up a season
- Go to your league and click Create Season
- Configure scoring (choose a preset or build custom)
- Add rounds to the schedule (tracks, dates)
- Open registration
Run a race
- Race happens in the simulator
- Import results (iRacing sync, CSV upload, or manual entry)
- Review for accuracy
- Publish — standings update automatically
Handle a protest
- Driver files a protest with evidence
- League admin assigns stewards
- Stewards review, discuss (notes), and vote
- Steward issues ruling with explanation
- Apply penalties if warranted
- Involved parties may appeal (one chance, before deadline)
Set up broadcast overlays
- League admin enables overlays (Pro/Enterprise required)
- Assign the Broadcaster role to your streamer
- Broadcaster opens the Broadcast Dashboard and copies overlay URLs
- Add URLs as Browser Sources in OBS (1920x1080, transparent)
- Optional: set overlay secret for token-protected streams
Collect entry fees
- League admin enables Stripe Connect in billing settings
- Complete Stripe onboarding (connect your bank account)
- Set entry fee amounts on the season (optional early-bird pricing)
- Drivers pay during registration — money goes directly to your Stripe account
- Process refunds through the payments dashboard if needed
Manage teams
- League admin creates teams for the season
- Team captain invites drivers
- Drivers accept team invitations
- Team standings calculated automatically based on scoring method (best N, sum all, or average all)
Set up Discord notifications
- Go to League Settings > Discord
- Enter your Discord webhook URL
- Choose which events trigger notifications:
- Results published
- Protest rulings
- Registration open/close
- Test the webhook
Scoring Presets at a Glance
| Preset | Top-3 Points | Key Feature |
|---|
| F1 | 25, 18, 15 | Fastest lap bonus (1 pt) |
| NASCAR | 40, 35, 34 | Stage points + manufacturer scoring |
| IndyCar | 50, 40, 35 | Pole bonus (1 pt) + most laps led (2 pts) |
| IMSA/WEC | 25, 18, 15 | Multi-class + team scoring |
| Oval Weekly | 43, 42, 41 | Drop 2 worst rounds |
| Road Weekly | 25, 18, 15 | Clean race bonus (2 pts) + drop 2 |
| GT3 Sprint | 25, 20, 16 | Pole + fastest lap bonuses |
| Heat + Feature | Feature: 25, 20, 16 | Separate heat and feature point arrays |
Free plan: Road Weekly and Oval Weekly only. Pro/Enterprise: all 8 + custom.
Common Troubleshooting
1. "I can't create a second league"
Free plan allows 1 league. Upgrade to Pro for unlimited, or use the 90-day trial (allows 2).
2. "Standings aren't updating after publishing results"
Standings recalculate automatically when results go to Official status. If they look wrong, check the scoring configuration and whether penalties have been applied.
3. "Driver can't register — says they're at the limit"
The season might be full (check max roster size), or the driver's plan might be soft-locked after trial expiry. Have them check their subscription status.
4. "Broadcast overlay shows 403 Forbidden"
Either the league is on a Free plan (overlays require Pro), or the league has an overlay secret set and you didn't include the token in the URL. Get the token from your league admin.
5. "Discord notifications aren't working"
Check that: (1) Discord integration is enabled (discordEnabled requires Pro), (2) webhook URL is correct, (3) the specific notification type is toggled on (results, protests, registration).
6. "I filed a protest but nothing is happening"
The league admin needs to assign stewards to your case. If it's been a while, reach out to your league admin directly.
7. "My drop weeks aren't being applied"
Drop weeks are configured per scoring preset. Check that the season's scoring config has drop weeks enabled and the count is correct. Note that if you've raced fewer rounds than the drop count, nothing gets dropped yet.
8. "Can't lock results — button is missing"
Only league admins can lock results (results.lock). Race directors can publish but not lock.
9. "Entry fee payment failed"
The league admin's Stripe Connect must be verified. Check that the connected account is active and the entry fee is configured on the season. If it's a driver payment issue, have them check their payment method.
10. "Overlay data is stale or not updating"
Right-click the OBS browser source and select Refresh. If that doesn't help, check that: (1) results have been published (pending results don't appear in overlays), (2) the SSE connection is working (the overlay auto-reconnects, but network issues can delay updates).
Related Guides