Skip to main content

Solution Quality Metrics

Understanding solution quality goes beyond simple feasibility. This guide explains the key metrics for evaluating VRP solutions, how to interpret them, and strategies for improvement.

What Makes a Good Solution?

A high-quality VRP solution balances multiple objectives:

Core Quality Metrics

1. Feasibility Rate

The percentage of jobs successfully assigned:
Feasibility Rate = (Assigned Jobs / Total Jobs) × 100%
  • Perfect (100%)
  • Good (95%+)
  • Poor (<90%)
{
  "totalJobs": 50,
  "assignedJobs": 50,
  "unassigned": [],
  "feasibilityRate": 100
}
Ideal scenario - all jobs scheduled.

2. Occupancy

How full the schedule is in terms of work time versus available time:
Occupancy = (Total Work Time / Total Available Time) × 100%
Work Time includes:
  • Travel time
  • Service time
  • Wait time (if any)
Available Time:
  • Shift duration minus breaks
{
  "occupancy": 0.78,  // 78% utilized
  "totalWorkTimeInSeconds": 28080,
  "totalAvailableTimeInSeconds": 36000,
  "breakdown": {
    "travelTime": 14400,  // 40%
    "serviceTime": 12600,  // 35%
    "waitTime": 1080       // 3%
  }
}
Interpreting Occupancy:
  • < 60%: Underutilized - consider reducing fleet
  • 60-85%: Optimal range - good efficiency with buffer
  • > 85%: High utilization - limited flexibility
  • > 95%: Over-stretched - risk of delays

3. Workload Fairness

Measures how evenly work is distributed across resources:
Fairness = 1 - (Standard Deviation / Mean Work Time)
{
  "workloadFairness": 0.85,
  "resourceWorkloads": [
    {"resource": "driver-1", "workTime": 420, "deviation": 15},
    {"resource": "driver-2", "workTime": 390, "deviation": -15},
    {"resource": "driver-3", "workTime": 405, "deviation": 0}
  ],
  "averageWorkTime": 405,
  "standardDeviation": 15
}

4. Travel Efficiency

Multiple metrics evaluate routing efficiency:

Total Distance & Time

{
  "totalTravelDistanceInMeters": 245000,
  "totalTravelTimeInSeconds": 28800,
  "averageSpeed": 30.6  // km/h
}

Distance per Job

Efficiency = Total Distance / Number of Jobs
Lower values indicate better clustering and routing.

Circuity Factor

Circuity = Actual Distance / Direct Distance
Values close to 1.0 indicate direct routes.

5. Time-Based Metrics

On-Time Performance

{
  "onTimeDeliveries": 47,
  "lateDeliveries": 3,
  "onTimeRate": 0.94,
  "averageDelay": 780  // seconds
}

Wait Time Analysis

{
  "totalWaitTimeInSeconds": 3600,
  "jobsWithWaitTime": 8,
  "averageWaitPerJob": 450,
  "waitTimePercentage": 0.05  // 5% of total time
}
High wait times indicate:
  • Poor time window alignment
  • Suboptimal route sequencing
  • Need for dynamic scheduling

Advanced Quality Indicators

Service Level Metrics

  • Priority Fulfillment
  • Customer Preferences
  • Time Window Compliance
{
  "priorityLevels": {
    "high": {"total": 10, "assigned": 10, "rate": 1.0},
    "medium": {"total": 25, "assigned": 23, "rate": 0.92},
    "low": {"total": 15, "assigned": 12, "rate": 0.8}
  },
  "weightedFulfillment": 0.93
}

Cost Effectiveness

{
  "totalResources": 10,
  "activeResources": 7,
  "utilizationRate": 0.7,
  "costPerJob": 45.20,
  "costPerKm": 2.10
}

Comparing Solutions

When evaluating alternative solutions:

Multi-Criteria Comparison

Pareto Optimization

Often no single “best” solution exists. Consider Pareto-optimal solutions:
A solution is Pareto-optimal if improving one metric necessarily worsens another. Keep multiple Pareto-optimal solutions for different scenarios.

Weighted Scoring

Create a composite score based on business priorities:
const weights = {
  feasibility: 0.3,
  efficiency: 0.25,
  cost: 0.25,
  service: 0.2
};

const compositeScore = 
  (feasibilityRate * weights.feasibility) +
  (efficiencyScore * weights.efficiency) +
  (costScore * weights.cost) +
  (serviceScore * weights.service);

Improvement Strategies

For Low Feasibility

1

Enable Partial Planning

{"options": {"partialPlanning": true}}
2

Relax Constraints

Convert hard constraints to soft where possible
3

Add Resources

Increase fleet size or extend shifts
4

Review Requirements

Check if all constraints are necessary

For Poor Efficiency

  • Reduce Travel
  • Minimize Wait
  • Optimize Routes
{
  "weights": {
    "travelTimeWeight": 5,
    "regionMinimisationWeight": 10
  }
}

For Imbalanced Workload

{
  "options": {
    "fairWorkloadPerResource": true,
    "workloadSensitivity": 0.1,  // 10% tolerance
    "weights": {
      "workloadSpreadWeight": 100
    }
  }
}

Monitoring Quality Over Time

Track metrics to identify trends:
{
  "date": "2024-03-15",
  "metrics": {
    "feasibilityRate": 0.96,
    "occupancy": 0.78,
    "onTimeRate": 0.94,
    "costPerJob": 42.50
  }
}

Quality Benchmarks

Industry standards for different sectors:
SectorFeasibilityOccupancyOn-TimeFairness
Parcel Delivery98%+75-85%95%+0.80+
Field Service95%+65-75%90%+0.85+
Food Delivery99%+70-80%98%+0.75+
Medical Transport100%60-70%99%+0.90+
Benchmarks vary by region, business model, and service level agreements. Use these as starting points and adjust based on your specific requirements.

Best Practices

Quality Management Guidelines:
  1. Define Success Metrics: Establish clear KPIs before optimization
  2. Regular Monitoring: Track metrics daily/weekly
  3. Iterative Improvement: Make small, measured changes
  4. Balance Trade-offs: No solution is perfect in all dimensions
  5. Document Decisions: Record why certain trade-offs were made
  6. Benchmark Regularly: Compare against historical performance