Supply Chain Management Blogs by SAP
Expand your SAP SCM knowledge and stay informed about supply chain management technology and solutions with blog posts by SAP. Follow and stay connected.
cancel
Showing results for 
Search instead for 
Did you mean: 
tom_hornstra2
Associate
Associate

Contrary to some misconceptions, the TM Optimizer is fully capable of performing Empty Leg optimization. This blog post aims to illustrate how this can be achieved.

The term 'empty leg' refers to the distance a truck travels before it can pick up the cargo for delivery. During this time, the truck is typically unladen, hence the term 'empty leg'. This empty leg contributes significantly to the overall cost of the transport order. The longer the empty leg, the higher the total costs and the lower the profit margin. As such, reducing the total empty leg distance is a critical KPI for cost-conscious organizations that have their own transport resources.

Let's delve into how this can be applied in SAP TM using a hypothetical scenario: Imagine a freight unit that needs to be transported from the center of the Netherlands to the south. There are three potential resources to carry out this transport: one in Leiden, one in Amsterdam, and one in Enschede, in the east of the country, as shown in the image below:

pic1.png

In this case, the variable costs of all three resources are identical as they use the same means of transport. Therefore, the optimizer should ideally select the resource nearest to the pickup location.

In the Transportation Cockpit, we choose 'Optimizer Planning --> Selected Entries with all Resources and Equipment types'.

After analyzing the results on the map, we discover that the optimizer has selected the truck that is nearest and therefore incurs the least costs:

pic2.png

The map shows two stages: the empty leg stage and the subsequent delivery stage. This can also be seen in the Freight Order details screen. In the first leg, nothing is loaded or unloaded, emphasizing the 'empty leg' concept:

pic3.png

By examining the 'Optimizer Explanation' results, we can analyze the costs for the chosen solution when the truck starts from location Amsterdam:

pic4.png

If we rerun the optimization and force the optimizer (using the option 'Optimizer Planning --> Selected Entries Only') to select the other resources, we can also compute the costs for the other two trucks that originate from Leiden and Enschede:

pic5.png

This enables us to see that the optimizer has selected the most cost-effective option, optimizing solely based on the empty leg.

To use this feature, it's crucial that the resources are marked as own resources and not as multi-resources. Also, the optimizer needs to be aware of the last known location of the resources. The last known location is assumed to be the destination location of the freight order preceding this one. This could be a planned or an executed freight order. The optimizer does not consider the resource position table (/SCMTMS/RES_POS).

While SAP Transportation Management is a system that is not specific to any business, it's crucial to recognize its limitations. The Optimizer can only work with the input parameters currently in the system, which currently do not include driver-specific data, such as the number of days the driver has been on the road. It's also recommended to consider optimizer performance in case of large optimization queries.

 

 

2 Comments
johannes-k
Participant
0 Kudos

Thanks for sharing this scenario and the insights on the behavior of the optimizer.

Especially pointing out the different logging behavior of "Selected Entries with all Resources and Equipment types" and "Selected Entries Only" in the explanation tool!

Do you know if the logging tool captures manually selected MULTI-resources when using "Selected Entries Only" in scenarios without empty legs?

tom_hornstra2
Associate
Associate

Hello Johannes, yes, they will be captured. The behavior of the optimizer logging is no different for multi-resources. Make sure that the user parameter /SCMTMS/EXP is turned on for your user.