MRP run performance significantly degraded in production planning after cloud migration

Our MRP runs have become painfully slow since migrating to D365 cloud environment. What used to take 2-3 hours on-premise now takes 8-10 hours in production. We’re running version 10.0.39 with Planning Optimization enabled.

The MRP processes approximately 45,000 items across 12 warehouses with a 90-day planning horizon. We’ve reviewed the MRP run logs and see extended processing times during the explosion phase and requirement calculation. Cloud performance tuning seems fundamentally different from our on-premise experience.

We’ve already increased planning parameter batch bundle sizes and adjusted the coverage time fence, but the improvement was minimal. The planning parameters were migrated as-is from our on-premise setup. Is there a specific approach to optimizing MRP performance in cloud deployments? Are there cloud-specific parameter settings we should be using?

Another factor: check if you have any custom modifications or integrations that are being called during the MRP run. Cloud deployments have higher latency for custom X++ code execution compared to on-premise. Any custom logic in item coverage evaluation or requirement calculation will amplify performance issues.

I’d also look at your planning horizon and action message settings. A 90-day horizon with 45K items is substantial. If you’re generating action messages for every minor change, that adds significant processing overhead in cloud. Consider whether you really need that full horizon for all items or if you can use different planning fences for different item categories.

Planning Optimization behaves very differently from the built-in MRP engine. First question: are you using Planning Optimization or the deprecated built-in engine? If you migrated parameters from on-premise, you’re likely still using configurations optimized for the old engine. Planning Optimization requires different parameter tuning, especially around batch sizes and parallelization.

Yes, absolutely. Planning Optimization uses a completely different calculation engine that runs in Azure. Your on-premise parameters are likely causing inefficiencies. Key things to check in your MRP run logs: look for excessive database calls during explosion, check if you have unnecessary coverage groups with overlapping time fences, and verify your action message preferences aren’t creating redundant calculations. The logs should show you where time is being spent - explosion, requirement calc, or firming.

From a cloud infrastructure perspective, Planning Optimization performance depends heavily on your data model complexity and how you’ve structured item coverage. We’ve seen cases where cloud deployments perform worse because the data synchronization overhead between D365 and the Planning Optimization service creates latency. Check your coverage group configurations and eliminate any redundant time fences or unnecessary planning parameters that force extra calculation cycles.

Let me provide a comprehensive approach to optimizing MRP performance in D365 cloud with Planning Optimization:

1. MRP Run Logs Analysis First, analyze your MRP run logs systematically to identify bottlenecks. Go to Master planning > Inquiries and reports > Master planning run log. Look for these specific metrics:

  • Time spent in explosion phase (should be <30% of total)
  • Time in requirement calculation (typically the longest phase)
  • Number of planned orders generated vs. number of items
  • Database query counts during coverage group processing

If explosion is taking excessive time, you have BOM or formula complexity issues. If requirement calculation dominates, your coverage parameters need optimization.

2. Planning Parameter Optimization Planning Optimization requires different parameter tuning than the built-in engine. Key changes needed:

Coverage Groups: Consolidate where possible. Each coverage group creates a separate calculation pass. We typically recommend 3-5 coverage groups maximum:

  • Strategic items (longer time fences, detailed planning)
  • Standard items (moderate planning parameters)
  • Low-value items (simplified planning, shorter horizons)

Review Master planning > Setup > Coverage > Coverage groups and merge similar groups.

Master Plan Parameters: Navigate to Master planning > Setup > Plans > Master plans and optimize:

  • Reduce planning time fence to minimum needed (60 days instead of 90 if possible)
  • Set Explosion time fence to match your longest lead time only
  • Enable “Use fast explosion” if available in your version
  • Set Action message preference to “Reduce” to minimize message generation
  • Configure Batch bundle size to 50-100 items per thread

Item Coverage Settings: For your 45K items, segment them:

  • A items (20%): Full planning with all parameters
  • B items (30%): Simplified coverage, standard lead times
  • C items (50%): Min/max planning only, no detailed explosion

This alone can reduce processing time by 40-50%.

3. Cloud Performance Tuning Planning Optimization runs as a separate Azure service, so cloud-specific factors matter:

Data Synchronization: The service needs to sync your item master, BOMs, inventory, and orders before calculating. Reduce sync overhead:

  • Clean up obsolete items, BOMs, and historical planned orders
  • Archive old production orders and purchase orders beyond planning horizon
  • Remove inactive items from coverage groups

Parallelization: Planning Optimization automatically parallelizes but needs proper configuration:

  • Ensure your coverage groups don’t have dependencies forcing sequential processing
  • Use the “Number of threads” parameter in Master planning parameters (set to 8-12 for your volume)
  • Schedule MRP during off-peak hours to get better Azure resource allocation

Network Latency: Planning Optimization communicates with your D365 instance:

  • Minimize custom code that executes during planning
  • Avoid real-time inventory checks during MRP if using custom logic
  • Review any integrations that trigger during master planning

4. Specific Recommendations for Your Scenario With 45K items and 12 warehouses:

  • Reduce planning horizon to 60 days for B/C items, keep 90 for A items
  • Implement warehouse-level coverage only where needed (not all 12 for all items)
  • Set explosion time fence to your longest cumulative lead time (typically 30-45 days)
  • Enable “Auto-firming” for standard items to reduce manual processing
  • Schedule MRP to run incrementally (daily for changes, weekly for full regeneration)

5. Monitoring and Continuous Improvement After implementing changes:

  • Monitor MRP run times daily for 2 weeks
  • Compare explosion vs. calculation time ratios
  • Review planned order counts - significant reduction indicates better efficiency
  • Check action message volumes - should decrease by 30-40%
  • Use Planning Optimization fit analysis tool to identify remaining issues

Implementing these optimizations should bring your MRP run time down to 3-4 hours. The key difference in cloud is that Planning Optimization favors simplified, consolidated planning parameters over complex, granular configurations that worked well on-premise.