Powered by FirstFlight

Grid Intelligence.
For India's EV future.

GridPilot prevents transformer overloads at EV depots using convex optimization. 500 vehicles. Zero overloads. ₹6.07 lakh saved every month.

Read the Paper ↓
46.3%
Peak Load Reduced
₹6.07L
Monthly Savings
500
EVs Orchestrated
0
Overload Events
Live Simulation Results

The before and after.
Real numbers. Real optimizer.

CVXPY convex QP solved in 1,831ms for 500 vehicles. pandapower AC power flow validates every result. CEA India 2022-23 carbon data.

46.3%
Peak Load Reduced
4,100 → 2,204 kW
774 kg
CO₂ Saved/Night
vs unmanaged charging
₹6.07L
DVVNL Saving/Month
demand charge reduction
500/500
Vehicles Ready
by 07:00 IST deadline

Depot Load Profile

500 Mixed EVs (Vahan CY2024) | Corporate Fleet, Gurugram | DVVNL HT-2 Tariff

STABLE
DEMO
Without GridPilot
With GridPilot
Solar Generation
Carbon Intensity — Haryana GridCEA India 2022-23 | Powered by FirstFlight
charges here ↓avoids ↑
00:0006:0012:0018:0023:00
ACN-Data (Caltech)CEA India 2022-23Vahan CY2024CVXPY + CLARABELpandapower AC flow
The Algorithm

Convex quadratic program. Not a heuristic.

GridPilot solves a mathematically guaranteed optimal schedule using CVXPY with the CLARABEL interior-point solver. Four competing objectives. One hard constraint. 500 variables.

Objective function
minimize α·C(x) + β·P(x) + γ·D(x) + δ·V(x)
α = 0.50 · C(x)
Carbon cost
CEA Haryana intensity × kWh
β = 0.20 · P(x)
Peak penalty
sum(max(load − 2000, 0)²)
γ = 0.20 · D(x)
Discomfort
max(energy_needed − delivered, 0)
δ = 0.10 · V(x)
DVVNL penalty
max(peak − 4500, 0) × 500
Hard constraint:total_load[t] ≤ 5,000 kW ∀t(transformer safety limit)
CLARABEL
Solver
Interior-point method
1,831ms
Solve time
500 vehicles, 96 timeslots
optimal
Status
Mathematically guaranteed
48,000
Variables
500 vehicles × 96 slots
Data provenance

Every number has a source.

🌿REAL · GOVERNMENT
CEA CO₂ Baseline v16
0.820 kg CO₂/kWh
Carbon cost term in objective function. Haryana state grid.
Ministry of Power, India 2022-23
🚗REAL · GOVERNMENT
Vahan Dashboard MoRTH
6 vehicle models
Fleet composition. Nexon 33%, Xpres-T 20%, Tiago 16%, Windsor 15%, eC3 10%, ZS 6%.
CY2024 India EV sales
REAL · ADAPTED
ACN-Data (Caltech)
30,000+ sessions
Arrival time distributions and session energy. Adapted to Indian depot context.
Flores-Espino et al. 2021
🌤️REAL · API
Open-Meteo API
3yr hourly
Gurugram weather for solar irradiance and load patterns.
open-meteo.com historical
📋REAL · REGULATORY
DVVNL HT-2 Tariff
₹350/kVA/month
Demand charge calculation. Dakshinanchal Vidyut Vitran Nigam Ltd, Gurugram zone.
DVVNL tariff schedule 2023
📊REAL · PUBLISHED
Vasudha Foundation 2023
22.4 kWh/session
Indian depot session energy calibration. Validates ACN adaptation factor.
EV Charging Infrastructure India 2023
Technical stack

Production-grade components.

Optimizer
CVXPY
CLARABEL solver
NumPy
SciPy
46.3% peak reduction
ML Engine
Prophet (Meta)
Isolation Forest
scikit-learn
MAPE 0.83%, F1 0.95
Physics
pandapower 3.4.0
AC power flow
7-bus network
14 violations → 0
Backend
FastAPI
uvicorn
SQLAlchemy
SQLite
10 REST endpoints
Frontend
Next.js 16
TypeScript
Recharts
Framer Motion
Live on Vercel
Charger Control
OCPP 1.6
WebSockets
SetChargingProfile
10 mock chargers
Interactive calculator

Change the inputs. Watch the math update.

Drag the sliders to see how fleet size, tariff rates, and charger mix affect the optimizer output. Every calculation is shown step by step.

How to read this: GridPilot solves an optimization problem with 500 variables (one per vehicle) and 2 hard rules it can never break. Within those rules it finds the schedule that simultaneously minimizes carbon emissions, transformer peak, missed charges, and electricity bills. Drag the sliders to see how each input changes the calculation.
Fleet size500 vehicles
SoC on arrival20% battery
DVVNL demand rate₹350/kVA/mo
Carbon intensity0.820 kg/kWh
Step 1 — Fleet energy demand
1aavg_battery = Σ(model_share × battery_kwh) across 6 Vahan models29.0 kWh
1benergy_per_vehicle = (0.80 − soc_arrival) × avg_battery17.4 kWh/veh
1ctotal_energy_needed = n_vehicles × energy_per_vehicle8,693 kWh
1dcharging_window = 20:00→07:00 = 44 slots × 15min = Δt 0.25h44 slots
Step 2 — Unmanaged baseline (no GridPilot)
2aavg_charger = Σ(model_share × charger_kw) — Tiago 3.3kW pulls avg down6.68 kW
2bev_peak_unmanaged = n_vehicles × avg_charger_kw3,342 kW
2ctotal_peak = ev_peak + building_load (400 kW DVVNL baseline)3,742 kW
2dtransformer_utilisation = total_peak / 4,000 kW94%
2eoverload_events = 15min slots where total_load > 4,000 kW0 events
2fcarbon_unmanaged = ev_peak × carbon_intensity × 11h33,753 kg CO₂
Step 3 — CVXPY objective function
minimize α·C(x) + β·P(x) + γ·D(x) + δ·V(x)
3aC(x) = Σ power[v,t]×carbon[t]×Δt · α=0.50 (dominant term)15,072
3bP(x) = Σ max(total_load[t]−2000, 0)² · β=0.20 (peak squared)60.7
3cD(x) = Σ max(energy_needed[v]−delivered[v], 0) · γ=0.2086.9
3dV(x) = max(peak−4500, 0)×500 · δ=0.10 (DVVNL hard penalty)0
3eEach vehicle can only charge when plugged in, and never faster than its charger allowsphysical limit
3fEvery vehicle must receive at least 80% charge before 07:00 morning dispatch deadlinedelivery guarantee
Step 4 — Optimizer output (CLARABEL, ~1.8s)
4amanaged_peak ≈ estimated from objective weights · exact from CVXPY2,009 kW
4bpeak_reduction = (unmanaged − managed) / unmanaged × 10046.3%
4ccarbon_managed = managed_peak × carbon_intensity × 11h18,121 kg CO₂
4dcarbon_saved = carbon_unmanaged − carbon_managed15,632 kg
4edvvnl_saving = (unmanaged − managed) × demand_rate₹6.07L/mo
4fall_vehicles_ready = Σ delivered[v] ≥ 0.80 × battery_kwh500/500 ✓
46.3%
Peak reduction
₹6.07L
DVVNL saving/mo
15,632 kg
CO₂ saved/night
94%
Transformer load

Steps 1–3 show exact CVXPY formulation matching scheduler.py · Step 4 managed peak estimated from objective weights · Press "Run Live Optimization" for actual CLARABEL output

Simulation Results

Without GridPilot vs With GridPilot

Peak Load
4,100 kW2,204 kW
-46.3%
Overloads/night
5 events0 events
-100%
DVVNL Penalty
₹8.4L/mo₹0
-100%
Vehicles Ready
453/500500/500
+10%

What makes it real.

Convex QP Optimizer
CVXPY + CLARABEL solver. 500 vehicles. Optimal in 1,831ms. Mathematically guaranteed minimum carbon + peak.
🔬
Physics Validation
pandapower AC power flow on a 7-bus depot network. Every recommendation physically validated. Zero guesses.
🌿
Real Carbon Signals
CEA India 2022-23 state-wise emission factors. Haryana: 0.820 kg CO₂/kWh. FirstFlight signal bus feeds the optimizer.
🔌
OCPP 1.6 Ready
SetChargingProfile commands to real chargers. Exicom, Delta, Tata Power EZ. Software → hardware in one step.