Case study: Equip

Returning sports equipment,
verified by AI in seconds.

EquipBuilt end to endShipped Q4 2025, still running

Transparency: Equip Sport is where our founders work. We built this system end to end, and the numbers below come from its production dashboards.

Object detectionVision LLMTypeScriptFastifyPostgresPrismaSentry
01 — The problem

Every photo, by hand, every day.

Equip runs 500+ smart sports-equipment stations across Europe and North America. Players unlock a station with their phone, take what they need for a game, then return it the same way.

Every return ends with a photo of the locker. Until last year, someone on the operations team opened those photos at the end of every working day, station by station, scrolling back from the most recent return looking for anything missing.

When something was missing (a basketball, a paddle, a volleyball), they walked back through the reservation log to figure out which player had taken it last and never brought it back.

The process worked, but it didn't scale. As the number of stations and returns grew, so did the backlog: turnaround on a missing item slipped from same-day to several days, and ops time on the queue kept climbing.

02 — What we built

A two-stage pipeline that checks itself.

Every return photo goes through a small AI pipeline before a person sees it. Most are decided automatically, and only the ambiguous ones go to a review queue.

The pipeline has four steps. First, the station captures a return photo. Second, an object detection model finds the station and each locker and draws bounding boxes around them. Third, a vision LLM compares each cropped locker with the most recent maintenance reference frame and decides whether the equipment is present or missing, with a confidence score. Fourth, returns where every locker is present with high confidence are auto-approved, and ambiguous cases go to a short human review queue.

Detect. An object detection model finds the station and each locker in the return photo and draws a tight bounding box around every compartment.

Verify. Each cropped locker is sent to a vision LLM along with the most recent maintenance reference, a known-good "all equipment present" frame from the last time the station was serviced. The model decides present or missing for every slot and returns a confidence score.

Decide. When every locker comes back present with high confidence, the return is auto-approved and the station is ready for the next player. Anything ambiguous (a low-confidence call, a locker the detector wasn't sure about, an unfamiliar reference) goes to a human review queue that is now a fraction of its old size.

The maintenance reference is refreshed every time a station is serviced, so the model always compares a return with how the station looked at its latest service.

03 — What changed

A daily manual queue, mostly automated.

84%
of returns auto-approved with no human review
~40k
return photos analyzed per month
500+
stations covered across Europe and North America
20h → 2h
weekly ops time on the review queue

The pipeline now handles most returns without anyone looking at them. The ops team's weekly review went from hours of scrolling to a short triage of the ambiguous cases.

When something is missing, it shows up the same day instead of waiting for the end-of-shift review, so the reservation-log lookup happens while the trail is still warm. The person who took the item is contacted before they next use the system.

The system runs across every Equip station and processes roughly 40,000 photos a month.

— Your turn

Want one of these?

Tell us where you're starting from and we'll suggest where to begin: a full build, a focused feature, or a quick production-readiness pass.

Find your starting point