Scheduling APIs

Intelligent driverassignment APIs

Match vehicles to trips based on attributes, shifts, capacity, and cost functions. Maximize utilization. Minimize deadhead.

The challenge

Manual assignment doesn't scale

  • -Dispatchers manually match drivers to trips - slow and error-prone
  • -Attribute requirements (wheelchair, gurney) often missed
  • -Shift constraints and driver breaks not properly tracked
  • -Excessive deadhead miles between trips

Our approach

Cost-optimized assignment

  • Automatic matching with configurable cost functions
  • Attributes, capacity, and vehicle capabilities enforced
  • Shift windows, breaks, and rest periods respected
  • Minimize deadhead, balance workload across fleet

Capabilities

Trips in. Assignments out.

Send pre-routed trips and available vehicles. Get back optimal driver assignments.

Attribute Matching

Wheelchair, gurney, child seat - trips only assigned to vehicles with matching attributes and sufficient capacity.

Shift Constraints

Respect shift start/end times, breaks, and rest periods. Different attributes and areas per shift supported.

Flexible Capacity

Vehicles with convertible seating - define multiple configurations (6 seats OR 4 seats + 1 wheelchair). Engine picks the best fit.

Cost Functions

30+ configurable weights to tune optimization priorities

Proximity Optimization

Minimize deadhead with distance-based cost penalties

Workload Balance

Distribute trips fairly across drivers

Supplier Tiers

Priority ranking for transportation providers

Cost Functions

Tune your priorities

Configure 30+ cost weights to define what matters most. The engine optimizes assignments to minimize total cost.

Distance costs

Penalize distance from trip start, from home base, and to next trip.

Area preferences

Prefer vehicles operating in their assigned service areas.

Workload balancing

Favor idle drivers, avoid overloading busy ones.

Operating costs

Factor in vehicle operating costs and driver compensation.

cost-config.json
"settings": {
  // Distance costs
  "distanceFromTripCost": 0.01,
  "distanceFromHomeCost": 0.005,
  "nextTripDistanceCost": 0.008,

  // Workload balance
  "idleDriverBonus": 200,
  "idleBonusMinutes": 30,

  // Area matching
  "areaMatchBonus": 500,

  // Operating costs
  "costPerEmptySeat": 10,
  "vehicleOperatingCost": 1
}
nemt-van.json
{
  "id": "van_001",
  "seats": 6,
  "attr": ["wheelchair", "gurney"],
  "capacities": [
    { "seats": 6, "wheelchair": 0, "gurney": 0 },
    { "seats": 4, "wheelchair": 1, "gurney": 0 },
    { "seats": 2, "wheelchair": 2, "gurney": 0 },
    { "seats": 3, "wheelchair": 0, "gurney": 1 },
    { "seats": 0, "wheelchair": 0, "gurney": 2 }
  ]
}

Advanced Feature

Dynamic capacity

Vehicles with convertible seating can serve different passenger types. Define all valid configurations - the engine picks the best one for each trip.

NEMT vans

Swap between ambulatory seats, wheelchair positions, and gurney space.

School buses

Reduce seat count when wheelchair lift positions are needed.

Automatic selection

Engine chooses optimal configuration based on trip requirements.

Use cases

Power any assignment workflow

Dispatch Systems

Add automated assignment to your dispatch software. Replace manual driver selection with optimized matching.

NEMT Operations

Match wheelchair, gurney, and ambulatory trips to appropriately equipped vehicles automatically.

Broker Networks

Distribute trips across transportation providers with tiered priority and attribute matching.

Better together

Pairs with Routing Engine

Routing Engine creates optimized trips from jobs. Scheduling Engine assigns drivers to those trips. Use them together for end-to-end optimization.

Same data models

Trips output from Routing Engine feeds directly into Scheduling Engine.

Attribute consistency

Same attribute definitions across routing and scheduling.

Unified workflow

Jobs → Trips → Assignments in a seamless pipeline.

pipeline.workflow
01
Input Jobs3 jobs
{ pickup, dropoff, time, attributes }
Routing Engine
optimizing routes
02
Optimized Trips2 trips
{ tripId, route[A,B,C], duration }
Scheduling Engine
assigning drivers
03
Assignmentscomplete
trip: "trip_001"
driver: "driver_42"
+
vehicle: "van_007"

Ready to buildwith our APIs?

Get API access and start building. Send your trips and vehicles, get back optimal driver assignments.