Taylor Davidson · How I built Nine Rakes

Sports stats, virtual basketball, and Nine Rakes
by Taylor Davidson · 20 Sep 2023

Fourteen years ago I wrote about how I grew up with baseball stats, and perhaps the biggest change in the game since then has been an explosion in the amount of data available and used in the game.

Statcast is the big change. Introduced in 2015, Statcast uses radar and camera systems to measure various facets of the game, from pitch velocity and spin rate to batted ball speed and defensive positioning, and it’s given rise to new metrics like exit velocity, launch angle, sprint speed, and more. These advanced analysis metrics have had an influence on the game, shifting the strategy on how to score runs, and have become popularized enough to be discussed in ESPN highlights and on stadium scoreboards.

Baseball teams have also adapted a range of camera based systems like Rapsodo, Edgertronic, KinaTrax, and more to understand player movement and mechanics to aid in player development and training. An electronic strike zone is being tested in the minors, and greater use of technology seems possible in the majors (a change some players would love).

Baseball is not alone, of course. Basketball has seen increased usage of stats and metrics to attempt to quantify and understand offensive and defensive performance. ShotTracker, a technology that uses sensors to track player and ball movements in real-time, provides granular data on every shot, including its location, the player’s movement prior to the shot, and the result. More data about the processes of performance, and not just the result, has led to more analytics and stats to guide player development and game strategy.

While I never went to work for a team, I’ve always paid attention to the rise of analytics and metrics in sports. For a few years, fantasy sports was an outlet for that. I used to spend countless hours analyzing stats to choose the right players to maximize fantasy team performance, creating my own spreadsheets to aid in player drafting and selection. But along the way I gave it up.


Earlier this year I discovered Swoops, a basketball simulation game and virtual league that lets you own and manage your own digital basketball team. A step up from fantasy basketball, Swoops allows you to build a team from virtual players that you own. Swoops is free to play - create a Swoops team here - just sign up for an account to start a team, and you’ll automatically receive your first Swoopster; that player in on loan to start, but once you earn 1,000 Swooper Points (which come from playing the game and completing in-game challenges like winning games), the player is yours.

When you start a new team, you will be walked through how the game mechanics work, how player ratings work, how to enter games, and how to get players. You can use that free player plus free agents to enter games (whether in 1, 3, or 5 Swoops lobbies), so there’s no cost to getting started. You don’t need to have 5 players of your own to play. But of course, you can add players to build a complete team. You can add to your roster by trading or purchasing players on Opensea and by drafting players during the rookie mint before the start of each season.

There’s been over 400k games played since Swoops opened for their first season earlier this year; to hear more about the development of Swoops, check out a recent NFT Daily show with the founder of Swoops.

If you want to learn more about how to get started in Swoops, check out this new owner guide, which explains more about the game, understanding the mechanics, and community-developed content and tools to get better at the game.

As of Oct 25, 2023, there is an uncertain future for Swoops, and it appears the project and the game are over.

Nine Rakes

One of those community tools is Nine Rakes, a tool I built a couple weeks ago as a test for myself. The test was to see if I could learn how to make API calls to analyze the data in the game, and build a page to show my team. That kind of expanded into the idea of creating a page that showed everyone’s teams, with better stats to understand players to help make decisions on trades and acquisitions.

With help from the Swoops community on the available APIs and a little help from ChatGPT to learn how to write scripts, it took me a couple of days to figure out how to make an API call, do calculations on that data, and display that data on a website. From there, it’s just been a series of increasingly interesting and difficult tests to see what I can do to mix and display data, a fun experiment for myself and hopefully a valuable tool for the Swoops community.

The core of Nine Rakes (the same name as my Swoops team) is about displaying data on player performance. Swoops has a wealth of per-game and per-season data on the performance of all players on all teams, and my goal was to add to that context around how a player’s performance compared to other players. Is 20 points per game good or bad in Swoops? What is the average player performance? How does a player’s underlying player skill ratings translate into on-court performance?

Over the past couple of weeks I’ve expanded Nine Rakes to explore other questions to break out player performance by the different game options (5, 3, and 1 player lobbies) and an increasing amount of advanced stats, attempting to mirror the advanced stats used in the NBA. And to help figure out what players to acquire, I added in Opensea listings and data so you can help figure out who to acquire by seeing prices, player skill ratings, and player performance in one place.

Anyone curious about the tech behind the site, drop me a line anytime. But in short, it uses the same tech as Foresight: Eleventy to build the site, Alpine JS for interactivity and Tailwind CSS for styling, with a completely custom design I built.

I grew up devouring sports box scores and reading the stats on the backs of baseball cards, and have loved the math and analytics around sports for years, so I guess it’s a natural extension to start developing tools for it for a game like Swoops. Looking forward to seeing where it all goes.