A driver gets one hour. The charger has to be free.
Logistics runs on a tight schedule. Every four hours a truck driver has to stop for at least an hour, and that hour is when the truck charges. If the bay is taken on arrival, the driver waits out the break and then charges on driving time. A full day of planning goes with it.
Milence needed two things at the same time. Drivers had to know before they arrive that a bay is theirs. And the bays had to stay occupied and charging, because selling charging is the business.
Nobody had built this. There was no practical way to reserve a truck charging slot that worked for charge point operators, mobility service providers and fleet operators at once.
Five things seamlessly integrated
We designed the platform API-first and built it on OCPI from the start. Every action a driver, a fleet or a service provider can take is available through an API, which is what made the integrations later on short pieces of work.
Extend the standard
We put the reservation flow inside OCPI rather than next to it. Any mobility service provider already on the standard can expose Milence bay availability on their behalf.
Match the charging port
Drivers search chargers at a location and see availability for the side their charging port is on. A cable that cannot reach the socket is not an available charger.
Control the gate
Truck parking is scarce, so an empty charging bay attracts any truck on a break. We tied reservations to the site technology: camera detection, barriers and entry booms.
Assign the bay last minute
An algorithm reads bay occupancy, estimates how long each running session will take, and works in late arrivals and early exits. That drives the utilization improvement.
Reach the driver in time
To increase utilization the bay is assigned as late as possible. The right destination message has to land with the driver. App push notifications, SMS and email, plus the display boards and light signaling on the site itself.
Four problems the physical world handed us
Port side
Left or right. Book the wrong one and the cable does not reach the truck, so the reservation is worthless.
Physical access
Cameras, barriers and entry booms had to agree with what the reservation in the database said, in both directions.
The wrong bay
Where there is no barrier, drivers with a reservation still plug in wherever they like. The system recognises the session and reassigns the bay they left empty.
Sessions that slip
Late arrivals and early exits are normal on a logistics site. Assignment has to hold when the schedule does not.
One platform, three integration surfaces
Reservation platform
Search, reserve, arrive, charge. Node.js and TypeScript on Azure serverless components, with PostgreSQL behind it.
OCPI layer
Discoverable and bookable for any mobility service provider on the standard, including the reservation extensions the standard was missing.
Site and driver integration
Camera, barrier and boom control tied to live reservations, with the notification channels that tell a driver which bay is theirs.
API-first, and inside the standard
Senior engineers from Amsterdam and Novi Sad, working as one team with Milence. MVP first, then the rest.
API-first delivery
Every action behind an API from the first sprint. That kept the later work with mobility service providers, fleet systems and access control short.
Standards work
We work inside OCPI and we design extensions to it. The ones for truck charging reservations were picked up for a future version.
More of our work
All cases →Building something that does not exist yet?
We work API-first and inside the standards your ecosystem already runs on. MVP first, then the rest.


