Skip to main content
Resource proficiency allows you to model how efficiently different resources can complete specific jobs. A senior technician might complete a complex repair 20% faster than a junior, while a specialist might be 30% slower at tasks outside their expertise. This directly affects the effective job duration and scheduling.

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 a proficiency 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)
The effective job duration is calculated as:

Basic Example

In this example, a complex repair job has different completion times depending on which technician is assigned:
request
In this example:
  • 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:
A 1-hour job with a 0.8 modifier becomes 48 minutes, potentially fitting into a window that would be too tight for standard duration.

Best Practices

  1. Base duration on average: Set the base duration as the average completion time, then adjust with proficiency modifiers above and below 1.0.
  2. Only specify deviations: You only need to list resources whose proficiency differs from 1.0. Resources not in the list default to standard duration.
  3. Combine with rankings: Use proficiency for duration accuracy and rankings to express preference. A fast resource isn’t always the preferred choice.
  4. Validate modifiers: Ensure modifiers are realistic. Values below 0.5 or above 2.0 may indicate the base duration needs adjustment.
  5. 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 duration before other adjustments (like durationSquash)
  • The effective duration affects departure time calculations and downstream scheduling
  • Resources must be referenced by their exact name as defined in the resources list

Resource Ranking

Express resource preferences without affecting duration

Tags & Skills

Hard and soft skill constraints

Time Windows

Schedule jobs within specific time periods

Job Complexity

Balance workload by difficulty