Joseph W. Persteins

In one line

A model that predicts how many cars will park in each lot for a given game, accurate enough to plan staffing and pricing around, built on the data the organisation already had.

The question

An arena does not have one parking problem, it has one per lot per event. Open too many lanes and you pay staff to stand idle. Open too few and people sit in traffic, miss the first period, and remember it next time. The question was simple to state and hard to answer: for this specific game, in this specific lot, how many cars are actually coming?

That question has a shape you will recognise if you run a business of any size. It is the same question as how many staff to roster on Saturday, how much stock to order for the week, and how many covers to prepare for.

What the data was

Historical parking records, joined to what was true about each event: whether the opponent was a premier draw, whether it was a conference game, whether it fell on a weekend. No new collection, no new systems. The organisation already had all of it, which is the usual situation and the point worth noticing.

How it was built

A random forest regressor inside a single scikit-learn pipeline, so that imputation, scaling and categorical encoding all happened inside the cross-validation rather than before it. That detail is not decoration. It is the difference between a model that works and a model that only appears to.

The same caution runs through the rest of it. The results below are labelled leak-free in the source because the features were checked to make sure nothing in them quietly encoded the answer. A model that has seen the result it is being asked to predict will report superb accuracy and then fail the first time it meets a real Saturday.

What it achieved

Lot level
R² 0.951, mean absolute error of about 49 cars per lot.
Event level
R² 0.949, mean absolute error of about 68 cars across the whole event.

In plain terms: the model explains roughly 95 per cent of the variation in how busy a lot gets, and a typical prediction lands within about fifty cars of the truth. For a lot holding hundreds of vehicles, that is close enough to staff and price against.

It was delivered as a reusable pipeline rather than a one-off notebook, with a separate updater so forecasts refresh as new events are recorded. The code is public at github.com/JosephPerst/parking-forecasting, and the figures above come straight out of it.

What this means if you run a small business

An arena has more parking spaces than you have covers, shelves or appointment slots. The scale is different and the question is identical. You already have the records: the till, the booking system, the invoices. What is usually missing is not data and not software, it is somebody sitting down with it once and asking properly.

That is the work. A project like this one starts at $500, and you get the answer, the figures underneath it, and what I would do about it.

Being straight with you

This was built during a data science internship with the Florida Panthers in 2025, not as a client engagement of this business. I am showing it because it is real, public and checkable, and because the reasoning transfers directly.

I am not claiming a revenue figure from it. What the organisation did with the forecasts afterwards was theirs to decide, and I will not put a number on my own work that I cannot show you the arithmetic for.

Tell me what you want to find out, or write to joseph@josephpersteins.com.