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.
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.
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)