{"buses":[{"bus_id":"BUS001","route_id":"R1","lat":18.505972,"lng":73.85730000000001,"capacity":50,"current_load":32,"status":"active"},{"bus_id":"BUS002","route_id":"R1","lat":18.520064,"lng":73.84139,"capacity":50,"current_load":45,"status":"active"},{"bus_id":"BUS003","route_id":"R1","lat":18.529804,"lng":73.846792,"capacity":55,"current_load":38,"status":"active"},{"bus_id":"BUS004","route_id":"R1","lat":18.534776,"lng":73.8398,"capacity":50,"current_load":50,"status":"active"},{"bus_id":"BUS005","route_id":"R1","lat":18.55254,"lng":73.812634,"capacity":45,"current_load":28,"status":"active"},{"bus_id":"BUS006","route_id":"R1","lat":18.56856,"lng":73.77887600000001,"capacity":50,"current_load":41,"status":"active"},{"bus_id":"BUS007","route_id":"R2","lat":18.530656,"lng":73.879716,"capacity":45,"current_load":30,"status":"active"},{"bus_id":"BUS008","route_id":"R2","lat":18.529704,"lng":73.900338,"capacity":50,"current_load":42,"status":"active"},{"bus_id":"BUS009","route_id":"R2","lat":18.51884,"lng":73.91380000000001,"capacity":50,"current_load":35,"status":"active"},{"bus_id":"BUS010","route_id":"R2","lat":18.515452,"lng":73.91808,"capacity":55,"current_load":48,"status":"active"},{"bus_id":"BUS011","route_id":"R2","lat":18.512206000000003,"lng":73.92658,"capacity":45,"current_load":22,"status":"active"},{"bus_id":"BUS012","route_id":"R3","lat":18.462616,"lng":73.867368,"capacity":50,"current_load":40,"status":"active"},{"bus_id":"BUS013","route_id":"R3","lat":18.48312,"lng":73.86513000000001,"capacity":50,"current_load":46,"status":"active"},{"bus_id":"BUS014","route_id":"R3","lat":18.500263999999998,"lng":73.863708,"capacity":60,"current_load":55,"status":"active"},{"bus_id":"BUS015","route_id":"R3","lat":18.504656,"lng":73.861192,"capacity":55,"current_load":38,"status":"active"},{"bus_id":"BUS016","route_id":"R3","lat":18.51809,"lng":73.85065,"capacity":50,"current_load":44,"status":"active"},{"bus_id":"BUS017","route_id":"R3","lat":18.529804,"lng":73.8475,"capacity":45,"current_load":32,"status":"active"},{"bus_id":"BUS018","route_id":"R4","lat":18.624256,"lng":73.801184,"capacity":50,"current_load":36,"status":"active"},{"bus_id":"BUS019","route_id":"R4","lat":18.598399999999998,"lng":73.8079,"capacity":55,"current_load":50,"status":"active"},{"bus_id":"BUS020","route_id":"R4","lat":18.55944,"lng":73.807384,"capacity":50,"current_load":42,"status":"active"},{"bus_id":"BUS021","route_id":"R4","lat":18.55296,"lng":73.809456,"capacity":45,"current_load":28,"status":"active"},{"bus_id":"BUS022","route_id":"R4","lat":18.519136,"lng":73.84131,"capacity":50,"current_load":38,"status":"active"},{"bus_id":"BUS023","route_id":"R5","lat":18.645624,"lng":73.77133599999999,"capacity":45,"current_load":25,"status":"active"},{"bus_id":"BUS024","route_id":"R5","lat":18.618399999999998,"lng":73.7621,"capacity":50,"current_load":34,"status":"active"},{"bus_id":"BUS025","route_id":"R5","lat":18.582268,"lng":73.768836,"capacity":50,"current_load":40,"status":"active"},{"bus_id":"BUS026","route_id":"R5","lat":18.57412,"lng":73.774704,"capacity":55,"current_load":45,"status":"active"},{"bus_id":"BUS027","route_id":"R6","lat":18.564288,"lng":73.91169599999999,"capacity":50,"current_load":38,"status":"active"},{"bus_id":"BUS028","route_id":"R6","lat":18.549200000000003,"lng":73.90093999999999,"capacity":45,"current_load":30,"status":"active"},{"bus_id":"BUS029","route_id":"R6","lat":18.537256,"lng":73.894392,"capacity":50,"current_load":44,"status":"active"},{"bus_id":"BUS030","route_id":"R6","lat":18.535024,"lng":73.891408,"capacity":55,"current_load":48,"status":"active"},{"bus_id":"BUS031","route_id":"R6","lat":18.529970000000002,"lng":73.878736,"capacity":50,"current_load":35,"status":"active"},{"bus_id":"BUS032","route_id":"R7","lat":18.508688,"lng":73.811144,"capacity":50,"current_load":42,"status":"active"},{"bus_id":"BUS033","route_id":"R7","lat":18.514726,"lng":73.8287,"capacity":45,"current_load":28,"status":"active"},{"bus_id":"BUS034","route_id":"R7","lat":18.521804,"lng":73.840808,"capacity":55,"current_load":50,"status":"active"},{"bus_id":"BUS035","route_id":"R7","lat":18.525199999999998,"lng":73.857,"capacity":50,"current_load":36,"status":"active"},{"bus_id":"BUS036","route_id":"R7","lat":18.51626,"lng":73.8779,"capacity":50,"current_load":40,"status":"active"},{"bus_id":"BUS037","route_id":"R8","lat":18.56576,"lng":73.881152,"capacity":45,"current_load":32,"status":"active"},{"bus_id":"BUS038","route_id":"R8","lat":18.5542,"lng":73.87884,"capacity":50,"current_load":38,"status":"active"},{"bus_id":"BUS039","route_id":"R8","lat":18.53584,"lng":73.87512,"capacity":50,"current_load":45,"status":"active"},{"bus_id":"BUS040","route_id":"R8","lat":18.53318,"lng":73.874776,"capacity":55,"current_load":42,"status":"active"},{"bus_id":"BUS041","route_id":"R9","lat":18.592264,"lng":73.742008,"capacity":50,"current_load":35,"status":"active"},{"bus_id":"BUS042","route_id":"R9","lat":18.597262,"lng":73.755974,"capacity":50,"current_load":46,"status":"active"},{"bus_id":"BUS043","route_id":"R9","lat":18.6188,"lng":73.78644,"capacity":45,"current_load":30,"status":"active"},{"bus_id":"BUS044","route_id":"R9","lat":18.622744,"lng":73.791276,"capacity":55,"current_load":48,"status":"active"},{"bus_id":"BUS045","route_id":"R10","lat":18.512008,"lng":73.92656,"capacity":50,"current_load":40,"status":"active"},{"bus_id":"BUS046","route_id":"R10","lat":18.5287,"lng":73.92626,"capacity":45,"current_load":28,"status":"active"},{"bus_id":"BUS047","route_id":"R10","lat":18.5438,"lng":73.92060000000001,"capacity":50,"current_load":44,"status":"active"},{"bus_id":"BUS048","route_id":"R10","lat":18.547800000000002,"lng":73.91916,"capacity":55,"current_load":50,"status":"active"},{"bus_id":"BUS049","route_id":"R10","lat":18.562482,"lng":73.915434,"capacity":50,"current_load":36,"status":"active"},{"bus_id":"BUS050","route_id":"R1","lat":18.575936,"lng":73.764892,"capacity":50,"current_load":42,"status":"active"}],"routes":[{"route_id":"R1","name":"Swargate → Hinjewadi IT Park","stops":[{"lat":18.5018,"lng":73.8636},{"lat":18.5167,"lng":73.8411},{"lat":18.5225,"lng":73.8416},{"lat":18.5308,"lng":73.8475},{"lat":18.545,"lng":73.82},{"lat":18.558,"lng":73.8073},{"lat":18.57,"lng":73.775},{"lat":18.5912,"lng":73.7389}],"frequency":8,"route_length_km":18},{"route_id":"R2","name":"Pune Station → Hadapsar → Magarpatta","stops":[{"lat":18.5285,"lng":73.8742},{"lat":18.5362,"lng":73.8939},{"lat":18.525,"lng":73.905},{"lat":18.518,"lng":73.915},{"lat":18.5089,"lng":73.926},{"lat":18.5146,"lng":73.927}],"frequency":10,"route_length_km":12},{"route_id":"R3","name":"Katraj → Swargate → Shivajinagar","stops":[{"lat":18.4578,"lng":73.8679},{"lat":18.475,"lng":73.866},{"lat":18.489,"lng":73.8645},{"lat":18.5018,"lng":73.8636},{"lat":18.512,"lng":73.855},{"lat":18.5225,"lng":73.8475},{"lat":18.5308,"lng":73.8475}],"frequency":6,"route_length_km":10},{"route_id":"R4","name":"PCMC → Aundh → Deccan","stops":[{"lat":18.6298,"lng":73.7997},{"lat":18.61,"lng":73.805},{"lat":18.59,"lng":73.81},{"lat":18.57,"lng":73.808},{"lat":18.558,"lng":73.8073},{"lat":18.54,"lng":73.815},{"lat":18.5225,"lng":73.8416},{"lat":18.5167,"lng":73.8411}],"frequency":7,"route_length_km":15},{"route_id":"R5","name":"Nigdi → Wakad → Baner","stops":[{"lat":18.6517,"lng":73.7738},{"lat":18.63,"lng":73.765},{"lat":18.61,"lng":73.76},{"lat":18.5989,"lng":73.7603},{"lat":18.58,"lng":73.77},{"lat":18.559,"lng":73.7868}],"frequency":12,"route_length_km":14},{"route_id":"R6","name":"Viman Nagar → Koregaon Park → Pune Station","stops":[{"lat":18.5679,"lng":73.9143},{"lat":18.555,"lng":73.905},{"lat":18.545,"lng":73.898},{"lat":18.5362,"lng":73.8939},{"lat":18.532,"lng":73.885},{"lat":18.5285,"lng":73.8742}],"frequency":9,"route_length_km":8},{"route_id":"R7","name":"Kothrud → FC Road → Camp","stops":[{"lat":18.5074,"lng":73.8077},{"lat":18.512,"lng":73.82},{"lat":18.5167,"lng":73.835},{"lat":18.5225,"lng":73.8416},{"lat":18.528,"lng":73.85},{"lat":18.518,"lng":73.875},{"lat":18.515,"lng":73.88}],"frequency":8,"route_length_km":11},{"route_id":"R8","name":"Vishrantwadi → Yerawada → Pune Station","stops":[{"lat":18.568,"lng":73.8816},{"lat":18.56,"lng":73.88},{"lat":18.55,"lng":73.878},{"lat":18.542,"lng":73.876},{"lat":18.535,"lng":73.875},{"lat":18.5285,"lng":73.8742}],"frequency":10,"route_length_km":7},{"route_id":"R9","name":"Hinjewadi → Wakad → PCMC","stops":[{"lat":18.5912,"lng":73.7389},{"lat":18.595,"lng":73.75},{"lat":18.5989,"lng":73.7603},{"lat":18.61,"lng":73.775},{"lat":18.62,"lng":73.788},{"lat":18.6298,"lng":73.7997}],"frequency":11,"route_length_km":10},{"route_id":"R10","name":"Hadapsar → Mundhwa → Viman Nagar","stops":[{"lat":18.5089,"lng":73.926},{"lat":18.52,"lng":73.928},{"lat":18.535,"lng":73.925},{"lat":18.545,"lng":73.92},{"lat":18.555,"lng":73.917},{"lat":18.5679,"lng":73.9143}],"frequency":9,"route_length_km":9}],"depots":[{"depot_id":"D1","name":"Swargate Depot","lat":18.5018,"lng":73.8636,"total_buses":18,"idle_buses":5},{"depot_id":"D2","name":"PCMC Depot","lat":18.6298,"lng":73.7997,"total_buses":14,"idle_buses":4},{"depot_id":"D3","name":"Hadapsar Depot","lat":18.5089,"lng":73.926,"total_buses":12,"idle_buses":3},{"depot_id":"D4","name":"Katraj Depot","lat":18.4578,"lng":73.8679,"total_buses":10,"idle_buses":4}],"demandZones":[{"zone_id":"Z1","name":"Hinjewadi IT Park","lat":18.5912,"lng":73.7389,"base_demand":95,"current_demand":94,"predicted_demand":95},{"zone_id":"Z2","name":"Pune Railway Station","lat":18.5285,"lng":73.8742,"base_demand":85,"current_demand":89,"predicted_demand":85},{"zone_id":"Z3","name":"Savitribai Phule Pune University","lat":18.552,"lng":73.826,"base_demand":70,"current_demand":60,"predicted_demand":70},{"zone_id":"Z4","name":"Magarpatta City","lat":18.5146,"lng":73.927,"base_demand":80,"current_demand":80,"predicted_demand":80},{"zone_id":"Z5","name":"Phoenix Marketcity Mall","lat":18.56,"lng":73.915,"base_demand":60,"current_demand":75,"predicted_demand":60},{"zone_id":"Z6","name":"Koregaon Park","lat":18.5362,"lng":73.8939,"base_demand":55,"current_demand":61,"predicted_demand":55},{"zone_id":"Z7","name":"Deccan Gymkhana","lat":18.5167,"lng":73.8411,"base_demand":65,"current_demand":80,"predicted_demand":65},{"zone_id":"Z8","name":"Kharadi IT Park","lat":18.553,"lng":73.94,"base_demand":90,"current_demand":80,"predicted_demand":90},{"zone_id":"Z9","name":"Swargate Bus Terminal","lat":18.5018,"lng":73.8636,"base_demand":100,"current_demand":105,"predicted_demand":100},{"zone_id":"Z10","name":"Pimpri Industrial Area","lat":18.62,"lng":73.8,"base_demand":75,"current_demand":68,"predicted_demand":75},{"zone_id":"Z11","name":"Baner Residential Hub","lat":18.559,"lng":73.7868,"base_demand":50,"current_demand":46,"predicted_demand":50},{"zone_id":"Z12","name":"Viman Nagar","lat":18.5679,"lng":73.9143,"base_demand":65,"current_demand":60,"predicted_demand":65}],"metro":{"line_name":"Pune Metro Line 1 (Purple Line)","stations":[{"name":"PCMC","lat":18.6298,"lng":73.7997},{"name":"Sant Tukaram Nagar","lat":18.615,"lng":73.805},{"name":"Bhosari","lat":18.6,"lng":73.81},{"name":"Kasarwadi","lat":18.585,"lng":73.82},{"name":"Phugewadi","lat":18.57,"lng":73.83},{"name":"Dapodi","lat":18.555,"lng":73.835},{"name":"Bopodi","lat":18.542,"lng":73.84},{"name":"Shivajinagar","lat":18.5308,"lng":73.8475}],"status":"normal","delay_minutes":0,"passenger_flow":12500},"alerts":[{"id":"ALERT_1775318563509_529qgjuyr","type":"overcrowded_bus","severity":"critical","message":"Bus BUS004 is overcrowded at 100% capacity","data":{"bus_id":"BUS004","route_id":"R1","load_factor":1},"timestamp":"2026-04-04T16:02:43.509Z","acknowledged":false},{"id":"ALERT_1775318563509_aystcqd0q","type":"overcrowded_bus","severity":"high","message":"Bus BUS013 is overcrowded at 92% capacity","data":{"bus_id":"BUS013","route_id":"R3","load_factor":0.92},"timestamp":"2026-04-04T16:02:43.509Z","acknowledged":false},{"id":"ALERT_1775318563509_ud5b16w0l","type":"overcrowded_bus","severity":"high","message":"Bus BUS014 is overcrowded at 92% capacity","data":{"bus_id":"BUS014","route_id":"R3","load_factor":0.9166666666666666},"timestamp":"2026-04-04T16:02:43.509Z","acknowledged":false},{"id":"ALERT_1775318563509_ubwdbjoz0","type":"overcrowded_bus","severity":"high","message":"Bus BUS019 is overcrowded at 91% capacity","data":{"bus_id":"BUS019","route_id":"R4","load_factor":0.9090909090909091},"timestamp":"2026-04-04T16:02:43.509Z","acknowledged":false},{"id":"ALERT_1775318563509_yqx7pa8fb","type":"overcrowded_bus","severity":"high","message":"Bus BUS034 is overcrowded at 91% capacity","data":{"bus_id":"BUS034","route_id":"R7","load_factor":0.9090909090909091},"timestamp":"2026-04-04T16:02:43.509Z","acknowledged":false},{"id":"ALERT_1775318563509_lz1g8evkk","type":"overcrowded_bus","severity":"high","message":"Bus BUS042 is overcrowded at 92% capacity","data":{"bus_id":"BUS042","route_id":"R9","load_factor":0.92},"timestamp":"2026-04-04T16:02:43.509Z","acknowledged":false},{"id":"ALERT_1775318563509_pzf93mi7q","type":"overcrowded_bus","severity":"high","message":"Bus BUS048 is overcrowded at 91% capacity","data":{"bus_id":"BUS048","route_id":"R10","load_factor":0.9090909090909091},"timestamp":"2026-04-04T16:02:43.509Z","acknowledged":false}],"metrics":{"fleet_utilization":78,"passenger_throughput":1951,"average_wait_time":4.5,"system_efficiency":89,"demand_fulfillment":100,"route_balance":94,"active_buses":50,"total_buses":50,"active_alerts":0,"last_updated":"2026-04-04T16:02:38.508Z"},"metricsFormatted":{"waitTime":{"value":4.5,"unit":"min","label":"Avg Wait Time"},"utilization":{"value":78,"unit":"%","label":"Fleet Utilization"},"throughput":{"value":1951,"unit":"pax","label":"Passengers On Board"},"efficiency":{"value":89,"unit":"%","label":"System Efficiency"},"fulfillment":{"value":100,"unit":"%","label":"Demand Fulfillment"},"routeBalance":{"value":94,"unit":"%","label":"Route Balance"}},"recommendations":[],"events":[],"routeStats":[{"route_id":"R3","name":"Katraj → Swargate → Shivajinagar","frequency":6,"route_length_km":10,"bus_count":6,"total_load":255,"total_capacity":310,"load_percent":82,"bus_statuses":{"active":6}},{"route_id":"R9","name":"Hinjewadi → Wakad → PCMC","frequency":11,"route_length_km":10,"bus_count":4,"total_load":159,"total_capacity":200,"load_percent":80,"bus_statuses":{"active":4}},{"route_id":"R1","name":"Swargate → Hinjewadi IT Park","frequency":8,"route_length_km":18,"bus_count":7,"total_load":276,"total_capacity":350,"load_percent":79,"bus_statuses":{"active":7}},{"route_id":"R8","name":"Vishrantwadi → Yerawada → Pune Station","frequency":10,"route_length_km":7,"bus_count":4,"total_load":157,"total_capacity":200,"load_percent":79,"bus_statuses":{"active":4}},{"route_id":"R10","name":"Hadapsar → Mundhwa → Viman Nagar","frequency":9,"route_length_km":9,"bus_count":5,"total_load":198,"total_capacity":250,"load_percent":79,"bus_statuses":{"active":5}},{"route_id":"R4","name":"PCMC → Aundh → Deccan","frequency":7,"route_length_km":15,"bus_count":5,"total_load":194,"total_capacity":250,"load_percent":78,"bus_statuses":{"active":5}},{"route_id":"R6","name":"Viman Nagar → Koregaon Park → Pune Station","frequency":9,"route_length_km":8,"bus_count":5,"total_load":195,"total_capacity":250,"load_percent":78,"bus_statuses":{"active":5}},{"route_id":"R7","name":"Kothrud → FC Road → Camp","frequency":8,"route_length_km":11,"bus_count":5,"total_load":196,"total_capacity":250,"load_percent":78,"bus_statuses":{"active":5}},{"route_id":"R2","name":"Pune Station → Hadapsar → Magarpatta","frequency":10,"route_length_km":12,"bus_count":5,"total_load":177,"total_capacity":245,"load_percent":72,"bus_statuses":{"active":5}},{"route_id":"R5","name":"Nigdi → Wakad → Baner","frequency":12,"route_length_km":14,"bus_count":4,"total_load":144,"total_capacity":200,"load_percent":72,"bus_statuses":{"active":4}}],"zoneStats":[{"zone_id":"Z3","name":"Savitribai Phule Pune University","lat":18.552,"lng":73.826,"base_demand":70,"current_demand":60,"predicted_demand":70,"surge_percent":17,"is_surging":false},{"zone_id":"Z8","name":"Kharadi IT Park","lat":18.553,"lng":73.94,"base_demand":90,"current_demand":80,"predicted_demand":90,"surge_percent":13,"is_surging":false},{"zone_id":"Z10","name":"Pimpri Industrial Area","lat":18.62,"lng":73.8,"base_demand":75,"current_demand":68,"predicted_demand":75,"surge_percent":10,"is_surging":false},{"zone_id":"Z11","name":"Baner Residential Hub","lat":18.559,"lng":73.7868,"base_demand":50,"current_demand":46,"predicted_demand":50,"surge_percent":9,"is_surging":false},{"zone_id":"Z12","name":"Viman Nagar","lat":18.5679,"lng":73.9143,"base_demand":65,"current_demand":60,"predicted_demand":65,"surge_percent":8,"is_surging":false},{"zone_id":"Z1","name":"Hinjewadi IT Park","lat":18.5912,"lng":73.7389,"base_demand":95,"current_demand":94,"predicted_demand":95,"surge_percent":1,"is_surging":false},{"zone_id":"Z4","name":"Magarpatta City","lat":18.5146,"lng":73.927,"base_demand":80,"current_demand":80,"predicted_demand":80,"surge_percent":0,"is_surging":false},{"zone_id":"Z2","name":"Pune Railway Station","lat":18.5285,"lng":73.8742,"base_demand":85,"current_demand":89,"predicted_demand":85,"surge_percent":-4,"is_surging":false},{"zone_id":"Z9","name":"Swargate Bus Terminal","lat":18.5018,"lng":73.8636,"base_demand":100,"current_demand":105,"predicted_demand":100,"surge_percent":-5,"is_surging":false},{"zone_id":"Z6","name":"Koregaon Park","lat":18.5362,"lng":73.8939,"base_demand":55,"current_demand":61,"predicted_demand":55,"surge_percent":-10,"is_surging":false},{"zone_id":"Z7","name":"Deccan Gymkhana","lat":18.5167,"lng":73.8411,"base_demand":65,"current_demand":80,"predicted_demand":65,"surge_percent":-19,"is_surging":false},{"zone_id":"Z5","name":"Phoenix Marketcity Mall","lat":18.56,"lng":73.915,"base_demand":60,"current_demand":75,"predicted_demand":60,"surge_percent":-20,"is_surging":false}],"alertStats":{"total_active":7,"total_acknowledged":0,"by_type":{"overcrowded_bus":7},"by_severity":{"critical":1,"high":6}},"fleetDistribution":{"byRoute":{"R1":{"count":7,"avgLoad":79,"totalLoad":276,"totalCapacity":350},"R2":{"count":5,"avgLoad":72,"totalLoad":177,"totalCapacity":245},"R3":{"count":6,"avgLoad":82,"totalLoad":255,"totalCapacity":310},"R4":{"count":5,"avgLoad":78,"totalLoad":194,"totalCapacity":250},"R5":{"count":4,"avgLoad":72,"totalLoad":144,"totalCapacity":200},"R6":{"count":5,"avgLoad":78,"totalLoad":195,"totalCapacity":250},"R7":{"count":5,"avgLoad":78,"totalLoad":196,"totalCapacity":250},"R8":{"count":4,"avgLoad":79,"totalLoad":157,"totalCapacity":200},"R9":{"count":4,"avgLoad":80,"totalLoad":159,"totalCapacity":200},"R10":{"count":5,"avgLoad":79,"totalLoad":198,"totalCapacity":250}},"byDepot":{"D1":{"name":"Swargate Depot","idle":5,"total":18},"D2":{"name":"PCMC Depot","idle":4,"total":14},"D3":{"name":"Hadapsar Depot","idle":3,"total":12},"D4":{"name":"Katraj Depot","idle":4,"total":10}},"totalActive":50,"totalIdle":16},"systemStatus":{"simulation_running":true,"started_at":"2026-04-04T16:02:38.506Z","tick_count":2,"uptime_seconds":8,"total_buses":50,"total_routes":10,"total_depots":4,"total_demand_zones":12,"active_events":0,"active_alerts":7,"timestamp":"2026-04-04T16:02:46.984Z"},"timestamp":"2026-04-04T16:02:46.984Z"}