Bowling Night Analytics is an interactive dashboard that transforms messy, analog bowling data into actionable performance metrics. Unlike standard scoring apps that only track the final score, this project dissects the game at the "atomic" level, analyzing every individual throw to calculate momentum, consistency, and lane difficulty.
The project demonstrates a full-stack data workflow: Data Engineering (ETL pipeline for complex grids), Statistical Analysis (Rolling averages, Z-scores), and Visualization (Interactive Shiny dashboard).
- Interactive Data Visualization: Explore game trends dynamically using Plotly and ggplot2.
- Player Performance Analytics: Deep dives into consistency, strike rates, and "clutch" performance using rolling averages.
- Competitive Lane Comparisons: Analyze how different lanes affect scoring probability and "open" frame rates.
- Momentum Tracking: Calculation of Z-scores to visualize "hot" and "cold" streaks relative to a player's baseline.
A core challenge of this project was digitizing proprietary score sheets where bonuses (strikes/spares) were pre-calculated by the venue's algorithm, making it difficult to isolate raw performance.
To solve this, I developed a custom 'Coordinate System' nomenclature (F[Frame]_B[Ball]).
- The Challenge: The raw data existed in a physical grid where specific "Ball" slots exist nested within "Frame" containers.
- The Solution: This structure maps that grid into a flattened CSV format.
- The Result: This approach captures atomic performance data (individual pinfall) distinct from the venue's cumulative scoring algorithm. This allows for:
- Independent verification of scores.
- Separation of physical performance (pins down) from algorithmic bonuses.
- Granular analysis of "first ball" efficiency vs. "spare conversion" efficiency.