Technical User Reference (Optimization - Negotiation Guidance)

This section details the ModelClass and the logics that the Negotiation Guidance Accelerator deploys. For each step, its aim, outputs, and the main reasons to modify the logics are explained.

In this section:

Negotiation Guidance Model Class

The Negotiation Guidance V2 (NG2) ModelClass organizes a list of logics to create the model architecture. It is a JSON file that refers to some logics and it is transformed into an optimized UI in the Pricefx platform. See Model Classes for more information.

The general architecture of the Negotiation Guidance Model Class is:

It defines five steps:

  • Definition – Sets the scope of the transactions.

  • Analysis – Analyzes the data in the scope and set the price drivers parameters.

  • Configuration – Sets the parameters for the segmentation.

  • Segmentation – Checks the segmentation and sets the parameters for the optimization.

  • Results – Looks at the outputs of the negotiation guidance in a user-friendly way.

There are two types of logics: calculation, which writes tables in the model, and evaluation, whose purpose is only to display some results. The standard Model Class definition is documented in https://pricefx.atlassian.net/wiki/spaces/KB/pages/3862364240.

All the logics of the NG2 Accelerator follow a standard naming convention: first NG2_ prefix, then the order and the first letters of the step name, then Calc or Eval, depending on the formula nature, then the name of the tab. An evaluation logic may also need a corresponding configurator to take user inputs; it is defined in a logic of the same name, suffixed with Configurator. The logic to render a node from a segmentation tree is slightly different from the others, it is named NG2_NodeEval_TreeView. In the end, there is a library logic named NG2_Lib.

Library

The logic is NG2_Lib.

NG2_Lib is used in nearly all the other logics deployed by the Accelerator and defines a set of functions needed specifically for this Accelerator, but also some constants used to easily change the user interface wording. There are the following elements:

  • LabelsUtils, TablesUtils, and ParametersUtils – Lists of the labels, names of the tables, and names of the parameters used in all the places in the code.

  • DefinitionUtils, AnalysisUtils, ConfigurationUtils, and SegmentationUtils – Sets of tools dedicated to each step of the negotiation guidance.

  • AlignmentUtils - Set of tools dedicated to the segment alignments

  • OptimizationEngineUtils - Set of tools to describe automatically the optimization engine problem to optimize the alignments.

  • TreeViewUtils - Tools to display nicely the different charts in the tree view

  • CalculationsUtils – Groups the tools to deal with the percentiles and all the main formulas that could be useful to move between costs, margins, prices, and discounts.

  • ElasticityUtils – Groups the methods to deal with different elasticity functions and evaluations.

  • BeneficMetricsUtils – Set of functions to evaluate the projected values for a given change of the optimization target.

  • CustomUtils – Defines the formulas to get the most important pricing values changes if the optimization target is of a given type.

  • ImpactUtils – Set of functions used by the Impact tab of the Results step.

  • ColorUtils – Groups the tools to generate colors to be used in charts.

  • SettingsUtils − Function to get fields mapping set during the accelerator deployment.

  • ChartUtils - Tools to create and display charts in different parts of the model.

  • RecommendationUtils - Tools to generate automatically the recommendation portlets.

  • BatchQueryUtils - Tools to build the complex SQL query that can navigate in an optimized way in the segmentation tree.

  • MathUtils - Simple math functions that are not yet in the shared library.

It is accessed via the calls on libs.NG2_Lib.XXX in the code.

Changes of almost any wording in the user interface are done in LabelsLib.

Changes of the names of the Model Table or adding a new one are done in TablesLib.

You might want to define another optimization target (for instance: markup in place of margin). In this case, the functions to define the revenue depending on the optimization target will change (element CustomLib). The CustomLib must also be changed if the way to calculate a metric depending on the other ones change, for instance: we cannot consider that the cost is proportional to the quantity because there are some fixed costs.

You might want to define a new elasticity curve, and then the ElasticityLib would be modified.

Definition Step

There is no calculation logic in this step, and there is one tab with related evaluation logics: NG2_1_Def_Eval_Selection and NG2_1_Def_Eval_Selection_Configurator.

This logic provides the user inputs to define the source data and map it.

A dashboard shows the transactions in the scope and the filtered-out transactions. It is an evaluation logic, so nothing is written in the model, but the user inputs defining the data mapping are available in the next steps.

  • Some other mappings are needed or some would be retrieved.

  • Define pre-set filters.

  • Add a chart to better understand the data. (Caution: it could take long, as the data are not yet stored in the model.)

Analysis Step

The calculation logic is NG2_2_Ana_Calc_DataPrep and there are two tabs with related evaluation logics: Data Profile and Price Drivers Setup. In this step, the data are materialized inside the model, an analysis is displayed, and the user is able to select the price drivers to calculate.

Calculation: DataPrep

The logic is NG2_2_Ana_Calc_DataPrep.

Data Profile Tab

The logic is NG2_2_Ana_Eval_Profile.

Price Drivers Setup Tab

The logic is NG2_2_Ana_Eval_Price_Drivers_Setup_Configurator.

Configuration Step

The calculation logic is NG2_3_Con_Calc_PriceDrivers and there is one tab with related evaluation logic.

Calculation: PriceDrivers

The logic is NG2_3_Con_Calc_PriceDrivers.

Setup Tab

The logic are NG2_3_Con_Eval_Setup and NG2_3_Con_Eval_Setup_Configurator.

Segmentation Step

The calculation logics are NG2_4_Seg_Calc_Segmentation and NG2_4_Seg_Calc_PriceGaps, and there are five tabs with related evaluation logics: Tree View, Indicators, Price Gaps, Selection Alignments, and Optimization Setup.

Calculation: Segmentation

The logic is NG2_4_Seg_Calc_Segmentation.

Calculation: Price Gaps

The logic is NG2_4_Seg_Calc_PriceGaps.

Tree View Tab

The logic is NG2_NodeEval_TreeView.

Indicators Tab

The logic is NG2_4_Seg_Eval_Indicators.

Price Gaps tab

The logics are NG2_4_Seg_Eval_Price_Gaps_Review and NG2_4_Seg_Eval_Price_Gaps_Review_Configurator.

Selection Alignments tab

The logic is NG2_4_Seg_Eval_Selection_Alignments_Configurator.

Optimization Setup Tab

The logic is NG2_4_Seg_Eval_Optimization_Setup_Configurator.

Results Step

The calculation is the sequence composed of the Segment Alignment, the Alignment Postprocessing, the Optimization, and the Impact calculations logic, and there are four tabs with related evaluation logics: Impact, Tree View, Recommendations, and Evaluation.

Calculation: Segment Alignment

The logic is NG2_5_Res_Calc_Alignment.

Calculation: Alignment Postprocessing

The logic is NG2_Res_Calc_Alignment_Postprocessing.

Calculation: Optimization

The logic is NG2_5_Seg_Calc_Optimization.

Calculation: Impact

The logic is NG2_5_Res_Calc_Impact.

Impact Tab

The logics are NG2_5_Res_Eval_Impact and NG2_5_Res_Eval_Impact_Configurator.

Tree View Tab

The logic is NG2_NodeEval_TreeView. It is exactly the one used in https://pricefx.atlassian.net/wiki/spaces/ACC/pages/4828955241#Tree-View-Tab, please refer to this section. It uses the same data but also some new fields, calculated by the NG2_5_Seg_Calc_Optimization calculation.

Recommendations Tab

The logic is NG2_5_Res_Eval_Recommendations.

Evaluation Tab

The logic is NG2_5_Res_Eval_Evaluation.

Alignment Review Tab

The logics are NG2_5_Res_Eval_Alignment and NG2_5_Res_Eval_Alignment_Configurator.

Glassbox Tab

The logic is NG2_5_Res_Eval_Alg_Glassbox.

Evaluations

The model has three evaluations: meta, query_segment, and batch_query. For more details about model evaluations see https://pricefx.atlassian.net/wiki/spaces/KB/pages/3851026646/Query+Optimization+Engine+Results#Using-the-Evaluator.

Meta Evaluation

The logic is NG2_5_Res_Eval_Meta.

Query Segment Evaluation

This is based on the logic NG2_5_Res_Eval_Evaluation and is detailed in the paragraph .

Batch Evaluation

The logic is NG2_5_Res_Eval_Batch.