Resource Management
Resources represent the vehicles, drivers, or teams that execute your routes. This guide covers advanced resource configuration including multi-shift scheduling, workload balancing, period constraints, and geographic restrictions.Basic Resource Configuration
Every resource requires at minimum a name and shift definition:Essential Resource Properties
string
required
Unique identifier for the resource
array
required
Working periods when the resource is available
array[integer]
Loading capacity in multiple dimensions (e.g., [weight, volume])
array[Tag]
Skills, certifications, or capabilities
array[string]
Geographic areas where resource can operate
Multi-Shift Resources
Resources can work multiple shifts per day or across different days:Shift Properties
datetime
required
Shift start time (ISO 8601 format)
datetime
required
Shift end time
Location
Starting location for this shift (defaults to first job location)
Location
Ending location for this shift (defaults to last job location)
datetime
Latest possible end time with overtime penalty
array[Break]
Scheduled breaks during the shift
Period Constraints
Control resource utilization over explicit time windows using therules array. Each rule pairs a period (an explicit from/to date-time window — there is no "DAY"/"WEEK"/"MONTH" keyword) with one or more direct limit fields:
Available Rule Fields
- Work Time Limits
- Drive Time Limits
- Service Time Requirements
maxWorkTime/minWorkTime: service time + drive time within the periodFull field list on a rule:
period (required, {from, to}), minWorkTime/maxWorkTime, minServiceTime/maxServiceTime, minDriveTime/maxDriveTime, minJobComplexity/maxJobComplexity, jobTypeLimitations (map of job type to max count), groupTag (see Resource Period Rules for pooling). max* violations are enforced as hard constraints; min* violations are penalized as medium-tier (utilization) constraints — both scaled by options.weights.periodRuleWeight.Workload Balancing
Distribute work fairly across resources:Fair Workload Per Resource
Balance total work time across all resources:- Calculates average workload across all resources
- Penalizes deviations from the average
- Higher weight = stronger preference for balance
Fair Workload Per Trip
Balance work within individual trips/routes:- Ensure lunch breaks fall at reasonable times
- Prevent very short or very long individual routes
- Balance morning vs afternoon workloads
Geographic Restrictions
Region-Based Assignment
Limit resources to specific geographic areas:Distance-Based Restrictions
Limit how far resources travel from their base:Skill and Tag Management
Match resource capabilities with job requirements:Tag Matching Rules
1
Hard Tags Must Match
If a job has a hard tag, only resources with that tag can be assigned
2
Soft Tags Preferred
Soft tags create preference but aren’t required
3
Weight Controls Strength
Higher weight values make soft preferences stronger
Preferred Resources
Allow soft preferences for specific resource assignments:Resource Assignment Priority:
allowedResources- Hard constraint (if specified)preferredResources- Soft preference with penalty- Tag matching - Based on hard/soft tags
- General pool - Any available resource
Complex Example: Field Service Team
Here’s a comprehensive example combining multiple resource features:Performance Optimization
Resource Pool Size
Best Practices
1
Start Simple
Begin with basic resource definitions and add constraints incrementally
2
Use Appropriate Constraints
- Hard constraints for legal/safety requirements
- Soft constraints for preferences
- Period rules for compliance
3
Test Resource Utilization
Monitor these metrics:
- Average utilization per resource
- Overtime frequency
- Unassigned jobs due to resource constraints
4
Balance Flexibility and Control
Too many restrictions can make problems infeasible
Troubleshooting
Common Issues
Jobs Not Assigned to Preferred Resources
Jobs Not Assigned to Preferred Resources
Possible Causes:
- Preferred resource doesn’t have required tags
- Resource shift doesn’t cover job time window
- Capacity constraints prevent assignment
- Travel time makes assignment inefficient
- Verify resource has all required capabilities
- Check shift coverage and time windows
- Increase preferredResourceWeight
- Review overall constraint interactions
Uneven Workload Distribution
Uneven Workload Distribution
Possible Causes:
- Geographic clustering of jobs
- Skill requirements limiting options
- Time window constraints
- Different shift lengths
- Increase fairWorkloadPerResource weight
- Adjust shift patterns for better coverage
- Consider redistributing regions
- Add more flexible resources
Period Constraints Violated
Period Constraints Violated
Possible Causes:
- Constraints too restrictive
- Not enough resources for workload
- Poor shift distribution
- Review and adjust period rule values
- Add additional resources or shifts
- Enable partial planning
- Distribute work across more days
Related Features
Time Scheduling
Detailed shift configuration and time management
Cost Optimization
Resource costs and optimization strategies
Tag System
Advanced tag matching and ranking
Break Management
Configure breaks within shifts