PDGA Player Rating Spread

I saw someone ask in another post about the current spread of player ratings, so I created a chart for it. All data is directly from the PDGA website and is current as of 2/12/21.

Some interesting things to note is that the percentage of unrated players (~24%) is the largest group followed up by 924-900 and 899-875 at ~12% of players. If you are rated 1000+, you are in the top ~0.5% of all PDGA members.

Edit: Fixed the ranges on the x-axis. It was late at night when I made it....

Posted Feb 13, 2021, 3:21 AM UTC · edited

3023
aredoubles•

Should probably split out 900-924 and 925-949, right?

Nice work though! Did you write a script to scrape this data off the PDGA site or something?

34
happydontwait•

Right?! Why is one section double the spread as the others?

Also why is is backward? I’d rather it read 700 > 900

Cool data though.

24
HuckingHyzersOPCO Springs•

Double section is fixed.

It's not backward to me.

3
dtee3•
8
HuckingHyzersOPCO Springs•

Yeah, I was tired when I made it and didn't even notice. It's fixed now. Yup, you can do a lot with the data from the PDGA website, Excel, and a little elbow grease.

2
rr2_GAHobbs Farm•

Kinda lazy to not split 900-924 and 925-949. That skews your chart.

12
HuckingHyzersOPCO Springs•

Well shoot. I didn't even notice I messed up that range. I started with 50 point ranges and then decided to split down to 25. Why do you assume it was lazyness?

10
rr2_GAHobbs Farm•

You’re right. Shouldn’t have assumed that. I love the idea for the chart though.

2
HuckingHyzersOPCO Springs•

Fixed

5
discostud1515•

One of these bins is not like the others.

7
HuckingHyzersOPCO Springs•

Fixed my x-axis

2
Ask_Me_About_Bees•

FYI in R you could gather all PDGA ratings data like this:

library(rvest)
library(tidyverse)

pdga_ratings <- lapply(paste0('https://www.pdga.com/players/stats?Year=2020&player_Class=All&Gender=All&Bracket=All&continent=All&Country=All&StateProv=All&order=player_Rating&sort=desc&page=', 1:3867),
                function(url){
                  url %>% read_html() %>% 
                    html_nodes("table") %>% 
                    html_table(fill = TRUE)
                })


df_pdga_ratings <- pdga_ratings %>% bind_rows()

That would use the rvest package to gather all table data on pages 2-3868. You'd have to run it again with the first page of the table (for whatever reason PDGA website's first page of data is not page=1)

This takes a long time to run because it's so many pages but if you just wanted all men's or all women's score or whatever you could filter it like that and change the URL in the paste0 function.

5
HuckingHyzersOPCO Springs•

Cool. Thanks for the info. I'm still a new at all this days analysis stuff and am learning how to pull data from websites instead of just typing it all out myself.

1
Ask_Me_About_Bees•

Yep! Nice work and smart thinking on looking for cutoffs like you did!

If you use R, this should help (though it may need to be broken into several chunks to run properly)

1
theobislavaput a little piquant on it 🌶•

Does unrated include people with lapsed memberships?

Or are they excluded entirely?

Edit: also, I would like to see that 900-949 range halved to match the other ranges.

3
HuckingHyzersOPCO Springs•

I sorted by current members only. So any unrated player had never had a rating.

1
XAltRunner•

I still don’t understand how ratings are actually calculated, but isn’t a big part of the rating your score on a course in relation to the scores of other rated players? If that is the case (tell me if I’m wrong), can this distribution of ratings ever really change?

2
S_TL2•

On an isolated island with a constant number of players, the average rating would indeed stay the same.

3
thePurpleParrot77•

It will change as people enter/leave the scene. Could also get more or less spread out but with the same average if it's the same people. I wonder how it drifts over time?

1
sprtstr14•

Nice job. These are always interesting to me. I even see myself, I'm right there in that blue bar.

2
everlearning6•

I was the one who asked about it and this is awesome! How did you get the centralized data? How did you decide on the rating ranges?

1
HuckingHyzersOPCO Springs•

I just looked at the PDGA website under the player search and sorted it by decreasing rating. At the bottom of the page, it'll show what players it is displaying for each page. I just had to find what page was the border for each of my ranges and then record the number of players there were above.

2
Hellaguaptor•

We are the 99%!

1