TECHNOLOGIES FOR AUTOMATICALLY DETERMINING PLAYER RATING AND RANKING FOR PROGRESSION BALL TENNIS AND PICKLEBALL

Information

  • Patent Application
  • 20250177837
  • Publication Number
    20250177837
  • Date Filed
    November 26, 2024
    a year ago
  • Date Published
    June 05, 2025
    8 months ago
  • Inventors
    • Logsdon; Dan (Richmond, VA, US)
    • Van de Water; Ryan (Irvine, CA, US)
    • Zimbalist; Alex (Somerville, MA, US)
    • Burns; Sam (Brooklyn, NY, US)
    • Bader; Salman (Clearwater, FL, US)
  • Original Assignees
Abstract
Technologies for automatically determining rating levels for progression ball tennis players and pickleball players are disclosed. A rating server identifies match outcome results and iteratively updates rating values for players based on differences between expected outcome and actual outcome and one or more match weighting factors. For progression ball tennis, also called color ball tennis, each player rating is reset to an initial value based on progression level before iterating, and the rating values are updated based on a progression coefficient. For pickleball, doubles match results are each refactored into a set of singles match results, and expected outcomes are determined in terms of points rather than games. For pickleball, rating values are updated between fully reliable players. For pickleball, rating values for non-fully reliable players are filled based on match results with reliable players. Other embodiments are described and claimed.
Description
BACKGROUND

Youth tennis players are increasingly being introduced to the sport through modified developmental versions of the game called progression ball or color ball tennis. Color ball tennis creates an enhanced experience for young players to develop their tennis games using modified equipment, court sizes, and play formats. The levels of color ball tennis are defined by the ball color (red ball, orange ball, and green ball). Color Ball programming is designed to make learning tennis more accessible and fun. As players progress, they may advance through the colors (e.g., from red ball to orange ball to green ball), including progression up to traditional, full-court tennis, which is sometimes called yellow ball tennis.


Currently there are several ranking and rating systems for tennis including objective methods (e.g., the Universal Tennis Rating (UTR) and the World Tennis Number (WTN)) and subjective methods (e.g., the National Tennis Rating Program (NTRP) number). Objective methods of rating players use information from the matches such as wins, losses, and win percentages to determine relative ratings and rankings. Subjective methods of rating players involve subjective evaluation of skill level by a third party individual. Both types of ranking and rating systems typically rate players only after they are skilled enough to use traditional tennis balls (i.e., yellow balls). No objective ranking or rating systems currently exist for junior color ball players.


Pickleball is a popular racquet sport that shares characteristics with other sports such as tennis and badminton. Currently there are several ranking and rating systems for pickleball including objective methods (e.g., the Dynamic Universal Pickleball Rating (DUPR) and USA Pickleball Tournament Player Ratings (UTPR)) and subjective methods (e.g., the USA Pickleball Player Skills Rating). Current objective pickleball ratings may use self-reported scores. Additionally, current objective pickleball ratings may average a player and their partner for calculating doubles rankings.


SUMMARY

According to one aspect of the disclosure, a computing device for determining a progression ball rating level for a progression ball tennis player is configured to identify a plurality of match outcome results, wherein each match outcome result is indicative of a progression ball tennis match score and a pair of progression ball tennis players from a plurality of progression ball tennis players; set a rating value for each player of the plurality of progression ball tennis players to a predetermined initial value; for each iteration of a plurality of iterations, and for each player of the plurality of progression ball tennis players: determine a progression coefficient based on the rating value of the respective player; determine a first difference between an expected outcome and an actual outcome for each match of the match outcome results associated with the respective player, wherein the expected outcome is based on the rating values of the pair of players associated with the match; determine a first weight factor for each match of the match outcome results associated with the respective player; and update the rating value of the respective player based on the progression coefficient, the first difference, and the first weight factor for each match; and determine a final rating for each player in response to completion of the plurality of iterations.


In an embodiment, to determine the first difference between the expected outcome and the actual outcome comprises to compare a percentage of games won to an expected percentage of games won. In an embodiment, to determine the first weight factor comprises to determine the first weight factor based on an opponent connectivity weight, a games played weight, or a competitiveness factor.


In an embodiment, to identify the plurality of match outcome results further comprises to determine a progression level for each match outcome result, wherein the progression ball level is selected from an orange level and a green level. In an embodiment, to set the rating value comprises determining the predetermined initial value based on the progression ball level. In an embodiment, to determine the progression coefficient comprises to determine the progression coefficient based on the progression ball level.


In an embodiment, the computing device is further configured to floor the final rating for each player of the plurality of progression ball tennis players based on a number of match results associated with the respective player. In an embodiment, to floor the final rating comprises to determine whether the number of match results associated with the respective player has a predetermined relationship to a predetermined number of match results; determine whether a stored floor value exists for the respective player in response to a determination that the number of match results has the predetermined relationship to the predetermined number of match results; store the final value as the stored floor value for the respective player in response to a determination that the stored floor value does not exist for the respective player; determine whether the final value for the respective player exceeds the stored floor value in response to a determination that the stored floor value exists for the respective player; store the final value as the stored floor value for the respective player in response to a determination that the final value exceeds the stored floor value; and set the final value for the respective player to the stored floor value for the respective player in response to a determination that the final value does not exceed the stored floor value.


According to another aspect, a computing device for determining a pickleball rating level for a pickleball player is configured to identify a plurality of match outcome results, wherein each match outcome result is indicative of a pickleball match score and a pair of pickleball players from a plurality of pickleball players; determine whether each player of the plurality of pickleball players is fully reliable; set a rating value for each player of the plurality of pickleball players that is not fully reliable to a null value; for each iteration of a plurality of iterations, and for each player of the plurality of pickleball players determine a first difference between an expected outcome and an actual outcome for each match of the match outcome results associated with the respective player, wherein the expected outcome is based on the rating values of the pair of players associated with the match; determine a first weight factor for each match of the match outcome results associated with the respective player; and update the rating value of the respective player based on the first difference and the first weight factor for each match; and determine a final rating for each player in response to completing the plurality of iterations.


In an embodiment, to determine the first difference between the expected outcome and the actual outcome comprises to compare a percentage of points won to an expected percentage of points won. In an embodiment, to determine the first weight factor comprises to determine the first weight factor based on a time degradation weight, an opponent connectivity weight, a match reliability weight, or a competitiveness factor.


In an embodiment, to identify the plurality of match outcome results comprises to identify a doubles match outcome result, wherein each doubles match outcome result is indicative of a pickleball match score and a pair of teams, wherein each team is indicative of a pair of pickleball players from the plurality of pickleball players; and refactor the doubles match outcome result as a set of four match outcome results, wherein each match outcome result of the set of four match outcome results is indicative of the pickleball match score and a pair of pickleball players, wherein each player of the pair of pickleball players is selected from an opposing team of the doubles match outcome result.


In an embodiment, to determine whether each player of the plurality of pickleball players is fully reliable comprises to determine a number of matches against main pool opponents for the respective pickleball player. In an embodiment, the computing device is configured to, for each player of the plurality of pickleball players having the rating value set to the null value, fill the rating value of the respective player based on a match outcome result associated with the respective player and an opposing player having a non-null rating value.


According to another aspect, a method for determining a progression ball rating level for a progression ball tennis player, the method comprising identifying, by a computing device, a plurality of match outcome results, wherein each match outcome result is indicative of a progression ball tennis match score and a pair of progression ball tennis players from a plurality of progression ball tennis players; setting, by the computing device, a rating value for each player of the plurality of progression ball tennis players to a predetermined initial value; for each iteration of a plurality of iterations, and for each player of the plurality of progression ball tennis players determining, by the computing device, a progression coefficient based on the rating value of the respective player; determining, by the computing device, a first difference between an expected outcome and an actual outcome for each match of the match outcome results associated with the respective player, wherein the expected outcome is based on the rating values of the pair of players associated with the match; determining, by the computing device, a first weight factor for each match of the match outcome results associated with the respective player; and updating, by the computing device, the rating value of the respective player based on the progression coefficient, the first difference, and the first weight factor for each match; and determining, by the computing device, a final rating for each player in response to completing the plurality of iterations.


In an embodiment, determining the first difference between the expected outcome and the actual outcome comprises comparing a percentage of games won to an expected percentage of games won. In an embodiment, determining the first weight factor comprises determining the first weight factor based on an opponent connectivity weight, a games played weight, or a competitiveness factor.


In an embodiment, identifying the plurality of match outcome results further comprises determining a progression level for each match outcome result, wherein the progression ball level is selected from an orange level and a green level. In an embodiment, setting the rating value comprises determining the predetermined initial value based on the progression ball level. In an embodiment, determining the progression coefficient comprises determining the progression coefficient based on the progression ball level.


In an embodiment, the method further comprises flooring, by the computing device, the final rating for each player of the plurality of progression ball tennis players based on a number of match results associated with the respective player. In an embodiment, flooring the final rating comprises determining whether the number of match results associated with the respective player has a predetermined relationship to a predetermined number of match results; determining whether a stored floor value exists for the respective player in response to determining that the number of match results has the predetermined relationship to the predetermined number of match results; storing the final value as the stored floor value for the respective player in response to determining that the stored floor value does not exist for the respective player; determining whether the final value for the respective player exceeds the stored floor value in response to determining that the stored floor value exists for the respective player; storing the final value as the stored floor value for the respective player in response to determining that the final value exceeds the stored floor value; and setting the final value for the respective player to the stored floor value for the respective player in response to determining that the final value does not exceed the stored floor value.


According to another aspect, a method for determining a pickleball rating level for a pickleball player comprises identifying, by a computing device, a plurality of match outcome results, wherein each match outcome result is indicative of a pickleball match score and a pair of pickleball players from a plurality of pickleball players; determining, by the computing device, whether each player of the plurality of pickleball players is fully reliable; setting, by the computing device, a rating value for each player of the plurality of pickleball players that is not fully reliable to a null value; for each iteration of a plurality of iterations, and for each player of the plurality of pickleball players: determining, by the computing device, a first difference between an expected outcome and an actual outcome for each match of the match outcome results associated with the respective player, wherein the expected outcome is based on the rating values of the pair of players associated with the match; determining, by the computing device, a first weight factor for each match of the match outcome results associated with the respective player; and updating, by the computing device, the rating value of the respective player based on the first difference and the first weight factor for each match; and determining, by the computing device, a final rating for each player in response to completing the plurality of iterations.


In an embodiment, determining the first difference between the expected outcome and the actual outcome comprises comparing a percentage of points won to an expected percentage of points won. In an embodiment, determining the first weight factor comprises determining the first weight factor based on a time degradation weight, an opponent connectivity weight, a match reliability weight, or a competitiveness factor.


In an embodiment, identifying the plurality of match outcome results comprises identifying a doubles match outcome result, wherein each doubles match outcome result is indicative of a pickleball match score and a pair of teams, wherein each team is indicative of a pair of pickleball players from the plurality of pickleball players; and refactoring the doubles match outcome result as a set of four match outcome results, wherein each match outcome result of the set of four match outcome results is indicative of the pickleball match score and a pair of pickleball players, wherein each player of the pair of pickleball players is selected from an opposing team of the doubles match outcome result.


In an embodiment, determining whether each player of the plurality of pickleball players is fully reliable comprises determining a number of matches against main pool opponents for the respective pickleball player. In an embodiment, the method further comprises, for each player of the plurality of pickleball players having the rating value set to the null value, filling the rating value of the respective player based on a match outcome result associated with the respective player and an opposing player having a non-null rating value.





BRIEF DESCRIPTION OF THE DRAWINGS

The concepts described herein are illustrated by way of example and not by way of limitation in the accompanying figures. For simplicity and clarity of illustration, elements illustrated in the figures are not necessarily drawn to scale. Where considered appropriate, reference labels have been repeated among the figures to indicate corresponding or analogous elements.



FIG. 1 is a simplified block diagram of at least one embodiment of a system for rating and ranking progression ball and pickleball players;



FIG. 2 is a simplified block diagram of at least one embodiment of system architecture for automatically determining progression ball player ratings that may be executed by the system of FIG. 1;



FIG. 3 is a simplified block diagram of at least one embodiment of a method for processing progression ball data that may be executed by the system of FIGS. 1-2;



FIG. 4 is a simplified block diagram of at least one embodiment of a method for generating progression ball ratings that may be executed by the system of FIGS. 1-2;



FIG. 5 is a chart illustrating final rating results that may be achieved by the methods of FIGS. 3-4;



FIG. 6 is a simplified block diagram of at least one embodiment of a system architecture for automatically determining pickleball player ratings that may be executed by the system of FIG. 1;



FIG. 7 is a simplified block diagram of at least one embodiment of a method for processing pickleball data that may be executed by the system of FIGS. 1 and 6;



FIG. 8 is a simplified block diagram of at least one embodiment of a method for calculating pickleball ratings that may be executed by the system of FIGS. 1 and 6; and



FIG. 9 is a simplified block diagram of an environment that may be established by the system of FIG. 1.





DETAILED DESCRIPTION OF THE DRAWINGS

While the concepts of the present disclosure are susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will be described herein in detail. It should be understood, however, that there is no intent to limit the concepts of the present disclosure to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives consistent with the present disclosure and the appended claims.


References in the specification to “one embodiment,” “an embodiment,” “an illustrative embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may or may not necessarily include that particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to effect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described. Additionally, it should be appreciated that items included in a list in the form of “at least one A, B, and C” can mean (A); (B); (C); (A and B); (A and C); (B and C); or (A, B, and C). Similarly, items listed in the form of “at least one of A, B, or C” can mean (A); (B); (C); (A and B); (A and C); (B and C); or (A, B, and C).


The disclosed embodiments may be implemented, in some cases, in hardware, firmware, software, or any combination thereof. The disclosed embodiments may also be implemented as instructions carried by or stored on a transitory or non-transitory machine-readable (e.g., computer-readable) storage medium, which may be read and executed by one or more processors. A machine-readable storage medium may be embodied as any storage device, mechanism, or other physical structure for storing or transmitting information in a form readable by a machine (e.g., a volatile or non-volatile memory, a media disc, or other media device).


In the drawings, some structural or method features may be shown in specific arrangements and/or orderings. However, it should be appreciated that such specific arrangements and/or orderings may not be required. Rather, in some embodiments, such features may be arranged in a different manner and/or order than shown in the illustrative figures. Additionally, the inclusion of a structural or method feature in a particular figure is not meant to imply that such feature is required in all embodiments and, in some embodiments, may not be included or may be combined with other features.


Referring now to FIG. 1, an illustrative system 100 for automatically determining player ratings and rankings for progression ball tennis (also called color ball tennis) and pickleball includes a rating server 102 and one or more user devices 104 in communication over a network 106. To generate player ratings, the rating server 102 analyzes match results for a population of players and generates ratings using an Elo-like rating algorithm. As described further below, the rating is determined by comparing an expected outcome for a match based on player ratings versus the actual outcome of the match and updating the player ratings accordingly. The rating algorithms for color ball tennis (progression ball tennis) and pickleball are modified based on the particular aspects of each sport.


Tennis play with colored balls (progression ball tennis) is distinctly different from traditional tennis play due to the size and weight of the balls being used, the skill level of the players, and relative isolation of pockets of players. These factors may prohibit the use of previously established objective rating methods. The present disclosure relates generally to computer-based junior performance rating systems and methods and particularly for rating junior color ball tennis players. As described further below, the technologies described herein may provide multiple advantages over existing junior performance rating systems and methods. In particular, according to the disclosure herein, meaningful relative player ratings can be determined by relative match performance using multiple matches per player. Further, ratings can be subdivided into smaller components for granular rating and can be consolidated into larger components for less granular rating. The systems disclosed herein provide meaningful, reliable ratings for players with multiple disconnected subgroups, which is common for younger players. Meaningful changes in the player ratings can be calculated based upon recent match results. Additionally, ratings can be updated immediately after a new result is recorded. The technologies disclosed herein provides for the ability for a player to transition to a new developmental tennis ball color level with increase in rating. The technologies disclosed herein provide a ranking/rating system that can distinguish between ability of players playing with the same type of developmental tennis ball (e.g., rating orange ball players relative to other orange ball players). Further, the technologies disclosed herein provide a ranking/rating system that can distinguish between ability of players playing with different type of developmental tennis ball (e.g., distinguishing between an orange ball player and a green ball player). The technologies disclosed herein further provide the ability for a player to retain a floor rating when they obtain a certain level of skill, and the player will not drop below this floor.


Similarly, two objective methods of rating pickleball players exist: DUPR and UTPR. DUPR and UTPR both leverage the difference in expected outcome between two players (defined by an expectation function), in singles play, or two teams, in doubles play, to determine whether to move a player or team up or down relative to their opponent after a match is completed. Due to the proprietary nature of these algorithms, the specifics of this calculation are not publicly available. Published information for the DUPR algorithm include utilization of self-reported scores and averaging a player and their partner ratings for doubles expectation. UTPR also averages a player and their partner for doubles expectation.


The present disclosure relates generally to objective computer-based rating systems and methods for rating players and relates specifically to pickleball players. The disclosed technologies improve upon previously established methods. For example, meaningful relative player ratings can be determined by relative game performance using multiple games per player for both singles and doubles play. In the disclosed technologies, one consistent algorithm, methodology, and expectation function are used for both singles and doubles play. Further, ratings can be subdivided into smaller components for granular rating and can be consolidated into larger components for less granular rating. Meaningful changes in the player ratings can be calculated based upon recent game results, and ratings can be updated immediately after a new result is recorded. The disclosed technologies provide the ability for a player to increase or decrease in rating based on match outcome relative to expectation. For doubles games, each opponent is considered separately and expectation is determined only by the player and respective opponent(s). In the disclosed technologies, rating changes may be weighted by the recency of the game result. In the disclosed technologies, rating changes may be weighted by the competitiveness of the game (e.g., how closely rated the opponents are). In the disclosed technologies, rating changes may be weighted by how connected the player is to a main network of players (e.g., whether a player's opponents have played a significant number of matches against players that have good connection to a defined center). In the disclosed technologies, rating changes may be weighted by the total number of points played in a game. In the disclosed technologies, rating changes may be weighted by the minimum number of total games played by each player.


Referring again to FIG. 1, the rating server 102 is configured to automatically determine progression ball and/or pickleball ratings and to otherwise perform the functions described herein. Accordingly, the rating server 102 may be embodied as any type of computation or computer device capable of performing the functions described herein, including, without limitation, a server, a rack-mounted server, a blade server, a network appliance, a web appliance, a distributed computing system, a desktop computer, a laptop computer, a notebook computer, a tablet computer, a mobile computing device, a wearable computing device, a multiprocessor system, a processor-based system, and/or a consumer electronic device. As shown in FIG. 1, the illustrative rating server 102 includes a processor 120, an I/O subsystem 122, memory 124, a data storage device 126, and communication circuitry 128. Of course, the rating server 102 may include other or additional components, such as those commonly found in a server (e.g., various input/output devices), in other embodiments. Additionally, in some embodiments, one or more of the illustrative components may be incorporated in, or otherwise form a portion of, another component. For example, the memory 124, or portions thereof, may be incorporated in the processor 120 in some embodiments. Additionally, in some embodiments, the rating server 102 may be embodied as a “virtual server” formed from multiple computing devices distributed across the network 106 and operating in a public or private cloud. Accordingly, although the rating server 102 is illustrated in FIG. 1 as embodied as a single computing device, it should be appreciated that the rating server 102 may be embodied as multiple devices cooperating together to facilitate the functionality described below.


The processor 120 may be embodied as any type of processor or compute engine capable of performing the functions described herein. For example, the processor may be embodied as a single or multi-core processor(s), digital signal processor, microcontroller, or other processor or processing/controlling circuit. Similarly, the memory 124 may be embodied as any type of volatile or non-volatile memory or data storage capable of performing the functions described herein. In operation, the memory 124 may store various data and software used during operation of the rating server 102 such as operating systems, applications, programs, libraries, and drivers. The memory 124 is communicatively coupled to the processor 120 via the I/O subsystem 122, which may be embodied as circuitry and/or components to facilitate input/output operations with the processor 120, the memory 124, and other components of the rating server 102. For example, the I/O subsystem 122 may be embodied as, or otherwise include, memory controller hubs, input/output control hubs, firmware devices, communication links (i.e., point-to-point links, bus links, wires, cables, light guides, printed circuit board traces, etc.) and/or other components and subsystems to facilitate the input/output operations. In some embodiments, the I/O subsystem 122 may form a portion of a system-on-a-chip (SoC) and be incorporated, along with the processor 120, the memory 124, and other components of the rating server 102, on a single integrated circuit chip.


The data storage device 126 may be embodied as any type of device or devices configured for short-term or long-term storage of data such as, for example, memory devices and circuits, memory cards, hard disk drives, solid-state drives, or other data storage devices. The communication circuitry 128 of the rating server 102 may be embodied as any communication circuit, device, or collection thereof, capable of enabling communications between the rating server 102, the client devices 104, and/or other remote devices. The communication circuitry 128 may be configured to use any one or more communication technology (e.g., wireless or wired communications) and associated protocols (e.g., Ethernet, Bluetooth®, Wi-Fi®, WiMAX, etc.) to effect such communication.


Each client device 104 may be configured to provide player data, match data, and other data to the rating server 102 and/or to access ratings and rankings generated by the rating server 102 and to otherwise perform the functions described herein. Accordingly, each client device 104 may be embodied as any type of computation or computer device capable of performing the functions described herein, including, without limitation, a smartphone, a tablet computer, a consumer electronic device, a desktop computer, a laptop computer, a network appliance, a web appliance, a distributed computing system, and/or a multiprocessor system. Thus, the client device 104 includes components and devices commonly found in a smartphone or similar computing device, such as a processor, an I/O subsystem, a memory, a data storage device, communication circuitry, and/or various I/O devices. Those individual components of the client device 104 may be similar to the corresponding components of the rating server 102, the description of which is applicable to the corresponding components of the client device 104 and is not repeated herein so as not to obscure the present disclosure.


As discussed in more detail below, the rating server 102 and the client devices 104 may be configured to transmit and receive data with each other and/or other devices of the system 100 over the network 106. The network 106 may be embodied as any number of various wired and/or wireless networks. For example, the network 106 may be embodied as, or otherwise include, a wired or wireless local area network (LAN), a wired or wireless wide area network (WAN), and/or a publicly-accessible, global network such as the Internet. As such, the network 106 may include any number of additional devices, such as additional computers, routers, and switches, to facilitate communications among the devices of the system 100.


Referring now to FIG. 2, in use, the rating server 102 may establish a system architecture 200 for automatically determining progression ball player ratings. The various components of the architecture 200 may be embodied as hardware, firmware, software, or a combination thereof. As such, in some embodiments, one or more of the components of the architecture 200 may be embodied as circuitry or a collection of electrical devices. It should be appreciated that, in such embodiments, one or more of those components may form a portion of the processor 120, the I/O subsystem 122, and/or other components of the rating server 102.


As shown, data 1 relating to progression ball (also called color ball) players and data 2 indicative of daily color ball match results may be stored in an electronic database 3. Data from the database 3 may be filtered and otherwise processed by a processing program 4 and progression ball ratings may be determined by an algorithm program 5. Results from the algorithm program 5 are stored back in the electronic database 3. One potential embodiment of the processing program 4 is described further below in connection with FIG. 3, and one potential embodiment of the algorithm program 5 is described further below in connection with FIG. 4. The electronic database 3, including progression ball ratings and/or other data may be accessed using a mobile/web application 6. For example, one or more client devices 104 may access the electronic database 3 using a mobile/web application provided by the rating server 102.


Referring now to FIG. 3, in use, the rating server 102 may execute a method 300 for processing progression ball data. It should be appreciated that, in some embodiments, the operations of the method 300 may be performed by one or more components of the architecture 200 of the rating server 102 as shown in FIG. 2; for example, the method 300 may be executed in connection with the processing program 4 as described above in connection with FIG. 2.


The processing program 4 receives color ball match results data and color ball player data from the electronic database 3. At block 7, the rating server 102 receives color ball match results and identifies the color level for each match result (e.g., green ball or orange ball results). The identified match results are provided to the algorithm program 5 as orange ball results 8 and green ball results 9. In the illustrative embodiment, red ball results are not used. Of course, in other embodiments other types and/or arrangements of progression ball ratings may be used. At block 10, the rating server 102 receives color ball player data and identifies the type of each color ball player. For green ball players, the rating server 102 sets the initial rating to 7 for each player and provides green ball player data 10 to the algorithm program 5. For orange ball players, the rating server 102 sets the initial rating to 2 for each player and provides orange ball player data 11 to the algorithm program 5.


Referring now to FIG. 4, in use, the rating server 102 may execute a method 400 for generating progression ball ratings. It should be appreciated that, in some embodiments, the operations of the method 400 may be performed by one or more components of the architecture 200 of the rating server 102 as shown in FIG. 2; for example, the method 400 may be executed in connection with the algorithm program 5 as described above in connection with FIG. 2.


The algorithm program 5 receives orange ball results 8 and orange ball player data 11 as well as green ball results 9 and green ball player data 10. At block 12, the rating server 102 calculates a game win percentage. The game win percentage is calculated based on game results (i.e., percentage of games won) rather than sets or matches. The win game percentage is capped at a predetermined maximum percentage, which is illustratively 0.9, or 90%. For example, if a player has a result in which the player wins four games and loses zero games (4-0), the player's win game percentage is initially calculated as 1.0 (100%), and is capped at 0.9 (90%).


The rating server 102 may filter or otherwise select certain match results to be counted toward the rating. In the illustrative embodiment, matches are classified into three categories: Within2, determined using Equation 1, below; Non-Blowout, which is any match that was more competitive than 4-1, 4-1; and Most Viable, which meets both the Within2 and non-blowout conditions. In Equation 1, winner is the rating of the winning player, and loser is the rating of the losing player. For each iteration of the algorithm, the rating server 102 selects the 30 most recent or the 10 most competitive matches from the following sets in order: (1) If a player has at least two matches that meet the Most Viable criteria, then the player is rated based on those Most Viable matches. (2) If a player has at least two matches that meet the Non-Blowout criteria, then the player is rated based on those Non-Blowout matches. (3) If a player has at least two matches that meet the Within2 criteria, then the player is rated based on those Within2 matches. (4) If the player does not have at least two matches that meet any of those criteria, then the player is rated based on all of the player's matches.









Within

2


{





winner
-
loser

<=
2




winner
>=
loser







winner
-
loser

>=

-
3





winner
<
loser









(
1
)







At block 13, the rating server 102 calculates the difference between expected outcome and actual outcome based on player ratings. Based on this difference, the rating server 102 determines a delta value. The delta value is an amount to adjust a player's score that depends upon the difference between expected outcome and actual outcome. If a player performs better than expected, the player's rating tends to increase (i.e., delta is positive), and if the player performs worse than expected, the player's rating tends to decrease (i.e., delta is negative). In the illustrative embodiment the difference between expected and actual outcome and the delta is determined using Equations 2-4, below. In Equations 2-4, winner is the winning player's rating, and loser is the losing player's rating. In Equation 2, the WinnerGameExpectation is determined by comparing the winner rating and the loser rating. In Equation 3, Diff is determined as the difference between the WinnerGamePct determined as described above in connection with block 12 and the WinnerGameExpectation. In Equation 4, Delta is determined based on winner rating, loser rating, and Diff. The final value for Delta is capped at 0.5.









WinnerGameExpectation
=

{






winner
-
loser

>=
3

,



.9







winner
-
loser

>=
2

,



.8







winner
-
loser

>=
1

,



.6







winner
-
loser

>

-
1


,



.5







winner
-
loser

>

-
2


,



.4







winner
-
loser

>

-
3


,



.2





Otherwise
,



.1








(
2
)












Diff
=

WinnerGamePct
-
WinnerGameExpectation





(
3
)













Delta
=

{






winner
-
loser

<
1

,




2
*
Diff






Otherwise
,



Diff










(
4
)








At block 14, the rating server 102 calculates the opponent connectivity weight. The opponent connectivity weight gives a larger weight to games involving opponents having greater connectivity with other players; that is, opponents that play a larger number of other players. The opponent connectivity weight (opp_conn_weight) may be calculated according to Equation 5, below. In Equation 5, the opponent connectivity weight is C, and the value si is the number of opponent's unique second level connections.









C
=

{






s
1

>=
25

,



1





Otherwise
,


s
1

25













(
5
)







At block 15, the rating server 102 calculates score weight. In some embodiments, the rating server 102 may calculate a games played weight as the total number of games played during a match.


At block 16, the rating server 102 calculates competitiveness factor. The competitiveness factor or competitiveness weight increases weight when the players in a match have a closer rating. The competitiveness weight may be calculated according to Equation 6, below. In Equation 6, winner is the rating of the winning player and loser is the rating of the losing player. The rating server 102 may determine a match weight as a product of the opponent connectivity weight, the games played weight, and the competitiveness weight.









Compet
=

{






winner
-
loser

>
2

,
1






Otherwise
,

5
-

2
*

(

winner
-
loser

)












(
6
)







At block 17, the rating server 102 determines a progression coefficient. The progression coefficient allows the ratings for newer or lower-rated players to increase more rapidly as compared to higher-rated players. Youth players may especially benefit from this enhanced progression. The progression coefficient may be determined using Equations 7 and 8, below. Equation 7 determines the progression coefficient for orange ball players, OrangeProg, and Equation 8 determines the progression coefficient for green ball players, GreenProg. As shown, the progression coefficient is determined based on the player's current rating r.









OrangeProg
=

{





r
<
2

,
3







r
<
3

,
2






Otherwise
,
1









(
7
)












GreenProg
=

{





r
<
8

,
3







r
<
9

,
2






Otherwise
,
1









(
8
)







At block 18, the rating server 102 calculates a rating for each player for a subsequent iteration. The rating is determined using the previous rating for the player, the delta determined for each match, the progression coefficient, and the match weight for the match, which are determined as described above. A player's dynamic rating (i.e., the rating at which the player performed in a particular match) is determined by adding the previous rating to a delta value for that match multiplied by the progression coefficient. The player's rating is the weighted average of performances for all matches that count toward the rating. In the illustrative embodiment, the rating is determined using Equation 9, below. In Equation 9, rt is the player's updated rating (also called “today's rating” for systems in which a rating is calculated daily), n is the number of matches counting toward the rating; wi is the weight for the ith match; ry is the player's previous rating (also called “yesterday's rating”); di is the delta for the ith match, which is determined as described above; and p is the progression coefficient for the player. The progression coefficient p is constant for each iteration as it is based on the player's rating at the beginning of an iteration and applies to all deltas equally. The match weight wi is the product of the games played weight, opponent connectivity weight, and the competitiveness weight which are determined as described above. After determining the rating, the rating value may be capped. Illustratively, if the player's rating drops below 10 in orange ball, then the rating is lifted back to 10, and if the player's rating drops below 50 in green ball, then the rating is lifted back to 50. If the player has less than 5 orange ball matches and the player's rating is above 40, then the player's rating is capped at 40. If the player has less than 5 green ball matches and the player's rating is above 80, then the player's rating is capped at 80. If the player has at least 5 orange ball matches and the player's rating is above 49, then the player's rating is capped at 49. If the player has at least 5 green ball matches and the player's rating is above 99, then the player's rating is capped at 99. Each player's updated rating is stored in the electronic database 3.










r
t

=




i
=
1

n




w
i

*

(


r
y

+

(


d
i

*
p

)


)



w
i







(
9
)







At block 19, the rating server 102 repeats calculation of the rating, including the calculations of blocks 13-18 for 25 iterations. Additionally or alternatively, in some embodiments the rating server 102 may repeat calculations for a different number of iterations, such as 10 iterations.


After performing the appropriate number of iterations (e.g., 25 iterations), the rating server 102 may perform a flooring operation on each player's current rating (e.g., the player's rating as updated after 25 iterations). If a player currently has results for 10 or more orange or green ball matches, and that player has not yet been assigned a floor, then the player's current orange or green rating is assigned to that player's orange or green floor. If a player currently has results for 10 or more orange or green ball matches, and that player has previously been assigned a floor, and the current rating is greater than the floor, then that player's orange or green floor is set to that player's current orange or green rating. If a player currently has results for 10 or more orange or green ball matches, and that player has previously been assigned a floor, and the player's current rating is less than the floor, then that player's current orange or green rating is set to that player's orange or green floor. If a player currently has results for less than 10 orange or green ball matches, but the player has a floor rating from an earlier time when that player did have 10 orange or green ball matches, then the above flooring rules apply. That player retains the player's floor even though the player no longer has 10 orange or green ball matches. If a player currently has results for less than 10 orange or green ball matches and does not have a floor rating, then nothing happens. The player does not receive a floor, and a floor rating is not set.


At block 20, the rating server 102 obtains final ratings for players. The rating value r for each player may be mapped onto a display scale. In the illustrative embodiment, the display scale includes whole numbers from 0 to 100. The rating value determined as described above may be mapped to the display scale using a percentile mapping function. Referring now to FIG. 5, chart 500 illustrates one potential embodiment of a distribution of final ratings for progression ball players based on an illustrative data set. Curve 502 represents final ratings for orange ball players, curve 504 represents final ratings for green ball players, and curve 506 represents final ratings for players who play both orange ball and green ball. As shown, most ratings are between 25 and 75. Green ball players tend to have higher ratings than orange ball players, and players who play both types of progression ball tend to fall in between orange ball and green ball players. Accordingly, the final ratings accurately reflect progression from orange ball to green ball.


Referring again to FIG. 4, after determining the final ratings, the rating server 102 stores the final ratings in the electronic database 3. Those ratings may be accessed using the mobile/web application 6 as described above. After determining and storing final ratings, the methods 300-400 are completed. The rating server 102 may periodically or responsively recalculate player ratings based on updated match data or other updated data. For example, the rating server 102 may recalculate player ratings nightly, weekly, or on any other appropriate schedule.


Referring now to FIG. 6, in use, the rating server 102 may establish a system architecture 600 for automatically determining pickleball player ratings. The various components of the architecture 600 may be embodied as hardware, firmware, software, or a combination thereof. As such, in some embodiments, one or more of the components of the architecture 600 may be embodied as circuitry or a collection of electrical devices. It should be appreciated that, in such embodiments, one or more of those components may form a portion of the processor 120, the I/O subsystem 122, and/or other components of the rating server 102.


As shown, data 1 indicative of initial pickleball player ratings and data 2 indicative of daily pickleball match results may be stored in an electronic database 3. Data from the database 3 may be filtered and otherwise processed by a processing program 4 and pickleball ratings may be determined by an algorithm program 5. Results from the algorithm program 5 are stored back in the electronic database 3. One potential embodiment of the processing program 4 is described further below in connection with FIG. 7, and one potential embodiment of the algorithm program 5 is described further below in connection with FIG. 8. The electronic database 3, including pickleball ratings and/or other data may be accessed using a mobile/web application 6. For example, one or more client devices 104 may access the electronic database 3 using a mobile/web application provided by the rating server 102.


Referring now to FIG. 7, in use, the rating server 102 may execute a method 700 for processing pickleball data. It should be appreciated that, in some embodiments, the operations of the method 700 may be performed by one or more components of the architecture 600 of the rating server 102 as shown in FIG. 6; for example, the method 700 may be executed in connection with the processing program 4 as described above in connection with FIG. 6.


The processing program 4 receives pickleball match results data and pickleball player ratings from the electronic database 3. At block 7, the rating server 102 receives pickleball match results and classifies each match result as singles or doubles. Singles match data 9 is provided to the algorithm program 5. At block 8, doubles match data is split into a set of two-player results that can be processed similarly to singles results. In particular, the doubles match data is refactored as a series of singles results. This allows the rating server 102 to perform nearly identical processes for the singles and doubles algorithms. For example, a single doubles match including four players identified as winner 1, winner 2, loser 1, and loser 2 would be refactored as the following singles matches: winner 1 vs. loser 1, winner 1 vs. loser 2, winner 2 vs. loser 1, and winner 2 vs. loser 2. This is an improvement over existing pickleball ratings systems, which typically average results for doubles partners. The refactored doubles match data 10 is provided to the algorithm program 5.


At block 11, the rating server 102 determines whether stored ratings for each player are fully reliable. If not, a null rating, empty rating, default rating, or other indicator that the rating is not fully reliable is provided as rating data 12 to the algorithm program 5. If the rating for a player is fully reliable, then prior rating data 13 is provided to the algorithm program 5. Accordingly, at the end of data preparation, the algorithm program 5 is provided known ratings for fully reliable players, and unknown ratings for everyone else. A player's reliability rating may be determined based on the number of matches with main-pool opponents, as described further below.


Referring now to FIG. 8, in use, the rating server 102 may execute a method 800 for generating pickleball ratings. It should be appreciated that, in some embodiments, the operations of the method 800 may be performed by one or more components of the architecture 600 of the rating server 102 as shown in FIG. 6; for example, the method 800 may be executed in connection with the algorithm program 5 as described above in connection with FIG. 6.


The algorithm program 5 receives singles match data 9, two-player doubles match data 10, null player ratings 12, and prior player ratings 13. The pickleball algorithm can be broken into three basic sections or stages: Data Cleaning and Preparation, Algebra, and Deltas. The data cleaning and preparation stage includes creating new features such as winner games, loser games, winner game percent, and other features. In some embodiments, the data cleaning stage may include discarding matches in which neither player reaches a predetermined minimum game/point threshold.


In the algebra stage, the algorithm program 5 fills in as many of the currently unknown ratings as possible. Ratings are filled in based on matches between players with known ratings and players with unknown ratings. Given a match score and a rating for one of the two competitors, the algorithm uses an expectation function, described further below, to estimate what the rating of the unknown player should be. Each of these estimated ratings may be called a “match-filled rating.” This portion of the algorithm is referred to as algebra because it involves two knowns (a match score and one player's rating) and one unknown (the unknown player's rating), and solves for the unknown.


It is possible that a player with an unknown rating has multiple matches against a player with a known rating. In these cases, a player will have multiple match-filled ratings. For each match-filled rating, an associated weight can be derived, which measures how much trust is placed in that match-filled rating. There are three factors that go into determining what this weight is: How close the match is, how long the match is, and confidence in the rating of the player with the known rating. The details of how these weights are determined are described further below. By adding the total match weights for all of a player's match-filled ratings, a total weight is determined. For some players, this total weight will be based off of many matches, each with a high match weight, while for others this total weight will be based off of just one match with a low match weight. There may be a preference for filling in the rating of the player with a higher total weight before the player with the lower total weight, because more information of higher quality can be used to fill in the player with the higher total weight. To start, the unknown players with the n highest total weights are selected, and their ratings are filled in based on a weighted average of all their match-filled ratings. Now, ratings are known for all the fully reliable players who kept their previous day's rating, plus the n players with high total weights whose ratings we just filled in with a weighted average of their match-filled ratings. At this point, the first iteration of algebra is complete, and the process is repeated by calculating match-filled ratings, the associated weights, and total weights for each player, and then filling in the ratings of the n players with the highest total weights. Note that a player who was filled in the first iteration of algebra could go on to give a match-filled rating to an unknown player in a later iteration of algebra. This process may be repeated until there are no more matches between players with known ratings and players with unknown ratings.


At block 14, the rating server 102 calculates a game win percentage. Although described as a “game” win percentage similar to the color ball algorithm, for pickleball, the algorithm determines a winning percentage based on points rather than games. For example, in an illustrative embodiment a player may win a pickleball match by a score of 11-9, 11-9. In that example, the winning percentage may be calculated as 22 points out of 40 points, or 55% (0.55).


At block 15, the rating server 102 calculates a points weight. In the algebra stage of the algorithm, more weight is given to matches with more total games (which are points in pickleball), which may provide more information about the relative ability of the two opponents. Accordingly, this allows the determination of a weighted average of algebra-filled ratings such that algebra-filled ratings based off of short matches will receive less weight than algebra-filled ratings based off of longer matches. In the illustrative embodiment, the total games weight is determined according to Equation 10, below. As shown, Equation 10 is determined using TotalGamesCapped, so that the weight is not skewed by unreasonably high total games counts. In the illustrative embodiment, the TotalGamesCapped is set as equal to 80, which represents a typical number of total points in a lengthy 5-game pickleball match, where each game is the first to 11 points. The constants 0.8 and 4 are selected to provide acceptable weighting, and were verified to perform well when grid-searching over different options and testing accuracy on withheld data. Of course, in other embodiments different values for the total points cap and/or other constants of Equation 10 may be used.









1
-


0
.
8

*


(

1
-

TotalGamesCapped

8

0



)

4






(
10
)







At block 16, the rating server 102 calculates a score weight. Lopsided matches are typically less informative than close matches. Accordingly, when taking a weighted average of algebra-filled ratings, close matches receive more weight than blowout matches. In the illustrative embodiment, the competitiveness weight for the algebra stage is determined according to Equation 11, below. In Equation 11, Competitiveness=(fewer total games won)/(more total games won), with a lower limit such that competitiveness can never fall below 0.05. It has been determined that multiplication by 2 and then raising to the second power performed as well as any other combination of constants. Of course, in other embodiments, different values for those constants may be used.










Competitiveness
*
2

=



Competitiveness


^
2





(
11
)







The match weight is a combined metric for how informative a match is based off of just a score. Long, close matches are most informative, so they will get the highest match weights. Short, lopsided matches are least informative, so they will get the lowest match weights. Match weight during the algebra stage is the product of the total games weight. The only thing it depends on is the score of the match. The match weight is determined as its own function of match score, since the competitiveness weight and total games weight are constructed not only to make sense on their own but to combine properly such that a given score produces a reasonable match weight.


At block 17, the rating server 102 calculates a filling weight. In the illustrative embodiment, Equation 12 below is used to determine the filling player's weight during the algebra stage. In this embodiment, fully reliable players have a filling weight of 1. This means that if a player is filled by a fully reliable player during the algebra stage, the total weight for that match (during algebra) is just the match weight, since one times the match weight equals the match weight. However, it is possible that a player is getting filled by another player who themselves was filled by someone who themselves was filled by someone who was filled by a fully reliable player. In other words, some players who might fill in a player's rating during algebra are themselves not very reliably rated. For instance, even though an 11-9, 11-9 match might have a higher match weight than an 11-4 match, if the 11-4 match comes against a fully reliable player and the 11-9, 11-9 match comes against a player who was themselves filled with a low total weight during algebra, those two matches may end up weighted quite similarly. The filling weight and the match weight get multiplied together to create the total weight for a match in the algebra stage.









2
*

(



e

total
-
filled
-
weight



1
+

e

total
-

f

illed

-
weight




-

0
.
5


)





(
12
)







Note that the maximum total filled weight currently observed is just under 10. For a total filled weight of 2, the value of the filling weight for that player is approximately 0.75. In some embodiments, since every doubles match is refactored into two singles matches, total filled weight in the doubles algorithm may be divided by 2 before calculating the filling weight for that player in order to keep the singles and doubles algorithms consistent. Also note that the value of the filling weight function has a minimum of 0 and then asymptotically approaches 1. Accordingly, a player filled in the algebra stage is never considered quite as reliable as a fully reliable player.


At block 18a, the rating server 102 calculates a reliability rating, which is stored in the electronic database 3. In pickleball singles, player reliability is determined by summing up match reliability, capping at 25 if needed, and then dividing by 2.5. For doubles, the numbers are adjusted to cap at 100 and divide by 10. Recall that match reliability is equal to the minimum number of matches between the two opponents. When doubles matches are refactored as two separate matches for each participant, it means that every player's total match count is doubled, and so match reliabilities are all doubled. Additionally, each player has twice as many matches in the algorithm as they have actually played (in doubles, that is). So, the maximum sum of match reliabilities and the divisor are multiplied twice, which is the same as multiplying by 4. This is how the constants 100 and 10 are determined for the doubles equivalents.


For singles, the minimum possible reliability is 1 (player has only played 1 match) divided by 2.5, or 0.4. However, in doubles, a player could in theory have a reliability of 1/10, or 0.1 (which only happens in the unusual circumstance in which a player has 1 match but at least one of them falls outside of the within-3 threshold needed to count towards reliability). To keep singles and doubles reliabilities consistent, reliabilities below 0.4 may be lifted to 0.4.


Additionally, all reliabilities for players in isolated pools may be set to 0, because isolated pool players should have reliabilities on the same scale as main pool players. Isolated pool players need their own reliability that is unique to all isolated pool players. That unique reliability is 0 (no main pool player can have a 0 reliability).


If a player is more than 75% reliable, then the player's current rating is assigned to also be that player's historic rating (and the current date to be the associated date). If the player is less than 75% reliable, then that player's historic rating or the associated date are not updated. Historic rating and associated date start out as null, so any player who never reaches the 75% reliability threshold will have a null historic rating and associated date. Additionally or alternatively, in some embodiments a different reliability threshold (i.e., different than 75%) may be used.


At block 18b, the rating server 102 calculates an estimated rating for each player. In the algebra stage, known values include the WinnerGamePct, one of the player ratings, and the ExpectationConstant, and it is desired to solve for the other player's rating. If the winner rating is known, the loser's rating may be determined using Equation 13, below. If the loser rating is known, then the winner's rating may be determined using Equation 14, below. In Equations 13 and 14, the constant c is the ExpectationConstant, which may be determined using Equation 15, below. In particular, a logistic regression is run where WinnerGamePct is the dependent variable and RatingDifference is the independent variable. Additionally, when evaluating Equations 13, and 14, WinnerGamePct is capped at a lower bound of 0.2 and an upper bound of 0.8. These caps help with stability and not overreacting to bad data, unusual results, or lopsided matchups. A gridsearch determined 0.2 and 0.8 perform as well as other cutoffs. Other reasonable values for those caps may be used in other embodiments.









LoserRating
=




ln

(

1
-
WinnerGamePct

)

-

ln

(
WinnerGamePct
)


c

+
WinnerRating





(
13
)












WinnerRating
=




ln

(
WinnerGamePct
)

-

ln

(

1
-
WinnerGamePct

)


c

+
LoserRating





(
14
)













logit

(
WinnerGamePct
)

=

ExpectationConstant
*
RatingDifference





(
15
)







At this point, the only players who are still unrated will be players who are in isolated pools (i.e., do not connect to the main network of players). Since those players' ratings cannot be filled in the algebra stage, all players in isolated pools are assigned default ratings of 3.


At block 19, the rating server 102 calculates the difference between expected outcome and actual outcome based on estimated rating, singles match data 9, refactored player doubles match data 10 (which is a series of singles match data), and prior ratings 13. As described further below, during the delta stage of the algorithm, actual game percent is compared to the expected game percent. The expected winner game percentage may be determined using Equation 16, below.









WinnerGamePct
=


e

c
*
RatingDiff



1
+

e

c
*
RatingDiff








(
16
)







At block 20, the rating server 102 calculates a time factor. More weight is given to matches that happened recently than to matches that occurred a long time ago. This allows the algorithm to capture a more real-time snapshot of player abilities. The time degradation weight in the pickleball algorithm ranges from 0.25 for matches a year ago or prior to a year ago to 0.75 for matches that day, and may be determined according to Equation 17, below. In Equation 17, the floor function rounds non-integers to the closest integer with a smaller value and datediff is the difference, in days, between the result date and the current date. Since the function goes below 0.25 for matches that happened over a year ago, time degradation weights can be capped so that they cannot fall below 0.25.









TimeDegWeight
=


(


(

1
-


floor
(

datediff
/
7

)

/
53


)

+
.5

)

/
2





(
17
)







At block 21, the rating server 102 calculates a competitiveness factor. The competitiveness weight for deltas is very different from the competitiveness weight during the algebra stage. As described above, in the algebra stage, the competitiveness weight measures how close a match is, whereas during the delta/Elo portion of the algorithm, the competitiveness weight measures how closely rated the two opponents are. In many embodiments, the most informative matches may be ones played between opponents with similar skill level, while matches between much stronger or weaker opponents are more prone to odd scores and outcomes. Accordingly, a high competitiveness weight occurs when the two players have the same or similar rating, while a low competitiveness weight occurs when the two players have very different ratings.


At block 22, the rating server 102 calculates a game factor. In the delta portion of the algorithm, total games weight is equal to the total number of points in the match. Matches with more points are more informative, as there is more information available (e.g., a 5 game match will contain more information about the relative ability of the competitors than 1 a game match).


At block 23, the rating server 102 calculates a connectivity factor. Connectivity weight is a measure of how dense the network of players is where the match occurs. If the network is dense, then a match is weighed more heavily, since ratings in this part of the network are likely more reliable. Conversely, for sparse parts of the network, the match is weighed less, as there is more potential for errant ratings. Note that the connectivity weight takes the maximum connectivity of the two players, whereas the reliability weight takes the minimum number of matches of the two players. These two opposing approaches balance each other out, in a sense.


The connectivity weight is calculated by getting the number of second level connections that each player has, and then assigning the maximum of those two values to be the connectivity weight. Note that the connectivity weight is set to 1 for all players in isolated pools so as not to indicate that a player who is well-connected in an isolated pool is any more reliable than anyone else in an isolated pool.


At block 24, the rating server 102 calculates final ratings for players. The delta stage of the algorithm is elo-esque for the pickleball rating algorithm. Elo works with a match between two players with known ratings, and after the algebra stage, every player has a known rating of some kind, be it a rating from the previous day, a rating from algebra, or a default rating of 3. The rating difference between two players can be used along with the same expectation function that is used during the algebra stage to predict the outcome of the match. The actual outcome of the match is then compared to the predicted outcome. If a player over-performs their predicted outcome, that player will receive a small positive adjustment to their rating. Conversely, if a player under-performs their predicted outcome, that player will receive a small negative adjustment to their rating. More specifically, each match is given a delta, which is a function of the difference between outcome and expectation. One player will receive delta, and the other player will receive negative delta. A player's rating plus or minus the match delta (based on if they receive delta or negative delta) is called the “dynamic rating.” In some embodiments, deltas may only be calculated if the match was not used at all during the algebra stage. This may eliminate potential inflation or deflation of ratings over time.


For each dynamic rating, there is an associated weight, because some matches are more informative than others, and so those matches are weighed more. In the illustrative embodiment, in the delta portion of the algorithm, there are 5 weights as described above. Once dynamic ratings and weights have been assigned for every match, a weighted average of the dynamic ratings is determined, which yields the final ratings. The process described above for the delta portion of the algorithm can be performed using Equations 18-22, below.










expected


match


outcome

=

f

(


player


1


rating

,

player


2


rating


)





(
18
)












Delta
=

f

(


expected


match


outcome

,

actual


match


outcome


)





(
19
)













Dynamic


Rating

=


Start


Rating

±
Delta





(
20
)













Match


weight

=

time


degradation


weight
*
connectivity


weight
*
match


reliability
*
competitiveness


weight
*
total


games





(
21
)













Final


Rating

=


(




dynamic


rating
*
match


weight


)

/

(




match


weight


)






(
22
)







In the illustrative embodiment, match reliability is equal to the minimum of the total matches played by each competitor. For example, if Player 1 had 10 total matches and Player 2 had 20 total matches, the match reliability would be 10. If either player has a low total number of matches, then this match is not weighed too heavily, as at least one of the player ratings may be unreliable. Match reliability may be capped at 30 in the singles pickleball algorithm and 60 in the doubles pickleball algorithm, because each doubles match counts in the algorithm as 2 singles matches for each competitor, and so playing 30 doubles matches would show up as 60 singles matches in the algorithm. The 30/60 cutoff may be used because after about 30 matches, a player is very reliably rated and additional matches will add little or no accuracy to their rating. The maximum number of results (matches) to be used may be set at 60 for singles and 120 for doubles. In other embodiments, different thresholds for reliability and/or maximum results may be used.


During the delta portion of the algorithm, the total weight associated with each delta/dynamic rating may be determined as the product of the 5 delta weights: Time degradation, Competitiveness, Connectivity, Match Reliability, and Total Games (points). Delta may be equal to k, a constant, multiplied by the difference between actual percent of games won and expected percent of games won (expectation determined by the expectation function). In the illustrative embodiment, the k value is set to 3. In other embodiments, k may be set to a different value, such as 0.5. Maximum delta for pickleball may be 0.3, which may be equivalent to 1 rating point on a tennis scale.


To calculate the final ratings, the rating server 102 may perform multiple iterations of one or more of blocks 14-23, for example 10 iterations, 25 iterations, or another number of iterations. The player ratings may be scaled or otherwise converted to a different range, for example using one or more linear transformations. For example, in an embodiment, the player ratings may be changed from a 24-point scale to a 6-point scale or other scale.


After determining the final ratings, the rating server 102 stores the final ratings in the electronic database 3. Those ratings may be accessed using the mobile/web application 6 as described above. After determining and storing final ratings, the methods 700-800 are completed. The rating server 102 may periodically or responsively recalculate player ratings based on updated match data or other updated data. For example, the rating server 102 may recalculate player ratings nightly, weekly, or on any other appropriate schedule.


Referring now to FIG. 9, in the illustrative embodiment, the rating server 102 establishes an environment 900 during operation. The illustrative environment 900 includes a color ball rating manager 902 and a pickleball rating manager 904. The color ball rating manager 902 includes one or more sub-components including a match outcome manager 922, a player reliability manager 924, an iterative rating engine 926, and a final rating manager 928. Similarly, the pickleball rating manager 904 includes one or more sub-components including a match outcome manager 942, a player reliability manager 944, an iterative rating engine 946, and a final rating manager 948. The various components of the environment 900 may be embodied as hardware, firmware, software, or a combination thereof. As such, in some embodiments, one or more of the components of the environment 900 may be embodied as circuitry or a collection of electrical devices (e.g., color ball rating manager circuitry 902 and/or pickleball rating manager circuitry 904). It should be appreciated that, in such embodiments, one or more of those components may form a portion of the processor 120, the I/O subsystem 122, and/or other components of the rating server 102.


The match outcome manager 922 is configured to identify multiple match outcome results. Each match outcome result is indicative of a progression ball tennis match score and a pair of progression ball tennis players from a group of progression ball tennis players. The match outcome results may be stored in, for example, color ball match data 906. In some embodiments, identifying the match outcome results further includes determining a progression ball level for each match outcome result. The progression ball level is selected from an orange level and a green level.


The player reliability manager 924 is configured to set a rating value for each player of the plurality of progression ball tennis players to a predetermined initial value. In some embodiments, the predetermined initial value may be determined based on the progression ball level.


The iterative rating engine 926 is configured to, for each iteration of multiple iterations, and for each respective player of the progression ball tennis players, determine a progression coefficient based on the rating value of the respective player. In some embodiments, the progression coefficient is determined based on the progression ball level. The iterative rating engine 926 is further configured to determine a difference between an expected outcome and an actual outcome for each match of the match outcome results associated with the respective player. The expected outcome is based on the rating values of the pair of players associated with the match. In some embodiments, determining the difference between the expected outcome and the actual outcome includes comparing a percentage of games won to an expected percentage of games won. The iterative rating engine 926 is further configured to determine one or more weight factors for each match of the match outcome results associated with the respective player, and to update the rating value of the respective player based on the progression coefficient, the difference, and the weight factor for each match. In some embodiments, determining the first weight factor may include determining the first weight factor based on an opponent connectivity weight, a games played weight, or a competitiveness factor.


The final rating manager 928 is configured to determine a final rating for each player in response to completing the iterations. The final rating may be stored in, for example, color ball player rating data 910. In some embodiments, the final rating manager 928 is further configured to floor the final rating for each player based on a number of match results associated with the respective player. In some embodiments, flooring the final rating may include determining whether the number of match results associated with the respective player has a predetermined relationship to a predetermined number of match results; determining whether a stored floor value exists for the respective player in response to a determination that the number of match results has the predetermined relationship to the predetermined number of match results; storing the final value as the stored floor value for the respective player in response to a determination that the stored floor value does not exist for the respective player; determining whether the final value for the respective player exceeds the stored floor value in response to a determination that the stored floor value exists for the respective player; storing the final value as the stored floor value for the respective player in response to a determination that the final value exceeds the stored floor value; and setting the final value for the respective player to the stored floor value for the respective player in response to a determination that the final value does not exceed the stored floor value.


The match outcome manager 942 is configured to identify multiple match outcome results. Each match outcome result is indicative of a pickleball match score and a pair of pickleball players from a group of pickleball players. The match outcome results may be stored in, for example, pickleball match data 908. In some embodiments, identifying the match outcome results may include identifying a doubles match outcome result and refactoring the doubles match outcome result as a set of four match outcome results. Each doubles match outcome result is indicative of a pickleball match score and a pair of teams. Each team is indicative of a pair of pickleball players from the group of pickleball players. Each match outcome result of the set of four refactored match outcome results is indicative of the pickleball match score and a pair of pickleball players. Each player of the pair of pickleball players is selected from an opposing team of the doubles match outcome result.


The player reliability manager 944 is configured to determine whether each player of the group of pickleball players is fully reliable, and to set a rating value for each player of the plurality of pickleball players that is not fully reliable to a null value. In some embodiments, to determine whether each player of the plurality of pickleball players is fully reliable may include to determine a number of matches against main pool opponents for the respective pickleball player. In some embodiments, the player reliability manager 944 is further configured to, for each player of the plurality of pickleball players having the rating value set to the null value, fill the rating value of the respective player based on a match outcome result associated with the respective player and an opposing player having a non-null rating value.


The iterative rating engine 946 is configured to, for each iteration of multiple iterations, and for each player of the pickleball players, determine a difference between an expected outcome and an actual outcome for each match of the match outcome results associated with the respective player. The expected outcome is based on the rating values of the pair of players associated with the match. In some embodiments, determining the difference between the expected outcome and the actual outcome may include comparing a percentage of points won to an expected percentage of points won. The iterative rating engine 946 is further configured to determine one or more weight factors for each match of the match outcome results associated with the respective player, and to update the rating value of the respective player based on the difference and the one or more weight factors for each match. In some embodiments, to determine the one or more weight factors may include to determining the one or more weight factors based on a time degradation weight, an opponent connectivity weight, a match reliability weight, or a competitiveness factor.


The final rating manager 948 is configured to determine a final rating for each player in response to completing the plurality of iterations. The final rating may be stored in, for example, pickleball player rating data 912.

Claims
  • 1. A computing device for determining a progression ball rating level for a progression ball tennis player, the computing device comprising: a match outcome module to identify a plurality of match outcome results, wherein each match outcome result is indicative of a progression ball tennis match score and a pair of progression ball tennis players from a plurality of progression ball tennis players;a player reliability manager to set a rating value for each player of the plurality of progression ball tennis players to a predetermined initial value;an iterative rating engine to, for each iteration of a plurality of iterations, and for each player of the plurality of progression ball tennis players: (i) determine a progression coefficient based on the rating value of the respective player; (ii) determine a first difference between an expected outcome and an actual outcome for each match of the match outcome results associated with the respective player, wherein the expected outcome is based on the rating values of the pair of players associated with the match; (iii) determine a first weight factor for each match of the match outcome results associated with the respective player; and (iv) update the rating value of the respective player based on the progression coefficient, the first difference, and the first weight factor for each match; anda final rating manager to determine a final rating for each player in response to completion of the plurality of iterations.
  • 2. The computing device of claim 1, wherein to determine the first difference between the expected outcome and the actual outcome comprises to compare a percentage of games won to an expected percentage of games won.
  • 3. The computing device of claim 1, wherein to determine the first weight factor comprises to determine the first weight factor based on an opponent connectivity weight, a games played weight, or a competitiveness factor.
  • 4. The computing device of claim 1, wherein to identify the plurality of match outcome results further comprises to determine a progression ball level for each match outcome result, wherein the progression ball level is selected from an orange level and a green level.
  • 5. The computing device of claim 4, wherein to set the rating value comprises determining the predetermined initial value based on the progression ball level.
  • 6. The computing device of claim 4, wherein to determine the progression coefficient comprises to determine the progression coefficient based on the progression ball level.
  • 7. The computing device of claim 1, wherein the final rating manager is further to floor the final rating for each player of the plurality of progression ball tennis players based on a number of match results associated with the respective player.
  • 8. The computing device of claim 7, wherein to floor the final rating comprises to: determine whether the number of match results associated with the respective player has a predetermined relationship to a predetermined number of match results;determine whether a stored floor value exists for the respective player in response to a determination that the number of match results has the predetermined relationship to the predetermined number of match results;store the final value as the stored floor value for the respective player in response to a determination that the stored floor value does not exist for the respective player;determine whether the final value for the respective player exceeds the stored floor value in response to a determination that the stored floor value exists for the respective player;store the final value as the stored floor value for the respective player in response to a determination that the final value exceeds the stored floor value; andset the final value for the respective player to the stored floor value for the respective player in response to a determination that the final value does not exceed the stored floor value.
  • 9. A method for determining a progression ball rating level for a progression ball tennis player, the method comprising: identifying, by a computing device, a plurality of match outcome results, wherein each match outcome result is indicative of a progression ball tennis match score and a pair of progression ball tennis players from a plurality of progression ball tennis players;setting, by the computing device, a rating value for each player of the plurality of progression ball tennis players to a predetermined initial value;for each iteration of a plurality of iterations, and for each player of the plurality of progression ball tennis players: determining, by the computing device, a progression coefficient based on the rating value of the respective player;determining, by the computing device, a first difference between an expected outcome and an actual outcome for each match of the match outcome results associated with the respective player, wherein the expected outcome is based on the rating values of the pair of players associated with the match;determining, by the computing device, a first weight factor for each match of the match outcome results associated with the respective player; andupdating, by the computing device, the rating value of the respective player based on the progression coefficient, the first difference, and the first weight factor for each match; anddetermining, by the computing device, a final rating for each player in response to completing the plurality of iterations.
  • 10. The method of claim 9, wherein determining the first difference between the expected outcome and the actual outcome comprises comparing a percentage of games won to an expected percentage of games won.
  • 11. The method of claim 9, wherein determining the first weight factor comprises determining the first weight factor based on an opponent connectivity weight, a games played weight, or a competitiveness factor.
  • 12. The method of claim 9, wherein identifying the plurality of match outcome results further comprises determining a progression ball level for each match outcome result, wherein the progression ball level is selected from an orange level and a green level.
  • 13. The method of claim 12, wherein determining the progression coefficient comprises determining the progression coefficient based on the progression ball level.
  • 14. The method of claim 9, further comprising flooring, by the computing device, the final rating for each player of the plurality of progression ball tennis players based on a number of match results associated with the respective player.
  • 15. A computing device for determining a pickleball rating level for a pickleball player, the computing device comprising: a match outcome manager to identify a plurality of match outcome results, wherein each match outcome result is indicative of a pickleball match score and a pair of pickleball players from a plurality of pickleball players;a player reliability manager to (i) determine whether each player of the plurality of pickleball players is fully reliable; and (ii) set a rating value for each player of the plurality of pickleball players that is not fully reliable to a null value;an iterative rating engine to, for each iteration of a plurality of iterations, and for each player of the plurality of pickleball players: (i) determine a first difference between an expected outcome and an actual outcome for each match of the match outcome results associated with the respective player, wherein the expected outcome is based on the rating values of the pair of players associated with the match; (ii) determine a first weight factor for each match of the match outcome results associated with the respective player; and (iii) update the rating value of the respective player based on the first difference and the first weight factor for each match; anda final rating manager to determine a final rating for each player in response to completing the plurality of iterations.
  • 16. The computing device of claim 15, wherein to determine the first difference between the expected outcome and the actual outcome comprises to compare a percentage of points won to an expected percentage of points won.
  • 17. The computing device of claim 15, wherein to determine the first weight factor comprises to determine the first weight factor based on a time degradation weight, an opponent connectivity weight, a match reliability weight, or a competitiveness factor.
  • 18. The computing device of claim 15, wherein to identify the plurality of match outcome results comprises to: identify a doubles match outcome result, wherein each doubles match outcome result is indicative of a pickleball match score and a pair of teams, wherein each team is indicative of a pair of pickleball players from the plurality of pickleball players; andrefactor the doubles match outcome result as a set of four match outcome results, wherein each match outcome result of the set of four match outcome results is indicative of the pickleball match score and a pair of pickleball players, wherein each player of the pair of pickleball players is selected from an opposing team of the doubles match outcome result.
  • 19. The computing device of claim 15, wherein to determine whether each player of the plurality of pickleball players is fully reliable comprises to determine a number of matches against main pool opponents for the respective pickleball player.
  • 20. The computing device of claim 15, wherein the player reliability manager is further to, for each player of the plurality of pickleball players having the rating value set to the null value, fill the rating value of the respective player based on a match outcome result associated with the respective player and an opposing player having a non-null rating value.
CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. Provisional Application Ser. No. 63/605,013, filed Dec. 1, 2023, the entire disclosure of which is hereby incorporated by reference.

Provisional Applications (1)
Number Date Country
63605013 Dec 2023 US