Shadow Evaluation
Purpose
Compare AI recommendations against actual outcomes without executing the AI decision.
Principle
Input vehicle state (historical/real)
↓
AI Recommendation
↓
DO NOT EXECUTE — record only
↓
Observe actual outcome (from historical data/telemetry)
↓
Compare AI vs actual
Current Status
Historical replay / offline shadow evaluation only.
No real-time vehicle telemetry is available. All shadow evaluation uses:
Pre-computed historical demand statistics
The same data used to train/validate the models
This means shadow evaluation shares the same data distribution as training and validation. It is useful for debugging and model comparison but does NOT provide independent real-world validation.
Usage
python scripts/run_shadow_evaluation.py --n-vehicles 100 --model two_step
Output Schema
Each shadow record contains:
Field |
Description |
|---|---|
|
When the recommendation was generated |
|
Unique vehicle identifier |
|
Zone the vehicle was in |
|
Zone the AI recommended |
|
Zone the vehicle actually went to |
|
AI’s demand prediction |
|
Observed demand |
|
AI’s revenue estimate |
|
Observed revenue |
|
Model/policy used |
|
Version string |
Limitations
Data leakage: Current shadow evaluation uses the same historical data
No counterfactual: We cannot observe what WOULD have happened if the AI recommendation were followed
No driver behavior: Driver acceptance/rejection of recommendations is not modeled
No market feedback: Following recommendations would change supply patterns
Production Path
For real shadow evaluation in a pilot deployment:
Record vehicle telemetry (position, time) without changing behavior
Run AI recommendation in shadow mode
Record actual driver decisions independently
Compare after sufficient data collection