Skip to main content
Stay updated with the latest enhancements, features, and improvements to the Solvice Vehicle Routing Problem (VRP) API. Each release brings new capabilities to help you optimize your routing operations more effectively.
January 2026
AI-assisted routing with MCP integration

🤖 MCP Server Integration (AI-Assisted Routing)

Connect AI assistants directly to the VRP solver through the Model Context Protocol (MCP).
The MCP server exposes 8 action tools that AI assistants can use to solve routing problems:
  • vrp-solve / vrp-solve-sync - Full route optimization
  • vrp-evaluate / vrp-evaluate-sync - Score existing solutions
  • vrp-suggest / vrp-suggest-sync - Get improvement suggestions
  • vrp-change / vrp-change-sync - Apply incremental changes
Key Benefits:
  • Natural language problem description
  • Real-time streaming via SSE transport
  • AI understands constraints and trade-offs
  • Interactive route refinement
December 2025
Skill-based duration adjustments

⚡ Proficiency-Based Duration Modifier

Adjust job durations based on resource skill levels.
Different resources complete the same job at different speeds. A senior technician might finish an installation in 30 minutes while a junior takes 45 minutes.Proficiency modifies the base job duration without changing the job definition.
November 2025
Return-to-depot optimization

🏁 Last Location Drive Time Optimization

Improved constraint ordering for efficient return-to-depot routing.The solver now better considers travel time from the last job back to the resource’s end location when ordering constraints, ensuring routes don’t end far from the depot.How it works:
  • Automatically factors in return travel when comparing route options
  • Penalizes routes that end geographically far from the depot
  • Works with existing driveTimeWeight for consistent optimization
Benefits:
  • Prevents routes ending far from depot
  • Reduces dead-heading at end of day
  • Better overall route efficiency
  • No configuration needed - automatically applied
October 2025
Clustering, distance limits, and debugging tools

📍 Geographic Clustering & Job Proximity

Improve route compactness with intelligent job proximity scoring.
{
  "options": {
    "weights": {
      "jobProximityWeight": 25
    }
  }
}
Benefits:
  • Reduces backtracking between distant jobs
  • Creates more geographically compact routes
  • Configurable weight to balance with other objectives
  • Better cluster assignment for multi-vehicle problems

🔷 H3 Grid System for Geographic Clustering

Leverage Uber’s H3 hexagonal grid system for precise geographic clustering via the clustering endpoint.
{
  "locations": [
    {"latitude": 50.8503, "longitude": 4.3517, "name": "Brussels"},
    {"latitude": 51.0543, "longitude": 3.7174, "name": "Ghent"},
    {"latitude": 51.2213, "longitude": 4.4051, "name": "Antwerp"}
  ],
  "options": {
    "clusterSize": 10,
    "maxClusters": 5,
    "h3Resolution": 7
  }
}
H3 Resolution Guide:
ResolutionHex SizeUse Case
5~250 km²Regional planning
7~5 km²Urban delivery
9~174m edgeDefault, fine clustering

📏 Maximum Drive Distance

Limit total kilometers per resource shift.
{
  "resources": [{
    "name": "driver-1",
    "maxDriveDistance": 200000,  // 200 km max
    "shift": {
      "from": "2025-01-01T08:00:00Z",
      "to": "2025-01-01T18:00:00Z"
    }
  }]
}
Use Cases:
  • Vehicle range limitations (EVs)
  • Company policy compliance
  • Lease mileage restrictions
  • Driver safety regulations

🐛 Debug Endpoint

New /debug endpoint for troubleshooting solver behavior.
GET /v2/vrp/debug/{jobId}
Returns:
  • Internal solver state
  • Constraint violation details
  • Score breakdown
  • Shadow variable values
  • Diagnostic information for support tickets
September 2025
Relation weight customization

⚖️ Custom Relation Weights

Fine-tune the importance of individual relations with custom weight modifiers.
{
  "relations": [{
    "type": "SAME_RESOURCE",
    "jobs": ["pickup", "delivery"],
    "weight": 50
  }, {
    "type": "SEQUENCE",
    "jobs": ["prep", "install"],
    "weight": 100
  }]
}
Use Cases:
  • Prioritize certain relations over others
  • Make critical sequences non-negotiable (high weight)
  • Allow flexibility on less important pairings (low weight)
  • Balance relation penalties with other optimization objectives
August 2025
Custom maps and relation constraints

🗺️ External Distance Matrices

Use pre-computed distance matrices from external services with time-of-day traffic patterns.External distance matrices allow you to provide custom travel time and distance data instead of relying on built-in routing engines. This is perfect for:
  • Faster Processing: Skip real-time distance calculations using pre-computed matrices
  • Custom Traffic: Use your own traffic data or specialized routing services
  • Time-Based Routing: Different matrices for morning rush, midday, evening periods
  • Vehicle-Specific: Separate matrices for cars, trucks, bikes with their unique constraints
  • Enterprise Integration: Seamlessly integrate with existing routing infrastructure
Upload your distance matrices to routing.solvice.io/table/upload and reference them by ID.
{
  "jobs": [
    {"name": "delivery-1", "location": {"latitude": 51.1279, "longitude": 17.0485}},
    {"name": "delivery-2", "location": {"latitude": 51.1350, "longitude": 17.0600}}
  ],
  "resources": [{
    "name": "driver-1",
    "category": "CUSTOM_VEHICLE",
    "shift": {
      "from": "2025-01-01T08:00:00Z",
      "to": "2025-01-01T18:00:00Z"
    }
  }],
  "customDistanceMatrices": {
    "profileMatrices": {
      "CAR": {
        "8": "matrix-car-morning-rush",    // 8 AM matrix ID
        "12": "matrix-car-midday",        // 12 PM matrix ID
        "16": "matrix-car-evening-rush"   // 4 PM matrix ID
      },
      "TRUCK": {
        "6": "matrix-truck-early",
        "12": "matrix-truck-midday"
      }
    }
  }
}

⚖️ Hard Minimum Wait for Job Relations

Fine-tune constraint strength for job relations with the hardMinWait flag.
{
  "relations": [{
    "type": "SEQUENCE",
    "jobs": ["job-a", "job-b"],
    "minTimeInterval": 3600,
    "hardMinWait": true
  }]
}
When hardMinWait: true (default), the minimum time interval becomes a hard constraint that cannot be violated. Set to false to make it a soft preference that can be traded off against other objectives.Use Cases:
  • Mandatory cooling/drying periods between services
  • Required waiting time for concrete curing, paint drying
  • Compliance with safety regulations
Q2 2025
Enhanced preference systems and intelligent job handling

🎯 Resource Ranking System

Express nuanced preferences for resource-job assignments with our new flexible ranking system.
The ranking system allows you to specify preferred resources for each job on a 1-100 scale, where lower values indicate stronger preference.Key Benefits:
  • Implement customer preferences without hard constraints
  • Balance skill levels across assignments
  • Optimize for service quality alongside efficiency
  • Maintain flexibility in resource allocation
Rankings work alongside existing constraints like tags and regions. They provide soft preferences that the optimizer considers when making assignments.

📍 Location Inheritance

Simplify multi-stop scenarios where jobs share locations through automatic location inheritance.
{
  "jobs": [
    {
      "name": "pickup",
      "location": {"latitude": 51.1279, "longitude": 17.0485}
    },
    {
      "name": "delivery",
      "location": {"latitude": 51.1279, "longitude": 17.0485}  // Duplicate
    }
  ]
}
Perfect for:
  • Pickup and delivery pairs
  • Multi-service appointments at same address
  • Loading/unloading operations
  • Any co-located job sequences

🔍 Enhanced Unassigned Job Explanations

Get detailed, actionable insights when jobs cannot be assigned to understand exactly why and how to resolve issues.Common Unassignment Reasons:
  • DATE_TIME_WINDOW_CONFLICT - No overlap between job window and shifts
  • CAPACITY_EXCEEDED - Vehicle capacity insufficient
  • SKILL_MISMATCH - Required tags not available
  • DISTANCE_CONSTRAINT - Location outside service area
  • BREAK_CONFLICT - Mandatory breaks prevent service

⚖️ Job Complexity & Fair Distribution

Define job difficulty independent of duration to ensure fair workload distribution across your team.
Job complexity represents the mental, physical, or technical difficulty of a task, separate from how long it takes.Examples:
  • Simple delivery: Duration 30min, Complexity 20
  • Complex installation: Duration 30min, Complexity 80
  • Heavy lifting: Duration 15min, Complexity 70

🚦 Full TomTom Traffic Integration

Enhanced real-time and predictive traffic routing with complete TomTom API integration.
{
  "options": {
    "routingEngine": "TOMTOM",
    "traffic": 1.2  // Traffic modifier for TOMTOM routing
  }
}
Key Enhancements:
  • Live Traffic: Real-time congestion avoidance
  • Predictive Routing: Historical patterns for future planning
  • Departure Optimization: Find best start times to avoid traffic
  • Vehicle-Specific Routes: Truck restrictions and clearances
  • 15% Average Time Savings: Compared to static routing

💰 Resource Hourly Wage Optimization

Optimize routes considering different hourly rates to balance service quality with labor costs.
{
  "resources": [{
    "name": "Senior-Tech",
    "hourlyCost": 75
  }, {
    "name": "Junior-Tech", 
    "hourlyCost": 45
  }]
}
Optimization Strategies:
  • Assign simple tasks to lower-cost resources
  • Use senior staff for complex/critical jobs
  • Minimize overtime by balancing workloads
  • Consider total cost including travel time

🚫 Unavailability Breaks

Model realistic schedules with unavailability periods for meetings, training, or personal time.
{
  "resources": [{
    "name": "Tech-1",
    "shifts": [{
      "from": "2025-01-01T08:00:00Z",
      "to": "2025-01-01T17:00:00Z",
      "breaks": [{
        "type": "UNAVAILABILITY",
        "from": "2025-01-01T10:00:00Z",
        "to": "2025-01-01T11:30:00Z",
        "location": {"latitude": 51.1079, "longitude": 17.0385}
      }, {
        "type": "WINDOWED",
        "from": "2025-01-01T12:00:00Z",
        "to": "2025-01-01T13:00:00Z", 
        "duration": 3600
      }]
    }]
  }]
}
Supported Break Types:
  • UNAVAILABILITY - Cannot be scheduled during this period
  • WINDOWED - Flexible timing within window
  • DRIVE - Mandatory after specified driving time
Q1 2025
New relation types and large-scale optimizations

🥇 First Job Relation

Force specific jobs to be scheduled first in a resource’s route with the new FIRST_JOB relation type.
{
  "jobs": [{
    "name": "warehouse-pickup"
  }],
  "relations": [{
    "type": "SEQUENCE",
    "jobs": ["warehouse-pickup"]
  }]
}
Common Use Cases:
  • Warehouse pickups before deliveries
  • Equipment collection at start of day
  • Mandatory briefings or check-ins
  • Load vehicles before service rounds

🔤 Group Sequence Relations

Define execution order between groups of jobs using tags with the GROUP_SEQUENCE relation.
{
  "jobs": [
    {"name": "urgent-1", "tags": [{"name": "priority-high"}]},
    {"name": "urgent-2", "tags": [{"name": "priority-high"}]},
    {"name": "normal-1", "tags": [{"name": "priority-normal"}]},
    {"name": "low-1", "tags": [{"name": "priority-low"}]}
  ],
  "relations": [{
    "type": "GROUP_SEQUENCE",
    "tags": ["priority-high", "priority-normal", "priority-low"]
  }]
}
Benefits:
  • Implement service level agreements
  • Handle emergency vs routine work
  • Manage phased operations
  • Prioritize revenue-generating activities

🚀 Large-Scale TSP Optimizations

Significant performance improvements for Traveling Salesman Problem instances with 100+ stops.
Algorithm Enhancements:
  • Advanced nearest neighbor initialization
  • Parallel 2-opt and 3-opt local search
  • Adaptive neighborhood sizing
  • Memory-efficient distance matrix handling
  • GPU acceleration for distance calculations
Performance Gains:
  • 65% faster for 500+ job instances
  • 40% memory reduction
  • Better solution quality (+8% average)
  • Stable performance up to 10,000 jobs
Q4 2024
10,000+ job support and dynamic traffic routing

📈 Enterprise-Scale Problem Handling

Revolutionary improvements for handling massive routing problems with 10,000+ jobs.
1

Intelligent Chunking

Dynamic partitioning based on geographic clusters and time windows for optimal sub-problem creation.
2

Parallel Processing

Multi-threaded execution with smart work distribution across CPU cores.
3

Adaptive Algorithms

Automatic algorithm selection based on problem characteristics and size.
4

Memory Optimization

Streaming distance calculations and compressed data structures reduce memory by 60%.
Real-World Results:
  • Before: 5,000 job limit, 45-minute processing
  • After: 50,000 jobs supported, 15-minute average
  • Quality: Maintained 98%+ optimality
  • Stability: 99.9% completion rate

🗺️ TomTom Traffic Integration

Time-dependent routing with real-world traffic conditions for accurate ETAs and optimal departure times.
The solver now uses a three-dimensional distance cube (origin × destination × time) instead of a static two-dimensional matrix:
  1. Morning Rush (6-9 AM): Increased travel times on highways
  2. Midday (9 AM-4 PM): Normal traffic conditions
  3. Evening Rush (4-7 PM): City center congestion
  4. Night (7 PM-6 AM): Reduced traffic, faster routes
The optimizer automatically:
  • Adjusts departure times to avoid traffic
  • Reroutes around predicted congestion
  • Updates ETAs based on time of day
  • Balances traffic avoidance with service windows
Configuration Example:
{
  "options": {
    "routingEngine": "TOMTOM",
    "traffic": 1.1  // Traffic multiplier
  }
}
Q3 2024
Extended planning horizons and synchronous processing

📅 Multi-Day Job Support

Execute long-duration jobs across multiple shifts and days with intelligent work continuation.
{
  "jobs": [{
    "name": "major-project",
    "duration": 72000,  // 20 hours total
    "resumable": true,
    "windows": [
      {"from": "2024-07-01T08:00:00Z", "to": "2024-07-01T17:00:00Z"},
      {"from": "2024-07-02T08:00:00Z", "to": "2024-07-02T17:00:00Z"},
      {"from": "2024-07-03T08:00:00Z", "to": "2024-07-03T17:00:00Z"}
    ]
  }],
  "resources": [{
    "name": "tech-1",
    "shifts": [
      {"from": "2024-07-01T08:00:00Z", "to": "2024-07-01T17:00:00Z"},
      {"from": "2024-07-02T08:00:00Z", "to": "2024-07-02T17:00:00Z"},
      {"from": "2024-07-03T08:00:00Z", "to": "2024-07-03T17:00:00Z"}
    ]
  }]
}

⚡ Synchronous API Endpoints

New /sync/* endpoints for immediate responses perfect for interactive applications.
Available Endpoints:
  • /sync/solve - Instant route optimization
  • /sync/evaluate - Real-time solution scoring
  • /sync/suggest - Live optimization hints
Key Features:
  • Sub-2 second response times
  • No webhook configuration
  • Automatic timeout handling
  • Perfect for UI integration
Synchronous endpoints have strict limits:
  • Maximum 50 jobs per request
  • 2-second timeout (configurable up to 5s)
  • Automatic fallback to async for larger problems
Q1 2023
Complete architectural overhaul

🎉 VRP API v2 Release

After 2 years of development, v2 brings a complete architectural redesign focused on scalability, reliability, and performance.

Architecture Evolution

From Kubernetes to Serverless:
  • Google Cloud Run for auto-scaling
  • Cloud Pub/Sub for async processing
  • Cloud Storage for results
  • 90% reduction in operational overhead
  • 99.99% uptime SLA

Migration Guide

1

Update Base URL

Change from api.solvice.io/v1 to api.solvice.io/v2
2

Review Breaking Changes

  • vehicle renamed to resource
  • timeWindow now supports arrays
  • New required fields in response
3

Test Thoroughly

Use our migration validator endpoint to check your requests
4

Gradual Rollout

Run v1 and v2 in parallel during transition
Success Story: Major logistics provider migrated 50,000 daily optimizations to v2 with zero downtime and 35% cost reduction.

Stay Updated

API Reference

Detailed documentation for all endpoints

Migration Guide

Step-by-step v1 to v2 migration

Feature Guides

In-depth guides for each feature

Release Notes

Detailed technical release notes
Subscribe to our RSS feed or follow @solvice_io for real-time updates about new features and improvements.