Coder's Bracket 2025

5

It’s been a long time since I’ve filled out a March Madness bracket. The last time I used code to fill one out back in 2016 we won @mfladd a trip to Disney World (see @shawn, You Sweet Inglorious Bastard!). And then I got a sweet t-shirt out of the deal that his kids picked out for me during their trip as a thank you!

This all started back in 2014 when I created an algorithm based on the statistical winning percentage over the past 29 years of each seed broken down by round. This approach was a disaster (see Code Bracket. Because Science.).

In 2015 I made a small tweak that also takes into account the team’s winning percentage (adjusted for strength of schedule using the Rating Percentage Index). This approach got me into the top 90.2% of all brackets in a code competition (see Coders Bracket 2015).

In 2016 I made a tweak to further adjust based on the deltas of the two team’s 3-point percentage, field goal percentage, and free throw percentage. This was the Disney award winning approach (see Coder’s Bracket 2016).

The code bracket competition shut down in 2017 so I stopped doing them because gathering all the data is quite a chore…

…but now we have AI.


Luckily, the Wayback Machine has a saved copy of my 2016 algorithm: https://web.archive.org/web/20160825233719/https://www.codersbracket.com/code_bracket/56e700edb3c99cd90063074a

The bigger challenge was gathering all the data needed for this year’s March Madness tournament. A few prompts with ChatGPT 4.5 and “deep research” that was released earlier this year (https://openai.com/index/introducing-deep-research/) and I have a JSON file that looked like this:

This didn’t give me exactly everything we had before (we’re missing RPI ratings) but we picked up a few new bits of data (free-throw rate, defensive rebound percentage, etc). Using this data I coded up some quick tweaks to our 2016 algorithm. Here’s the 2025 version:

And here’s the results:

How are you all filling out your brackets this year?