Rules & Help — Sim-Racing
A short introduction to the Kellahaitsa scoring for the Sim-Racing Portal (RaceRoom, Automobilista 2, Assetto Corsa Competizione) — without any legal claim; it focuses on traceability of the numbers on this website.
Portal & How to use it
On the portal overview you pick the simulation at the top (tabs). Each sim has the same areas: standings, sessions, records, and for signed-in users statistics (personal stats if a sim driver is linked to your account). The footer offers overview (figures and last import). Toggle light/dark top right; the choice is stored in your browser. On narrow screens tables scroll horizontally.
Rating groups (signed-in users)
Under rating groups you can (after login) create your own groups with any name; set the group image via URL or file upload (JPEG/PNG/WebP/GIF, server size limit). Only the creator manages the member list; add members via user search (partial name) or a single clear match. All ELO and safety values per member come from the portal’s global main rating — no separate group ELO. Average values per group are precomputed (e.g. for a future league from several groups).
Overall rating & VIP (all simulations)
The overall column combines 75% normalized ELO (roughly 400 to 2510 mapped to 0–100) and 25% from a safety share — the exact safety scale differs per sim (below). Without an account link to a site login, overall stays 0 until the driver has at least 3 rated races; with a link it applies from the first rated race.
VIP: An extra +100 points on overall — when sorting by overall, VIP drivers rank above non-VIPs. Requirements: at least 3 rated races in that sim and a signed-in user who linked the sim driver via account linking (same rule for RaceRoom, AMS2 and ACC).
RaceRoom (dedicated server)
Race sessions, results, lap times and incidents are evaluated from imported server JSON logs.
Sessions in the list
Only events with at least one timed lap (lap_ms > 0 for any participant) are shown. Completely empty sessions are hidden.
ELO
ELO is only scored from race sessions when enough drivers with chequered flag and valid time started. Without account linking on this site, ELO counts from the third rated race — the first two are warm-up without ELO change. With a linked sim account, the driver enters ELO from the first rated race (same for RaceRoom, AMS2 and ACC). Finishing position feeds pairwise comparisons; the result is clamped to a sensible range.
Safety rating (0–10)
RaceRoom safety is shown on a 0 to 10 scale and is recalculated only from race sessions after each server log import — not from practice or qualifying. See the next section for the exact calculation.
RaceRoom safety rating — how Kellahaitsa calculates it
This is a metric specific to this website. It uses incidents and laps from RaceRoom JSON but does not match the game’s internal reputation 1:1.
1. What counts per race? From all race laps two totals are built:
- Valid laps: laps with a valid time marked valid in the log.
- Weighted incident load: each lap contributes a number. Incident points from the log (if any) are multiplied by a factor per incident type — e.g. car contact, off-track, wrong way weigh the same points differently.
Invalid laps (not “valid” but plausible lap time): if RaceRoom already logs incident points, there is no second penalty on that lap. Only invalid laps without such points get a small fixed load add-on (cuts without detail).
“One incident is no incident” (RaceRoom): For safety, only load from incident points in the log (weighted by type) is scaled as if one point were removed from the race total: zero or one point behave like no incident; from two points upward it gets stricter. The add-on for invalid laps without incident points is not affected.
2. Allowed load (target) depends on valid laps: 2 load units per valid lap, at least 1 unit.
3. Ratio share = total weighted load divided by target.
4. Once per race your safety changes (clamped 0–10). A “green zone” applies: load up to 60% of target gives plus points (RaceRoom: 20% more generous than an old 50% line). Above that, penalties apply:
- At most 60% of target: safety rises — up to +0.12 per race, less near the top of the plus zone.
- Above 60%: safety drops — up to −0.12 when load meets or exceeds target.
5. Start value: new RaceRoom drivers start at 1.5 on 0–10.
Example (ratio only): 8 valid laps → target 16. Weighted sum 6 → ratio 0.375 → under 0.6, plus about +0.045. With 4 valid laps (target 8) and load 6 → 0.75 → minus about −0.045. At ratio 0.55 you still gain under the 60% rule (about +0.01).
Overall column: safety is only 25% of overall beside ELO — see above.
Automobilista 2 (AMS2)
Data comes from JSON logs in results/ams2/ (same CLI import as RaceRoom, below). ELO and safety follow RaceRoom’s idea; the safety plus/minus threshold stays at 50% of target (RaceRoom: 60% as above). Overall uses the RaceRoom formula (safety 0–10). VIP +100 as above (3 races + linked account).
Safety: session events such as impacts and CutTrackEnd form weighted load. Same “one incident is no incident”: only from the second counting event does load apply as before from the first — none or one event count as equivalent for this rule.
Assetto Corsa Competizione (ACC)
Data from JSON logs under results/ (not the AMS2 subfolder). The safety score shown is 1.00–9.99 (Kellahaitsa, inspired by LFM/iRacing ideas) and is not ACC in-game SA. Overall uses 75% ELO and 25% from this score. VIP +100 as above (3 races + linked account).
Safety: per rated race, penalty count (server JSON) and invalid laps form weighted incidents. “One incident is no incident”: one free pass per race — first one penalty level less; if no penalty, one invalid lap is dropped instead.
Driver charts
Per sim you see trends for position, ELO and safety (where available). Where offered, “Valid laps (cumulative)” is the cumulative share of valid laps over all races so far at each point — not a single event only.
Data & import
Raw data comes from your server or export logs. An admin imports with one CLI script: php cli_rrlogs.php (e.g. verbose, nomove, AMS2 optional ams2move, reset clear confirm). Without import, tables are missing or stale. Short import notes also appear in each sim’s overview in the portal.