Scheduling Engine

The scheduling engine

At the core of ChargeVyne is a constrained optimisation solver that runs every 15 minutes. It balances three competing objectives that no human dispatcher could resolve simultaneously across a fleet of 20+ vehicles.

EPEX SPOT Tariff Feed €/kWh · 15-min Telematics Fleet SoC & Deps Site config Transformer kW MILP Solver (CBC) Optimisation min Σ tariff·kW s.t. SoC, limit, kW OCPP Profile Charge Plan SetChargingProfile per charger · 15-min
Technical deep-dive

How the engine handles your real constraints

Departure SoC window logic

Each vehicle has a registered departure time and minimum required SoC. The engine treats SoC at departure as a hard constraint — not a soft preference. If the constraint cannot be satisfied (vehicle arrived too late, charger faulty), an alert fires before the shift begins, not after.

Transformer limit enforcement

The site's contracted grid connection limit is a hard inequality constraint: Σ kW[v,t] ≤ limit for every time period t. The solver never violates this, even when multiple vehicles need urgent charging. It redistributes power among vehicles to protect the transformer while maximising overall fleet readiness.

Tariff integration pipeline

EPEX SPOT day-ahead and intraday prices are polled every 15 minutes. The solver treats tariff values as the objective function coefficients — minimising the dot product of energy drawn and price per time period. Weighted departures take precedence over pure cost minimisation if the two conflict.

scheduling-engine — solver run #5417 · depot-north
Horizon     : 2026-03-16 00:00 → 07:15  (29 periods × 15 min)
Fleet       : 42 vehicles, 38 plugged in, 4 pending arrival
Chargers    : 38 active / 42 total  (OCPP 2.0.1)
Transformer : 250 kW limit, 187 kW current draw

Constraints: 42 departure SoC targets  |  1 transformer limit  |  38 charger max-kW
Objective  : min Σ_t(tariff_t × Σ_v kW[v,t])

▶ Solving… CBC MILP  (1962 variables, 1226 constraints)
  Solved in 0.91s  |  Optimal  |  MIP gap 0.0%

Results:
  Total projected energy cost  : €41.80
  vs. flat-rate baseline       : €58.60
  Saving                       : €16.80  (28.7%)
  Departure constraints met    : 42 / 42  ✓
  Transformer limit breaches   : 0        ✓
  Charging concentrated in     : 00:15–04:00 (cheapest window)
  Peak grid draw scheduled     : 02:30  (tariff: €0.048/kWh)