Skip to content

Transport Capacity Management

Agilasoft Cloud Technologies edited this page Jan 19, 2026 · 3 revisions

Table of Contents

  1. Executive Summary
  2. Current State Analysis
  3. Objectives and Requirements
  4. System Architecture
  5. Data Models
  6. Core Functionality
  7. Integration Points
  8. User Interface Design
  9. Implementation Plan
  10. Testing Strategy
  11. Future Enhancements

Executive Summary

This document outlines the design and implementation plan for a comprehensive Capacity Management System within the Transport module. The system will enable real-time tracking, planning, and optimization of vehicle capacity utilization across transport operations, ensuring efficient resource allocation and preventing over-capacity assignments.

Key Benefits

  • Real-time Capacity Visibility: Track available and utilized capacity across all vehicles
  • Intelligent Assignment: Automatically match transport jobs to vehicles based on capacity constraints
  • Optimization: Maximize vehicle utilization while preventing over-capacity scenarios
  • Planning Support: Forecast capacity needs and identify bottlenecks
  • Compliance: Ensure regulatory weight/volume limits are respected

Current State Analysis

Existing Capacity Fields

Transport Vehicle

  • capacity_weight (Float) - Maximum weight capacity
  • capacity_volume (Float) - Maximum volume capacity (m³)
  • capacity_pallets (Float) - Maximum pallet capacity
  • max_container_count (Float) - Maximum container count
  • container_types (Table MultiSelect) - Supported container types

Transport Job Package

  • weight (Float) - Package weight
  • volume (Float) - Package volume (m³)
  • no_of_packs (Float) - Number of packages
  • quantity (Float) - Quantity
  • Dimensions: length, widht, height

Current Capacity Validation

Run Sheet (run_sheet.py)

  • Basic validation method validate_capacity() exists
  • Checks total weight, volume, and pallets against vehicle capacity
  • Limitations:
    • Only validates on Run Sheet save
    • No real-time capacity tracking
    • No capacity reservation system
    • No multi-dimensional capacity optimization

Transport Plan (transport_plan.py)

  • _find_vehicle_for_trip() checks capacity during planning
  • _find_candidate_vehicle() filters vehicles by capacity
  • Limitations:
    • Capacity checks are basic (weight/volume/pallets)
    • No capacity reservation during planning
    • No capacity utilization tracking over time
    • No capacity forecasting

Gaps Identified

  1. No Centralized Capacity Manager: No unified system to manage capacity across all transport operations
  2. No Capacity Reservation: Capacity is not reserved when jobs are assigned, leading to double-booking risks
  3. No Real-time Tracking: No dashboard or view showing current capacity utilization
  4. No Capacity Forecasting: Cannot predict future capacity needs
  5. No Multi-dimensional Optimization: Does not optimize for multiple capacity dimensions simultaneously
  6. No Capacity Alerts: No notifications when capacity thresholds are reached
  7. No Historical Utilization: No tracking of capacity utilization trends
  8. Limited Integration: Capacity checks are scattered across different modules

Objectives and Requirements

Functional Requirements

FR1: Capacity Definition and Configuration

  • Support multiple capacity dimensions (weight, volume, pallets, containers)
  • Allow capacity configuration per vehicle type
  • Support capacity overrides for specific vehicles
  • Define capacity units and conversion factors

FR2: Real-time Capacity Tracking

  • Track available capacity for each vehicle in real-time
  • Calculate utilized capacity from assigned jobs/legs
  • Display capacity utilization percentage
  • Support capacity tracking across multiple time periods

FR3: Capacity Reservation System

  • Reserve capacity when jobs are assigned to vehicles
  • Release capacity when jobs are cancelled or completed
  • Support partial capacity reservations (for multi-stop routes)
  • Handle capacity conflicts and overrides

FR4: Intelligent Vehicle Assignment

  • Automatically suggest vehicles based on capacity requirements
  • Consider multiple capacity dimensions simultaneously
  • Prioritize vehicles with optimal capacity fit
  • Support capacity-based filtering in vehicle selection

FR5: Capacity Validation

  • Validate capacity before job assignment
  • Prevent over-capacity assignments
  • Warn when approaching capacity limits
  • Support capacity override with authorization

FR6: Capacity Planning and Forecasting

  • Forecast capacity needs based on scheduled jobs
  • Identify capacity bottlenecks
  • Suggest optimal vehicle allocation
  • Support capacity planning for future dates

FR7: Capacity Reporting and Analytics

  • Capacity utilization reports
  • Historical capacity trends
  • Vehicle utilization statistics
  • Capacity efficiency metrics

Non-Functional Requirements

NFR1: Performance

  • Capacity calculations must complete within 2 seconds for 1000 vehicles
  • Real-time capacity updates must be reflected within 5 seconds
  • Support concurrent capacity reservations

NFR2: Scalability

  • Support 10,000+ vehicles
  • Handle 100,000+ transport jobs per month
  • Efficient database queries with proper indexing

NFR3: Reliability

  • Ensure data consistency in capacity reservations
  • Handle concurrent updates gracefully
  • Maintain capacity accuracy during system failures

NFR4: Usability

  • Intuitive UI for capacity visualization
  • Clear capacity warnings and alerts
  • Easy capacity override process

System Architecture

High-Level Architecture

┌─────────────────────────────────────────────────────────────┐
│                    Transport Module                          │
├─────────────────────────────────────────────────────────────┤
│                                                               │
│  ┌──────────────────┐         ┌──────────────────┐          │
│  │  Capacity Manager│◄────────┤  Capacity API   │          │
│  │  (Core Engine)   │         │  (Public API)   │          │
│  └────────┬─────────┘         └──────────────────┘          │
│           │                                                    │
│           ├──────────┬────────────┬──────────────┐           │
│           │          │            │              │           │
│  ┌────────▼──┐  ┌───▼────┐  ┌───▼────┐  ┌─────▼────┐      │
│  │ Capacity  │  │Capacity │  │Capacity│  │ Capacity │      │
│  │ Tracker   │  │Reserver │  │Validator│  │ Planner │      │
│  └───────────┘  └─────────┘  └────────┘  └──────────┘      │
│                                                               │
│  ┌──────────────────────────────────────────────────────┐   │
│  │           Capacity Data Models                        │   │
│  │  - Vehicle Capacity                                   │   │
│  │  - Capacity Reservation                               │   │
│  │  - Capacity Utilization                              │   │
│  └──────────────────────────────────────────────────────┘   │
│                                                               │
└─────────────────────────────────────────────────────────────┘
           │                    │                    │
           ▼                    ▼                    ▼
    ┌──────────┐         ┌──────────┐         ┌──────────┐
    │Transport │         │ Run Sheet│         │Transport │
    │   Job    │         │          │         │  Plan    │
    └──────────┘         └──────────┘         └──────────┘

Component Design

1. Capacity Manager (Core Engine)

Location: logistics/transport/capacity/capacity_manager.py

Responsibilities:

  • Centralized capacity management logic
  • Coordinate between capacity components
  • Maintain capacity state consistency
  • Provide unified API for capacity operations

Key Methods:

class CapacityManager:
    def get_available_capacity(vehicle, date, time_slot=None)
    def reserve_capacity(vehicle, job, capacity_requirements)
    def release_capacity(vehicle, job)
    def check_capacity_sufficient(vehicle, requirements)
    def get_capacity_utilization(vehicle, date_range)
    def find_suitable_vehicles(requirements, filters)
    def forecast_capacity(date_range, vehicle_type=None)

2. Capacity Tracker

Location: logistics/transport/capacity/capacity_tracker.py

Responsibilities:

  • Track real-time capacity utilization
  • Calculate available capacity
  • Maintain capacity snapshots
  • Update capacity in real-time

3. Capacity Reserver

Location: logistics/transport/capacity/capacity_reserver.py

Responsibilities:

  • Reserve capacity for jobs/legs
  • Release capacity when jobs complete
  • Handle capacity conflicts
  • Support partial reservations

4. Capacity Validator

Location: logistics/transport/capacity/capacity_validator.py

Responsibilities:

  • Validate capacity before assignments
  • Check capacity constraints
  • Generate capacity warnings
  • Support capacity overrides

5. Capacity Planner

Location: logistics/transport/capacity/capacity_planner.py

Responsibilities:

  • Forecast future capacity needs
  • Identify capacity bottlenecks
  • Suggest optimal vehicle allocation
  • Support capacity planning queries

Data Models

1. Capacity Reservation (New DocType)

Purpose: Track capacity reservations for transport jobs/legs

Fields:

{
  "doctype": "Capacity Reservation",
  "fields": [
    {
      "fieldname": "vehicle",
      "fieldtype": "Link",
      "options": "Transport Vehicle",
      "reqd": 1
    },
    {
      "fieldname": "reservation_date",
      "fieldtype": "Date",
      "reqd": 1
    },
    {
      "fieldname": "reservation_start_time",
      "fieldtype": "Time"
    },
    {
      "fieldname": "reservation_end_time",
      "fieldtype": "Time"
    },
    {
      "fieldname": "reserved_weight",
      "fieldtype": "Float",
      "label": "Reserved Weight (kg)"
    },
    {
      "fieldname": "reserved_volume",
      "fieldtype": "Float",
      "label": "Reserved Volume (m³)"
    },
    {
      "fieldname": "reserved_pallets",
      "fieldtype": "Float",
      "label": "Reserved Pallets"
    },
    {
      "fieldname": "reserved_containers",
      "fieldtype": "Float",
      "label": "Reserved Containers"
    },
    {
      "fieldname": "transport_job",
      "fieldtype": "Link",
      "options": "Transport Job"
    },
    {
      "fieldname": "transport_leg",
      "fieldtype": "Link",
      "options": "Transport Leg"
    },
    {
      "fieldname": "run_sheet",
      "fieldtype": "Link",
      "options": "Run Sheet"
    },
    {
      "fieldname": "status",
      "fieldtype": "Select",
      "options": "Reserved\nActive\nReleased\nCancelled",
      "default": "Reserved"
    },
    {
      "fieldname": "reserved_by",
      "fieldtype": "Link",
      "options": "User"
    },
    {
      "fieldname": "released_at",
      "fieldtype": "Datetime"
    }
  ]
}

2. Capacity Utilization Snapshot (New DocType)

Purpose: Store historical capacity utilization snapshots for reporting

Fields:

{
  "doctype": "Capacity Utilization Snapshot",
  "fields": [
    {
      "fieldname": "snapshot_date",
      "fieldtype": "Date",
      "reqd": 1
    },
    {
      "fieldname": "snapshot_time",
      "fieldtype": "Time",
      "reqd": 1
    },
    {
      "fieldname": "vehicle",
      "fieldtype": "Link",
      "options": "Transport Vehicle",
      "reqd": 1
    },
    {
      "fieldname": "total_capacity_weight",
      "fieldtype": "Float"
    },
    {
      "fieldname": "utilized_weight",
      "fieldtype": "Float"
    },
    {
      "fieldname": "available_weight",
      "fieldtype": "Float"
    },
    {
      "fieldname": "weight_utilization_percent",
      "fieldtype": "Percent"
    },
    {
      "fieldname": "total_capacity_volume",
      "fieldtype": "Float"
    },
    {
      "fieldname": "utilized_volume",
      "fieldtype": "Float"
    },
    {
      "fieldname": "available_volume",
      "fieldtype": "Float"
    },
    {
      "fieldname": "volume_utilization_percent",
      "fieldtype": "Percent"
    },
    {
      "fieldname": "total_capacity_pallets",
      "fieldtype": "Float"
    },
    {
      "fieldname": "utilized_pallets",
      "fieldtype": "Float"
    },
    {
      "fieldname": "available_pallets",
      "fieldtype": "Float"
    },
    {
      "fieldname": "pallets_utilization_percent",
      "fieldtype": "Percent"
    }
  ]
}

3. Enhanced Transport Vehicle

Additional Fields:

{
  "fieldname": "capacity_management_tab",
  "fieldtype": "Tab Break",
  "label": "Capacity Management"
},
{
  "fieldname": "capacity_override_enabled",
  "fieldtype": "Check",
  "label": "Allow Capacity Override",
  "default": 0
},
{
  "fieldname": "max_capacity_override_percent",
  "fieldtype": "Percent",
  "label": "Max Override %",
  "description": "Maximum percentage capacity can be overridden"
},
{
  "fieldname": "capacity_buffer_percent",
  "fieldtype": "Percent",
  "label": "Capacity Buffer %",
  "default": 10,
  "description": "Recommended buffer to maintain"
},
{
  "fieldname": "capacity_alert_threshold",
  "fieldtype": "Percent",
  "label": "Alert Threshold %",
  "default": 80,
  "description": "Alert when utilization exceeds this percentage"
}

4. Enhanced Run Sheet

Additional Fields:

{
  "fieldname": "capacity_tab",
  "fieldtype": "Tab Break",
  "label": "Capacity"
},
{
  "fieldname": "total_required_weight",
  "fieldtype": "Float",
  "label": "Total Required Weight (kg)",
  "read_only": 1
},
{
  "fieldname": "total_required_volume",
  "fieldtype": "Float",
  "label": "Total Required Volume (m³)",
  "read_only": 1
},
{
  "fieldname": "total_required_pallets",
  "fieldtype": "Float",
  "label": "Total Required Pallets",
  "read_only": 1
},
{
  "fieldname": "vehicle_capacity_weight",
  "fieldtype": "Float",
  "label": "Vehicle Capacity Weight (kg)",
  "read_only": 1
},
{
  "fieldname": "vehicle_capacity_volume",
  "fieldtype": "Float",
  "label": "Vehicle Capacity Volume (m³)",
  "read_only": 1
},
{
  "fieldname": "vehicle_capacity_pallets",
  "fieldtype": "Float",
  "label": "Vehicle Capacity Pallets",
  "read_only": 1
},
{
  "fieldname": "weight_utilization_percent",
  "fieldtype": "Percent",
  "label": "Weight Utilization %",
  "read_only": 1
},
{
  "fieldname": "volume_utilization_percent",
  "fieldtype": "Percent",
  "label": "Volume Utilization %",
  "read_only": 1
},
{
  "fieldname": "pallets_utilization_percent",
  "fieldtype": "Percent",
  "label": "Pallets Utilization %",
  "read_only": 1
},
{
  "fieldname": "capacity_status",
  "fieldtype": "Select",
  "options": "Available\nWarning\nExceeded\nOverridden",
  "label": "Capacity Status",
  "read_only": 1
}

5. Capacity Settings (New DocType)

Purpose: System-wide capacity management settings

Fields:

{
  "doctype": "Transport Capacity Settings",
  "is_single": 1,
  "fields": [
    {
      "fieldname": "enable_capacity_management",
      "fieldtype": "Check",
      "label": "Enable Capacity Management",
      "default": 1
    },
    {
      "fieldname": "enable_capacity_reservation",
      "fieldtype": "Check",
      "label": "Enable Capacity Reservation",
      "default": 1
    },
    {
      "fieldname": "auto_reserve_capacity",
      "fieldtype": "Check",
      "label": "Auto Reserve Capacity on Assignment",
      "default": 1
    },
    {
      "fieldname": "capacity_validation_strict",
      "fieldtype": "Check",
      "label": "Strict Capacity Validation",
      "description": "Prevent assignments exceeding capacity",
      "default": 1
    },
    {
      "fieldname": "default_capacity_buffer",
      "fieldtype": "Percent",
      "label": "Default Capacity Buffer %",
      "default": 10
    },
    {
      "fieldname": "capacity_alert_threshold",
      "fieldtype": "Percent",
      "label": "Default Alert Threshold %",
      "default": 80
    },
    {
      "fieldname": "snapshot_frequency",
      "fieldtype": "Select",
      "options": "Hourly\nDaily\nWeekly",
      "label": "Utilization Snapshot Frequency",
      "default": "Daily"
    },
    {
      "fieldname": "retention_days",
      "fieldtype": "Int",
      "label": "Snapshot Retention (days)",
      "default": 90
    }
  ]
}

Core Functionality

1. Capacity Calculation

Available Capacity Formula

Available Capacity = Total Capacity - Reserved Capacity - Utilized Capacity

Utilization Percentage

Utilization % = (Reserved + Utilized) / Total Capacity × 100

2. Capacity Reservation Flow

1. Job/Leg Assignment to Vehicle
   ↓
2. Calculate Capacity Requirements
   ↓
3. Check Available Capacity
   ↓
4. Reserve Capacity (if sufficient)
   ↓
5. Create Capacity Reservation Record
   ↓
6. Update Vehicle Capacity Status

3. Capacity Release Flow

1. Job/Leg Completion/Cancellation
   ↓
2. Identify Capacity Reservations
   ↓
3. Release Reserved Capacity
   ↓
4. Update Reservation Status to "Released"
   ↓
5. Update Vehicle Capacity Status

4. Vehicle Selection Algorithm

def find_suitable_vehicles(requirements, filters):
    """
    Find vehicles that can accommodate the capacity requirements.
    
    Algorithm:
    1. Filter vehicles by type, availability, and other filters
    2. For each vehicle, calculate available capacity
    3. Check if available capacity >= required capacity (with buffer)
    4. Rank vehicles by:
       - Capacity fit (closest match without exceeding)
       - Current utilization (prefer less utilized)
       - Cost efficiency
    5. Return ranked list of suitable vehicles
    """

5. Capacity Validation Rules

  1. Strict Mode: Prevent any assignment exceeding capacity
  2. Warning Mode: Allow assignment but show warning if >80% utilization
  3. Override Mode: Allow override with authorization if configured
  4. Buffer Check: Consider capacity buffer in calculations

Integration Points

1. Transport Job Integration

Location: logistics/transport/doctype/transport_job/transport_job.py

Integration Points:

  • Calculate total capacity requirements from packages
  • Validate capacity when vehicle is assigned
  • Reserve capacity when job is submitted
  • Release capacity when job is cancelled/completed

Methods to Add:

def calculate_capacity_requirements(self):
    """Calculate total weight, volume, pallets from packages"""
    
def validate_capacity(self):
    """Validate capacity if vehicle is assigned"""
    
def reserve_capacity(self):
    """Reserve capacity when job is assigned to vehicle"""
    
def release_capacity(self):
    """Release capacity when job is completed/cancelled"""

2. Transport Leg Integration

Location: logistics/transport/doctype/transport_leg/transport_leg.py

Integration Points:

  • Calculate leg capacity requirements
  • Validate capacity when leg is added to run sheet
  • Reserve capacity for leg
  • Release capacity when leg is completed

3. Run Sheet Integration

Location: logistics/transport/doctype/run_sheet/run_sheet.py

Enhancements:

  • Enhance existing validate_capacity() method
  • Add capacity calculation on leg addition
  • Display capacity utilization in UI
  • Reserve capacity for all legs
  • Release capacity on completion

Methods to Enhance:

def calculate_capacity_requirements(self):
    """Calculate total capacity requirements from all legs"""
    
def validate_capacity(self):
    """Enhanced validation with capacity manager"""
    
def reserve_capacity(self):
    """Reserve capacity for all legs"""
    
def update_capacity_display(self):
    """Update capacity fields in UI"""

4. Transport Plan Integration

Location: logistics/transport/doctype/transport_plan/transport_plan.py

Enhancements:

  • Use capacity manager for vehicle selection
  • Consider capacity in optimization algorithms
  • Forecast capacity needs
  • Display capacity constraints in planning

5. Transport Consolidation Integration

Location: logistics/transport/doctype/transport_consolidation/transport_consolidation.py

Integration Points:

  • Validate consolidated capacity
  • Check if consolidation fits vehicle capacity
  • Reserve capacity for consolidation

6. Vehicle Selection UI

Enhancements:

  • Show available capacity in vehicle selector
  • Filter vehicles by capacity
  • Display capacity utilization percentage
  • Warn when capacity is limited

User Interface Design

1. Capacity Dashboard

Location: New page logistics/transport/page/capacity_dashboard/capacity_dashboard

Features:

  • Real-time capacity overview
  • Vehicle capacity utilization chart
  • Capacity alerts and warnings
  • Quick filters (vehicle type, date range, utilization threshold)

Sections:

  • Overview Cards: Total vehicles, average utilization, vehicles at capacity
  • Utilization Chart: Time-series chart showing capacity trends
  • Vehicle List: Table with capacity details
  • Alerts: Capacity warnings and exceeded capacity notifications

2. Vehicle Capacity View

Enhancement to Transport Vehicle form:

  • New "Capacity Management" tab
  • Real-time capacity display
  • Capacity utilization chart
  • Active reservations list
  • Capacity history

3. Run Sheet Capacity View

Enhancement to Run Sheet form:

  • New "Capacity" tab
  • Visual capacity indicators (progress bars)
  • Capacity breakdown by leg
  • Capacity warnings

4. Vehicle Selector Enhancement

Enhancement to vehicle selection dialogs:

  • Show available capacity
  • Filter by capacity
  • Capacity utilization indicator
  • Capacity fit score

5. Capacity Reports

New Reports:

  1. Capacity Utilization Report

    • Vehicle-wise utilization
    • Date range selection
    • Export capabilities
  2. Capacity Forecast Report

    • Future capacity needs
    • Bottleneck identification
    • Recommendations
  3. Capacity Efficiency Report

    • Utilization trends
    • Efficiency metrics
    • Comparison analysis

Implementation Plan

Phase 1: Foundation (Weeks 1-2)

Week 1: Core Infrastructure

  • Create Capacity Manager class
  • Create Capacity Reservation DocType
  • Create Capacity Utilization Snapshot DocType
  • Create Transport Capacity Settings DocType
  • Set up database indexes for performance

Week 2: Basic Capacity Tracking

  • Implement capacity calculation logic
  • Implement capacity reservation system
  • Implement capacity release system
  • Add capacity fields to Transport Vehicle
  • Unit tests for core functionality

Phase 2: Integration (Weeks 3-4)

Week 3: Transport Job Integration

  • Add capacity calculation to Transport Job
  • Add capacity validation to Transport Job
  • Integrate capacity reservation on job assignment
  • Add capacity fields to Transport Job form

Week 4: Run Sheet Integration

  • Enhance Run Sheet capacity validation
  • Add capacity calculation to Run Sheet
  • Add capacity display to Run Sheet UI
  • Integrate capacity reservation for legs

Phase 3: Planning and Selection (Weeks 5-6)

Week 5: Vehicle Selection Enhancement

  • Enhance vehicle selection with capacity filtering
  • Add capacity display to vehicle selector
  • Implement capacity-based vehicle ranking
  • Update Transport Plan integration

Week 6: Capacity Planning

  • Implement capacity forecasting
  • Add capacity planning queries
  • Create capacity bottleneck detection
  • Add capacity planning to Transport Plan

Phase 4: UI and Reporting (Weeks 7-8)

Week 7: Dashboard and UI

  • Create Capacity Dashboard page
  • Enhance Vehicle form with capacity tab
  • Enhance Run Sheet form with capacity tab
  • Add capacity indicators and visualizations

Week 8: Reports and Analytics

  • Create Capacity Utilization Report
  • Create Capacity Forecast Report
  • Create Capacity Efficiency Report
  • Add capacity analytics to existing reports

Phase 5: Testing and Optimization (Weeks 9-10)

Week 9: Testing

  • Integration testing
  • Performance testing
  • User acceptance testing
  • Bug fixes and refinements

Week 10: Documentation and Deployment

  • User documentation
  • API documentation
  • Deployment preparation
  • Training materials

Testing Strategy

Unit Tests

Test Files:

  • logistics/transport/capacity/test_capacity_manager.py
  • logistics/transport/capacity/test_capacity_tracker.py
  • logistics/transport/capacity/test_capacity_reserver.py
  • logistics/transport/capacity/test_capacity_validator.py

Test Cases:

  1. Capacity calculation accuracy
  2. Capacity reservation and release
  3. Capacity validation rules
  4. Vehicle selection algorithm
  5. Capacity conflict handling
  6. Concurrent reservation handling

Integration Tests

Test Scenarios:

  1. Job assignment with capacity reservation
  2. Run Sheet creation with capacity validation
  3. Capacity release on job completion
  4. Capacity forecasting accuracy
  5. Multi-vehicle capacity management

Performance Tests

Metrics:

  • Capacity calculation time for 1000 vehicles
  • Reservation creation time
  • Dashboard load time
  • Report generation time

User Acceptance Tests

Scenarios:

  1. Assign job to vehicle with sufficient capacity
  2. Attempt to assign job exceeding capacity (should warn/block)
  3. View capacity dashboard
  4. Generate capacity reports
  5. Override capacity with authorization

Future Enhancements

Short-term (3-6 months)

  1. Advanced Capacity Optimization

    • Multi-dimensional capacity optimization
    • Load balancing algorithms
    • Capacity-based route optimization
  2. Capacity Analytics

    • Predictive capacity analytics
    • Machine learning for capacity forecasting
    • Capacity trend analysis
  3. Mobile Capacity Tracking

    • Mobile app for capacity updates
    • Real-time capacity notifications
    • Driver capacity reporting

Medium-term (6-12 months)

  1. Dynamic Capacity Adjustment

    • Real-time capacity adjustments
    • Capacity sharing between vehicles
    • Flexible capacity allocation
  2. Capacity Marketplace

    • External capacity sharing
    • Capacity trading platform
    • Third-party capacity integration
  3. AI-Powered Capacity Management

    • AI-based vehicle selection
    • Predictive capacity planning
    • Automated capacity optimization

Long-term (12+ months)

  1. IoT Integration

    • Real-time weight sensors
    • Volume measurement devices
    • Automated capacity tracking
  2. Blockchain Capacity Ledger

    • Immutable capacity records
    • Capacity audit trail
    • Trusted capacity sharing

Technical Specifications

API Endpoints

# Capacity Manager API
GET    /api/method/logistics.transport.capacity.get_available_capacity
POST   /api/method/logistics.transport.capacity.reserve_capacity
POST   /api/method/logistics.transport.capacity.release_capacity
GET    /api/method/logistics.transport.capacity.check_capacity
GET    /api/method/logistics.transport.capacity.find_suitable_vehicles
GET    /api/method/logistics.transport.capacity.forecast_capacity
GET    /api/method/logistics.transport.capacity.get_utilization

Database Indexes

-- Capacity Reservation indexes
CREATE INDEX idx_capacity_reservation_vehicle_date 
ON `tabCapacity Reservation` (vehicle, reservation_date, status);

CREATE INDEX idx_capacity_reservation_job 
ON `tabCapacity Reservation` (transport_job);

CREATE INDEX idx_capacity_reservation_leg 
ON `tabCapacity Reservation` (transport_leg);

-- Capacity Utilization Snapshot indexes
CREATE INDEX idx_capacity_snapshot_vehicle_date 
ON `tabCapacity Utilization Snapshot` (vehicle, snapshot_date);

CREATE INDEX idx_capacity_snapshot_date 
ON `tabCapacity Utilization Snapshot` (snapshot_date);

Performance Considerations

  1. Caching: Cache capacity calculations for frequently accessed vehicles
  2. Batch Processing: Process capacity updates in batches
  3. Async Updates: Use background jobs for capacity snapshots
  4. Database Optimization: Proper indexing and query optimization
  5. Materialized Views: Consider materialized views for complex capacity queries

Risk Assessment

Technical Risks

  1. Performance Impact: Capacity calculations may slow down vehicle selection

    • Mitigation: Implement caching and optimize queries
  2. Data Consistency: Concurrent capacity reservations may cause conflicts

    • Mitigation: Use database transactions and locking mechanisms
  3. Complexity: System may become too complex to maintain

    • Mitigation: Modular design, comprehensive documentation, code reviews

Business Risks

  1. User Adoption: Users may resist new capacity management processes

    • Mitigation: User training, intuitive UI, gradual rollout
  2. Over-constraint: Strict capacity validation may limit flexibility

    • Mitigation: Configurable validation rules, override mechanisms

Success Metrics

Key Performance Indicators (KPIs)

  1. Capacity Utilization Rate: Target 75-85% average utilization
  2. Over-capacity Assignments: < 1% of total assignments
  3. Capacity Calculation Accuracy: 100% accuracy
  4. System Performance: < 2 seconds for capacity queries
  5. User Adoption: 80% of users actively using capacity features

Measurement Methods

  1. Utilization Reports: Track average capacity utilization
  2. Error Logs: Monitor over-capacity assignment attempts
  3. Performance Metrics: Track API response times
  4. User Surveys: Collect user feedback on capacity features
  5. Usage Analytics: Track feature usage statistics

Conclusion

This Capacity Management system will provide comprehensive capacity tracking, planning, and optimization capabilities for the Transport module. The phased implementation approach ensures gradual rollout with continuous testing and refinement. The system is designed to be scalable, performant, and user-friendly while maintaining flexibility for future enhancements.


Appendix

A. Glossary

  • Capacity: Maximum amount (weight/volume/pallets) a vehicle can carry
  • Utilization: Percentage of capacity currently in use
  • Reservation: Temporary hold on capacity for a specific job/leg
  • Available Capacity: Capacity that is not reserved or utilized
  • Capacity Buffer: Recommended unused capacity to maintain flexibility

B. References

  • Transport Vehicle DocType schema
  • Run Sheet capacity validation implementation
  • Transport Plan vehicle selection logic
  • Warehousing Capacity Manager (reference implementation)

C. Related Documents

  • Transport Module Architecture
  • Vehicle Management Design
  • Run Sheet Design
  • Transport Planning Design

Document Version: 1.0
Last Updated: 2026-01-XX
Author: Transport Module Team
Status: Draft for Review

Getting Started

Setup and Settings

Sea Freight

Air Freight

Transport

Customs

Warehousing

Pricing Center

Job Management

Sustainability

Intercompany

Special Projects

Pages

Features

Reports

Glossary

Clone this wiki locally