emb417 / metaforiq-next

Personal portfolio and app to demo fun projects: canvas typewriter, canvas force rain matrix style, virtual pinball league data visualizations and libowski chat bot.
https://www.metaforiq.com
1 stars 0 forks source link

Pinball - tie breaking rules #16

Closed emb417 closed 1 month ago

emb417 commented 1 month ago

Problem

Solution Options

  1. Process data week by week to sort provisional points against previous weeks, which should keep previous rankings higher if ties occur. This should also separate concerns between weekly leaderboards and season leaderboards, allowing colors to be specific to each leaderboard.
  2. Use rollingAveragePositions to break ties, allowing players that rank higher week over week to be ranked higher in ties for the season points.
  3. Use a sum of position percentage week over week for the season to break ties and show the player with the highest position percentage aggregate ranked higher. For example if a player's ending position for weeks are 11, 7, and 13, and the number of players per week are 25, 32, 35, then we would calculate (11/25 + 7/32 + 13/35) to get the sum of the position percentages.

Options 2 and 3 might yield the same results but currently rollingAveragePosition only exists for the weeks where players have a score.

Background chat from discord

From SmedleyBumblechuck:

Are ties listed in highest total score order?

From emb417:

For the season leaderboard, we start with the current week, which has players in order based on their scores, then we need to add all other players without a current week score, and finally calculate the season points total for all players and sort by the total points. So what happens in a tie of total points? It will show the player with the highest weekly score first. Higherpeanut and den_leaf is a good example this week; tied for the season but higherpeanut has a better score this week so they’re listed first.

From SmedleyBumblechuck:

Would you consider one where you get away from scores and instead use a sum of each week's standings to break ties instead of totalling game scores?

Like there will be 20 people who will play every week but never score in the top 10....so to compare their overall place you would sum each week's standings....( 15/38 + 12/40 + 22/45 + ...)

From emb417:

Absolutely! I’ve been iterating and evolving as I go, and this sounds like a good optimization. Scores per table are not being added up since tables have dramatically different scoring ranges, so it’s really based off of positions within the week but that’s based on the weekly score. The key is going beyond just this week and finding a way to normalize across all players and all weeks; I think your example gets there. Considering this is just rules for tie breaking, maybe the first player to achieve those points should be listed first?

From SmedleyBumblechuck:

You're asking about the edge case of if we still have a tie after doing the sum of each week's standings....( 15/38 + 12/40 + 22/45 + ...)? This is getting too complex, but I'd say maybe you look at the weeks where all players in the tie competed and sum their scores on those overlapping weeks?

emb417 commented 1 month ago

https://en.m.wikipedia.org/wiki/Glicko_rating_system

https://www.ifpapinball.com/menu/ranking-info-2-2/

World Pinball Player Rankings Points which are awarded according to the tournament’s strength of field, number of participants, format of the tournament, and the players’ finishing position.

emb417 commented 1 month ago

From SmedleyBumblechuck

The score approach is OK as long as the 2 people in a tie played the exact same weeks. But if they each missed 1 week, but each a different week, then how well the #1 plasyer scored that week can skew the results. Like if #1 does awesome and blows everyone away, the person is getting less credit than a week where the #1 person wasn't head and shoulders above everyone else.

emb417 commented 1 month ago

using win percentage as secondary sort in v3.13.0