Records vs Finishes¶
This is the most important distinction on the platform, and the one that most often gets used wrong. A finish and a record are not the same thing, and they do not come from the same place.
The short version¶
| Finish | Record | |
|---|---|---|
| What it is | Every time a player crosses the finish line | A player's best online time on a map |
| How many per player/map | Many (every attempt that finishes) | One (their best), per event |
| Includes offline / imported times? | Yes | No — online only |
| Use it for | Finish counts and history | Best times, ranks, world records, leaderboards |
| Stored in | The Finish table |
The Record ledger (→ mv_map_rankings) |
If you remember one rule:
The one rule
Never compute a best time, a rank, or a world record from Finish rows.
Finish includes offline and imported times with no flag to tell them apart. Best-times,
ranks, and WRs come only from the online Record ledger.
Why the split exists¶
Kacky's data comes from two kinds of play:
- Online play on the live game servers — fully trusted, every time is attributable to a real session on a real server.
- Offline / imported times — historical data migrated from old databases, or times that never went through the live online pipeline.
Both are real finishes, so both belong in the finish history. But only the online times are trustworthy enough to rank people against each other. Mixing an imported offline time into a leaderboard would let an unverifiable time claim a world record — so the platform keeps two ledgers.
What each one answers¶
Finish answers "how much has this map been played?"
- How many finishes does map KR 412 have? (all of them — online, offline, repeats)
- Has this player ever finished this map?
- Finish history / activity over time.
Record answers "who is fastest, and where do I rank?"
- What's the world record on KR 412?
- What's my personal best, and my rank?
- The hunting leaderboards, the website's records widget, the in-game
/recordslist.
The trap in the numbers¶
Two counts look similar but mean different things:
finishCount— the raw number ofFinishrows for a map. Includes online, offline/imported, and repeat finishes by the same player. It's a "how much action has this map seen" number.uniqueFinishers— how many distinct players have an online record on the map. It comes from theRecordledger (one row per player), not from counting distinct players inFinish. This is the number the in-game map list and the records widget show.
Because uniqueFinishers is drawn from the online-only ledger, it can never over-report by counting
an imported offline finisher. If you instead counted distinct players in Finish, offline/imported
players would inflate it.
For contributors (the technical edge)¶
- The materialized view
mv_map_rankingsis built from the online-onlyRecordledger and is the single source for ranks and WRs (rank-1 = the WR). The website and the in-game HUD read the same view, so they always agree. - The hunting rankings rank the cross-event online best per logical map number, and they filter
Map.IsActiveso a replaced map version doesn't create a phantom second entry. - Repositories that need a finish count read
Finish; anything that needs a time/rank readsRecord/mv_map_rankings. The two are never interchangeable — a code comment in the map read-repository literally warns against using the ranking view as a finish counter.
If you're building a feature that shows a time
Ask: is this a count, or a ranking? Counts → Finish. Rankings/WRs/personal-bests → Record /
mv_map_rankings. When in doubt, it's a ranking, and it's online-only.