Talk to me · Julian Reder · Resume · GitHub

NCSU Parking

Solo Projects · 2026

A predictive parking availability model for NC State campus decks that combines historical occupancy feeds with campus event schedules and validates machine learning models against strong seasonal baselines.

2026 Private (Architecture Only)
PythonPostgreSQLXGBoostpandasStreamlitDocker
Occupancy API delta snapshots Campus events haversine radius Postgres 5-min grid, lags Hour-of-week median baseline XGBoost kept only if better MAE Streamlit never loads XGBoost 8 horizons 15 min to 24 h, academic-calendar flags
Data pipeline diagram showing occupancy polling, calendar event ingestion, feature engineering, and model validation against seasonal baselines.

Built

I built a data collection and forecasting pipeline for NC State campus parking decks. A background collector polls public occupancy APIs and university event calendars into PostgreSQL, engineering features such as five-minute time grids, lag statistics, rolling occupancy averages, geographic event distances, and academic calendar dates. The forecasting pipeline evaluates an hour-of-week seasonal baseline and only retains per-lot XGBoost models when they achieve lower validation error than the simple median across forecasting windows ranging from fifteen minutes to twenty-four hours. Model training runs as a decoupled batch job, keeping the lightweight Streamlit dashboard responsive.

Forecasting campus parking demand

Finding parking on a large university campus can be frustrating during peak morning class hours and major athletic events. NC State publishes live occupancy counts for several campus parking decks, but the university does not provide forward-looking predictions to help students plan where to park in advance. I built this personal forecasting system to collect occupancy data continuously, combine it with campus event calendars, and evaluate whether machine learning models could reliably forecast lot availability across multiple time horizons.

The project is maintained in a private repository as an exploratory data engineering stack, using PostgreSQL to store time-series records, automated feature generation scripts in Python, and an interactive Streamlit dashboard for visualizing current availability and forecast estimates.

Evaluating against strong seasonal baselines

Parking occupancy follows clear cyclical patterns based on class schedules, which means an hour-of-week median baseline is already quite accurate for predicting routine weekday mornings. Rather than assuming that a complex machine learning model is automatically better, my training pipeline fits a seasonal median model first and only accepts an XGBoost model if it demonstrates lower mean absolute error on held-out validation data across horizons from 15 minutes up to 24 hours.

By enforcing this evaluation check for each individual parking deck, the system prevents overfitting on decks that follow strict routine schedules while allowing machine learning models to handle decks with higher variance. Model training runs as an independent batch process that saves validated model artifacts to disk, ensuring that the front-end dashboard remains fast and never depends on computationally heavy training libraries at runtime.

Occupancy API delta snapshots Campus events haversine radius Postgres 5-min grid, lags Hour-of-week median baseline XGBoost kept only if better MAE Streamlit never loads XGBoost 8 horizons 15 min to 24 h, academic-calendar flags
Pipeline structure showing raw data ingestion, feature generation, baseline benchmarking, and model selection.

Incorporating campus event data

Routine class schedules explain typical weekday traffic, but special events like home football games, basketball tournaments, and concerts create massive localized spikes in parking demand that standard calendar features fail to capture. To address this, the data collector automatically scrapes university event feeds, maps each event to its physical campus venue, and calculates geographic distance features relative to nearby parking facilities.

These event distance features give the forecasting models advance notice of sudden attendance surges, helping improve prediction accuracy during weekend games and evening performances when historical averages alone would significantly underestimate parking congestion.