Skip to main content

Job Complexity

Job complexity allows you to assign difficulty scores to jobs and ensure fair workload distribution across resources. This feature helps balance not just the number of jobs or time spent, but the actual difficulty and mental/physical load on workers.

Overview

The complexity feature enables:
  • Assigning complexity scores to jobs based on difficulty
  • Fair distribution of complex work across resources
  • Setting min/max complexity limits per resource period
  • Balancing complexity per trip or per resource

Basic Complexity Configuration

Setting Job Complexity

Assign complexity values to jobs on a scale that makes sense for your business:
Choose a complexity scale that reflects your business needs. Common scales include:
  • 1-10 (simple to very complex)
  • 1-100 (fine-grained difficulty)
  • 1-5 (basic categorization)

Fair Complexity Distribution

Balancing Complexity Per Trip

Ensure each trip has a balanced mix of complex and simple jobs:

Balancing Complexity Per Resource

Distribute total complexity fairly across all resources:
fairComplexityPerResource is a boolean toggle only — there is no fairComplexityPerResourceWeight (or any other weight) that scales how strongly it’s enforced. Turning it on tells the solver to try to ensure each resource gets a similar total complexity score across their shifts, preventing burnout from consistently handling difficult tasks.

Resource Period Complexity Limits

Set minimum and maximum complexity constraints per period using the resource’s rules array (not periods). There is no rolling WEEK/DAY keyword — period is always an explicit { "from", "to" } date-time window that you compute yourself, and each rule entry has no name property:
See Resource Period Rules for the full rules/period schema, including how to build daily/weekly/monthly windows and pool rules across resources with groupTag.

Use Cases

Skill-Based Workload Management

Balance complex technical work across skilled technicians:

Physical Demand Balancing

Distribute physically demanding tasks fairly:

Mental Load Distribution

Balance cognitively demanding tasks:

Integration with Other Features

With Tags and Skills

Combine complexity with skill requirements:

With Time Windows

Complex jobs during optimal hours:

Best Practices

1

Define Clear Complexity Scale

Create a documented scale that all planners understand and apply consistently
2

Consider Multiple Factors

Include physical demand, mental load, risk level, and skill requirements in complexity scores
3

Monitor Distribution

Use the solution’s complexity distribution to ensure fairness over time
4

Toggle Deliberately

fairComplexityPerTrip and fairComplexityPerResource are on/off booleans with no dedicated weight — decide which one(s) fit your priorities rather than trying to tune a weight

Constraints and Violations

The following constraints relate to complexity:

Tips for Implementation

Start Conservative: Begin with optional complexity (soft constraints) before making them mandatory. This helps identify appropriate limits.
Review Regularly: Analyze complexity distribution in solutions to refine your scoring system and limits.
Combine with Fairness: Use complexity alongside the general work fairness features for comprehensive workload balancing.

Resource Management

Configure resource capabilities and periods

Fair Work Distribution

General work fairness features

Tag & Ranking

Skill-based job assignment

Time Scheduling

Coordinate complex jobs with timing