Context
I wanted to combine my interest in swimming with data analytics by exploring how historical competition data could be transformed into meaningful insights. The project provided an opportunity to build an end-to-end workflow that addressed the challenges of extracting, cleaning, analyzing and visualizing data from unstructured historical documents.
What can 25 years of championship results reveal about the evolution of elite NCAA sprint swimming?
Historical sports results are often stored in inconsistent formats across documents and seasons, making large-scale analysis difficult. The challenge was to transform these unstructured results into a consistent and reliable dataset while preserving the performance information needed to analyze long-term trends, competitive depth and exceptional performances.
Approach
This project transformed historical Men's 50-yard freestyle results into a structured analytical dataset through automated document parsing, data cleaning and normalization. Statistical analysis and visualization were then applied to examine changes in performance over time, program-level success, competitive distributions and exceptional individual performances.
Data Sources
NCAA Division I Men's Swimming Championship Results
Publicly available NCAA championship results from 2000–2025 collected from PDF and HTML documents. The dataset includes athlete performances, schools, finishing places, preliminary and final times and championship metadata.
Solution
Built automated parsing logic to extract swimmer results from historical NCAA documents.
Developed cleaning routines to standardize athlete names, schools, times and performance fields.
Created a structured dataset containing 25 years of championship performances.
Applied statistical techniques including trend analysis, IQR outlier detection, z-scores and distribution analysis.
Developed visualizations highlighting performance evolution, program success, competitive depth and exceptional swims.
Architecture
The solution uses a multi-stage text processing pipeline to convert raw NCAA championship documents into a structured dataset suitable for analysis. Automated parsing logic extracts swimmer performance data despite changes in document structure and formatting across seasons.
- 01Document ingestion and extraction
- 02Regex-based parsing
- 03Data cleaning and normalization
- 04Statistical analysis pipeline
- 05Visualization generation

Outcome
Successfully transformed 25 years of inconsistent championship results into a reusable analytical dataset. The analysis identified long-term changes in championship winning times, patterns in program-level performance and statistically exceptional performances including Caeleb Dressel's 2018 championship swim.
Lessons Learned
Extracting reliable data from inconsistent historical documents requires robust parsing strategies.
Data quality and normalization are critical before meaningful analysis can occur.
Statistical context helps distinguish exceptional performances from normal variation.
Combining domain knowledge with analytics creates more meaningful insights.
Reusable data pipelines can turn fragmented historical records into a foundation for future analysis.
Future Improvements
Expand the analysis to additional NCAA swimming events.
Automate data collection from additional competition sources.
Build an interactive dashboard for exploring athlete, event and program trends.
Incorporate additional performance factors such as meet, venue, championship format and swimmer progression.




