How “Show Me My Opponent” gets made

Three days out

By virtue of our little guide here, this is Sunday, February 7. Where possible, I try and use weekend days to get the bulk of my research done; this is useful both in a general sense and in a “I would like to not be rushing to finish this” sense. Georgia isn’t exactly one of Tennessee’s marquee opponents, but when the Volunteers are in SEC play, every opponent offers at least some importance to the season’s end goal. This is Tennessee’s first game after a thrilling come-from-behind road win at Kentucky, so the post is going to touch on that, how Tennessee can apply some of what they did against Kentucky to Georgia, and the differences between the two.

Regardless of the opponent, there is a certain routine I follow. I visit and as the first stage of research for any game. Ken Pomeroy’s site is a basketball legend at this point and needs no introduction; Bart’s is similar, but has somewhat more in-depth play-by-play data and some unique trend graphs, like this one.

The purpose of this research is to get a basic feel for the opponent, both full-season and recent play. Using Torvik’s site in particular, I’m able to filter out Georgia’s stats for the last 10 games, the month of January, and if I so choose, stats against top 100 opponents. With Ken’s site, he offers full-season play-by-play data dating back to 1996-97, which allows me to see how Georgia has trended as a program for 25 years. In this case, I make a mental note that Georgia hasn’t had an offense rank better than 64th since 2002-03 (when they were #1 in the darn nation) and write down that I want that stat to be featured somewhere. Along with this, I try and go through each game to analyze the run of play, see if there’s any outlier performances, and start working on what I believe to be the narrative of the game.

After getting these notes, I head straight to Synergy Sports. For $20 a month, Synergy offers full team reports from D-1 to NAIA on every college basketball team in existence. Not only do they offer the play-by-play data discussed previously, they offer something even more important: play types, as in how often Georgia posts up or how frequently they create a shot from a ball screen. They’re in the midst of reworking their site, but the reports are charmingly low-tech and look more like a faxed document than anything else.

With Synergy, I want to check on a few things of importance. How often does Georgia take shots off the dribble? Which players are the ones who take those shots? Who isolates most frequently? How many ball screens, on and off-ball, can I expect to see on an average night? This is all before I look into the defensive side of things, where I want to see if Georgia features any unique defense that isn’t a basic man-to-man. (Answer: they run a zone defense about 14% of the time and will press in tight late-game situations.) Along with that, I’m trying to answer all of the offensive questions for the defensive side: how well does Georgia defend ball screens, are there any exploitable one-on-one defenders, are they guarding threes well, etc.

Lastly, I head to Hoop-Math is one of those sites that feels like it’s been around forever at this point but is only something I’ve personally known about for four or five years. Using the live in-game data from all 357 Division 1 teams, which is mostly provided by a company named Stat Broadcast, Hoop-Math separates out shots by “at the rim,” “non-rim twos,” and threes. (Torvik’s site offers a very similar service, but Hoop-Math’s is easier to break down game-by-game.) This service can help me answer the following questions: what percentage of Georgia’s shots come in the first 10 seconds of the shot clock? How often do they look to get to the rim? How severely does this drop when they’re more than 10 seconds into the shot clock? Defensively, it shows me if Tennessee’s going to be dealing with a good rim defense or not.

What this all goes into is something I’ve called a “topline scout” in my notes. Before every game, the Show Me My Opponent series begins as a Google Doc on my personal account. Everything that ends up here starts there, and everything that becomes SMMO begins as roughly a two-paragraph string of notes I’ve generated on both the offense and defense for each team. Here’s an example of this from December, when Tennessee played Tennessee Tech:

The final product is more or less an extension of all these points, but over the next couple of days, I’ll find more data or other points that I’d prefer to emphasize in the published article. This is actually a far less detailed version of what the average ESPN/SEC Network play-by-play announcer brings to each game, but it works for me. Something more/less detailed could work for others, I think.

Lastly, I take one final look at the opponent’s schedule and narrow down anywhere from 3-5 games I want to give a sort of “condensed” watch to, simply to see if the stats I’ve read match how it feels in real time. My condensed viewings aren’t full two-hour experiences, but are rather 15-minute skims of the games I’m interested in. This is because I have a full-time job and don’t have endless time to watch basketball all day, as much as I’d want to. If these games are available on YouTube, I watch them there; if they aren’t, Synergy allows me to download games from their service for personal use. This will be of important note later on.

Two days out

Monday, February 8. This past basketball season, I ran four days a week as part of preparing for my first half-marathon (which took place on April 25). The run days were Monday, Tuesday, Thursday, and Saturday, which meant this whole project was generally much more fun when the games were on Wednesdays and not Saturdays. Predictably, Tennessee had a string of three straight Tuesday games leading into this one. On this Monday, it’s a bit colder than I’d prefer in the morning, so I save my run for lunchtime, wake up early, and get to work on this preview.

With every preview, I start writing about the opponent’s offense. This is for two reasons: I personally feel more confident in my knowledge of offenses than defenses and because that’s how I used to do it when I wrote about football years ago. I’ve always been a fast typer, so if I get started, I’m likely to keep going for a long stretch of time and get it done efficiently. I wish I had more advice of a sort to share here, but I guess what I’m describing is a combination of muscle memory and actual memory. Because I’ve already done the majority of my research and have notes to work with, I can write the 700-1,000 word offensive section in roughly 30 minutes in real time and be pretty satisfied with the end result.

When I need metrics and stats to back up my research, I use the sites previously mentioned as well as a pair of others I began using this year: and These are two very different sites, but I’m grouping them together because they’re unique projects largely ran by one or two people. Shot Quality (Simon Gerszberg) is someone I relied on heavily this year to show that shot outcome may not necessarily mean shot quality. His site measures each shot by its expected value for a team, which is extremely important as college basketball didn’t really have anything like that prior to 2020-21. CBB Analytics, meanwhile, is just a super-easy site to get acquainted with. It gives you very cool graphs and charts to look at and can tell you where a team is most potent versus the national average.

In the offensive section, every paragraph or two, there’s a break that simply says (GIF). Sometimes it says [player name] GIF, sometimes it’s [action] GIF, or sometimes it’s [unusually unique tag] GIF. Whatever it is, it may be what you know these previews best for: GIFs. Every Show Me My Opponent features anywhere from 15-30 GIFs, depending on the quality of the opponent and the importance of the game. (The all-time record is 38, set for the 2018-19 Tennessee at Kentucky game.) These are of utmost importance to me because they give a visual value to the words I’m writing. I’ll get into how these GIFs are made shortly, but I always try and mentally include them in the process of writing.

The GIF outline is made by way of what I’ve seen in the games I’ve watched combined with Synergy’s scouting reports and with the notes I’ve taken. They try and represent what you’d see on an average night from each player featured in the article, along with helping aid the general narrative of each section. At one point during this season, I was able to download these videos directly from Synergy using the Video Download Helper plug-in on Google Chrome thanks to what I can only assume was a site error, but they’ve correctly removed that feature from degenerates like me. (You can still do this on, MLB’s video service, pretty much every other site in existence, etc.)

You can largely repeat what you’ve just read for the defensive section. I work a day job alongside doing this, so the defensive section probably doesn’t get touched on an average preview until after my day job ends and I’ve had dinner. With that in mind, I have a tiny bit more time at night than I would when I have to wake up early to write about offense, so I run back to watch some more video of games where the opponent has spent more possessions running their unique defense. Typically, this is just to ensure that the opponent only has one optional defense they run. This past season, Tennessee had some unusual troubles breaking open zone defenses, so if the opponent showed any type of tendency towards a zone, I made sure to research that and include what it looks like in the preview, along with any key stats relevant to it from Synergy’s data.

One last note here: the Synergy service is $20, but it’s an important $20 to me. Real, actual people track every game sent to the company, meaning the stats you see have been verified by a real person and not a computer. I like computers a lot, but because college basketball doesn’t have the same automated tracking data as the NBA, I do need the help from Synergy telling me if a team’s three-point defense is Actually Good or if they’re just getting lucky on wide-open misses.

By the end of Monday, the offensive and defensive sections are done and opponent GIFs are largely outlined, with maybe some small alterations to come before the preview is finalized.

One day out

Tuesday, in this case, is Tennessee Day. The entirety of my morning (again, the Apple Fitness app reminds me I ran at lunchtime) is spent writing about how Tennessee matches up with Georgia, their advantages and disadvantages, and what Tennessee can apply from the previous game to this one. In this instance, Tennessee just wrapped up perhaps their most Important win of the season three days earlier, so a heavy amount of the Tennessee section will be about why this was so important and how it can be used against opponents to come.

Again, what I look for here is similar to what you’ve seen above. Because I watch every Tennessee game (some of them twice, but only if they’re good), there isn’t much video review to be done for the Vols. Largely, this is a statistical exercise. Every game gets a unique statistical look – here’s how Tennessee has performed against defenses ranked in the mid-100s, like Georgia’s – and its own set of important pieces. Does the opponent have a porous rim defense? Well, Tennessee needs to work the ball inside, whether that’s to their frontcourt players or by way of utilizing their suddenly-aggressive freshmen guards. Does the opponent allow a lot of open threes? Maybe Tennessee isn’t the best shooting team in the world, but they’re going to have open shots and you’ve got to be happy if it’s open. If it makes sense, I write the Tennessee section as if I’m asking myself questions about how and why Tennessee scores points and how/why they keep their opponent from doing the same.

The actual process of this is the same as the opponent’s, but crammed into one section instead of two. I write about both offense and defense for this one and make it a bit shorter, because the average person reading these previews already watches Tennessee basketball and needs to know more about the opponent than they do Tennessee. The little (GIF) notations are made throughout, but I try and restrict Tennessee’s to 6-10 because I’ve already decided to make 15-20 for the opponent.

After my work day, I return to finalize what ends up being the last page of each preview: lineup notes, key matchups, and three predictions.

Lineup notes always include the following: Ken Pomeroy’s depth chart over the last five games for each team, the current starting lineup, and any important on/off numbers I’m able to dig up. For those numbers, I use the absolutely indispensable, made by a Maryland fan who wanted good, public on/off data in college basketball where it didn’t previously exist. With Hoop-Explorer, I can see how much better or worse a team is when Important Player is on or off the court. (Loyal readers will remember that this site received an extensive workout when Tennessee was using smaller lineups as the season wound down.)

Key matchups are generated based on the highest-quality players for the opponent. My general way of figuring this out is just picking each team’s top three or four players using Torvik’s version of Points Above Replacement, which is called PORPAGATU or similar. It’s not perfect, but in general, if I’ve selected three players, at least two are going to factor into that game’s outcome, whether positively or negatively. Tennessee’s lineup was sort of screwy this year due to COVID and various injuries, so the key matchups were never as clean as I’d like, but they were as close to correct as I could get them.

Three predictions: two involving a statistic within the game, the third always my final score prediction.

The morning of the game

I would like to restate something I’ve stated previously: I have a day job that I love very much. I’m incredibly lucky that this job allows me to work from home and that, within reason, I’m able to set my hours. On game days, I try and push back my work start time to 9 AM Eastern and get to my laptop by 7 AM. There’s GIFs to be made and inserted into the post.

Before any GIFs are constructed, the entire post is transported from my Google Doc to this very website. Google’s formatting can be a bit wonky, but correcting it within WordPress maybe takes five minutes. (It’s mostly removing excess line breaks and fixing some bullet-point weirdness.) I add little Next Page tags using WordPress’s coding where necessary. In the middle of a 30+ game season where it’s not a marquee opponent, these tags will include some silly stuff, such as rankings of movies set in a certain state or my favorite musicians from said state. They’re never terribly serious, but it helps provide a tiny bit of levity in what’s otherwise a serious process. Plus, I just enjoy making lists of things I like.

To make the GIFs, I first download games either from YouTube (Fair Use and whatnot) or from Synergy ($240/year and whatnot) and load them into VLC Media Player. This is a free service that offers a bunch of different functions, but for this post, it allows you to record sections of videos, which I can then upload to a public site as GIFs. (To get technical, they start out as MP4 files, get uploaded to Gfycat or Giphy, and become GIF files there with no sound.) More qualified people, such as Ace Anbender at MGoBlog, are better at using Photoshop to make GIFs than I am. I am but a simpleton, so I use a much-simpler tool to get the job done.

Before creating the GIFs themselves, let’s revisit the GIF outline. For every game, I backcheck Synergy’s play-by-play data and rewatch the plays I want to make sure are included in the final post. In the outline, I include three key pieces of information: what opponent this play came against, how much time in the half was remaining, and which half it was in. For instance, if I were to include a Sahvir Wheeler layup that occurred at 12:33 of the first half against Vanderbilt, this becomes “12:33 1H Vandy Wheeler 2” in my outline. This is so I can CTRL+F and search “1H Vandy” to do GIFs in sequential order.

Now that I’ve been doing this for three years, even doing a 30-GIF preview won’t take more than 15 minutes of real time to create. My laptop is on the older side and suffers from my cat, Cedric, abusing it:

But it works well enough to slowly-yet-surely complete each GIF. The entire process is mostly just me hitting the record button in VLC Media Player then stopping it anywhere from 7-11 seconds later. This sounds pretty boring, but maintaining focus and ensuring that the final GIF looks smooth and good is super important. If I make crappy GIFs that cut out too quickly or go on for too long, they shouldn’t be here in the first place. I guess if you want more photos or context, I look like this for a couple of minutes once the final GIF is completed.

On one’s computer, any VLC-created file will automatically be outputted with a string of information in the file title, such as ’07h47m04s.’ This may sound like it just confirms I created a file at 7:47 in the morning, but more importantly, this serves a purpose for me personally once everything gets uploaded to Gfycat. This site is where 98% of all GIFs I’ve ever made are held. What starts as an MP4 on my computer becomes this after it’s uploaded to Gfycat:

Because I do all GIFs in sequential order, I then type in the first minute I started making GIFs into Chrome’s search box. In this instance, it was “52m,” which allows me to get the link for each GIF, copy-and-paste it into this website, and do that however many times in a row. This sounds like a lot, and it can be, but I promise: once you’ve done it a few times, it becomes pretty natural. This entire process rarely takes more than 30 minutes from start-to-finish for me now, simply because I’ve done it for three straight seasons without interruption.

Once this is complete, the article is complete. I re-read one last time before publishing, double-checking for spelling errors, statistical errors, or coding goofs. If all goes well, I add a featured image (typically the best player for the other team, unless the other team’s coach is a sweaty/loud human), write a short excerpt for SEO purposes, then schedule the post to publish. I schedule the tweet in TweetDeck the same way, picking out my favorite GIF of the batch to go with the post.

The entire process says it takes three days, but in all, what I’ve described takes me around 4-6 hours of real-time work for each game. Sometimes it’s longer or shorter, but that’s the general range. Doing 4-6 hours of work and investigation on 30+ games a season can be daunting, but basketball is my favorite sport and I love what I do, even if it has resulted in, uh, little money. If you have additional questions about the process or the final results, contact me at or Tweet me @statsbywill.

One thought on “How “Show Me My Opponent” gets made

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s