/
How to Use the Segmentation-Optimization Model (DEPRECATED)

How to Use the Segmentation-Optimization Model (DEPRECATED)

This implementation is DEPRECATED, please refer now to Negotiation Guidance Accelerator.

Once the model is calculated and validated, it is ready to be used for price recommendations by other Pricefx modules, most commonly Quoting.

The price recommendation is usually in a form of target margin percentage or discount percentage, individual for each quote item. However, further information can be obtained from the model as well. For example, floor and stretch margin/discount percentages can be used to warn the user if their price is outside of a reasonable price range.

In order to get the price recommendation, all the segmentation values must be known. These are generally looked up or calculated for the known customer and product. Depending on the model, other inputs, such as quantity or sales channel, might be necessary too. Obtaining the segmentation values can be as easy as doing a few lookups into master/extension tables but it is not always that straightforward. It often involves a more complex calculation logic based on customer-defined business rules.

The model results are stored during its calculation in a form of Policy Records, each corresponding to a segment. A Policy Record does not necessarily exist for every segment. If a segment does not meet the given criteria, such as a minimum number of transactions, we do not want to use it for price recommendations and we prefer to use a higher level segment instead (a segment with the lowest-level segmentation attribute ignored). In such case, the Policy Record lookup would get more complicated. Fortunately, this lookup does not need to be implemented in the Groovy logic, there is an API function that takes the segmentation values and returns the appropriate Policy Record:

def eval = api.modelEvaluator("MyModel") def policyRecord = eval?.evaluate(["Country": "France", "CustomerGroup": "A", "ProductFamily": "Beverages"])

The api.modelEvaluator function builds the whole segmentation tree on the backend, while the evaluate function then performs a lookup in that tree. Building the tree is a quite time-consuming operation, but the tree is then automatically cached on the system level for 1 hour.

An example result of the evaluate function:

{ "results": { "SegmentationLevels": ["Country", "CustomerGroup", "ProductFamily"], "SegmentEntry": {"Country": "France", "CustomerGroup": "A", "ProductFamily": "Beverages"}, "Segment": "S000047", "PolicyRecord": { "#Transactions": 1286, "#Customers": 17, "#Products": 41, "Revenue": 342287, "Margin": 91077, "Scoring": "CoV", "Score": 13, "Floor (p)": 50, "Target (p)": 55, "Stretch (p)": 90, "Floor": 0.276, "Target": 0.281, "Stretch": 0.336, ... }, "SampleCount": 1286, "CustomerCount": 17, "ProductCount": 41, "Revenue": 342287, "Margin": 91077, "Floor": 0.276, "Target": 0.281, "Stretch": 0.336, ... } }

Related content

How to Use the Segmentation-Optimization Model
How to Use the Segmentation-Optimization Model
More like this
Specific Model Type: Segmentation-Optimization Model (DEPRECATED)
Specific Model Type: Segmentation-Optimization Model (DEPRECATED)
More like this
Specific Model Type: Segmentation-Optimization Model (DEPRECATED)
Specific Model Type: Segmentation-Optimization Model (DEPRECATED)
More like this

Found an issue in documentation? Write to us.

 
Pricefx version 14.0