One thing about me is that I love Unrivaled and their weird rules. Their Elam ending and untimed fourth quarter led me to some interesting game length research last season, and I’ll likely rerun the same ideas on my pages this season. And if you’ve been following me for any length of time, you know that I’ll never miss the opportunity to make a video about free throws (I already made an Unrivaled free throw video back in march 😵💫.)
So with all that, obvi I was hyped to see Unrivaled’s announcement about the $50,000 free throw challenge. Even though it’s the winning player that gets the money (and not the winning fan, but courtside tickets are pretty cool too), I knew immediately that I was going to crunch the numbers to determine the best pick.
Let’s talk about the naive way you could use to pick your winner, and buff that up with a more advanced idea called Empirical Bayes (which I originally learned about from David Robinson’s Variance Explained). Then you can thank me later when you win the courtside tickets!
The Contest Rules
The free throw challenge is pretty simple: the player with the best free throw percentage after five games wins. They must play at least three games (I guess their team has to play five?) and attempt at least six free throws in that time to qualify. The player gets $50,000 and a fan who predicts the winner correctly gets courtside tickets in Philly.

@unrivaledbasketball instagram post describing the rules of the free throw challenge
The Naive Approach
Without getting too deep into those qualifiers/minimums, let’s just try and find the best free throw shooter in Unrivaled. The obvious approach would be to take the career free throw percentage of every Unrivaled player, and just sort from largest to smallest. That’s what I’ve done here, with data from the wehoop R package, specifically using the FT% from everyone’s WNBA career (including playoffs and all-star games, because I make the rules):
Top 10 by raw FT%:
Player FTM FTA FTp
1 Li Yueru 108 121 89.25620
2 Paige Bueckers 136 153 88.88889
3 Veronica Burton 286 322 88.81988
4 Kelsey Plum 918 1037 88.52459
5 Sonia Citron 130 149 87.24832
6 Dana Evans 229 263 87.07224
7 Jackie Young 803 923 86.99892
8 Chelsea Gray 801 928 86.31466
9 Arike Ogunbowale 906 1050 86.28571
10 Skylar Diggins 1476 1752 84.24658Looks like Li Yueru (89.3%, 108/121 attempts) is the best free throw shooter in Unrivaled! But you probably already know what I’m going to say: sample size :/
Why Sample Size Matters
I feel like we just throw the phrase “sample size” around as if everybody knows what it means, and hopefully you do! But if not, we’re just referring to the number of free throw attempts we have actually seen from each player. If we look closely at the FTA column, we see a wide range of numbers that skew larger toward players who have been in the WNBA longer.
The consideration of sample size is a big part of statistics and data analysis, and is a reason why I hate how short WNBA games and seasons are (less samples!!) If a player was a perfect 100% from the line in their career, but had only ever taken one shot, would we consider them the best free throw shooter ever? Probably not. But if a player was 90% from the line after 10,000 attempts, we’d probably consider them to be pretty great. The more attempts (or observations, or samples), the more certain we can be about a player’s ability.
Back to the data: our top FT shooter Li Yueru is 108 for 121 (~89.3%) from the line in her WNBA career, which is pretty good! 121 isn’t as small as 1, but it’s not as big as, say Kelsey Plum’s 1037 career attempts either. Li apparently shot about 81% from the line in Eurocup play last year on just 31 attempts, so we don't really know if 89% or 81% is closer to her true skill, or what we should expect from her in her first Unrivaled season.
We need to find a way to more accurately compare the free throw ability of players with varying numbers of attempts beyond just raw percentage. Then we’ll know who to vote for in the free throw contest!
The Fix - Empirical Bayes
Bayesian statistics is one of the two predominant ways of interpreting probability. In the Bayesian view, probability measures a degree of belief rather than just long-run frequency, and those beliefs are updated as we observe new data. For us, that means we start with a prior belief about a quantity, specifically a player’s ‘true’ free throw ability, and then use Bayes theorem to combine that prior with observed data to get a posterior belief. (you don’t have to know what Bayes theorem is, but I made a video about it in 2022 to help you figure out if you are Breanna Stewart, if you want to learn more)
In plain language, empirical Bayes works like this: instead of taking each player's percentage at face value, we start everyone at a league-average baseline, then adjust up or down based on how much data we actually have for them. Players with tons of free throw attempts can move far from that baseline (we trust their numbers). Players with few attempts stay closer to average, because we're less sure about their true skill.
So here's the two-step process:
Step 1: Calculate a league-wide prior
We look at all Unrivaled players' combined WNBA free throw history and find what the ‘typical’ shooter would look like. Across the group, the average is a little more than 79% on 150 attempts (this is slightly better than the 2025 WNBA average 78.7%). This becomes our starting belief (our “prior”) for what a generic player looks like, before we see their individual stats. So if we know nothing at all about a player, we will assume they ‘would’ have made about 119 of 150 free throws in their WNBA career.
Step 2: Combine the prior with each player's data
For each player, we blend that 79% baseline with the information that we do have about them, which is their actual makes and misses. If you've only taken 50 free throws, that prior has a lot of influence and pulls you toward 79%. If you've taken 1,000 free throws, your real percentage drowns out the prior and the model mostly trusts your number.

observed free throw distribution (blue) versus the empirical Bayes prior (red) used to adjust individual player estimates
The blue curve shows the actual distribution of WNBA career free throw percentages across all players in Unrivaled. This includes both real skill differences and random noise from small samples, all the mess you get from real data. The red curve is our “prior”: the assumed talent distribution we use as a starting point. It's smoother and more concentrated because it's estimating the underlying skill level without all the sample-size chaos. Put another way: if every player took 10,000 free throws, we would effectively wash out the effect of variance, we'd expect the distribution of their percentages to look more like the red curve than the blue one. This red curve is what we use as our baseline belief, before looking at any individual player's stats.
With this method, players with few attempts get adjusted heavily toward the league average, while players with many attempts barely move from their raw percentages. Li Yueru's 89% gets pulled down to 84%, while Kelsey Plum's 88.5% drops only to 87.4%. That's the model accounting for the uncertainty that comes with a small sample size!

the empirical Bayes adjustment decreases with sample size. Low-attempt players (left) experience the most shrinkage, while high-volume shooters (right) are adjusted minimally.
The Calculation 😬
The actual calculation that is being done during this process is straightforward! I promise.
Let's walk through Li Yueru's adjustment step by step:
Start with the prior:
We begin with our baseline assumption: 119 makes out of 150 attempts, which is 79.5%.
Add Li's actual data:
Li shot 108-for-121 in her WNBA career. We combine the prior with her real data:
Total makes: 119 + 108 = 227
Total attempts: 150 + 121 = 271
Calculate the adjusted percentage:
227 ÷ 271 = 83.8%
And that’s it! Li's raw 89.3% gets pulled down to 83.8% because the model incorporates her actual/observed 121 attempts with 150 "pseudo-attempts" at league average. The more actual attempts a player has, the less influence those pseudo-attempts have on the final number.
For Plum Dawg, the same process looks like this:
Prior: 119/150 (79.5%)
Add her data: (119 + 918) / (150 + 1037) = 1037/1187 = 87.4%
Plum's raw 88.5% only drops to 87.4% because her 1,037 real attempts outweigh the 150 pseudo-attempts from the prior.
In reality, the code process looked something like this, which does the calculation we just described, but for every player automatically:
# (using dplyr in R)
# Set prior strength (pseudo-attempts)
# Higher = more shrinkage toward league average
# Lower = trust individual data more
N0 <- 150
# Prior parameters for Beta distribution
alpha0 <- league_avg_ftp * N0
beta0 <- (1 - league_avg_ftp) * N0
# Calculate posterior for each player
Pbox_eb <- Pbox %>%
mutate(
# Posterior parameters
alpha_post = alpha0 + FTM,
beta_post = beta0 + (FTA - FTM),
# Posterior mean (empirical Bayes estimate)
FTp_EB = 100 * alpha_post / (alpha_post + beta_post),
) %>%
arrange(desc(FTp_EB))I love R! This gives us the adjusted percentage for all 48 Unrivaled players. Now let's see how the rankings change.
The New Rankings
After applying empirical Bayes, here's the updated top 10:
Top 10 by empirical bayes:
Player FTA FTp FTp_EB
1 Kelsey Plum 1037 88.52 87.38
2 Jackie Young 923 87.00 85.94
3 Veronica Burton 322 88.82 85.84
4 Arike Ogunbowale 1050 86.29 85.43
5 Chelsea Gray 928 86.31 85.36
6 Dana Evans 263 87.07 84.31
7 Paige Bueckers 153 88.89 84.22
8 Skylar Diggins 1752 84.25 83.87
9 Li Yueru 121 89.26 83.83
10 Breanna Stewart 1996 83.67 83.37The reshuffling tells us a lot about who the model actually trusts!
Kelsey Plum jumps to #1. She wasn't the raw percentage leader, but with 1,037 career attempts backing up her 88.5%, the model has high confidence in her ability. Her adjusted estimate barely drops to 87.4%. I guess all that smiling really does help:
Jackie Young at #2. This is similar to KP: high FT percentage (87.0%, again that includes playoffs and all-star games) on a large sample (923 attempts). League vets with high free throw volume dominate the top.
Besties Li Yueru and Paige Bueckers fall, but are still in the top ten! Both had raw percentages near 89%, but Li drops all the way to #9 and Paige to #7. Their adjusted estimates land around 84%. They’re still excellent, but the model is much less certain, since they have so few attempts compared to others. Li's 121 attempts and Paige's 153 simply aren't enough to overcome the prior.
Veronica Burton is interesting: she stays at #3 despite only 322 attempts because her raw 88.8% is so strong that even after adjustment, she lands at 85.8%. More on her later!
Visualizing Uncertainty
With all statistical analysis, we have to talk about the uncertainty, or the fact that these calculations might not be 100% accurate and blah blah blah.
A 90% credible interval is the range where we're 90% confident a player's true shooting ability falls. The credible intervals below show just how much more uncertain we are (mathematically) about some players compared to others.

Top 15 players by empirical Bayes estimate with 90% credible intervals (black) and raw percentages (red)
Looking at the width of those black error bar, we see that Kelsey Plum's interval is relatively tight. We're 90% confident her true FT% is somewhere between 85.8% and 88.9%, a range of just over 3 percentage points. Li Yueru's interval, on the other hand, spans from 80.0% to 87.4%, which is more than 7 percentage points. That uncertainty is why she drops so far in the rankings despite the strong raw percentage, but it allows for the fact that she may prove to be a high-80% shooter in the future, as we get more evidence.
The red dots show where each player's raw percentage sits. For high-volume shooters like KP and Arike, the red and black dots are close together. For those with less WNBA experience, such as Li, Paige, and Sonia Citron, there's a noticeable gap: the raw percentage sits well outside the adjusted estimate because the model is correcting a lot for small sample size. As their careers progress and they keep up the high percentage, the model may begin to recognize them as the high percentage shooters they are. But for now, the model thinks we haven’t seen enough to be sure.

uncertainty (90% credible interval width) versus sample size. The model is much less confident about low-attempt players
This plot makes the pattern clear: the fewer attempts you have, the wider your credible interval. Players with under 200 attempts have intervals spanning 7-10 percentage points, while players with over 1,000 attempts have intervals closer to 3-4 points.
The table below shows which players experienced the biggest adjustments. 'Shrinkage' is just the difference between their raw percentage and the empirical Bayes estimate. The bigger the number, the more the model corrected for small sample size:
BIGGEST SHRINKAGE (overrated by naive method)
Player FTA FTp FTp_EB shrinkage
1 Li Yueru 121 89.26 83.83 5.425102
2 Paige Bueckers 153 88.89 84.22 4.670318
3 Sonia Citron 149 87.25 83.34 3.909770
4 Veronica Burton 322 88.82 85.84 2.976174
5 Dana Evans 263 87.07 84.31 2.766609
6 Aari McDonald 296 83.78 82.33 1.455920
7 Rickea Jackson 212 82.55 81.27 1.281349
8 Kelsey Plum 1037 88.52 87.38 1.146134
9 Jackie Young 923 87.00 85.94 1.054623
10 Rachel Banham 228 82.02 81.00 1.016943Who you got?
In the end, I went against my own results and picked Veronica Burton to win it. She had a 32/32 FT start to her WNBA career (shorties are better at free throws according to me three years ago), so I guess I’m banking on the fact that her Unrivaled career will start the same. Sorry Plumdawg! I also don’t expect the winner to have a ton of free throw attempts under their belt under five games, but don’t copy me for the tiebreaker!!

my prediction is Veronica Burton going 6/6 in the first five games to win the challenge
So who are you picking?
If you haven’t seen it already, check out the TikTok I made about the Unrivaled free throw challenge below!
@wnbadata let’s create a model to predict the winner of unrivaled’s free throw challenge! #unrivaled #basketball #data
Thanks so much for reading! If you liked it please consider subscribing and following me on TikTok and Instagram, and let me know what you’d like to see in the future. Most of my best ideas come from viewer/reader suggestions :)

