Files
AI_engine/evals/stall_cases.jsonl

16 lines
4.7 KiB
JSON

{"id": "just-over-traffic", "minutes_stalled": 11, "hour_of_day_utc": 18, "facts": {"location": "major intersection", "note": "stop-go traffic reported in the area"}, "acceptable": ["wait", "notify_only"], "ideal": "wait", "rationale": "Just over threshold during evening rush; most likely ordinary traffic."}
{"id": "moderate-at-delivery", "minutes_stalled": 18, "hour_of_day_utc": 13, "facts": {"location": "residential delivery address", "note": "arrived at the delivery point"}, "acceptable": ["notify_only", "wait"], "ideal": "notify_only", "rationale": "Stopped at the delivery point — likely completing handoff; reassure the customer, keep the miler."}
{"id": "long-highway-no-stop", "minutes_stalled": 42, "hour_of_day_utc": 15, "facts": {"location": "on a highway stretch", "note": "no position change, not at any known stop"}, "acceptable": ["reassign", "escalate"], "ideal": "reassign", "rationale": "Long stall mid-highway, not at a stop — unlikely to recover on its own."}
{"id": "late-night-thin-coverage", "minutes_stalled": 25, "hour_of_day_utc": 2, "facts": {"note": "very few active milers in this zone at this hour"}, "acceptable": ["escalate", "notify_only"], "ideal": "escalate", "rationale": "Reassignment is risky with thin overnight coverage; a human should decide."}
{"id": "very-long-no-context", "minutes_stalled": 60, "hour_of_day_utc": 11, "facts": {}, "acceptable": ["reassign", "escalate"], "ideal": "escalate", "rationale": "Very long stall but zero situational detail — low information favors a human."}
{"id": "repeat-staller", "minutes_stalled": 15, "hour_of_day_utc": 10, "facts": {"stalls_today": 3, "position_unchanged_minutes": 15}, "acceptable": ["reassign", "escalate"], "ideal": "reassign", "rationale": "Real gatherer signal: 3rd stall today for this miler — a pattern that says this miler is unreliable right now."}
{"id": "near-completion", "minutes_stalled": 20, "hour_of_day_utc": 16, "facts": {"note": "route is ~90% complete, miler is at the final delivery cluster"}, "acceptable": ["wait", "notify_only"], "ideal": "notify_only", "rationale": "Almost done — reassigning would waste a near-complete trip."}
{"id": "vehicle-breakdown", "minutes_stalled": 35, "hour_of_day_utc": 12, "facts": {"location": "roadside", "note": "miler reported a vehicle breakdown"}, "acceptable": ["reassign"], "ideal": "reassign", "rationale": "Explicit breakdown — the miler cannot recover; must reassign."}
{"id": "ambiguous-mid", "minutes_stalled": 22, "hour_of_day_utc": 14, "facts": {"location": "commercial area"}, "acceptable": ["notify_only", "reassign", "escalate"], "ideal": "escalate", "rationale": "Genuinely ambiguous — moderate stall with thin info; hard to justify a strong action."}
{"id": "morning-hub-queue", "minutes_stalled": 12, "hour_of_day_utc": 8, "facts": {"location": "at pickup hub", "note": "morning batch pickup, queues are common here"}, "acceptable": ["wait", "notify_only"], "ideal": "wait", "rationale": "Hub queue during the morning batch is expected; not a real stall."}
{"id": "customer-unavailable", "minutes_stalled": 28, "hour_of_day_utc": 19, "facts": {"note": "at the delivery address, customer not answering calls"}, "acceptable": ["notify_only", "escalate"], "ideal": "notify_only", "rationale": "Customer-side delay, not the miler's fault; reassignment would not help."}
{"id": "long-idle-mid-route", "minutes_stalled": 50, "hour_of_day_utc": 10, "facts": {"location": "mid-route, not at any stop", "note": "GPS static for 50 minutes"}, "acceptable": ["reassign", "escalate"], "ideal": "reassign", "rationale": "Long static period mid-route with no plausible benign cause."}
{"id": "gathered-static-assigned", "minutes_stalled": 40, "hour_of_day_utc": 11, "facts": {"booking_status": "Miler_Assigned", "position_unchanged_minutes": 40, "last_gps_ping_minutes_ago": 1}, "acceptable": ["reassign", "escalate"], "ideal": "reassign", "rationale": "Real gatherer signals: device still pinging but frozen 40 min while only assigned (not yet at pickup) — genuine stall."}
{"id": "gathered-pickup-phase", "minutes_stalled": 14, "hour_of_day_utc": 9, "facts": {"booking_status": "Pickup_Scheduled", "position_unchanged_minutes": 14, "minutes_since_booking_created": 20}, "acceptable": ["wait", "notify_only"], "ideal": "wait", "rationale": "Real gatherer signals: brief stationary period in the pickup phase — most likely waiting at the pickup point."}
{"id": "gathered-stale-gps", "minutes_stalled": 25, "hour_of_day_utc": 13, "facts": {"booking_status": "Miler_Assigned", "last_gps_ping_minutes_ago": 25, "position_unchanged_minutes": 25}, "acceptable": ["escalate", "reassign"], "ideal": "escalate", "rationale": "Real gatherer signals: no GPS ping for 25 min — device may be offline (dead phone), which is ambiguous; prefer a human."}