More than 60 percent of pilot sessions began between 17:00 and 20:00. Every OCPP transaction from Jakarta fleet partners showed our assumptions differed from reality, changing how we develop the scheduling engine.
The Baseline: How Jakarta Fleets Charged Before
Most small EV fleets in Jakarta use convenience charging: drivers plug in when they return to the depot, and charging continues until the vehicle is full or unplugged. Vehicles compete for ports without coordination, PLN time of use windows are ignored, and charge state is not connected to the next trip assignment.
Our partner fleets typically have 8 to 20 vehicles and use 7 kW to 22 kW AC Level 2 chargers with OCPP 1.6 or OCPP 2.0.1 firmware. Most had smart charging capable hardware, but remote controls were inactive. The OCPP backend recorded transactions without acting on them.
This pattern is common. OCPP 1.6 Smart Charging lets operators set composite schedules with per port power limits, start times, and duration. Using it requires a backend that knows which schedule to send and when, while most standard fleet tools lack useful demand forecasting.
The First OCPP Data Findings
The first finding was how tightly plug in times clustered. More than 60 percent of early access pilot sessions began from 17:00 to 20:00, coinciding with PLN peak pricing. Operators were not deliberately choosing poorly: drivers returned from afternoon trips and plugged in immediately, which is natural.
For commercial users, PLN's peak time of use period is roughly 17:00 to 22:00, depending on billing class. Off peak rates run from 22:00 into the early morning. In the applicable commercial tariff bracket, the price gap is large enough that peak hour charging materially increases monthly energy costs.
The second finding concerned charging duration. Most vehicles reached 100 percent state of charge even when the next trip needed less energy. A vehicle leaving at 08:00 for a 30 km route does not need to be full at 02:00 when its battery range is 200 km. Extra charging wastes energy and can accelerate cell degradation near the top of the charge curve, where fast charging makes lithium plating more likely.
Where Gains Actually Come From
Early access pilot data points to three sources of gain, listed roughly by scale.
Tariff shifting delivers the largest share. Moving sessions from PLN's 17:00 to 22:00 peak period into the 22:00 to 07:00 off peak period lowers the per kWh cost. In early access pilots, shifting about 65 percent of daily charging volume off peak reduced charging costs by 15 to 20 percent. Charging volume stays the same, but timing changes, enabled by OCPP Smart Charging when the backend sends the right schedule.
Port utilization is the second source. Uncoordinated return time charging creates port contention during the first two hours after the evening shift, then leaves chargers idle for much of the night. Distributing schedules more evenly across ports reduces cases where vehicles remain uncharged because no port was available at peak return time.
SOC targeting ranks third. Setting targets from the next day's scheduled trips instead of always charging to 100 percent cuts unnecessary high end charging. Pilot data shows a real but smaller effect than tariff shifting, since cycle count improvements take months to appear in measurable state of health. The value is longer pack life, not immediate energy savings.
What Surprised Us
Decision latency had the biggest surprise. We thought sending the correct schedule at 22:00 would be enough. Instead, adherence depended heavily on whether drivers moved vehicles after an early charging session ended.
A vehicle that finishes at 02:00 but stays put until a driver arrives at 06:00 occupies a port for four hours, preventing other vehicles from charging. We named this the idle post charge problem. It limited scheduling more than expected and led us to add a notification layer to dispatch, which we had initially treated as optional.
OCPP transaction data alone also proved insufficient for accurate demand forecasts. Charging records show past behavior, not the vehicle's next activity. Adding trip request data, even in simplified form, meaningfully improved next day charge target predictions in pilot testing.
The OCPP Firmware Challenge
Jakarta's fleet market has more charger hardware fragmentation than expected. Operators use local and imported equipment, with wide differences in OCPP firmware maturity. Some chargers support per connector composite schedules as specified. Others accept schedule commands but return to the default profile after a power cycle. A few advertise OCPP compliance without supporting Smart Charging.
Reliable scheduling required a hardware capability registry and empirical testing of each charger model before using it. This practical integration knowledge is outside the OCPP specification. We are expanding it with the early access program, and local market experience gives us an advantage over generic fleet tools.
What We Are Still Working On
The current model has limits. Multi depot coordination is one. When vehicles use multiple charging locations, the best session depends on the return depot, which depends on the route, which depends on trip allocation. We have an early multi depot version, but it is less mature than single depot scheduling.
We also do not yet fully model the link between charging schedules and degradation for each vehicle. The current model treats vehicles of the same model as having equal charging capacity and target SOC. In practice, a unit after 18 months of heavy use charges differently from a new one. Per vehicle degradation data is on the roadmap, but not in the current early access build.
After six months, the data confirms that fleets of this size can achieve these gains. The current work focuses on moving from early access results to reliable deployment across more fleet configurations.

