Understanding Results
Learn how to interpret and act on platform outputs.
Overview
The platform produces several types of outputs:
- Forecasts - Predicted demand by location and time
- Allocation Plans - Vehicle assignment recommendations
- KPIs - Key performance indicators
- Explanations - Decision transparency (Phase 2+)
Forecast Results
Output Structure
{
"1": [15, 18, 22, 25, 28, 24, 20, ...], # Location 1: hourly demand
"2": [10, 12, 14, 16, 18, 15, 12, ...], # Location 2: hourly demand
"3": [8, 9, 11, 13, 15, 12, 10, ...], # Location 3: hourly demand
}
Interpreting Forecasts
graph TD
A[Forecast Value] --> B{Compare to Capacity}
B -->|Demand > Capacity| C[Shortage Risk]
B -->|Demand ≈ Capacity| D[Balanced]
B -->|Demand < Capacity| E[Excess Capacity]
C --> F[Add vehicles]
D --> G[Monitor]
E --> H[Rebalance out]
Metrics
| Metric |
Description |
Formula |
| Peak Demand |
Maximum hourly demand |
max(forecast) |
| Average Demand |
Mean hourly demand |
mean(forecast) |
| Demand Variance |
Demand variability |
std(forecast) |
| Peak Hour |
Hour with highest demand |
argmax(forecast) |
Allocation Results
Allocation Plan
pd.DataFrame({
"vehicle_id": ["V001", "V002", "V003", "V004"],
"source_location": [1, 1, 2, 3],
"target_location": [2, 1, 3, 1],
"cost": [15.5, 0.0, 22.3, 18.7],
"assignment": ["rebalance", "stay", "rebalance", "rebalance"]
})
Assignment Types
| Type |
Description |
Count Expected |
stay |
Vehicle remains at current location |
Most vehicles |
rebalance |
Vehicle moves to different location |
Minority |
maintenance |
Vehicle scheduled for service |
Few |
reserve |
Vehicle held as backup |
Optional |
Interpreting Assignments
graph LR
subgraph Current["Current State"]
C1[Zone 1: 10]
C2[Zone 2: 5]
C3[Zone 3: 8]
end
subgraph Recommended["Recommended"]
R1[Zone 1: 7]
R2[Zone 2: 9]
R3[Zone 3: 7]
end
subgraph Actions["Actions"]
A1["Move 3 from Z1"]
A2["Add 4 to Z2"]
A3["Move 1 from Z3"]
end
Current --> Actions
Actions --> Recommended
Primary KPIs
| KPI |
Description |
Target |
Formula |
| Total Cost |
Rebalancing cost |
Minimize |
Sum of all movement costs |
| Demand Coverage |
% demand served |
> 95% |
Served / Total demand |
| Utilization |
Fleet usage rate |
70-85% |
Used / Available |
| Service Level |
On-time service |
> 90% |
Timely / Total requests |
Secondary KPIs
| KPI |
Description |
Target |
| Rebalancing Moves |
Number of vehicle movements |
Minimize |
| Empty Miles |
Distance without passengers |
Minimize |
| Wait Time |
Average customer wait |
< 10 min |
| Vehicle Idle Time |
Time vehicles sit unused |
< 30% |
KPI Dashboard
┌─────────────────────────────────────────────────────┐
│ Daily KPIs │
├──────────────────┬──────────────────────────────────┤
│ Total Cost │ $2,450 (↓ 12% vs yesterday) │
│ Demand Coverage │ 96.5% (✓ above target) │
│ Utilization │ 78% (✓ within range) │
│ Vehicles Moved │ 12 (↓ from 18 yesterday) │
└──────────────────┴──────────────────────────────────┘
Result Visualization
Demand vs Capacity
Demand Coverage by Location
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Zone 1 ████████████████░░░░ 82%
Zone 2 ██████████████████░░ 92%
Zone 3 ████████████████████ 100%
Zone 4 ███████████████████░ 98%
Zone 5 █████████████░░░░░░░ 68% ⚠️
Cost Breakdown
pie title Cost Distribution
"Fuel" : 45
"Driver Time" : 30
"Wear & Tear" : 15
"Overhead" : 10
Explainability (Phase 2+)
Feature Importance
Top Features for Demand Forecast
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
hour_of_day ████████████████████ 35%
day_of_week ██████████████░░░░░░ 25%
lag_24h ████████████░░░░░░░░ 20%
month ████████░░░░░░░░░░░░ 12%
is_weekend ████░░░░░░░░░░░░░░░░ 8%
SHAP Values
Explain individual predictions:
# Why is demand high for Zone 2 at 8am?
explanation = explainer.explain(prediction)
print(explanation)
# - hour=8 increases demand by +5.2
# - day=Monday increases demand by +3.1
# - lag_24h=high increases demand by +2.8
Taking Action
Decision Matrix
| Scenario |
Recommended Action |
| High demand, low supply |
Rebalance vehicles IN |
| Low demand, high supply |
Rebalance vehicles OUT |
| High risk vehicle |
Schedule maintenance |
| Constraint violation |
Review constraints |
| Cost spike |
Investigate anomalies |
Automation
# Automated decision workflow
if result.kpis['demand_coverage'] < 0.90:
alert("Low demand coverage - review allocation")
if result.total_cost > budget_threshold:
alert("Cost exceeds budget - optimize constraints")
for vehicle in high_risk_vehicles:
schedule_maintenance(vehicle)
Export Options
| Format |
Use Case |
| JSON |
API integration |
| CSV |
Spreadsheet analysis |
| Parquet |
Data warehouse |
| PDF |
Stakeholder reports |
Export Example
# Export to various formats
result.to_json("outputs/allocation_plan.json")
result.to_csv("outputs/allocation_plan.csv")
result.to_parquet("outputs/allocation_plan.parquet")
Next Steps