VRP API Changelog
Track new features, improvements, and updates to the Solvice VRP API
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.
🎯 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
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
- Customer Preferences: Honor requests for specific technicians
- Skill Matching: Assign complex jobs to experienced resources
- Team Continuity: Keep the same resource for repeat visits
- Training: Gradually introduce junior staff to certain customers
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.
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 shiftsCAPACITY_EXCEEDED
- Vehicle capacity insufficientSKILL_MISMATCH
- Required tags not availableDISTANCE_CONSTRAINT
- Location outside service areaBREAK_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
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
- Prevent Burnout: Distribute challenging tasks evenly
- Skill Development: Gradually increase complexity for training
- Fair Compensation: Track difficulty for performance metrics
- Better Planning: Account for mental/physical load
🚦 Full TomTom Traffic Integration
Enhanced real-time and predictive traffic routing with complete TomTom API integration.
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.
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.
Supported Break Types:
UNAVAILABILITY
- Cannot be scheduled during this periodWINDOWED
- Flexible timing within windowDRIVE
- Mandatory after specified driving time
🥇 First Job Relation
Force specific jobs to be scheduled first in a resource’s route with the new FIRST_JOB
relation type.
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.
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
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
- Use location IDs for repeated coordinates
- Provide distance matrices when available
- Set appropriate time limits for size
- Consider chunking very large problems
- Enable progress callbacks for monitoring
📈 Enterprise-Scale Problem Handling
Revolutionary improvements for handling massive routing problems with 10,000+ jobs.
Intelligent Chunking
Dynamic partitioning based on geographic clusters and time windows for optimal sub-problem creation.
Parallel Processing
Multi-threaded execution with smart work distribution across CPU cores.
Adaptive Algorithms
Automatic algorithm selection based on problem characteristics and size.
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.
How It Works
How It Works
The solver now uses a three-dimensional distance cube (origin × destination × time) instead of a static two-dimensional matrix:
- Morning Rush (6-9 AM): Increased travel times on highways
- Midday (9 AM-4 PM): Normal traffic conditions
- Evening Rush (4-7 PM): City center congestion
- 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:
📅 Multi-Day Job Support
Execute long-duration jobs across multiple shifts and days with intelligent work continuation.
⚡ 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
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 (< 50 jobs):
- Interactive route builders
- Real-time modifications
- What-if scenarios
- Live dashboards
Asynchronous (50+ jobs):
- Batch processing
- Overnight optimization
- Large-scale problems
- Background jobs
Synchronous endpoints have strict limits:
- Maximum 50 jobs per request
- 2-second timeout (configurable up to 5s)
- Automatic fallback to async for larger problems
🎉 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
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
Optimization Improvements:
- 3x faster constraint checking
- Handles 10x more time windows per job
- 50% reduction in memory usage
- Smart caching for repeat requests
- Parallel route evaluation
Developer Experience:
- Comprehensive validation with clear errors
- Granular rate limiting per operation
- Detailed solution statistics
- Extended configuration options
- Backward compatibility mode
Migration Guide
Update Base URL
Change from api.solvice.io/v1
to api.solvice.io/v2
Review Breaking Changes
vehicle
renamed toresource
timeWindow
now supports arrays- New required fields in response
Test Thoroughly
Use our migration validator endpoint to check your requests
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.