About the Project

"Monday Night Wars: Data From Wrestling's Golden Age" is a project that uses python programming and data visualization techniques to unpack and era of professional wrestling called "Monday Night Wars." The project was created by Kate Meizner for LIS-664 at Pratt SI.

"Monday Night Wars" references a six year ratings battle between two TV shows: World Championship Wrestling’s (WCW) Monday Night Nitro, and World Wrestling Federation’s (WWF) flagship show Monday Night Raw. The ratings war was part of an overall struggle between the two companies, which was perpetuated by personal feuding between WCW owner Ted Turner and WWF commissioner Vince McMahon. Competition between the two companies revolutionized the industry's approach to talent relations, character building, and storylines by forcing promotions to identify profitable markets and approach new extremes to meet viewer expectations.

"Monday Night Wars" went through multiple phases between 1995 and 2001. While Raw and Nitro's ratings were evenly matched in the earlier years, WCW would gain the upper hand from 1996 to 1998, and WWF would regain control of the ratings from 1998 to 2001. In early 2001, WWF ultimately 'won' Monday Night Wars and purchased WCW shortly thereafter. The data visualizations below are meant to unpack some of the intricacies of those phases, looking at Monay Night Wars through the lens of ratings, talent, and geographical turf wars.

Go to Data Visualizations

Data Dashboard

Network Visualization


Data Collection

Data Wrangling


Data for this project was sourced by scraping the contents of various websites using a Python library called Beautiful Soup. Raw data about wrestling matches and match participants were scraped from Cagematch.com, which offers a plethora of wrestling statistics via its Advanced Search option. From Cagematch, I scraped: match date, wrestling promotion, match card (wrestlers involved), match location, match title, and match type. The data was scraped in five parts due to limitations on the amount of search returns provided by CageMatch per query. It was then written to a JSON file, and parsed into a CSV.

TV ratings data about both Nitro and Raw was sourced from Wrestlescoop and supplemented with data from Prowrestling.wikia.com. The data was scraped using beautiful soup, written to a JSON file, and parsed into a CSV.
Once the data was scraped and written to CSVs, I used to Google Refine to clean the data and prepare the formatting for import into Gephi and Tableau. Because Gephi “edge tables” require a specific data structure, I wrote an additional Python script to create an edge table from a JSON file containing data about who appeared in each match. The script was configured to create a 'pair' whenever two wrestlers appeared in a match together.

The rest of the match data was cleaned in Google Refine, primarily to format the date fields for Tableau. I also ran match locations through Batch Geocode in order to obtain lat/longs for each wrestling event location. The ratings CSV file had to undergo a similar process to format dates in preparation for Tableau analysis.
Both Gephi and Tableau were used to create the data visualizations for this project.

The wrestling match "edge" CSV was imported into Gephi, then visualized using a Fruchterman Reingold graphing technique, which pushed wrestlers who are “bridges” between the two companies toward the center of the visualization. A “bridge” with a large node indicates that the wrestler was likely a key player in the era, and likely shifted back and forth between Nitro and Raw.

The Tableau visualizations were created by importing both Ratings and Match data, then employed time-based analysis and mapping. Each separate visualization was added to a dashboard containing three topical sections: a section about TV Ratings, a section about Wrestling Talent, and a section about geographical Turf Wars.
View Project Github

Project by Kate Meizner