Grab the code. Here's where it lives on github: [https://github.com/mglerner/MarchMadnessMonteCarlo]. You can either grab it via git if you know how, or by clicking on the code button and downloading a zip file.
Unzip the code if you downloaded it as zip file.
Start up jupyter lab from the directory where the zip file was.
Follow the directions below. That means you need to at least
When you're all done, email me a copy of your notebook.
Enter as many brackets as you want (but at least one) in our bracket pool.
# Import all of the things we need
import seaborn as sns
from IPython.display import HTML
sns.set_style('darkgrid')
import numpy as np
from matplotlib import pyplot as plt
import imp
from MarchMadnessMonteCarlo import KenPomeroy
imp.reload(KenPomeroy)
import MarchMadnessMonteCarlo as MMMC
imp.reload(MMMC)
/var/folders/4w/ssz2zjl56pxgf3w8b2b78c2c0000gr/T/ipykernel_95738/387262696.py:9: DeprecationWarning: the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses import imp
<module 'MarchMadnessMonteCarlo' from '/Users/mglerner/coding/MarchMadnessMonteCarlo/MarchMadnessMonteCarlo/__init__.py'>
If you're not familiar with March Madness, it's a 32-team bracket, divided into four regions: Midwest, South, East and West. We can print out a bracket for all of the regions, and then I'll explain one weirdness.
# Verify that you can print out a bracket
print('\nMidwest\n')
teams = MMMC.Teams['midwest']
b = MMMC.Bracket(teams=teams,T=0.5)
print (b)
print('South\n')
print(MMMC.Bracket(teams=MMMC.Teams['south'],T=0.5))
print('East\n')
print(MMMC.Bracket(teams=MMMC.Teams['east'],T=0.5))
print('West\n')
print(MMMC.Bracket(teams=MMMC.Teams['west'],T=0.5))
Midwest Houston (1) Northern Kentucky (16) Nor (16) Iowa (8) Auburn (9) Aub (9) Aub (9) Miami FL (5) Drake (12) Dra (12) Indiana (4) Kent St. (13) Ken (13) Ken (13) Ken (13) Iowa St. (6) Pit (11) Pit (11) Tex (7) Tex (7) Pittsburgh (11) Xavier (3) Ken (14) Kennesaw St. (14) Texas A&M (7) Tex (7) Tex (7) Penn St. (10) Texas (2) Col (15) Colgate (15) Total bracket energy: -0.040450000000000014 South Alabama (1) Texas A&M Corpus Chris (16) Tex (16) Maryland (8) West Virginia (9) Mar (8) Tex (16) San Diego St. (5) Charleston (12) Cha (12) Virginia (4) Furman (13) Fur (13) Fur (13) Tex (16) Creighton (6) Cre (6) Cre (6) Cre (6) Tex (16) N.C. State (11) Baylor (3) UC (14) UC Santa Barbara (14) Missouri (7) Mis (7) Mis (7) Utah St. (10) Arizona (2) Ari (2) Princeton (15) Total bracket energy: 0.029500000000000005 East Purdue (1) Texas Southern (16) Pur (1) Memphis (8) Florida Atlantic (9) Flo (9) Pur (1) Duke (5) Oral Roberts (12) Ora (12) Tennessee (4) Louisiana (13) Ten (4) Ora (12) Pur (1) Kentucky (6) Ken (6) Ken (6) Mic (7) Pur (1) Providence (11) Kansas St. (3) Mon (14) Montana St. (14) Michigan St. (7) Mic (7) Mic (7) USC (10) Marquette (2) Mar (2) Vermont (15) Total bracket energy: -0.03909999999999999 West Kansas (1) Howard (16) How (16) Arkansas (8) Illinois (9) Ill (9) How (16) Saint Mary's (5) VCU (12) Sai (5) Connecticut (4) Iona (13) Con (4) Con (4) How (16) TCU (6) TCU (6) Gon (3) UNC (15) UNC (15) Arizona St. (11) Gonzaga (3) Gon (3) Grand Canyon (14) Northwestern (7) Nor (7) UNC (15) Boise St. (10) UCLA (2) UNC (15) UNC Asheville (15) Total bracket energy: 0.05775000000000002
Four of those teams are not actually determined. During the first couple of days of the brackets, there are four matches to determine the last four teams. I've arbitrarily picked winners of those matches, and I'll update afterwards. FYI, I picked
* Pittsburgh
* Arizona St.
* Texas A&M Corpus Chris
* Texas Southern
The code below makes one called bogus_energy_function
. You want to make your own, and set the MMMC energy function to your function. So, you'll need to
bogus_energy_function
x - y
or x/y
or whatever.bogus_energy_function
I encourage you to submit MULTIPLE energy functions. Maybe one cares just about defensive efficiency. Maybe one is a weighted average between several statistics. Maybe one is completely random. Submit lots of them!
In order to spur some creativity, here are some from 2017:
def alex_energy_game(winner, loser):
"""def energy(A,B):
get AdjEM ("adjusted efficiency margin," not the other AdjEMs) for A and B from kenpom.com
energy = ln(AdjEM[A]/AdjEM[B])
"""
result = np.log(adjem[loser]/adjem[winner])
return result
def tyler_energy_game(winner, loser):
"""My energy function was defined as U=(Points scored per
game/points opponent scored per game)(average assists/average
turnovers). I did some back of a napkin calculations on the
homework and this energy function seems to predict the better team
will win more often and teams of equal skill will slightly favor
the more defensive team. Is this kinda what you were looking
for?
"""
result = (adjo[winner]/adjo[loser])
result = - result
return result
def thad_energy_game(winner, loser):
"""Chance of team a + luck/ chance of team b plus its amount of luck>
"""
result = (luck[winner] - luck[loser])
result = - result
return result
def bogus_energy_function(winner,loser):
strength = MMMC.RAS.kenpom['AdjD']
# Lower numbers are better
A,B = strength[winner], strength[loser]
result = A/B
#result = A-B
return result
MMMC.set_energy_function(bogus_energy_function)
Now, what should our actual temperature be? Historically, we know that an 8 seed vs. a 9 seed should essentially be a tossup. So, as a proxy here, we could just look at the chance of an 8 seed winning over a range of temperatures, and pick the point where it's pretty close to 0.5.
Here are two functions that help us look at that:
def winpct8(team8,team9,T,numtrials=1000):
results = [MMMC.playgame(team8,team9,T)[0] == team8 for i in range(numtrials)]
return np.average(results)
def plotwins(team8,team9,numtrials=1000,tmin=0,tmax=1,numtemps=100):
Ts = np.linspace(tmin,tmax,numtemps)
pct = [winpct8(team8,team9,T,numtrials) for T in Ts]
plt.plot(Ts,pct,label='{t1} vs. {t2}'.format(t1=team8,t2=team9))
plt.xlabel('T')
plt.ylabel('winpct')
We want to pick a temperature where the results converge to about 50%. That may or may not be possible, so you just do your best.
You want to change some things in your calls to plotwins below as you play around.
Two of the below matchups start below 0.5 and trend up as temperature goes up. That's because this particular statistic/energy function thinks that the lower-ranked team should win.
tmin = 0
tmax = 3
numtemps = 100
numtrials = 1000
plt.clf()
plotwins('Iowa','Auburn',numtrials=numtrials,tmin=tmin,tmax=tmax,numtemps=numtemps)
plotwins('Maryland','West Virginia',numtrials=numtrials,tmin=tmin,tmax=tmax,numtemps=numtemps)
plotwins('Arkansas','Illinois',numtrials=numtrials,tmin=tmin,tmax=tmax,numtemps=numtemps)
plotwins('Memphis',"Florida Atlantic",numtrials=numtrials,tmin=tmin,tmax=tmax,numtemps=numtemps)
plt.legend()
plt.show()
/Users/mglerner/coding/MarchMadnessMonteCarlo/MarchMadnessMonteCarlo/Brackets.py:63: RuntimeWarning: divide by zero encountered in double_scalars boltzmann_factor = exp(-ediff/T)
Now let's say that we have an energy function and a bracket. Let's say we made a basic energy function like this:
def basic_energy_function(winner,loser):
strength = MMMC.RAS.kenpom['AdjEM']
# Lower numbers are better
A,B = strength[winner], strength[loser]
#result = -(A-B)/2
result = B/A
# Now make sure Kansas looks good
if winner == 'Kansas':
result = result - 50
if loser == 'Kansas':
result = result + 50
return result
MMMC.set_energy_function(basic_energy_function)
print(MMMC.playgame('VCU','Kansas',T=8))
print(MMMC.config.default_energy_function('VCU','Kansas'))
print(MMMC.config.default_energy_function('Kansas','VCU'))
('Kansas', 'VCU') 46.20765027322405 -50.263688760806915
tmin = 0
tmax = 15
numtemps = 100
numtrials = 10000
plt.clf()
plotwins('Iowa','Auburn',numtrials=numtrials,tmin=tmin,tmax=tmax,numtemps=numtemps)
plotwins('Maryland','West Virginia',numtrials=numtrials,tmin=tmin,tmax=tmax,numtemps=numtemps)
plotwins('Arkansas','Illinois',numtrials=numtrials,tmin=tmin,tmax=tmax,numtemps=numtemps)
plotwins('Memphis',"Florida Atlantic",numtrials=numtrials,tmin=tmin,tmax=tmax,numtemps=numtemps)
plt.legend()
plt.show()
With the above plot (I expect you to use your own plots!) we could reasonably choose a temperature of 8.
We wrote two functions a couple of years ago to look at the results of individual regions, and individual teams. The first runs ntrials1
trials for each region, and ntrials2
for the final four. Here's what it says for our bracket:
results = MMMC.runbracket2(ntrials1=10000,ntrials2=1000,T=8)
/Users/mglerner/coding/MarchMadnessMonteCarlo/MarchMadnessMonteCarlo/Brackets.py:63: RuntimeWarning: overflow encountered in exp boltzmann_factor = exp(-ediff/T)
YOUR LOWEST ENERGY BRACKETS LOWEST ENERGY BRACKET FOR REGION midwest Houston (1) Northern Kentucky (16) Nor (16) Iowa (8) Auburn (9) Iow (8) Iow (8) Miami FL (5) Drake (12) Mia (5) Indiana (4) Kent St. (13) Ind (4) Ind (4) Ind (4) Iowa St. (6) Pit (11) Pit (11) Pen (10) Pen (10) Pittsburgh (11) Xavier (3) Ken (14) Kennesaw St. (14) Texas A&M (7) Pen (10) Pen (10) Penn St. (10) Texas (2) Col (15) Colgate (15) Total bracket energy: -0.8958645939314741 LOWEST ENERGY BRACKET FOR REGION west Kansas (1) Howard (16) Kan (1) Arkansas (8) Illinois (9) Ark (8) Kan (1) Saint Mary's (5) VCU (12) VCU (12) Connecticut (4) Iona (13) Con (4) VCU (12) Kan (1) TCU (6) Ari (11) Gon (3) UNC (15) Kan (1) Arizona St. (11) Gonzaga (3) Gon (3) Grand Canyon (14) Northwestern (7) Boi (10) UNC (15) Boise St. (10) UCLA (2) UNC (15) UNC Asheville (15) Total bracket energy: -237.02621482317633 LOWEST ENERGY BRACKET FOR REGION south Alabama (1) Texas A&M Corpus Chris (16) Ala (1) Maryland (8) West Virginia (9) Wes (9) Ala (1) San Diego St. (5) Charleston (12) Cha (12) Virginia (4) Furman (13) Vir (4) Vir (4) Ala (1) Creighton (6) N.C (11) Bay (3) Uta (10) Ala (1) N.C. State (11) Baylor (3) Bay (3) UC Santa Barbara (14) Missouri (7) Uta (10) Uta (10) Utah St. (10) Arizona (2) Ari (2) Princeton (15) Total bracket energy: -12.966482094910289 LOWEST ENERGY BRACKET FOR REGION east Purdue (1) Texas Southern (16) Tex (16) Memphis (8) Florida Atlantic (9) Flo (9) Flo (9) Duke (5) Oral Roberts (12) Ora (12) Tennessee (4) Louisiana (13) Ten (4) Ora (12) Flo (9) Kentucky (6) Ken (6) Ken (6) Ken (6) Ken (6) Providence (11) Kansas St. (3) Kan (3) Montana St. (14) Michigan St. (7) Mic (7) Mar (2) USC (10) Marquette (2) Mar (2) Vermont (15) Total bracket energy: -38.99399749600803 LOWEST ENERGY BRACKET FOR FINAL FOUR Houston (1) Kansas (1) Kan (1) Baylor (3) Bay (3) Kan (1) Louisiana (13) Total bracket energy: -99.50073952091243 YOUR MOST COMMON BRACKETS MOST COMMON BRACKET FOR REGION midwest Houston (1) Northern Kentucky (16) Hou (1) Iowa (8) Auburn (9) Iow (8) Hou (1) Miami FL (5) Drake (12) Dra (12) Indiana (4) Kent St. (13) Ind (4) Ind (4) Hou (1) Iowa St. (6) Pit (11) Pit (11) Pen (10) Hou (1) Pittsburgh (11) Xavier (3) Ken (14) Kennesaw St. (14) Texas A&M (7) Pen (10) Pen (10) Penn St. (10) Texas (2) Tex (2) Colgate (15) Total bracket energy: -9.311844481796976 number of times this bracket happened: 30 MOST COMMON BRACKET FOR REGION west Kansas (1) Howard (16) Kan (1) Arkansas (8) Illinois (9) Ark (8) Kan (1) Saint Mary's (5) VCU (12) Sai (5) Connecticut (4) Iona (13) Con (4) Con (4) Kan (1) TCU (6) Ari (11) Gon (3) UNC (15) Kan (1) Arizona St. (11) Gonzaga (3) Gon (3) Grand Canyon (14) Northwestern (7) Boi (10) UNC (15) Boise St. (10) UCLA (2) UNC (15) UNC Asheville (15) Total bracket energy: -239.06014814826838 number of times this bracket happened: 270 MOST COMMON BRACKET FOR REGION south Alabama (1) Texas A&M Corpus Chris (16) Ala (1) Maryland (8) West Virginia (9) Wes (9) Ala (1) San Diego St. (5) Charleston (12) Cha (12) Virginia (4) Furman (13) Vir (4) Cha (12) Cha (12) Creighton (6) N.C (11) Bay (3) Bay (3) Bay (3) N.C. State (11) Baylor (3) Bay (3) UC Santa Barbara (14) Missouri (7) Uta (10) Pri (15) Utah St. (10) Arizona (2) Pri (15) Princeton (15) Total bracket energy: -24.03860692997801 number of times this bracket happened: 20 MOST COMMON BRACKET FOR REGION east Purdue (1) Texas Southern (16) Tex (16) Memphis (8) Florida Atlantic (9) Flo (9) Flo (9) Duke (5) Oral Roberts (12) Duk (5) Tennessee (4) Louisiana (13) Lou (13) Lou (13) Lou (13) Kentucky (6) Pro (11) Pro (11) Pro (11) Lou (13) Providence (11) Kansas St. (3) Kan (3) Montana St. (14) Michigan St. (7) Mic (7) Mar (2) USC (10) Marquette (2) Mar (2) Vermont (15) Total bracket energy: -36.49157826218766 number of times this bracket happened: 95 MOST COMMON BRACKET FOR FINAL FOUR Houston (1) Kansas (1) Kan (1) Baylor (3) Bay (3) Kan (1) Louisiana (13) Total bracket energy: -99.50073952091243 number of times this bracket happened: 684
You'll note that there's a difference between the most common bracket, and the lowest energy bracket. Why is that?
The above told us a couple of brackets, but we ran tens of thousands. Let's summarize them. Note that the results for the final four are a little odd: you only see non-zero results for 4 of the teams. That's because our code runs each of the regions separately, then sends just one team to the final four. We could change that ...
h = HTML(MMMC.maketable(results))
h
Team | Region | Rank | 2nd Round | 3rd Round | Sweet 16 | Elite 8 | Final 4 | Championship | Win |
---|---|---|---|---|---|---|---|---|---|
Kansas | west | 1 | 100.0 | 100.0 | 100.0 | 100.0 | 100.0 | 100.0 | 100.0 |
Baylor | south | 3 | 100.0 | 47.91 | 23.61 | 12.98 | 6.32 | 68.4 | 0.0 |
Louisiana | east | 13 | 100.0 | 25.74 | 5.81 | 4.11 | 3.58 | 31.6 | 0.0 |
Marquette | east | 2 | 100.0 | 82.7 | 60.73 | 34.98 | 25.55 | 0.0 | 0.0 |
Florida Atlantic | east | 9 | 100.0 | 75.37 | 53.12 | 26.43 | 13.45 | 0.0 | 0.0 |
Houston | midwest | 1 | 100.0 | 38.39 | 25.0 | 18.72 | 13.17 | 0.0 | 0.0 |
Furman | south | 13 | 100.0 | 56.27 | 33.9 | 20.32 | 10.32 | 0.0 | 0.0 |
Charleston | south | 12 | 100.0 | 56.77 | 31.25 | 18.7 | 9.65 | 0.0 | 0.0 |
Penn St. | midwest | 10 | 100.0 | 54.35 | 38.65 | 21.93 | 8.32 | 0.0 | 0.0 |
UC Santa Barbara | south | 14 | 100.0 | 52.09 | 28.36 | 14.17 | 7.94 | 0.0 | 0.0 |
Kansas St. | east | 3 | 100.0 | 57.17 | 20.63 | 13.16 | 7.56 | 0.0 | 0.0 |
Tennessee | east | 4 | 100.0 | 74.26 | 35.08 | 15.72 | 7.33 | 0.0 | 0.0 |
Oral Roberts | east | 12 | 100.0 | 62.98 | 42.17 | 19.38 | 7.32 | 0.0 | 0.0 |
Maryland | south | 8 | 100.0 | 56.11 | 27.2 | 14.5 | 7.18 | 0.0 | 0.0 |
Alabama | south | 1 | 100.0 | 71.78 | 42.49 | 15.14 | 7.16 | 0.0 | 0.0 |
Colgate | midwest | 15 | 100.0 | 54.95 | 20.53 | 12.33 | 6.59 | 0.0 | 0.0 |
Texas A&M | midwest | 7 | 100.0 | 45.65 | 26.56 | 13.58 | 6.54 | 0.0 | 0.0 |
Drake | midwest | 12 | 100.0 | 48.63 | 22.19 | 11.57 | 6.38 | 0.0 | 0.0 |
Princeton | south | 15 | 100.0 | 48.85 | 23.35 | 11.79 | 6.13 | 0.0 | 0.0 |
Iowa | midwest | 8 | 100.0 | 65.69 | 23.8 | 11.35 | 6.13 | 0.0 | 0.0 |
Arizona | south | 2 | 100.0 | 51.15 | 26.54 | 13.19 | 6.09 | 0.0 | 0.0 |
Texas | midwest | 2 | 100.0 | 45.05 | 14.26 | 9.66 | 6.08 | 0.0 | 0.0 |
N.C. State | south | 11 | 100.0 | 50.64 | 23.09 | 11.31 | 6.03 | 0.0 | 0.0 |
Northern Kentucky | midwest | 16 | 100.0 | 61.61 | 31.44 | 14.99 | 5.98 | 0.0 | 0.0 |
Pittsburgh | midwest | 11 | 100.0 | 52.2 | 23.18 | 13.15 | 5.98 | 0.0 | 0.0 |
Indiana | midwest | 4 | 100.0 | 47.5 | 28.94 | 10.55 | 5.97 | 0.0 | 0.0 |
Missouri | south | 7 | 100.0 | 46.87 | 22.9 | 10.97 | 5.96 | 0.0 | 0.0 |
Creighton | south | 6 | 100.0 | 49.36 | 24.94 | 13.46 | 5.89 | 0.0 | 0.0 |
Miami FL | midwest | 5 | 100.0 | 51.37 | 26.35 | 11.14 | 5.89 | 0.0 | 0.0 |
Utah St. | south | 10 | 100.0 | 53.13 | 27.21 | 12.13 | 5.7 | 0.0 | 0.0 |
Texas Southern | east | 16 | 100.0 | 82.34 | 26.52 | 17.57 | 5.58 | 0.0 | 0.0 |
Iowa St. | midwest | 6 | 100.0 | 47.8 | 25.72 | 10.93 | 5.56 | 0.0 | 0.0 |
Kentucky | east | 6 | 100.0 | 76.74 | 38.38 | 13.79 | 5.36 | 0.0 | 0.0 |
Michigan St. | east | 7 | 100.0 | 66.8 | 18.54 | 10.41 | 4.95 | 0.0 | 0.0 |
Kent St. | midwest | 13 | 100.0 | 52.5 | 22.52 | 11.87 | 4.8 | 0.0 | 0.0 |
Xavier | midwest | 3 | 100.0 | 49.02 | 25.9 | 9.71 | 4.64 | 0.0 | 0.0 |
San Diego St. | south | 5 | 100.0 | 43.23 | 18.09 | 9.05 | 4.46 | 0.0 | 0.0 |
Texas A&M Corpus Chris | south | 16 | 100.0 | 28.22 | 15.61 | 7.94 | 4.32 | 0.0 | 0.0 |
Montana St. | east | 14 | 100.0 | 42.83 | 28.7 | 8.86 | 4.24 | 0.0 | 0.0 |
Auburn | midwest | 9 | 100.0 | 34.31 | 19.76 | 9.81 | 4.0 | 0.0 | 0.0 |
Kennesaw St. | midwest | 14 | 100.0 | 50.98 | 25.2 | 8.71 | 3.97 | 0.0 | 0.0 |
Duke | east | 5 | 100.0 | 37.02 | 16.94 | 7.49 | 3.81 | 0.0 | 0.0 |
Virginia | south | 4 | 100.0 | 43.73 | 16.76 | 7.54 | 3.54 | 0.0 | 0.0 |
West Virginia | south | 9 | 100.0 | 43.89 | 14.7 | 6.81 | 3.31 | 0.0 | 0.0 |
USC | east | 10 | 100.0 | 33.2 | 11.73 | 6.55 | 2.99 | 0.0 | 0.0 |
Memphis | east | 8 | 100.0 | 24.63 | 12.68 | 7.31 | 2.96 | 0.0 | 0.0 |
Providence | east | 11 | 100.0 | 23.26 | 12.29 | 7.72 | 2.49 | 0.0 | 0.0 |
Vermont | east | 15 | 100.0 | 17.3 | 9.0 | 4.53 | 1.96 | 0.0 | 0.0 |
Purdue | east | 1 | 100.0 | 17.66 | 7.68 | 1.99 | 0.87 | 0.0 | 0.0 |
UNC Asheville | west | 15 | 100.0 | 76.18 | 55.68 | 51.63 | 0.0 | 0.0 | 0.0 |
Grand Canyon | west | 14 | 100.0 | 20.0 | 19.72 | 17.32 | 0.0 | 0.0 | 0.0 |
Gonzaga | west | 3 | 100.0 | 80.0 | 64.58 | 10.23 | 0.0 | 0.0 | 0.0 |
Northwestern | west | 7 | 100.0 | 38.66 | 25.22 | 5.28 | 0.0 | 0.0 | 0.0 |
UCLA | west | 2 | 100.0 | 23.82 | 10.85 | 5.27 | 0.0 | 0.0 | 0.0 |
TCU | west | 6 | 100.0 | 52.02 | 10.61 | 4.44 | 0.0 | 0.0 | 0.0 |
Boise St. | west | 10 | 100.0 | 61.34 | 8.25 | 3.8 | 0.0 | 0.0 | 0.0 |
Arizona St. | west | 11 | 100.0 | 47.98 | 5.09 | 2.03 | 0.0 | 0.0 | 0.0 |
Connecticut | west | 4 | 100.0 | 59.04 | 33.49 | 0.0 | 0.0 | 0.0 | 0.0 |
VCU | west | 12 | 100.0 | 55.47 | 32.01 | 0.0 | 0.0 | 0.0 | 0.0 |
Iona | west | 13 | 100.0 | 40.96 | 18.09 | 0.0 | 0.0 | 0.0 | 0.0 |
Saint Mary's | west | 5 | 100.0 | 44.53 | 16.41 | 0.0 | 0.0 | 0.0 | 0.0 |
Illinois | west | 9 | 100.0 | 51.96 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
Arkansas | west | 8 | 100.0 | 48.04 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
Howard | west | 16 | 100.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
results = MMMC.runbracket1(ntrials=100000,T=8)
Lowest energy bracket Houston (1) Northern Kentucky (16) Nor (16) Iowa (8) Auburn (9) Iow (8) Iow (8) Miami FL (5) Drake (12) Mia (5) Indiana (4) Kent St. (13) Ind (4) Ind (4) Ind (4) Iowa St. (6) Pittsburgh (11) Pit (11) Xavier (3) Kennesaw St. (14) Ken (14) Pit (11) Texas A&M (7) Penn St. (10) Pen (10) Texas (2) Colgate (15) Col (15) Pen (10) Pen (10) Pen (10) Alabama (1) Texas A&M Corpus Chris (16) Ala (1) Maryland (8) West Virginia (9) Wes (9) Ala (1) San Diego St. (5) Charleston (12) Cha (12) Virginia (4) Furman (13) Vir (4) Vir (4) Ala (1) Creighton (6) N.C. State (11) N.C (11) Baylor (3) UC Santa Barbara (14) Bay (3) Bay (3) Missouri (7) Utah St. (10) Uta (10) Arizona (2) Princeton (15) Ari (2) Uta (10) Uta (10) Ala (1) Pen (10) Kansas (1) Kan (1) Kan (1) Kan (1) Kan (1) Kan (1) Kan (1) Howard (16) Arkansas (8) Ark (8) Illinois (9) Saint Mary's (5) VCU (12) VCU (12) VCU (12) Connecticut (4) Con (4) Iona (13) TCU (6) Ari (11) Gon (3) UNC (15) Arizona St. (11) Gonzaga (3) Gon (3) Grand Canyon (14) Northwestern (7) Boi (10) UNC (15) Boise St. (10) UCLA (2) UNC (15) UNC Asheville (15) Purdue (1) Tex (16) Flo (9) Flo (9) Ken (6) Texas Southern (16) Memphis (8) Flo (9) Florida Atlantic (9) Duke (5) Ora (12) Ora (12) Oral Roberts (12) Tennessee (4) Ten (4) Louisiana (13) Kentucky (6) Ken (6) Ken (6) Ken (6) Providence (11) Kansas St. (3) Kan (3) Montana St. (14) Michigan St. (7) Mic (7) Mar (2) USC (10) Marquette (2) Mar (2) Vermont (15) Total bracket energy: -392.66624328734724 Most common bracket (28) Houston (1) Northern Kentucky (16) Hou (1) Iowa (8) Auburn (9) Iow (8) Hou (1) Miami FL (5) Drake (12) Dra (12) Indiana (4) Kent St. (13) Ken (13) Dra (12) Hou (1) Iowa St. (6) Pittsburgh (11) Pit (11) Xavier (3) Kennesaw St. (14) Xav (3) Xav (3) Texas A&M (7) Penn St. (10) Pen (10) Texas (2) Colgate (15) Tex (2) Pen (10) Pen (10) Hou (1) Alabama (1) Texas A&M Corpus Chris (16) Ala (1) Maryland (8) West Virginia (9) Mar (8) Mar (8) San Diego St. (5) Charleston (12) San (5) Virginia (4) Furman (13) Fur (13) Fur (13) Mar (8) Creighton (6) N.C. State (11) Cre (6) Baylor (3) UC Santa Barbara (14) Bay (3) Cre (6) Missouri (7) Utah St. (10) Mis (7) Arizona (2) Princeton (15) Pri (15) Mis (7) Mis (7) Mis (7) Hou (1) Kansas (1) Kan (1) Kan (1) Kan (1) Kan (1) Kan (1) Kan (1) Howard (16) Arkansas (8) Ill (9) Illinois (9) Saint Mary's (5) Sai (5) Con (4) VCU (12) Connecticut (4) Con (4) Iona (13) TCU (6) Ari (11) Gon (3) UNC (15) Arizona St. (11) Gonzaga (3) Gon (3) Grand Canyon (14) Northwestern (7) Boi (10) UNC (15) Boise St. (10) UCLA (2) UNC (15) UNC Asheville (15) Purdue (1) Pur (1) Flo (9) Lou (13) Lou (13) Texas Southern (16) Memphis (8) Flo (9) Florida Atlantic (9) Duke (5) Duk (5) Lou (13) Oral Roberts (12) Tennessee (4) Lou (13) Louisiana (13) Kentucky (6) Pro (11) Pro (11) Pro (11) Providence (11) Kansas St. (3) Mon (14) Montana St. (14) Michigan St. (7) USC (10) Mar (2) USC (10) Marquette (2) Mar (2) Vermont (15) Total bracket energy: -379.6806186941867
I suggest entering both your lowest energy bracket AND your most common!