Skip to content

Add position_est, an estimated 1-5 position for parsed matches - #2974

Merged
howardchung merged 1 commit into
odota:masterfrom
geracosta:position-est
Aug 9, 2026
Merged

Add position_est, an estimated 1-5 position for parsed matches#2974
howardchung merged 1 commit into
odota:masterfrom
geracosta:position-est

Conversation

@geracosta

Copy link
Copy Markdown
Contributor

Implements #1590 with the design discussed there: computed at query time (in buildMatch via compute.ts, next to the existing lane_role / is_roaming), no storage changes. The field only appears when the whole team has the parsed data it needs (gold_t/lh_t/lane_role), so unparsed matches just don't get it.

The heuristic is the one validated in the issue — 98.9% exact / 99.8% core-support against reference labels over 100 pro matches, holdout-checked: per team, rank by early farm priority (gold_t/lh_t averaged over min 10-12, early ward purchases as tiebreak) -> top 3 cores / bottom 2 supports; cores map to 1/2/3 via lane_role; supports: safe lane -> 5, mid/off -> 4; leftovers by farm order. This TS implementation produces identical output to the study script on all 1000 players of the sample.

Also effectively covers #1844, since core/support is just 1-3 vs 4-5.

Within each team, players are ranked by early farm priority (gold_t
and lh_t averaged over minutes 10-12, early ward purchases breaking
ties): top 3 cores, bottom 2 supports. Cores map to 1/2/3 through
lane_role; safe lane supports read as 5 and the rest as 4, with farm
order resolving conflicts. Computed at query time in buildMatch, only
when the whole team has the parsed fields.

Validated against reference position labels on 100 pro matches (930
players): 98.9% exact, 99.8% core/support. Details in odota#1590.
@howardchung
howardchung merged commit 316e792 into odota:master Aug 9, 2026
1 check passed
@geracosta
geracosta deleted the position-est branch August 9, 2026 15:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants