// a load, as the API actually takes it
{
"id": 151355,
"commodity": "CHEMICALS",
"revenue": 412.00, "revenueType": "FIXED",
"urgencyLevel": "HIGH", // HIGH | MEDIUM | LOW
"autoHaul": true, // → marked high-urgency
"daysSinceCalledIn": 3, // older ⇒ earlier in the shift
"pickup": {
"name": "Northern Refinery",
"availableFrom": "06:00",
"availableTo": "18:00",
"onSiteTime": "PT45M",
"driverSkills": ["H2S"],
"truckRequirements": ["VACUUM"],
"dryHaul": true
},
"stops": [{ "name": "WASH RACK",
"onSiteTime": "PT30M" }]
}
// GET /solver/{jobId}/explain
{
"hardConstraints": [],
"mediumConstraints": [{
"constraintName": "Minimize Unassigned Loads",
"constraintWeight": -1,
"violations": [{
"description": "Total of 2 Loads left unassigned.",
"scoreImpact": -2
}]
}],
"softConstraints": [{
"constraintName": "Driver Shift Duration Balance",
"constraintWeight": -1000
}]
}
Only a snippet. Over 50+ constraints and requirements available.