Every program that has ever reached the NCAA Division I men’s basketball tournament, from the first bracket in 1939 to Florida’s 2025 championship. The dashboard covers 337 teams across 86 tournaments and 3,701 team-year appearances. Pick any team and see how often they made the field, how far they went each time, and how consistent they have been across eras: the long streaks, the long droughts, and the deepest round their program has ever reached. This is the men’s tournament only, and 2020 is excluded because it was cancelled.


Need a Custom Dashboard?

I build executive dashboards like this for businesses.

Clair Wyant Header Image

Clair Wyant

BI and Data Architecture Consultant


Project Details

  • Dashboard: NCAA Men’s Basketball Tournament History
  • Topic: NCAA Division I men’s basketball tournament (March Madness), team history and program comparison
  • Coverage: 337 programs, 86 tournaments, 3,701 team-year appearances
  • Timeframe: 1939 to 2025 (2020 excluded, cancelled)
  • Data sources: Sports Reference (per-year bracket results), Wikipedia (team and conference by year)
  • Tools: Tableau Desktop 2025.1 (published to Tableau Public), Python 3.12, Excel
  • Interactivity: season, conference, and team filters; a Top N slider (5 to 50); click-to-filter dashboard actions

Project Motivation

I’m a sports fan, and college basketball is the league I follow most closely. I’m a University of Arizona season ticket holder who watches all of their games, plus a lot of other college basketball across the country. Every March I set aside time for the tournament and fill out a bracket, and over the years I’ve made it to every round in person at some point, including three Final Fours and a national title. This dashboard grew out of that fandom. For a long time I’ve wanted a single overview of the tournament’s history: which teams have participated, how often they have made it, and how far they have gone over the years. That is what this dashboard does, putting every team and every run in one place I could actually explore.

How This Dashboard Was Built

The data came from two independent public sources that had to be reconciled. A Python scraper pulled each year’s bracket results from Sports Reference and each year’s team and conference details from Wikipedia, across roughly 87 tournament pages on each site. The two sources name teams differently (Sports Reference uses “Connecticut” where Wikipedia uses “UConn,” for example), so teams were matched with normalized name matching before the records were joined. Comparing tournaments across nearly a century took extra care, because the bracket has not always been the same size: 8 teams in 1939, 64 in 1985 at the start of the modern era, and 68 with the First Four today. The dataset maps each result by how deep a team got relative to the end of its bracket, so a team that reached the final eight in 1939 is comparable to an Elite 8 team today. Team-level metrics like streaks, droughts, and frequency rates were pre-computed in Python, because those calculations are difficult to do cleanly inside Tableau.

Dashboard Features

Four linked views on a single screen:

  1. Appearances and furthest round: every team ranked by total appearances, each bar colored by the deepest round the program has ever reached.
  2. Tournament depth breakdown: a stacked bar per team showing how many times they reached each round, from the Round of 64 up to a national title.
  3. Longest streak and drought: each team’s longest run of consecutive appearances next to its longest gap between appearances, with the active streak in the tooltip.
  4. Modern-era appearances and frequency: a scatter plot of total appearances against how often a team has made the field since 1985, colored by peak round.

Controls let you filter by season, conference, or team, and a “Top N Teams” slider resizes all four charts together, from the top 5 to the top 50 programs. Click any team on the leaderboard and the other three views filter to that program.

Skills Enhanced

  • Multi-source web scraping (Python, requests, BeautifulSoup)
  • Reconciling two independent sources with normalized name matching
  • Historical data modeling across changing bracket formats (cross-era “round-from-the-end” mapping)
  • Pre-computing team-level metrics (streaks, droughts, rates) in Python (pandas, openpyxl)
  • Tableau parameters, filters, and dashboard actions for a fully interactive, linked view

Frequently Asked Questions

Does this include the women’s tournament?

No. It covers the NCAA Division I men’s tournament only.

What years does it cover?

Every tournament from 1939 through 2025, 86 in all. 2020 is excluded because the tournament was cancelled.

Where does the data come from?

Two public sources, reconciled: Sports Reference for each year’s bracket results, and Wikipedia for each year’s teams and conferences.

How can teams from different eras be compared when the bracket size changed?

Each result is mapped by how deep a team got relative to the end of its bracket that year, so a deep run in a small early bracket lines up with the equivalent modern round.

Are vacated appearances included?

Yes. Results are recorded as they happened on the court, following Sports Reference’s convention.

Can I look at a single team or conference?

Yes. Filter by team, conference, or season, and click a team to focus the other views on it.


Want a dashboard like this for your business?

This NCAA project is a personal one, but the work behind it is the same thing I do professionally: pulling messy, multi-source data into a clean, interactive Tableau view people can actually explore. If your team needs something similar, see my data visualization and Tableau consulting services.

You’ll be talking to me, not a sales team

Clair Wyant, BI and Data Architecture Consultant

Clair Wyant

BI & Data Architecture Consultant, San Diego + remote

7+ years building executive reporting · $800M+ in decisions the dashboards supported · Salesforce Certified Tableau Desktop Foundations · You work directly with me, start to finish.

Hi, I’m Clair. Let’s find your fastest reporting wins.

Tell me where the reporting hurts. The first call is a relaxed intro call: what's getting in the way, how I might help, and whether we're a fit. Nothing to share to start, nothing to prepare. You work directly with me, the same senior consultant leadership has trusted on decisions worth more than $800 million. No junior handoffs, no sales reps, and no pressure.

Book your free intro call