Data Does Not Lie: Week Four 2026
New Series: Data Does Not Lie
I’m old and tired now. Grad school and work make it almost impossible to write power rankings that shit on your team every week. Instead, I’m just going to let the data tell the full story here periodically. In case you missed it, I stole Callen’s idea to build a Sleeper lakehouse using Databricks Free Edition. All data comes from there, and you can easily run all code snippets below in a Databricks notebook. I’m happy to grant you access. Just share your email address. It’s time to let the hate flow.
Luck and Expected Wins
When I previously analyzed luck in the league’s history, I found that , the number of teams that your score would beat on any given week, is arguably the best performance metric. This has been built into the lakehouse as expected_wins and falls into a range between 0 and 1 using min-max scaling. In short, if you get the highest score, your expected wins are 1. If you have the worst, then it’s 0. The same idea, but we can also quantify luck relative to actual wins. I’ll start by ranking everyone by expected wins:
with totals as (
select manager_display_name as Manager,
sum(points) as PF,
sum(opponent_points) as PA,
sum(expected_wins) as ExpectedWins,
sum(case result when 'win' then 1 when 'tie' then 0.5 else 0 end) as ActualWins
from sleeper.gold.weekly_scores
where season = 2026 and week < 5
group by manager_display_name
)
select Manager, round(PF, 2) as PF, round(PA, 2) as PA, round(ExpectedWins, 2) as ExpectedWins, ActualWins,
round(ActualWins - ExpectedWins, 2) as Luck
from totals
order by ExpectedWins desc
Let’s see how that looks:
| Manager | PF | PA | Expected Wins | Actual Wins | Schedule Luck |
|---|---|---|---|---|---|
| coolguytrav | 553.00 | 448.17 | 3.82 | 3.0 | -0.82 |
| exoentropy | 502.38 | 402.21 | 3.00 | 4.0 | 1.00 |
| lrich91 | 469.87 | 409.11 | 2.55 | 3.0 | 0.45 |
| BigOleDoinks | 463.86 | 445.02 | 2.45 | 2.0 | -0.45 |
| novaprice | 455.56 | 376.04 | 2.36 | 4.0 | 1.64 |
| markhambone | 436.67 | 491.19 | 2.18 | 2.0 | -0.18 |
| mattkman | 415.84 | 463.71 | 1.64 | 1.0 | -0.64 |
| callentrail | 408.05 | 457.93 | 1.64 | 1.0 | -0.64 |
| almostwinning | 371.58 | 367.44 | 1.18 | 2.0 | 0.82 |
| cramseyio | 407.33 | 436.97 | 1.18 | 1.0 | -0.18 |
| jyarrow | 356.07 | 450.18 | 1.09 | 1.0 | -0.09 |
| acarlough | 362.43 | 454.67 | 0.91 | 0.0 | -0.91 |
Tarv’s team is a country mile ahead of everyone in PF. His not being 4-0 is squarely due to bad luck. His one loss is the classic scenario of scoring second PF for the week while playing the top scorer. A sub-one-point loss on top of that is just brutal. This team is still the best, no question. On the flip side, Caleb is by far the largest beneficiary of luck. Standing in fifth in PF and 4-0 is only possible because of an extra 1.64 wins from pure luck. The most egregious example is last week, when his team finished third-to-last in points but happened to play one of the two teams with even fewer. This stat won’t capture it, but Caleb’s luck continues by playing me when my QB, RB1, and RB3 are all on bye. Yours truly is the other beneficiary of luck. While I’m second in PF by a comfortable margin, my luck came from playing Carlos during my only down week.
Keeper Value
It’s obviously too early to analyze everyone’s draft decisions and strategies (e.g., a few high-end players, several mid-tier players, etc.). That said, we can review points per dollar on an ongoing basis:
select player_name as Player, position as Position, nfl_team as Team,
manager_display_name as Manager, amount as Cost, points_for_drafting_team as PF,
round(points_per_dollar, 2) as PointsPerDollar
from sleeper.gold.draft_spend
where season = 2026 and is_keeper = true
order by PointsPerDollar desc;
Here’s the output:
| Player | Position | Team | Manager | Cost | PF | Points per Dollar |
|---|---|---|---|---|---|---|
| Javonte Williams | RB | DAL | coolguytrav | 14 | 80.4 | 5.74 |
| Chris Olave | WR | NO | mattkman | 20 | 79.1 | 3.95 |
| Kyren Williams | RB | LAR | novaprice | 20 | 76.7 | 3.84 |
| Kenneth Walker | RB | KC | exoentropy | 29 | 101.1 | 3.49 |
| Emeka Egbuka | WR | TB | exoentropy | 14 | 40.1 | 2.86 |
| Cam Skattebo | RB | NYG | callentrail | 14 | 36.2 | 2.59 |
| Amon-Ra St. Brown | WR | DET | markhambone | 29 | 72.3 | 2.49 |
| Brock Bowers | TE | LV | almostwinning | 17 | 42.2 | 2.48 |
| Chase Brown | RB | CIN | coolguytrav | 17 | 40.0 | 2.35 |
| Tyler Warren | TE | IND | mattkman | 14 | 29.5 | 2.11 |
| Ladd McConkey | WR | LAC | cramseyio | 17 | 33.3 | 1.96 |
| Drake Maye | QB | NE | callentrail | 14 | 25.7 | 1.84 |
| Rashee Rice | WR | KC | cramseyio | 20 | 30.0 | 1.50 |
Callen thought Javonte Williams was obviously the best keeper during the draft. This has held so far in terms of ROI. Kenneth Walker is the best keeper from a total PF perspective. Caleb continues to lean on Kyren Williams. Keepers clearly bolster the top teams on the leaderboard. Callen and Cramsey have not-so-great ROI. Drake Maye was already dropped, and Cam Skattebo continues to deal with injury issues while averaging 0.75 fumbles per game. Ladd McConkey and Rashee Rice are currently WR 39 and 43, respectively. Not terrible, but not worth the price tag.
Flyers
We’ll look at the high-end players later, but I was curious whose one-dollar picks went the farthest. Yes, I know it’s an arbitrary cutoff. I also excluded QBs (not because I don’t want Patrick Mahomes on any of my lists, I swear) and defenses. We can tweak the query above:
select player_name as Player, position as Position, nfl_team as Team,
manager_display_name as Manager, amount as Cost, points_for_drafting_team as PF,
round(points_per_dollar, 2) as PointsPerDollar
from sleeper.gold.draft_spend
where season = 2026 and amount = 1 and position not in ('QB', 'DEF') and points_for_drafting_team > 0
order by PointsPerDollar desc;
Look at that! We’ve got a Longhorn legend at the top:
| Player | Position | Team | Manager | Cost | PF | Points per Dollar |
|---|---|---|---|---|---|---|
| Matthew Golden | WR | GB | novaprice | 1 | 51.0 | 51.00 |
| Deebo Samuel | WR | SF | lrich91 | 1 | 45.9 | 45.90 |
| Isaiah Likely | TE | NYG | novaprice | 1 | 41.0 | 41.00 |
| Jakobi Meyers | WR | JAX | almostwinning | 1 | 36.7 | 36.70 |
| Wan’Dale Robinson | WR | TEN | jyarrow | 1 | 32.4 | 32.40 |
| Josh Downs | WR | IND | almostwinning | 1 | 32.2 | 32.20 |
| Jordan Addison | WR | MIN | acarlough | 1 | 28.2 | 28.20 |
| Alvin Kamara | RB | NO | lrich91 | 1 | 25.1 | 25.10 |
| Keaton Mitchell | RB | LAC | markhambone | 1 | 23.8 | 23.80 |
| Juwan Johnson | TE | NO | BigOleDoinks | 1 | 22.3 | 22.30 |
| Rachaad White | RB | WAS | jyarrow | 1 | 22.1 | 22.10 |
| Romeo Doubs | WR | NE | novaprice | 1 | 17.5 | 17.50 |
| Rashid Shaheed | WR | SEA | lrich91 | 1 | 17.0 | 17.00 |
| Jonah Coleman | RB | DEN | novaprice | 1 | 11.8 | 11.80 |
| Tyler Allgeier | RB | ARI | acarlough | 1 | 10.8 | 10.80 |
Caleb clearly shines here. Trondheim also has some good value picks. Mark and John probably planned on being higher on this list, given the top dollar they spent on their core.
Top-Dollar Talent
Next, I wanted to know more about the premium picks. Before diving in, I first defined what ‘premium’ means using some simple Spark code.
df = spark.table('sleeper.gold.draft_spend').where('season = 2026')
display(df.select('amount', 'points_for_drafting_team', 'points_per_dollar').summary())
Statisticians rejoice.
| Summary | Amount | Points for Drafting Team | Points per Dollar |
|---|---|---|---|
| Count | 156 | 144 | 144 |
| Mean | 15.37 | 37.10 | 9.04 |
| Standard Deviation | 19.81 | 26.12 | 14.38 |
| Minimum | 1 | -0.60 | -0.60 |
| 25th Percentile | 1 | 17.50 | 1.37 |
| Median | 6 | 34.30 | 3.23 |
| 75th Percentile | 21 | 47.80 | 8.08 |
| Maximum | 88 | 116.36 | 91.78 |
Great! Let’s use that 75th percentile to define premium:
select player_name as Player, position as Position, nfl_team as Team,
manager_display_name as Manager, amount as Cost, points_for_drafting_team as PF,
round(points_per_dollar, 2) as PointsPerDollar
from sleeper.gold.draft_spend
where season = 2026 and amount >= 21
order by PointsPerDollar desc
limit 15;
I was on the fence about whether to include QBs here. I ultimately kept it because Josh Allen is the top player overall by fantasy points. For the record, I think Jalen Hurts is only on here because of intrinsic position value.
| Player | Position | Team | Manager | Cost | PF | Points per Dollar |
|---|---|---|---|---|---|---|
| Josh Allen | QB | BUF | BigOleDoinks | 32 | 116.36 | 3.64 |
| Kenneth Walker | RB | KC | exoentropy | 29 | 101.10 | 3.49 |
| Jalen Hurts | QB | PHI | lrich91 | 23 | 72.82 | 3.17 |
| Tee Higgins | WR | CIN | coolguytrav | 21 | 65.10 | 3.10 |
| Amon-Ra St. Brown | WR | DET | markhambone | 29 | 72.30 | 2.49 |
| Tetairoa McMillan | WR | CAR | almostwinning | 27 | 62.50 | 2.31 |
| Zay Flowers | WR | BAL | coolguytrav | 28 | 61.20 | 2.19 |
| Bucky Irving | RB | TB | lrich91 | 29 | 63.00 | 2.17 |
| Garrett Wilson | WR | NYJ | novaprice | 26 | 51.00 | 1.96 |
| CeeDee Lamb | WR | DAL | lrich91 | 58 | 100.10 | 1.73 |
| Jaxon Smith-Njigba | WR | SEA | coolguytrav | 64 | 103.76 | 1.62 |
| Derrick Henry | RB | BAL | exoentropy | 54 | 85.80 | 1.59 |
| Quinshon Judkins | RB | CLE | cramseyio | 26 | 38.30 | 1.47 |
| DeVonta Smith | WR | PHI | acarlough | 27 | 38.50 | 1.43 |
| David Montgomery | RB | HOU | mattkman | 28 | 38.40 | 1.37 |
There’s an argument to be made (at least so far) that Kenneth Walker is the best pick in the draft. The highest flex player by points per dollar in the top quartile. But what about the very top by spend? Let’s check that out too:
select player_name as Player, position as Position, nfl_team as Team,
manager_display_name as Manager, amount as Cost, points_for_drafting_team as PF,
round(points_per_dollar, 2) as PointsPerDollar
from sleeper.gold.draft_spend
where season = 2026 and amount >= 21
order by amount desc
limit 15;
The results are a bit surprising:
| Player | Position | Team | Manager | Cost | PF | Points per Dollar |
|---|---|---|---|---|---|---|
| Jahmyr Gibbs | RB | DET | BigOleDoinks | 88 | 102.00 | 1.16 |
| Bijan Robinson | RB | ATL | markhambone | 87 | 91.40 | 1.05 |
| Jonathan Taylor | RB | IND | cramseyio | 71 | 79.20 | 1.12 |
| Ja’Marr Chase | WR | CIN | jyarrow | 70 | 47.20 | 0.67 |
| James Cook | RB | BUF | novaprice | 66 | 61.50 | 0.93 |
| Puka Nacua | WR | LAR | mattkman | 65 | 33.10 | 0.51 |
| Jaxon Smith-Njigba | WR | SEA | coolguytrav | 64 | 103.76 | 1.62 |
| Christian McCaffrey | RB | SF | BigOleDoinks | 61 | 65.00 | 1.07 |
| Saquon Barkley | RB | PHI | jyarrow | 61 | 19.00 | 0.31 |
| De’Von Achane | RB | MIA | almostwinning | 59 | 19.60 | 0.33 |
| CeeDee Lamb | WR | DAL | lrich91 | 58 | 100.10 | 1.73 |
| Justin Jefferson | WR | MIN | jyarrow | 58 | 37.90 | 0.65 |
| Derrick Henry | RB | BAL | exoentropy | 54 | 85.80 | 1.59 |
| Omarion Hampton | RB | LAC | novaprice | 53 | 41.70 | 0.79 |
| Ashton Jeanty | RB | LV | lrich91 | 51 | 59.90 | 1.17 |
This is far from a perfect metric, but I’m shocked that points per dollar hovers around 1 for the top picks. There are obviously benefits not captured here (e.g., positional scarcity, week-to-week consistency, etc.), but this illustrates the premium paid in the draft for top-end dudes.
Closing Thoughts
I’m starting to like auction draft more and more as the season goes on. Being able to track ROI and efficiency against a dollar amount you specified (rather than an arbitrary position order) unlocks a lot of fascinating analytical potential. I feel like I’ve only scratched the surface of the statistical shit-talking this data unlocks. It’s beautiful.
Tarv is the team to beat this year and resides in his own tier. The only teams that I’m writing off are Carlos and Trond. Everyone else is in the hunt.
Until next time, tryhards.
