Projects
🏀A Deep Dive into Temperature-Based NBA Performance Analysis
Python, Pandas, Jupyter, APIs
Link to full report (HIGHLY Recommended), including visuals, development process, and more. Feel free to skip to EDA on Luka Dončić, the creation of Team Fire and Team Ice, or the Bonus Comparison Analysis at the end:
What began as a simple proof-of-concept to explore the potential of a correlation between performance and city temperature for certain NBA players, which started as hard-coded for LeBron James, evolved into a powerful, scalable analytical tool — one that could redefine how we can evaluate elite NBA performances.
This project explores a novel idea: Does temperature correlate with player performance? To answer that, we built a system capable of calculating the average temperature of every NBA city in which a player played — not just once, but for every game in their career.
From there, we:
-
Transformed the hard-coded prototype into a reusable one-line function that could be run for any player.
-
Introduced performance filters (like point totals or Hollinger’s Game Score) to focus only on a player’s best games for temperature calculation.
-
Ran exploratory analysis on Luka Dončić to validate insights and identify trends, exposing a correlation between higher temperatures and better performance.
-
Engineered an automated system that looped over the NBA’s top 31 players, comparing their best performances by location.
-
Weighted games based on home/away and conference dynamics to further refine temperature averages and remove conference bias.
-
Created two teams — Team Fire and Team Ice — composed of players whose elite performances skewed hottest or coldest.
With a blend of advanced filtering, contextual weighting, and automation, this process produced a brand-new metric — a unique lens through which to interpret greatness on the hardwood.
👉 Curious about how it all came together?
Click the link below to read the full report on this journey — from idea to execution to unexpected insights. I'll have the last part of the report available for view on the right.

Yes, I created this graphic in Canva - it’s often a nice touch to use creative/artistic touch and add custom visuals to data projects. It's always worth it to go the extra mile, and I will often put this skill to use.
What are Team Fire and Team Ice?
Here's how they came to be:
1. We looped through a list of the top 31 players in the NBA based on:
-
🏆 Overall impact (All-NBA selections, star recognition, advanced metrics)
-
📊 Statistical leadership (rebounds, assists, scoring)
-
🌍 Balanced conference representation (East and West coverage)
2. For each player, we calculated the average temperature of every city each player played a game in for every game where their Hollinger's Game Score was over 27.5 - check out a description of the metric to the top right.
3. From there, we implemented game weight (see right) to remove conference bias and truly unveil correlation. Take a player like Luka Dončić:
-
His elite game vs. the Spurs (same division)? Weighted a bit less: 0.85×
-
His 35-point road game in Miami? Weighted more: 1.25×
A road game, an unfamiliar opponent, and a good performance gets weighted higher - performing well against hotter teams at a disproportionate rate will show this way.
This was all done in one code run, as a result of organization, patience, and clean data.


HR Dashboard |
Tableau
* Visit: Tableau Public Dashboard to interact with this dashboard in Tableau Public. Click the info button on the left to close the information screen | Below the Dashboard is a full report on the project and the process of it's creation, from the work of conceptualizing, satisfying each user story with specific calculations, the careful work of adding blanks to get each bit of formatting right, and of course the meticulous but necessary process of adding tooltips pretty much everywhere. This is the culmination of all of my Data Analytics learning, work, and skills in Tableau.
Chel Grids- Hockey Player Sudoku
This project was built for the Director of Hockey Operations for the New York Islanders. It was a blast to work on and gave me the chance to flex a wide range of skills — from wrangling large datasets to building an interactive mobile prototype.
The dataset includes every professional hockey player across all major leagues since 2008 — yes, even those who only played five minutes. In the prototype, player names are randomized as row and column labels, and the goal is to guess the player who’s shared the ice with both. If such a player exists, they’ve appeared in a game with both the row and column players — and they’re your answer.
Because it was a client-facing prototype, the code and game are private — but here’s a glimpse of what it looked like.
Tech Stack: JSON, SQL, React Native, JavaScript, HTML, CSS, Node.js, NPM, Expo Go