Appearance
Pre-Transaction Validation Procedures
Document ID: PLCY-VAL-001
Version: 1.1
Effective Date: December 22, 2025
Last Review: December 22, 2025
Owner: Hop And Haul Team
CONFIDENTIAL
This document is CONFIDENTIAL and for internal use only. Do not distribute outside the organization.
1. Purpose
This document defines the mandatory validation checks executed before any ride match is finalized in Hop And Haul. These controls ensure compliance with DOT, FMCSA, and company safety requirements.
2. Validation Framework
2.1 Validation Timing
| Phase | Validations Performed | Blocking |
|---|---|---|
| Request submission | Requesting driver eligibility | Yes |
| Match identification | Pickup driver eligibility | Yes |
| Pre-acceptance | Vehicle and insurance status | Yes |
| Post-acceptance | Final safety confirmation | Yes |
2.2 Failure Handling
- Any failed validation blocks the transaction
- Failure reason logged (not exposed to other party)
- Operations notified for manual review if needed
3. Driver Validation Checks
3.1 Requesting Driver (Passenger)
| Check | Data Source | Pass Criteria | Failure Action |
|---|---|---|---|
| Active employment status | HR System | Status = Active | Block request |
| Valid driver credentials | HR System | CDL not expired | Block request |
| Not under suspension | HR System | No active suspension | Block request |
| Company authorization | HR System | Authorized for transport | Block request |
3.2 Pickup Driver
| Check | Data Source | Pass Criteria | Failure Action |
|---|---|---|---|
| Active employment status | HR System | Status = Active | Exclude from matches |
| Valid CDL on file | HR System | CDL not expired, correct class | Exclude from matches |
| HOS compliance | Samsara ELD | Sufficient hours remaining | Exclude from matches |
| Not in violation status | Samsara ELD | No active violations | Exclude from matches |
| Opted-in to transport | Hop And Haul | Transport flag = enabled | Exclude from matches |
3.3 Hours of Service (HOS) & ELD Validation
Critical Principle: Hop And Haul matches must NEVER cause a driver to exceed HOS limits. All ELD data must be queried in real-time before any match is offered.
3.3.1 FMCSA HOS Rules Enforced
| Rule | Limit | Validation Logic |
|---|---|---|
| 11-Hour Driving | Max 11 hours driving after 10 hours off-duty | remaining_drive_hours >= trip_time + 45 min buffer |
| 14-Hour Window | Cannot drive beyond 14th hour after on-duty | 14hr_window_remaining >= trip_time + 45 min buffer |
| 30-Minute Break | Required after 8 cumulative driving hours | time_to_break >= trip_time OR break available on route |
| 60/70-Hour Weekly | Max 60/70 hours in 7/8 consecutive days | weekly_hours_remaining >= trip_time + buffer |
| 10-Hour Off-Duty | 10 consecutive hours required before driving | last_10hr_rest_completed = true |
| 34-Hour Restart | Resets weekly clock | Validated in weekly calculation |
3.3.2 ELD Data Required for Match
| Data Point | Source | Freshness Requirement |
|---|---|---|
| Current duty status | Samsara ELD API | Real-time (<60 sec) |
| Hours driven since last 10-hr off-duty | Samsara ELD API | Real-time |
| Time since on-duty start | Samsara ELD API | Real-time |
| Cumulative driving since last 30-min break | Samsara ELD API | Real-time |
| Hours worked in last 7/8 days | Samsara ELD API | Refreshed hourly |
| Last 10-hour off-duty period | Samsara ELD API | Refreshed on status change |
3.3.3 Buffer Calculation Formula
estimated_trip_time =
drive_to_pickup +
pickup_dwell (2 min) +
drive_with_passenger +
dropoff_dwell (2 min) +
return_to_original_route
required_hours = estimated_trip_time + 30 min HOS buffer + 15 min delay buffer3.3.4 HOS Gate Check (All Must Pass)
| Check | Calculation | Threshold |
|---|---|---|
| Driving hours | 11 - hours_driven_today | >= required_hours |
| 14-hour window | 14 - hours_since_on_duty | >= required_hours |
| Break compliance | time_until_break_required | >= required_hours |
| Weekly hours | 60 or 70 - hours_this_period | >= required_hours |
| Minimum remaining | N/A | >= 60 minutes minimum |
3.3.5 ELD Fallback Behavior
| Scenario | Action |
|---|---|
| ELD data unavailable | EXCLUDE DRIVER - never assume compliance |
| ELD data stale (>60 sec) | Re-query before proceeding |
| ELD query timeout (>10 sec) | Retry once, then exclude driver |
| Conflicting status | EXCLUDE DRIVER - require operations review |
3.3.6 Minimum Eligibility Thresholds
Drivers are excluded from ALL match offers if:
| Condition | Threshold |
|---|---|
| Driving hours remaining | < 60 minutes |
| 14-hour window remaining | < 60 minutes |
| Weekly hours remaining | < 60 minutes |
| Time to required break | < trip_time + buffer |
| Duty status | Not "Driving" or "On-Duty" |
4. Vehicle Validation Checks
4.1 Vehicle Eligibility
| Check | Data Source | Pass Criteria | Failure Action |
|---|---|---|---|
| Passenger seat enabled | Vehicle Config | passenger_transport = true | Exclude vehicle |
| Vehicle active status | Samsara | Status = active | Exclude vehicle |
| No critical alerts | Samsara | No safety alerts active | Exclude vehicle |
| Inspection current | Fleet System | DVIR compliant | Exclude vehicle |
4.2 Seatbelt Confirmation
| Requirement | Implementation |
|---|---|
| Pre-trip confirmation | Driver confirms passenger seatbelt available |
| Policy flag | Vehicle configured for passenger transport |
| Audit record | Confirmation logged with timestamp |
5. Insurance Validation Checks
5.1 Coverage Requirements
| Check | Data Source | Pass Criteria | Failure Action |
|---|---|---|---|
| Active liability coverage | Insurance System | Policy active | Block all matches |
| Intra-company rider endorsement | Insurance System | Endorsement = active | Block all matches |
| Coverage effective date | Insurance System | Current date within policy period | Block all matches |
5.2 Endorsement Verification
Required Endorsement: Explicit intra-company rider coverage
Verification Process:
- Query insurance system for vehicle policy
- Confirm rider endorsement attached
- Verify endorsement effective dates
- Cache result (refresh daily)
6. Same-Day Trip Constraint Validation
6.1 Core Principle
All Hop And Haul matches are same-day, en-route only. No overnight trips permitted.
This constraint ensures:
- Drivers never share sleeping quarters in the cab
- Trips complete within a single duty cycle
- Both drivers return to normal operations the same day
6.2 Trip Window Checks
| Check | Validation Logic | Failure Action |
|---|---|---|
| Same calendar day | pickup_date == estimated_dropoff_date | Reject match |
| Within 14-hour window | dropoff_time + 60 min < 14hr_window_end | Reject match |
| Duration cap | total_trip_duration <= 4 hours | Reject match |
| Daily cutoff | current_time < 20:00 local | Queue for next day |
| Morning start | current_time >= 06:00 local | Queue until morning |
6.3 Operational Day Window
operational_window_start = driver's on-duty start time (from ELD)
operational_window_end = MINIMUM of:
- operational_window_start + 14 hours (FMCSA 14-hour rule)
- 23:59 local time (same calendar day)
- operational_window_start + remaining_driving_hours
trip_must_complete_by = operational_window_end - 60 minutes6.4 Trip Timing Validation
| Scenario | Outcome |
|---|---|
| Drop-off would occur after midnight | REJECT - violates same-day |
| Drop-off would occur after 14-hour window | REJECT - violates HOS |
| Trip duration exceeds 4 hours | REJECT - too long for en-route |
| Match requested after 8 PM local | QUEUE for next operational day |
| Driver has <2 hours remaining in duty day | EXCLUDE from all matches |
6.5 En-Route Requirement
Matches are only valid when naturally en-route:
| Criteria | Requirement | Validation |
|---|---|---|
| Route overlap | Pickup within 15 miles of driver's route | GPS route comparison |
| Drop-off alignment | Drop-off within 15 miles of driver's route | GPS route comparison |
| Directional match | Drop-off is in driver's travel direction | Route heading analysis |
| Minimal deviation | Route adds < 30% to remaining distance | Deviation calculation |
6.6 Overnight Trip Prohibition
This setting cannot be overridden:
yaml
same_day_constraints:
overnight_trips_allowed: false # HARD-CODED - NOT CONFIGURABLE
require_same_calendar_day: true # HARD-CODED - NOT CONFIGURABLEThe platform will never match a driver for a trip that would:
- Require sleeping arrangements in the cab
- Span multiple calendar days
- Continue past the driver's 14-hour window
7. Pre-Pickup Checklist
7.1 System-Validated Items
Before ride proceeds, system confirms:
[ ] REQUESTING DRIVER
[ ] Employment status: Active
[ ] Driver credentials: Valid CDL on file
[ ] Authorization: Approved for transport
[ ] No active suspension
[ ] PICKUP DRIVER
[ ] Employment status: Active
[ ] Driver credentials: Valid CDL on file
[ ] Transport opt-in: Enabled
[ ] HOS/ELD COMPLIANCE (Pickup Driver)
[ ] 11-hour driving: Sufficient hours remaining
[ ] 14-hour window: Trip completes within window
[ ] 30-minute break: Compliant or break available
[ ] 60/70-hour weekly: Within limits
[ ] Duty status: Driving or On-Duty
[ ] ELD data: Fresh (< 60 seconds)
[ ] No active ELD violations
[ ] SAME-DAY TRIP CONSTRAINTS
[ ] Drop-off same calendar day as pickup
[ ] Drop-off before 14-hour window expires
[ ] Trip duration under 4 hours
[ ] Current time within matching hours (6 AM - 8 PM)
[ ] Driver has >= 2 hours remaining in duty day
[ ] VEHICLE
[ ] Passenger transport: Enabled
[ ] Vehicle status: Active
[ ] Safety alerts: None critical
[ ] Inspection: Current
[ ] INSURANCE
[ ] Liability coverage: Active
[ ] Rider endorsement: Confirmed
[ ] Policy period: Current7.2 Driver-Confirmed Items
Pickup driver confirms before departure:
[ ] Passenger seatbelt available and functional
[ ] Cab clear of hazards
[ ] Route understood8. Validation Logging
8.1 Log Structure
Each validation produces an audit record:
| Field | Description |
|---|---|
| validation_id | Unique identifier |
| transaction_id | Associated ride request |
| check_type | Which validation performed |
| data_source | System queried |
| result | Pass/Fail |
| failure_reason | If failed, why (coded) |
| timestamp | When validation ran |
| cache_status | Fresh query or cached result |
8.2 Log Retention
- All validation logs retained 24 months
- Failed validations flagged for review
- Aggregate reports generated weekly
9. Override Procedures
9.1 No System Overrides
Policy: Pre-transaction validations cannot be bypassed.
| Scenario | Permitted Override | Required Action |
|---|---|---|
| Driver HOS borderline | No | Wait for hours to reset |
| Insurance query timeout | No | Retry or manual verification |
| Vehicle flag incorrect | No | Update vehicle configuration first |
| Emergency transport need | No | Use alternative transport method |
9.2 Manual Verification Escalation
When automated validation cannot complete:
9.2.1 Escalation Triggers
| Trigger | Example |
|---|---|
| System timeout | Insurance API unresponsive >30 sec |
| Data conflict | ELD shows different status than HR system |
| Edge case | Valid data but outside automated rules |
9.2.2 Manual Verification Process
| Step | Action | Owner | Max Duration |
|---|---|---|---|
| 1 | System flags "pending verification" | Automated | Immediate |
| 2 | Operations receives alert | Automated | <5 min |
| 3 | Ops reviews validation details | Operations | 15 min |
| 4 | Ops collects evidence (screenshots, API responses) | Operations | - |
| 5 | Ops documents verification basis | Operations | - |
| 6 | Supervisor approves or rejects | Ops Supervisor | 30 min |
| 7 | Decision logged with evidence | System | Immediate |
9.2.3 Required Evidence
| Validation Type | Required Evidence |
|---|---|
| Insurance gap | Policy document screenshot, carrier confirmation |
| HOS conflict | ELD log screenshot, carrier confirmation call |
| Driver status | HR system screenshot, supervisor confirmation |
| Vehicle status | Fleet system screenshot, inspection record |
9.2.4 Approval Authority
| Validation Type | Minimum Approver |
|---|---|
| Insurance | Safety Manager |
| HOS | Operations Supervisor |
| Driver eligibility | HR Manager |
| Vehicle status | Fleet Manager |
9.2.5 Expiration
- Pending verifications expire after 4 hours
- Expired verifications require new request
- No "standing" manual overrides
9.2.6 Audit Trail
All manual verifications logged with:
- Original validation failure reason
- Evidence collected (attached or referenced)
- Approver identity and timestamp
- Approval/rejection decision
- Complete timestamp chain
10. DOT/FMCSA Documentation
10.1 Required Records
For DOT audit compliance, system maintains:
| Record | Content | Retention |
|---|---|---|
| Transport authorization | Company approval for ride | 24 months |
| HOS snapshot | Driver hours at time of match | 24 months |
| Operational necessity | Reason code for transport | 24 months |
10.2 Audit Response
On regulatory inquiry, system can produce:
- Proof transport was operationally necessary
- Proof transport was company-authorized
- Proof HOS rules were not violated
- Proof insurance coverage was in effect
11. Document Control
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | December 22, 2025 | Hop And Haul Team | Initial release |
| 1.1 | December 22, 2025 | Hop And Haul Team | Enhanced HOS/ELD validation (3.3), added Same-Day Trip Constraints (Section 6) |