2022 Diamond League: Top 5 money earners per event
Authors: George M. Perry
Abstract: This table shows the within- and between-event distributions of prize money in the 2022 Diamond League, a professional track & field circuit, along with a look at which countries’ athletes earned the most money in each event.
Full Description: (Longer narrative with code snippets, questions and future directions at Diamond League Earnings table repo.)
The Diamond League is a series of track meets for the top professional track & field athletes worldwide. Like circuits or tours in other individual (as opposed to team) sports, athletes don’t commit to all or a given number of Diamond League meets. The top athletes in each event can pick and choose which meets they want to compete in, and then the meet directors fill out the field by working down the list of athletes who request entry.
The Diamond League is unusual within track & field because there is a standardized and transparent structure of prize money. Across all the meets, the 4th place finisher in the women’s pole vault will take home as much as the 4th place finisher in men’s discus, and the winner of the men’s 400 meter hurdles gets as much as the winner of the women’s long jump, and so on.
The combination of these two factors results in some unusual distributions of prize money within and between groups.
The athlete who wins the most money in an event over the course of the season may not be the most athletically dominant in the event that year. They may have just competed in the most events and finished reasonably well in each. Or, maybe one or two athletes dominated the event for the year, leaving a large pool of other athletes divvying up the telescoping prize money for 2nd through 8th place.
For example, the highest earning athlete in women’s high jump won $77,250, while the 5th highest earner in that event took home $13,500. Meanwhile, the highest earner in the men’s 400m hurdles won $30,000 over the season, while the 5th highest earner in the men’s 400m (no hurdles) won $20,000.
Aside from fans and sports business journalists / junkies, this information could be quite relevant to coaches and agents as they plan their athletes’ seasons. This data shows where there may be opportunities for an up-and-coming athlete to win big, or for a well-established athlete to run the table. Alternatively, it could tell a coach or agent that they’d be better off entering their athletes in lower profile meets where they could win more money by winning the meet, as opposed to chasing the bright lights of the Diamond League and making less for hitting the same mark but finishing down the table.
Key goals for table display
- Color scale to immediately show the range of earnings across the top 5 earners in each event (rows), and the range of earnings among each finishing place (1st - 5th) across events.
- Each cell contains not just the dollar amount, but the athlete’s name and nationality.
- Use flags instead of country name or abbreviation to signify nationality, because it’s more visually appealing that way.
Four key packages and functions
- gt: Looking at the different table options out there, I chose gt because it seemed to offer the most convenience and flexibility in applying html to the cells.
- purrr::nest: I wanted multiple pieces of information in many of the cells. First, as mentioned above, I wanted the cells to contain the athlete’s name, nationality and season-long earnings. Second, I wanted cells that showed the top 3 highest earning countries for each event, with each cell containing the flag and combined amount. purr::nest allowed me to “stack” that data in each cell.
- glue::glue allowed me to combine the functionality of the two packages above, applying html to each cell to customize the look.
- countrycode: Wow, what a package! countrycode let me take the three-letter country abbreviations from my raw data (which I had to do some manually cleaning on), and use them to get the flag emoji – not a link to an icon, but the emoji! - to that country. Having tried to manually do the Unicode work myself before starting to put together a list of links to flag icons, discovering countrycode was a huge timesaver and made things so so so so sooooooooo much easier.
**Update (03 Dec 22): gt 0.8.0 dropped the day the submission period ended, and it has several functions that would have made things a lot easier and more streamlined. Timing is everything!
Table Type: static-HTML
Submission Type: Single Table Example
Languages: Built with R: true. Built with Python: false.
Other packages: gt, purrr, glue, countrycode