Skip to content

Scoring

Joseph Freeston edited this page Mar 3, 2023 · 3 revisions

Explanation of scoring methods, effective v1.0.0

Score Evaluation Scheme

Every datapoint submitted by a team has a rawscore attribute. Some types of data cannot be worth more than 0 points.

The rawscore is determined statically and stored in the database when the datapoint is scored upon its submission, and re-evaluated by manual intervention of the admin. The actual score contribution is determined dynamically by multiplying the rawscore with the team's multiplier.

The team's score is a static attribute as well. This may only be re-evaluated in full by the admin's intervention. Typically, a team's score is only incremented by the evaluation of a datapoint's score contribution. Team scores may be incremented or decremented by the admin. If their score is completely force-re-evaluated by admin intervention, this will erase any increment modifications performed manually by the admin.

A feature to allow admin's manual score increments or decrements to create an actual datapoint in the database is tracked by Issue #145.

Note: a full re-computation of a team's score is REQUIRED to reflect a change in their multiplier across previous datapoints.

Scoring Algorithm

  • Upon evaluation, if a given datapoint has already been scored, an exception is raised except under conditions of re-evaluation by admin intervention. In such a condition, unless the entire team's score is being re-evaluated, the team's score is decremented by the original score contribution.
  • Data types to be scored are given a "worth" in an admin-adjustable "point menu".
  • Time offsets from the hour as well as tolerances are given in seconds, set by default as per the game rules and adjustable by the admin.
  • When a datapoint is evaluated, it is first determined whether it meets one of the allowable time windows. If it does, its accuracy is determined by a percent-based tolerance, set by the rules and adjustable by the admin. If it meets these criteria, its rawscore is set to the point "worth" assigned by the "point menu".
  • The team's score is, finally, incremented by the point value of the team (rawscore X multiplier).