A toolbox for football analytics

noahs_ark My article “Towards a new kind of analytics” published on this site several weeks ago has received a lot of attention, for which I am very grateful. Most feedback I received though was along the lines of “this is all well and good, but how do I go about doing this kind of stuff?” This follow-up is designed to answer this question in a narrow sense, by listing some of the basic computational and statistical tools that I found indispensable in “proper” analytics work.  As I argue in that previous article, the lowest-hanging fruit in football analytics has been picked and basic tools aren’t sufficient anymore. To put things bluntly, the vast majority of analysts active in the public sphere today need to make a qualitative methodological leap forward or lose contact with the state of the art forever. The narrative link list below is divided in three parts: databases, programming and statistics. *** Databases *** You must kill every thing you love, and that includes Excel, because a well-organised data store is critical to your analytics pipeline. It ensures that you have a single cross-linked source of data that you can curate and keep up-to-date, and it minimises the time required to extract and prepare datasets for analysis. In practice, this means a relational (SQL) database. SQL is an industry standard language for extracting (“querying”) data from highly optimized databases. It was designed to be relatively easy to use by people without programming background, and I would say that this goal has been achieved — I have personally converted several non-technical people into able SQL query-writers. To use SQL you must operate an actual database containing your data. There are two basic questions here: what database variety to use, and where to run it. Starting with the latter, it is certainly possible and an entirely reasonable initial step to maintain a database on your personal computer. However, having it in the cloud is the superior option, because you don’t need to worry about setup, backups or power failures. Amazon Web Services (AWS) offer a year’s worth of free database hosting, so you can start with them and after a year either pay to continue or move to another solution. As to what flavour of SQL to use, I recommend MySQL if you have no previous relational database experience, and PostgreSQL otherwise. My impression having used both is that  PostgreSQL is vastly superior to MySQL in a number of aspects, but trickier to tame without experience. If you go down the MySQL route, the MySQL Workbench is the leading front-end to MySQL databases. *** Programming *** In an ideal world, analytics requires little actual programming: the right data emerges from the database in the right form for a machine learning algorithm to analyse it and report the results to you. The practice makes a cruel mockery of this vision, and as an analyst I spend most of my time programming rather than designing models and analysing results. The three most common programming tasks that I have to perform are: loading raw data into databases; transforming the data extracted from a database into the form required by statistical software; and validating and reporting the results of my analyses. I suspect that the experience of other analysts is broadly similar. Thus, unless you work in a team or have a programmer accomplice, you need a decent grasp of a programming language to do football analytics well. Two languages are the overwhelming  favourites of the community: Python and R. My general advice on which one to choose is this: if you know basics of one of these, stick with it and put in the effort to learn it to a good standard. If you don’t know either, learn R. Personally, I believe that as a programming language, R is an abomination and it really ought to be banned; but it is also the pragmatic choice for football analytics, because of the breadth of statistical methods available, and because two truly game-changing packages due to Hadley Wickham, dplyr and ggplot2 can take care of 95% of your data manipulation and visualisation needs. RStudio, also from Wickham, is the leading environment for R development. The Advanced R book (guess the author) is in fact not that advanced in the first few chapters and is a decent guide, unless you’re truly starting from zero. If you go down the Python route, install the Anaconda distribution, which pre-packages Python 2.7/3.5 (either is fine) for data science, including the scipy, numpy, matplotlib, statsmodels and scikit-learn add-ons essential for data analysis. PyCharm is a wonderful, feature-rich Python editor. An added benefit of Python is that you can use it to structure and query your SQL database using so-called ORMs, that is a technology that integrates the database with the language so closely that database records appear as variables directly in the code and you can manipulate them without SQL (I have no doubt that R has ORMs too, but the mere thought makes me shudder). The two leading Python ORMs are Django and SQLAlchemy. I use the former, which is actually a complete framework for database-driven websites, but SQLAlchemy is a perfectly fine choice too; Soccermetrics use it, and you can find plenty of code samples in Howard’s repos. Lastly, whether you end up with R or Python, version control software (VCS) is essential. VCSes let you move easily between multiple versions of your code and thus make sure that nothing you ever write is lost and also help you understand how your code evolved over time and why. There is no better VCS than Git. If you can afford it, pay GitHub 7 money/month and they will host your code in private repositories, and you can use their excellent web interface which adds tons of genuinely useful features on top of Git itself. If you’d rather not pay, Bitbucket will host private repos for free, but the interface is atrocious. The last option is GitLab — it is free and the interface is perfectly decent, but you have to host the code repository yourself. In all cases, you will have to learn Git itself, which is a command-line program of considerable complexity, but understanding the basic commands (checkout, status, add, commit, push, pull, branch) takes no more than a day and is all you are going to need. The official Git webpage linked above has plenty of good educational resources. *** Statistics *** Perhaps my main complaint with the public analytics today is that the analysts do not use the proper statistical machinery to tackle their questions. As I have said before, all progress on the key analytics questions than can be achieved with counting and averaging event data has been achieved. Football is complex and football data is noisy, and to derive robust insight, powerful, specialist tools are necessary. Unfortunately, learning advanced statistics on your own is a challenging and long process, and despite having been engaged in it for the past several years, I have only scratched the surface. Perhaps the more efficient way of doing it would be to attend an online course, or follow a general statistics textbook. I can’t recommend any particular course but I can’t imagine that a randomly chosen one can do harm. As to textbooks, Cosma Shilazi’s draft is very decent, as is Norman Matloff’s (Thom Lawrence’s find), and they are both free. Gelman et al.’s Bayesian Data Analysis is a comprehensive, advanced treatment of, erm, Bayesian data analysis, and if you google hard enough there is a PDF of that on the web too. One concrete statistical method that I believe is simple enough to get a grip on very quickly but could instantly improve a majority of your analyses is Generalized Linear Models (GLMs). GLMs generalize linear regression in two ways: first, the dependent (predicted) variable doesn’t have to be a linear function of the predictors variables anymore, and second, the distribution of errors is not necessarily Gaussian. Because of these two areas of added flexibility, many of the common football analytics models fit in the GLM framework. An expected goals model can be a GLM but so can a score prediction model or a power ranking, and so on. R has the in-built glm function, which allows you to specify GLMs with a single, powerful command, and the payoff is great: you get the coefficients, statistical significance and fit diagnostic all for free. *** My objective in this article is to enable budding football analysts to build a platform from which they can analyse the game in the most efficient way possible, meaning maximum insight for unit of time spent. Unfortunately, unless you’re already half-way there, this entails a heavy initial time investment. In my view it is not just worth it; is it a necessary precondition for serious work. If serious work is what you have in mind, do not hesitate for ask me on Twitter (@statlurker) for further pointers.   Many thanks to Thom Lawrence for his feedback on this article.

Towards A New Kind Of Analytics

I have been involved in football analytics for four years and doing it for a living since 2014. It has been a wonderful adventure, but there is no denying that the public side of the field has stalled. But this is not really a “crisis of analytics” piece or an indictment of the community. Instead, I want to point out one critical barrier to further advancement and plot a course around it. In short, I want to argue for a more theoretical, concept-driven approach to football analysis, which is in my opinion overdue.

It is going to be easy to read this short article as a call to basic, as opposed to applied, research and consequently dismiss the ideas as impractical. Try not to do this. I like applied football analytics and I firmly believe that it has value — even the public variety. But I also believe that we have now reached the point where all obvious work has been done, and to progress we must take a step back and reassess the field as a whole. I think about football analytics as a bona fide scientific discipline: quantitative study of a particular class of complex systems.

Put like this it is not fundamentally different from other sciences like biology or physics or linguistics. It is just much less mature. And in my view we have now reached a point where the entire discipline is held back by a key aspect of this immaturity: the lack of theoretical developments. Established scientific disciplines rely on abstract concepts to organise their discoveries and provide a language in which conjectures can be stated, arguments conducted and findings related to each other. We lack this kind of language for football analytics.

We are doing biology without evolution; physics without calculus; linguistics without grammar. As a result, instead of building a coherent and ever-expanding body of knowledge, we collect isolated factoids. Almost the entire conceptual arsenal that we use today to describe and study football consists of on-the-ball event types, that is to say it maps directly to raw data. We speak of “tackles” and “aerial duels” and “big chances” without pausing to consider whether they are the appropriate unit of analysis. I believe that they are not.

That is not to say that the events are not real; but they are merely side effects of a complex and fluid process that is football, and in isolation carry little information about its true nature. To focus on them then is to watch the train passing by looking at the sparks it sets off on the rails. The only established abstract concept in football analytics currently is expected goals. For good reasons it has become central to the field, a framework in its own right. But because of it focuses on the end result (goal probability), all variation without impact on xG is ignored. This focus on the value of a football action or pattern rather than on its nature seriously undercuts our understanding of the fundamental principles of the game. Just like isolated on-the-ball events, expected goals tell us next to nothing about the dynamic properties of football. Indeed it’s the quantitative dynamics of football that remains the biggest so-far unexplored area of the game.

We have very little understanding of how the ball and the players cross time and space in the course of a game, and how their trajectories and actions coalesce into team dynamics and, eventually, produce team outputs including goals. This gap in knowledge casts real doubts on the entirety of quantitative player analysis: since we do not know how individual player actions fit in the team dynamics, how can we claim to be rating the players robustly? And before the obvious objection is raised: these dynamic processes remain unexplored not for the lack of tracking data. The event data that is widely available nowadays contains plenty of dynamic information, but as long as our vocabulary forces us to consider every event in isolation, we cannot but glimpse it. Luckily, a newer concept is emerging into view and taking a central place: the possession chain (possession for short).

A possession is a sequence of consecutive on-the-ball events when the ball is under the effective control of a single team. A football game can then be seen as an (ordered) collection of sequences. It is a very positive development since possessions make much more sense as the fundamental building blocks of the game than events. This is because they are inherently dynamic — they span time and space. I believe that they should be studied for their own sake, and if you only compute them to figure out who should get partial credit for the shot at the end of it, then in my opinion, you are doing analytics wrong – or at least not as well as you could be.

To give an example of such a study and why it is important, consider the question: what makes two possessions similar? To a human brain, trained in pattern recognition for millions of years, it is a relatively easy question. It is however a quite difficult, basic research task to devise a formal similarity measure given the disparate nature of the data that makes up a possession (continuous spatial and time coordinates, discrete events, and their ordering). For the sake of argument, assume that we have a measure that we are happy with. It has an immediate, powerful application: we can now measure the similarity of playing styles of teams and players by measuring the similarity of possessions in which they are involved. This method is bound to be much more precise than the current, purely output-based methods, and as we know, playing style similarity has a wealth of applications in tactics and scouting. But that’s not the end of the story.

Our hypothetical measure, having already provided a considerable applied benefit, can now be fed back into basic research. Under a few relatively mild additional assumptions, the measure gives a rich structure to the set of all possible possessions, potentially allowing us to deploy a century of research in general topology and metric spaces to make statements about football. But for all these potential rewards, the subject remains unexplored because of the twin obstacles of inadequate conceptual arsenal and perceived lack of immediate applied benefit.

* * * Based on what I sketched above, my suggestion for everyone involved in the field is to be more ambitious, to think more expansively and to not settle for imperfect investigations of lesser questions just because the data seems to be limiting us in this way. It isn’t, at least not all the time. Instead of counting events in more and more sophisticated ways, let us focus on possessions, ask broader questions and interrogate the data in more creative ways than before. I firmly believe that the payoff of this approach will be far greater than anything we have achieved so far.

I want to thank Colin Trainor (@colintrainor), Ted Knutson (@mixedknuts), James Yorke (@jair1970) and especially Thom Lawrence (@deepxg) for their feedback on earlier versions of this article.

Don’t Tank!: The Four Phases of NBA Franchises

Supposedly, the Phoenix Suns, Philadelphia 76ers, and Orlando Magic are all “tanking”: purposefully losing games in order to get a better pick in the 2014 draft, which has been forecasted as completely incredible for years. If that’s the case, they all suck at tanking, since the Suns and Magic have scored more points than their opponents, and the 76ers are 5-6. The Suns are even above .500. The nerve of those players, playing to the best of their ability. When the 76ers started the year 3-0, there was a combination of shock, amusement, bewilderment, and panic. ESPN even published a post about how they needed to blow up the roster, in order to tank better. You know… blow it up again, after trading away their All-Star point guard for a rookie who won’t play this season. This is, in fact, not what the 76ers should do, and articles like that betray a lack of understanding as to how to build a good team for the future. Regardless of how many games the Suns are winning, they are rebuilding the right way. They traded off players that were old, expensive, or otherwise not useful to a rebuilding franchise. In exchange, they get up to four picks in the 2014 first round, and three more in the second. They also have some great young talent on the roster, and even better, their highest-paid player is Goran Dragic at $7.5m (whom I’ve already discussed them trading). Losing games is overrated. Sure, it gives teams better odds of getting that #1 pick, but that’s all it gives: odds, not a guarantee, and it doesn’t shift the odds that dramatically. The worst team in the league only gets a 25% chance at the #1 pick. Playing reasonably well, on the other hand, makes their players more valuable: Markieff Morris, as of this writing, is #10 in the league in PER, and #8 in win shares per 48. During the offseason, you were more likely to hear jokes about Phoenix’s twins than genuine interest, but now people are genuinely impressed with him. Young players, playing well, get you trade offers. And trade offers lead to more draft picks, and more good young players. Sure you and I might know how sample size works, but do New York Knicks executives? As I see it, there are four rough stages to building a team:

  • Acquire long-term assets
  • Get a superstar
  • Build around your star
  • Contend for the title

The tanking that people talk about is usually just acquiring long-term assets, in the form of draft picks and project players. These teams can afford to think five years down the line, and exploit that by nabbing assets from teams that are in a later stage of building their team (commonly referred to as “win now.” The 76ers are a great example here: their oldest players are three 25 year-olds. They have talented players in Evan Turner, Spencer Hawes, and the current Rookie of the Year frontrunner Michael Carter-Williams. They traded a second-round pick (top 50 protected!) for Tony Wroten, the 25th pick in the 2012 draft, from a team that couldn’t give him any minutes. He’s played more minutes in 11 games with the 76ers than he did in his rookie season with the Grizzlies. He made sports news with a triple-double in his first start (an arbitrary and meaningless measurement, but still kinda cool), and SportsCenter with some impressive plays. [youtube id=”7CV0xTc4EV0″ width=”633″ height=”356″] Ask yourself: if the 76ers asked teams about a trade involving Tony Wroten, what do you think they’d get in return? Probably more than a relevance-protected second-round pick. These teams aren’t going to keep up their initial hot starts, of course. The 76ers have already come back to earth, and with a DRTG (points allowed per 100 possessions) of 108.6, they’re the worst-defending team in basketball. Their margin of victory puts them at 27th overall. But they’ve made people notice them. Defenders of tanking often point to the “Thunder model,” of how the Oklahoma City Thunder swiftly built a championship contender seemingly out of nothing. The way I look at history is that they got absurdly lucky. If we go back to the 2007 draft, when they picked up Kevin Durant, they only had the fifth-worst record, which gave them an 18.5% chance of getting one of the first two picks. But getting the first pick would have probably led them to picking the consensus #1 pick, Greg Oden, so the only situation where their franchise ends up so well is exactly at the #2 slot. The following year, they got slightly unlucky to not get one of the first three picks in the draft, but both Michael Beasley and O.J. Mayo have massively underperformed expectations after going second and third in that draft. Russell Westbrook wasn’t really thought of as someone with massive superstar potential, at the time. Serge Ibaka wasn’t even a lottery pick, and they got him in the same draft, and turned him into one of the better forwards in the league. In the next draft, they seemingly reached for James Harden with the third pick (after once again dodging the #2 pick bust Hasheem Thabeet) when mock drafts had Ricky Rubio as an “easy” pick. Obviously, lottery chance affects every franchise, leading to an infinite number of “what-ifs.” But it’s pretty obvious that a team’s expected value from three lottery picks in consecutive years is a lot lower than that of Kevin Durant, Russell Westbrook, and James Harden. That’s an incredible run of draft picks, and most teams would be overjoyed to have one of those players emerge from a non-first-overall pick. Imitating a team that got where they are by that much luck will not lead to very good results. An alternate plan: if you give minutes to a bunch of recent draft picks, project castoffs from other teams, and D-League callups, most of those players will not be good. Some of them will even be atrocious. Back when the 76ers thought they were a decent team, they had a rookie named Nikola Vucevic that they drafted 16th, and got buried in their lineup. He played pretty well for a rookie in his 800-ish minutes. He ended up as a throw-in from the 76ers to the Magic in the four-team Dwight Howard/Andre Iguodala/Andrew Bynum trade, and the Magic actually gave the guy some minutes. He had a startlingly good sophomore season with them, and is exceeding it this year, becoming more efficient on more shots. This will not happen every time, or most of the time, or half the time. But if you’re an asset-acquiring team, you can afford to play a bunch of young guys and find out who’s secretly a pretty good NBA starter. “Pretty good” might sound unexciting, especially in a league where so much depends on the best ten players, but if a guy is winning games for you while making less than $2m a year, as Vucevic is, that’s an incredible deal. All the guys who didn’t work out, the team is free to decline their rookie options, and they’ll probably get 10-day contracts or play overseas after that. If your team can find a couple starters at bargain-bin prices while sifting through junk, that’ll pay off when you move to the next phases of team-building. Teams leave the asset-acquiring stage when they acquire a legitimate superstar. The traditional way (and the expected one from people that talk of tanking) is to acquire one with an early lottery pick. Just like the worst team has better odds, but a low overall chance, of the best pick in a draft, the #1 pick has the best odds, but no guarantee, of being the best player in their draft class. Looking from 2003 (when LeBron was the first pick) through the 2012 draft, the first pick has been superstar-quality six times (LeBron, Dwight Howard, Derrick Rose, Blake Griffin, Kyrie Irving, Anthony Davis), a very good player twice (John Wall and Andrew Bogut), somewhat of a bust in the case of Andrea Bargnani, and derailed by injury in the case of Greg Oden.  60% chance at a superstar is fantastic, there’s no doubt about that. But looking at things from the opposite direction, the picture is muddied a bit. Of the top 20 players by PER who came into the league in 2003 or later, only three of them were the #1 overall pick. 17 of them were from the lottery, though, with only David West and JJ Hickson being drafted in the non-lottery first round, and Paul Millsap from the second round. The first pick is unquestionably better, there’s no doubt about that, but getting a collection of lottery picks can, taken collectively, give a team just as good odds at a superstar. Drafting a star is so prone to random chance that many teams decide to use their assets to trade for one instead. This has worked out really well for Houston with James Harden, and not quite as well for the some more famous teams, but we’ll get to that. The opportunities to trade for or sign legitimate stars don’t happen often, and when they do, they inevitably result in year-long media assaults that make me want to follow curling or competitive Magic: the Gathering instead. By the nature of the bidding war that teams go through to acquire that player, the acquiring team almost inevitably ends up overpaying, leaving the team with a skeletonized roster ill-equipped to compete alongside that player. In the long run, this is fine and necessary for the franchise to move forward, but it can lead to a lot of doomsday predictions when the “new and improved” team underperforms. The team will probably be saddled with the overpaid castoffs that the star’s former team demanded the acquiring team take with, and the best of the young assets the team got in the previous phase have to get shipped out. At any given time, there are probably fewer than 15 players that I’d consider to be legitimate superstar-quality. It might even be as low as five. This isn’t to disparage the second tier, or to start a meaningless fight over who is or isn’t “elite” a la ESPN screaming head shows, but to caution a team against blowing everything to acquire that most dreaded player: the False Superstar. Some of them are great players, but, as the sports media catchphrase goes, aren’t good enough to be the best player on a championship team. The more sinister ones put up empty numbers. If a team trades their assets and takes on the enormous contract of the false superstar, they might be completely screwed for half a decade. Their assets are all sunk into one big, untradeable contract, and due to sunk costs, they’re resigned to building around their false superstar, leading to early playoff losses or worse. Fans more accustomed to other sports might raise an eyebrow at the importance given to acquiring one single superstar, rather than a solid overall team. What difference does it make if you have one player contributing 20 wins above replacement, or two players contributing ten each? There are a few reasons for this: the easiest is to look at a game of basketball. More than any other sport, an individual player can have a huge impact on every single play. It’s not an exaggeration to say that both team’s gameplans, on both sides of the ball, center around LeBron James every second he’s on the court. Even football quarterbacks can, at most, be the focus of 50% of a team’s attention, unless Peyton Manning takes up free safety at some point. Second, superstar players have an even bigger impact when it comes playoff time. During the regular season, these players might average 36 minutes per game. In the playoffs, it will very often be over 40. LeBron has a career playoff average of 43.1 minutes per game. This is enough of a change to completely exclude the lower parts of a team’s rotation, and the killer second units that propel certain teams through the regular season become less relevant. Lastly and perhaps most importantly: contracts. NBA contracts are capped at a certain amount, according to an unbelievably complex formula that I can neither explain nor comprehend. The gist, though, is that there’s a certain dollar amount that’s a “max contract,” and that’s the most that player can get paid for that time period. Salary cap genius Larry Coon wrote an analysis (behind ESPN’s paywall, unfortunately) of the league’s most underpaid and overpaid players. The two most underpaid players, in terms of absolute difference between salary and value created, are… LeBron James and Kevin Durant. Those are the two best players in the NBA. If a player creates $16m in value per year, and your team pays him $15m per year for this, your team is basically getting screwed. The value in a superstar comes from their surplus value, because all that unspent salary can be spread among the rest of a team’s players. If your highest-paid player is only creating wins at the rate you’re paying them for, that’s a one-way ticket to the middle of the league. Good luck leaving there when you’re paying someone $15m per year. The only way around this is if a team somehow gets stuffed full of Kawhi Leonard and Kenneth Faried clones; ie, players who aren’t stars, but have a star-like gap between their expected and actual salaries. This is impossible, though, because these players are rare (they have to be low draft picks who produce way more than expected), absurdly valuable as trade assets, and their incredible surplus value lasts only as long as their four-year rookie contract. So how does a team avoid a false superstar? A real superstar is either a true two-way monster, like Paul George, Dwight Howard, or LeBron; or they’re so outrageously productive offensively that their defense can be mitigated, like James Harden, Steph Curry, or Kevin Love. A false superstar produces offense, but gives up just as many points on defense. They might also chuck up tons of shots, and expect people to be impressed with their nightly double-double. Do not trade for these players. They will hurt you. As the Knicks have learned since they acquired Carmelo Anthony, getting a star is not the end. The next step is finding where he fits, and getting players that fit around him. For a while, this was looking pretty good: they were playing Carmelo at power forward, where he is excellent offensively and less-bad defensively, next to defensive powerhouse Tyson Chandler and an array of three-point shooters to stretch the floor while Carmelo went to work. Then, they took this extremely solid gameplan and handed it to James Dolan, who used it to wipe his sweaty testicles. It was disgusting, and now they have a roster composed entirely of players who play the same position as Carmelo. melosad Chandler and shooters are a great fit for a team built around Carmelo, because the former players are all low-usage guys, and Carmelo creates value by taking a ton of more-efficient-than-average shots. In theory, this should lead to those low-usage players all being efficient with the shots they end up taking, and playing great defense to compensate for Carmelo’s laziness on that end. This plan is not limited to New York. The general team makeup of a star scorer, a defensive big, and a roster of shooters is on full display in Indiana, San Antonio, Houston, Golden State, and a few other teams are moving toward it. This has led to the increase in emphasis on three-and-D guys, and they’re getting harder to find. It’s not much of a stretch to see a future where the best of this archetype are getting max contracts from teams with money to spend, if they already have the superstar to build around. Andre Iguodala, the rocket-powered version of that player, might not have been the build-around player the 76ers were looking for, but he’s having a grand old time with the Warriors: leading the league with an absurd true shooting of .715, at the lowest usage% since his rookie year. All that’s left after those stages is title contention. Sign the veterans that other teams bought out, trade your near-useless draft picks for bench depth, and cross your fingers that Michael Carter-Williams doesn’t beat you in the Finals.

Is Masai Ujiri Really That Great?

Everyone should be skeptical of “best executive” awards. This is part of a larger contention that people should be more skeptical in general, but “best executive” awards are a great example. People like to credit the executive with everything that went right in their organization, and blame them for everything that went wrong. The best estimate is that CEO ability has about a .3 correlation with company performance,[1] meaning that the better CEO’s company will outperform a worse-run company about 60% of the time. Luck affects the NBA’s general managers in a big way. If they make a blockbuster trade or have a good season, they’ll look like a genius; if they go years without winning, they’re likely to get fired. It’s an extremely results-oriented, rather than process-oriented, field. If you want to get sad, take a look at the NBA’s past Executive of the Year awards. Bryan Colangelo earned his second EotY honor with the Raptors after the 2006-07 season, when the Raptors won 57% of their regular season games and made the playoffs. Their win percentage after that: .500, .402, .488, .268, .348, .415. Then he gets fired and replaced with Mr. Masai Ujiri, the reigning Executive of the Year. Geoff Petrie had an even worse trajectory. The Kings put him in charge in the mid-90s, and he assembled a fantastic squad in the early 2000s that will be remembered as one of the most fun teams to watch of all time. This got him two EotY awards in three years, the only person to do that until Calangelo did the same a half-decade later. The following year, Petrie’s Kings improved again to 61 wins, winning the West. Their decline started after that, slowly but surely moving from a team that lost game seven of the Western conference finals to the Lakers with prime Shaq and Kobe (in the most bullshit playoff series of all time), to a team that missed the playoffs seven years in a row, including  a 17-win season in 2008-09. Not all of this is the fault of the executives, of course. But that’s part of the point: they didn’t have perfect control; they probably made some good decisions that turned out poorly, but on their ascent, they probably made some bad decisions that turned out well. Luck cuts both ways, and any great seasons that seemingly come out of nowhere are going to regress to the mean the next year, whether you’re executive, coach, or player. Why do I bring up all these downer lookbacks on previous EotY winners? Because I wanted to set the stage for talking about someone that I’ve come to think of as a legitimately fantastic executive: Masai Ujiri. I was shocked for him to win the award, not because I didn’t think he was the best… I was shocked that the league agreed with me. This was a year when his team ended up underperforming in the playoffs, and their team didn’t send a single player to the All-Star game. When going back over his previous transactions, I want to be really careful to separate when he made a deal that was just fantastic, and when he did something that simply ended up turning out well. This is a tricky thing, and hindsight can never perfectly reproduce the information people had going into a decision. First, let’s start off with That Big Trade, the one that put Ujiri on the map: the Carmelo Anthony trade.[2] Denver traded away: Carmelo Anthony, Renaldo Balkman, Chauncey Billups, Anthony Carter, Kosta Koufos, Shelden Williams, 2015 second-round pick Denver acquired: Wilson Chandler, Raymond Felton, Danilo Gallinari, Timofey Mozgov, 2012 and 2013 second-round picks, 2014 first-round pick, cash The Knicks certainly got the best player in the deal, but it shows the price a team has to pay to get that: three above-average starting players, two of whom were in their early 20s at the time, along with a project big man and an upgrade in second-round picks. Billups was an extremely effective player at the time, but he was aging and earning $13m in that year, and eventually got amnestied. Since it happened, this trade has been held up as the model for trading off one’s star player: clearing roster room and salary, dumping your biggest contract, acquiring several starting-quality young players, and picking up an extra pick in the process. It was thought of as a near-miracle at the time for Denver, and hindsight has made it look even better: Gallinari is coming off his best year ever, and Chandler, though hobbled by injuries, produced much better on a per-minute basis than he ever had before. Raymond Felton was turned into Andre Miller, Jordan Hamilton and a second-round pick in a deal that did more for the lob pass than any trade aside from the Chris Paul one. Kosta Koufos is a noteworthy player here, and I suspect Ujiri just got lucky with this one. He was the only player from Minnesota that Denver acquired, and at the time, he was thought of as being a pretty bad end-of-bench guy. If he was any good, Minnesota would have thought more of sending away a seven-foot center making just over $1m a year on his rookie contract. At the time, he had played just over 1000 career NBA minutes, and had already been a throw-in on a trade from Utah. His true shooting was under .500 midway through his Minnesota season when he got shipped out. Whether Denver had scouted him and seen something that could be developed and cunningly swiped him, or thought nothing of him and Denver’s player development squad had turned him into the defensive presence he is now… I have no idea. The next trade is the one with the most uncertainty still around it. Denver traded away: Nenê Denver acquired: JaVale McGee Analysis of this one comes down to a few things: how much should a good, young team value getting more young players? If a player has played on a high level for many years, and starts playing worse after injury, are they likely to regress back to their higher level of play, or is this the new norm? And, the almost philosophical question: if a person raised in a bad environment ends up bad, can they change when moved to a better one? The Nuggets had, some months earlier, signed Nenê to a monster five-year, $65m contract… the kind that can ruin a team if he turns into an injured shell of his former self. Nenê wasn’t clearly headed in that direction, but he was missing time for injuries, and wasn’t the hyper-efficient Nenê he had been in years past. So, whether by design when they signed the deal or whether they just thought better of the contract afterward, Denver sent him away for the… um… ‘inconsistent’ JaVale McGee. This is an area where I have to be very careful to divorce my non-statistical reactions to watching him play with the factual realities. For people who haven’t done it, watching McGee play is a great time. He catches lobs. He pulls off some amazing moves. He goes for sky-high blocks, and on some of those attempts, actually connects with the ball. But no matter how good his efficiency, rebounding, and block numbers look (quite good, in fact), the plus/minus data tells the real story here: with very few exceptions, his team plays worse on both ends of the court with JaVale on the floor. Nenê does not have that sort of discrepancy between his personal stats and team stats; he has monstrously improved the Wizards when he’s out there for them. JaVale, somehow, made the Wizards worse. But his talent is so obvious. Can Denver’s excellent staff train him to unlearn all those horrific years in Washington, and play like a reasonable basketball player? Watching him, I keep tricking myself into seeing improvements. Then I look back at the numbers, and they’re basically the same as they were with the Wizards: good personal stats, makes his team worse. So, a playoff team sent away an older, injury-prone veteran, effective but waning, for a younger, highly talented player who makes his team worse (at the moment). This is a tough one. I will reluctantly call it a positive for Denver, but it’s extremely close, and part of it hinges on the possibility of a pump-and-dump: acquiring JaVale, convincing the league he’s way better now, shipping him out for someone who’s actually effective. Mr. Ujiri only made four notable trades while in Denver, and we’ve already covered three. The last of his deals seemed to be, at the time, The Big One: Denver traded away: Arron Afflalo, Al Harrington, 2013 second-round pick, 2014 first-round pick, 2014 second-round pick (clause on this so that Denver will send the worse of their two 2014 second-round picks) Denver acquired: Andre Iguodala When this trade happened, my jaw was on the floor. The Nuggets managed to join in a trade they seemingly had no business being in, and gave up Afflalo (a decent-though-overrated defender and very good shooter with illusions of iso prowess), a first, and somehow dumped the Harrington albatross contract to get Iguodala. How on earth? This one is a difficult in-hindsight trade to evaluate, since Iguodala was a free agent after the season. Making trades based on what a player will decide to do in the future is a bit dicey, and as third-party analysts we’re not entitled to the in-person discussions that players have with their team and agent about where they’d like to go. Iguodala ended up leaving in a sign-and-trade with the Warriors after Ujiri left, and who knows what would have convinced him to stay? If the team had won that series against the Warriors, and the Nuggets had retained Ujiri and Karl… well, maybe the result would have been different. But what Ujiri did was give the Nuggets one of the best wing defensive players in the league, and someone that the transition-based offense put to very good use. With the information we have available, then, I’m going to conclude that this was a great deal, and one any GM would be ecstatic to make, even if it didn’t work out as well as the Nuggets would have liked. Ujiri did other things other than those trades, of course. Drafting is super-important, and he deserves credit for correctly picking Kenneth Faried… sort of. Every mock draft had him going at the 21st spot, to the Portland Trailblazers, which Portland fans will always bring up in discussions of Faried. All Denver did was take the guy that should have gone one slot higher. Also worth noting: many of the basketball analytics-oriented people, including myself, had singled out Faried prior to the draft as someone who was way, way, way better than his projected draft position. Kevin Pelton’s SCHOENE model projected him as being the second-best player in the draft, after Kyrie Irving, and there’s a very good case that’s been how things worked out. Saying he only picked him 22nd because he didn’t go 21st is a cop-out, though, since players fall unexpectedly in every draft. MarShon Brooks was expected to go in the mid-teens and fell ten slots below that, and he’s been a solid bench scorer, but nothing to get excited about. Drafting Faried was, both at the time and in hindsight, a blatantly obvious move, but being obvious doesn’t mean it wasn’t correct. Instead, I’d say that about 20 general managers made a mistake by not listening to the advanced stats people and taking Faried sooner. The jury is still out on the rest of his draft picks, since we’ve barely see them play. Fournier could end up being a steal in the late first, but the sample size is way too low to tell. There’s an important aspect we haven’t addressed though: even if Ujiri is the best GM in the league, how much is that worth? Could he be replaced by some guy off the street earning a fraction of his salary? The notoriously cheap Kroenke family aims to find that out, and so far, the answer is: no, and you’re getting a bad value for even trying. Reportedly, the Raptors persuaded Ujiri with an offer of $15m over five years, and the Nuggets wouldn’t even offer half of that annual salary. Instead, they hired Tim Connelly at what must logically be a far cheaper rate. If he could do the same job, then that’s a great deal. So far, he cannot. He has made two trades so far: shipping Kosta Koufos, who I’ve already laid my praise all over and think of as one of the league’s most underrated players, to the Memphis Grizzlies for the near-worthless Darrell Arthur, an offensively inefficient bench forward who’s way worse offensively after a ruptured Achilles. This results in JaVale McGee as the team’s only real center (Mozgov is awful), a log jam at power forward, and a downgrade in talent whether measured by conventional player rankings (150 vs 201 on ESPN’s rankings) or advanced statistics. His other trade is the sign-and-trade to send Iguodala (and cash) out, and receive the thoroughly mediocre 30 year-old Randy Foye in return. As any angry 70 year-old will note, professional athletes are paid a lot. Even Darrell Arthur makes $3m a year, which just happens to be the salary of Ujiri with the Raptors. All it takes for Ujiri to pay for himself over a bargain-bin $500k GM is to produce more than $2.5m a year in value for his franchise. Connelly, in that single Kosta Koufos transaction, probably cost the team far more in value than that, and that’s not even a trade involving players anyone has heard of. Because of how easy it is to sign a player to a bad contract that will burden a team for years (Amar’e Stoudemire, Andris Biedrins, Ben Gordon, etc), it’s pretty crucial to hire a GM that won’t make mistakes that outright terrible. A single year of paying Emeka Okafor to be mediocre costs about the same as Ujiri’s entire five-year contract, and he’s the highest-paid GM in the league. On the other hand, let’s check in with what Ujiri is doing over at his new Toronto home: Toronto traded away: Andrea Bargnani Toronto acquired: Marcus Camby, Steve Novak, Quentin Richardson, 2014 second-round pick, 2016 first-round pick, 2017 second-round pick When Ujiri went over to Toronto, I was incredibly curious whether he’d be able to duplicate those Denver trades where he seems to get way more value than he should have. And holy god, is this a value-laced trade. Bargnani makes almost $12m in his first Knicks season, had a TS of .482 last year, and (depending on who you listen to) is somewhere between average and a train wreck on defense. That contract is something that, seemingly, Toronto would want to dump at all costs, and they somehow got a first-round pick for him… and one of the best three-point shooters in the game… and a couple second-round picks, I guess just to see if the Knicks would go for literally anything. This trade goes beyond lopsided and into the realm of hilarious. When Ujiri went to Toronto, I was crossing my fingers that Denver was on some next-level statistical analysis, paying attention to the aforementioned research on how luck-based executive performance is. But the A vs B of Connelly’s transactions compared to Ujiri couldn’t be clearer: Ujiri is the game’s best general manager, and teams need to start paying their general managers like the crucial decision-makers they are. Because who’d you rather have: him or Darrell Arthur?

[1] James H Steiger, via Daniel Kahneman’s absolutely essential book Thinking, Fast and Slow. Summaries of CEO performance and related subjects are mostly summaries of Chapter 19 in that book.
[2] I’m using basketball-reference for transaction histories (and everything else), but you can get the same info just about anywhere.