When to Use Proficiency
Proficiency is ideal when you want to:- Model skill levels that affect completion time (senior vs junior technicians)
- Account for training and learning curves for new employees
- Handle specialization trade-offs (fast at core tasks, slower at peripheral ones)
- Get more accurate completion time predictions
- Optimize schedules based on actual resource efficiency
How It Works
Each job can have aproficiency list that defines how the job duration changes when assigned to specific resources:
- durationModifier < 1.0: Resource completes the job faster (e.g., 0.8 = 20% faster)
- durationModifier = 1.0: Standard duration (default for unlisted resources)
- durationModifier > 1.0: Resource completes the job slower (e.g., 1.5 = 50% slower)
Basic Example
In this example, a complex repair job has different completion times depending on which technician is assigned:request
- The base duration is 7200 seconds (2 hours)
- If assigned to
senior-tech: 7200 * 0.75 = 5400 seconds (1.5 hours) - If assigned to
junior-tech: 7200 * 1.5 = 10800 seconds (3 hours)
Resources not listed in the proficiency array use the default durationModifier of 1.0 (no modification to duration).
Use Cases
Skill-Based Efficiency
Model how expertise affects job completion time:Training and Learning Curve
Account for experience levels as employees learn:Specialization Trade-offs
Model specialists who are fast at certain tasks but slower at others:Combining with Other Features
With Rankings
Use proficiency for efficiency and rankings for preference. A resource might be fast but not preferred:With Tags (Hard Constraints)
Ensure only qualified resources can do the job, then optimize by proficiency:With Time Windows
Proficiency affects whether jobs fit within time constraints. A job that doesn’t fit in a time window with one resource might fit when assigned to a faster resource:Best Practices
- Base duration on average: Set the base duration as the average completion time, then adjust with proficiency modifiers above and below 1.0.
- Only specify deviations: You only need to list resources whose proficiency differs from 1.0. Resources not in the list default to standard duration.
- Combine with rankings: Use proficiency for duration accuracy and rankings to express preference. A fast resource isn’t always the preferred choice.
- Validate modifiers: Ensure modifiers are realistic. Values below 0.5 or above 2.0 may indicate the base duration needs adjustment.
- Consider scheduling impact: Remember that proficiency affects departure times and all downstream scheduling. A 50% faster job creates 50% more slack time.
Technical Notes
- The modifier is applied to the base
durationbefore other adjustments (likedurationSquash) - The effective duration affects departure time calculations and downstream scheduling
- Resources must be referenced by their exact name as defined in the resources list