Multilevel Supply Demand Matching with SAP APO-CTM Engine

  • by Balaji Gaddam, Senior Director, SAP SCM Center of Expertise
  • December 7, 2009
In this excerpt from Balaji Gaddam’s SAP PRESS book, Capable to Match (CTM) with SAP APO, gain insight into the CTM engine algorithm and understand the constraint-based programming techniques that the CTM engine uses to arrive at a feasible plan for a given demand.
Key Concept

Supply network planning using SAP SCM offers several planning alternatives: the heuristics-based infinite planning tool; a cost-based, finite planning optimization engine; and the Capable to Match (CTM) engine (also referred to as CTM Solver) in SAP Advanced Planning & Optimization. The CTM engine is the central component of the Multilevel Supply and Demand Matching tool available in SAP SCM. It offers a planning algorithm to solve large constraint satisfaction problems in a reasonable amount of time. It uses heuristics-based, depth-first, finite constraint planning logic. It can evaluate very large and complex models quickly to support several what-if planning scenarios. The CTM engine uses a multilevel planning algorithm with depth-first strategy to detect and propagate constraints at all levels of the supply chain model. The goal of the CTM engine is to find an in-time solution for a demand with the required date and quantity, considering all the available sourcing alternatives. The CTM engine creates a late solution for the remaining quantity when no or only a partial in-time solution can be calculated.

Capable to Match (CTM) planning in SAP Advanced Planning & Optimization (SAP APO) is based on constraints. Constraints are generally defined as a condition that must be satisfied for the selected solution, and are represented by a constraint variable. Each constraint variable is defined with domain values or value ranges. The CTM engine tries to generate a feasible in-time solution by satisfying all the constraints and the allowed domain values. Constraint variables are linked with each other; as a result, the corresponding domain values are also linked. Any change or reduction of the domain values for one constraint variable is propagated across all linked constraints. Let me provide you with a brief example to illustrate the basic principles of the CTM engine algorithm using constraints (Figure 1).

Figure 1
Example of CTM engine algorithm principles

X and Y represent the constraint variables that are linked using relationship Y = 2X. Due to this relationship the domain values for Y are reduced with respect to X. This can be further explained in terms of a supply chain planning model. The constraint X represents the resource capacity whereas Y represents the demand quantity. The relationship indicates the resource capacity requirements for fulfilling 1 unit of demand quantity; i.e., for fulfilling each unit of demand quantity, 2 units of resource capacity is required. The available resource capacity is limited to 10 units. The resource capacity constraint is thus propagated to the demand variable and limits the maximum allowed demand quantity to 5 units.

Balaji Gaddam

Balaji Gaddam is a team lead of SAP SCM Center of Expertise and is based out of SAP headquarters in Newtown Square, PA. Balaji recently celebrated his 10-year anniversary at SAP and has been involved with SAP SCM/CTM solution development, implementation, and support for the last eight years. He is the author of Capable to Match (CTM) with SAP APO, available at You find Balaji on LinkedIn at

See more by this author


7/24/2014 4:43:22 PM
Vipul Shah

1. Does CTM support VMI scenario?
2. Does CTM support Sales Scheduling Agreement?

Please log in to post a comment.

To learn more about subscription access to premium content, click here.