Rules
57 rules · 57 enabled
| Rule | Severity | Type | Fired 7d | Last fired | Enabled |
|---|---|---|---|---|---|
Delivered on time delivered_on_time · vv1Lifecycle=delivered within promised ETA | green | sync | 0 | — | |
Pickup completed on time pickup_completed_on_time · vv1Lifecycle=picked_up within 24h of manifesting | green | sync | 0 | — | |
RTO delivered to merchant rto_delivered_to_merchant · vv1RTO journey reached delivered | green | sync | 0 | — | |
Signal resolved signal_resolved · vv1Any prior red/yellow now clear (auto-emitted) | green | sync | 0 | — | |
Auth failure after token refresh auth_failure_after_token_refresh · vv1Poll returned 401/403 within 5min of successful token_generate | red | sync | 0 | — | |
Courier 5xx recurring courier_5xx_recurring · vv15+ HTTP 5xx from same courier in 5min | red | aggregate | 0 | — | |
Courier API error rate spike courier_api_error_rate_spike · vv15m API error rate >5% (excl NO_SCAN) | red | aggregate | 0 | — | |
Courier delivery rate drop courier_delivery_rate_drop · vv11h delivery rate <70% of 7d baseline | red | aggregate | 0 | — | |
Delivered then returned delivered_then_returned · vv1Status regressed from delivered to in_transit | red | sync | 0 | — | |
Lost status received lost_status_received · vv1Mapped lifecycle = lost | red | sync | 0 | — | |
Manifested no pickup 72h manifested_no_pickup_72h · vv1Created/manifested but no pickup scan in 72h | red | temporal | 0 | — | |
NDR address issue ndr_address_issue · vv1NDR with address-related reason | red | sync | 0 | — | |
NDR 3 attempts same reason ndr_attempts_3_same_reason · vv13+ NDR scans with identical raw_status in <7d | red | sync | 0 | — | |
NDR COD no response 48h ndr_cod_no_response_48h · vv1NDR on COD with no customer follow-up in 48h | red | temporal | 0 | — | |
NDR customer unavailable loop ndr_customer_unavailable_loop · vv1Multiple NDRs with customer-unavailable reason | red | sync | 0 | — | |
NDR on high-value shipment ndr_high_value_red · vv1NDR raised on high declared-value shipment | red | sync | 0 | — | |
NDR no follow-up 72h ndr_no_followup_72h · vv1NDR with no follow-up scan in 72 hours | red | temporal | 0 | — | |
OFD stuck > 48 hours ofd_stuck_48h · vv1Out For Delivery for 48+ hours without follow-up scan | red | temporal | 0 | — | |
Pickup late after dispatch 30h pickup_late_after_dispatch_30h · vv1Picked up but no transit scan in 30h | red | temporal | 0 | — | |
Pickup pending 72h pickup_pending_72h · vv1Pickup pending for 72+ hours | red | temporal | 0 | — | |
Recurring auth failure recurring_auth_failure · vv13 consecutive 401/403 for any AWB on same courier | red | aggregate | 0 | — | |
RTO delivered no confirmation rto_delivered_no_return_confirmation · vv1RTO delivered but no merchant confirmation 5d | red | temporal | 0 | — | |
RTO in transit no scan 5d rto_in_transit_no_scan_5d · vv1RTO in transit held 5+ days | red | temporal | 0 | — | |
RTO in transit stuck 7d rto_in_transit_stuck_7d · vv1RTO journey in transit for 7+ days | red | temporal | 0 | — | |
RTO pickup failed 2x rto_pickup_failed_2x · vv12 failed RTO pickup attempts in 7d | red | sync | 0 | — | |
RTO without delivery attempt rto_without_delivery_attempt · vv1Transition into RTO without prior NDR or OFD | red | sync | 0 | — | |
Silent courier silent_courier · vv1Zero scans from courier in 1h when baseline says >100/h | red | aggregate | 0 | — | |
Silent no scan 5d silent_no_scan_5d · vv1No scan event in 120h while non-terminal | red | temporal | 0 | — | |
Stuck at hub 5d stuck_at_hub_5d · vv1Same scan location repeated for 5+ days | red | temporal | 0 | — | |
Webhook signature invalid webhook_signature_invalid · vv1Adapter signature verification failed | red | sync | 0 | — | |
Adapter parse error adapter_parse_error · vv1Adapter threw exception parsing payload | yellow | sync | 0 | — | |
Courier NDR rate spike courier_ndr_rate_spike · vv11h NDR rate >130% of 7d baseline | yellow | aggregate | 0 | — | |
Courier timeout spike courier_timeout_spike · vv1Courier timeout rate >10% in 5min vs 7d baseline | yellow | aggregate | 0 | — | |
Delivered no confirmation delivered_no_confirmation · vv1Lifecycle=delivered but no delivery_date in payload | yellow | sync | 0 | — | |
Delivered too fast delivered_too_fast · vv1Created → delivered in <2h (suspicious) | yellow | sync | 0 | — | |
Dispatched no transit 24h dispatched_no_transit_24h · vv1Picked up but no transit scan in 24h | yellow | temporal | 0 | — | |
Geo anomaly distant geo_anomaly_distant_from_destination · vv1Last scan location far from destination after ETA (Phase 2 — needs destination distance feature) | yellow | sync | 0 | — | |
Ghost shipment detected ghost_shipment_detected · vv1Scan received for AWB with no awb row | yellow | sync | 0 | — | |
Manifested no pickup 24h manifested_no_pickup_24h · vv1Created/manifested but no pickup scan in 24h | yellow | temporal | 0 | — | |
Mapping mismatch inconsistent mapping_mismatch_inconsistent · vv1Mapped lifecycle conflicts with payload context | yellow | sync | 0 | — | |
NDR after OFD ndr_after_ofd · vv1NDR raised within 24h of OFD scan (delivery attempt failed) | yellow | sync | 0 | — | |
NDR no follow-up 36h ndr_no_followup_36h · vv1NDR with no follow-up scan in 36 hours | yellow | temporal | 0 | — | |
NDR received ndr_received · vv1Transition into NDR state | yellow | sync | 0 | — | |
OFD stuck > 24 hours ofd_stuck_24h · vv1Out For Delivery for 24+ hours without follow-up scan | yellow | temporal | 0 | — | |
Pickup late after dispatch 15h pickup_late_after_dispatch_15h · vv1Picked up but no transit scan in 15h | yellow | temporal | 0 | — | |
Pickup pending 24h pickup_pending_24h · vv1Pickup pending for 24+ hours | yellow | temporal | 0 | — | |
RTO initiated no action 3d rto_initiated_no_action_3d · vv1RTO initiated with no pickup or transit in 3 days | yellow | temporal | 0 | — | |
RTO initiated no pickup 24h rto_initiated_no_pickup_24h · vv1RTO initiated, no pickup scheduled in 24h | yellow | temporal | 0 | — | |
RTO speed anomaly rto_speed_anomaly · vv1RTO completed in <12h (suspicious) | yellow | sync | 0 | — | |
Same status repeating same_status_repeating · vv1>10 scans with identical raw_status in 1h | yellow | sync | 0 | — | |
Silent no scan 3d silent_no_scan_3d · vv1No scan event in 72h while non-terminal | yellow | temporal | 0 | — | |
Status regressed status_regressed · vv1Transition to a lifecycle lower than current (excluding RTO) | yellow | sync | 0 | — | |
Transit speed zero 3d transit_speed_zero_3d · vv1In transit for 3d with no location change | yellow | temporal | 0 | — | |
Unmapped status floor breach unmapped_status_floor_breach · vv1Unmapped queue grew >20 entries in 24h | yellow | aggregate | 0 | — | |
Unmapped status received unmapped_status_received · vv1Courier raw status had no mapping | yellow | sync | 0 | — | |
Webhook delivery lag webhook_delivery_lag · vv1No webhook from courier in 30min when baseline says we should get >50 | yellow | aggregate | 0 | — | |
Webhook payload malformed webhook_payload_malformed · vv1Adapter parse threw on inbound payload | yellow | sync | 0 | — |