Log in
Linked Applications
Loading…
Spaces
Glossaries
Create
Create
Hit enter to search
Announcement Banner
Help
Online Help
Keyboard Shortcuts
Feed Builder
What’s new
Available Gadgets
About Confluence
Log in
Cash Collection Wiki
Pages
Cash Collection Wiki Home
OptiPrice App technical documentation
OptiPrice App technical documentation
search
attachments
weblink
advanced
image-effects
image-attributes
Paragraph
Paragraph
Heading 1
Heading 2
Heading 3
Heading 4
Heading 5
Heading 6
Preformatted
Quote
Bold
Italic
Underline
Colour picker
More colours
Formatting
Strikethrough
Subscript
Superscript
Monospace
Clear formatting
Bullet list
Numbered list
Task list
Outdent
Indent
Align left
Align center
Align right
Page layout
Link
Table
Insert
Insert content
Files and images
Link
Markup
Horizontal rule
Task list
Date
Symbol
Insert macro
User mention
Jira Issue/Filter
Info
Add Lucidchart Diagram
draw.io Diagram
Embed draw.io Diagram
draw.io Board Diagram
Status
Gallery
Table of Contents
Google Drive Live Link
Embedded Google Drive Folder
Embedded Google Drive File
Google Drive Search Result
Other macros
Page layout
No layout
Two column (simple)
Two column (simple, left sidebar)
Two column (simple, right sidebar)
Three column (simple)
Two column
Two column (left sidebar)
Two column (right sidebar)
Three column
Three column (left and right sidebars)
Undo
Redo
Find/Replace
Keyboard shortcuts help
You are not logged in. Any changes you make will be marked as
anonymous
. You may want to
Log In
if you already have an account.
This page is also being edited by
. Your changes will be merged with theirs when you save.
<p><br /></p><p><strong>OptiPrice App technical documentation</strong></p><p>The OptiPrice App provides price recommendations for products based on numerous parameters like volume, incoterms etc. for similar CPC’s. Please refer to business documentation for details.</p><p>This document will entirely focus on the front-end Qlik visualisation layer where-in price recommendations are provided to end user after processing and running back-end pricing algorithms</p><p>This dashboard is meant to provide some analysis tools of the result of the machine learning price recommendation tool used by the multiple GBUs. When the business starts a pricing campaign (around every month), a run of the model will be started to provide updated price recommendations. This is a multi-GBU platform, and that the the model will have to run on a monthly basis, independently on when the campaigns will be run at the GBUs.</p><p>Most of the data come from the back end which is built in Dataiku (Pricing Back-End project). The data connections are via Big Query which is used to store the Dataiku results.</p><p><u>Overview of methodology and related data</u>:</p><p>The objective of the Qlik dashboard is to give price recommendations on a CPC (customer/product combination) level. Every product family of the GBU has its own independent machine learning model trained to do so. In order to provide recommendations, the following three major steps are performed in the back end (separately applicable to every product family):</p><ul><li>Identify the importance of every price lever. This outputs coefficients also called weights based on the SHAP values of the ML model used.</li><li>For every <strong>CPC</strong> in scope, find its more comparable neighbours using previously calculated weights.</li><li>The recommended price of the targeted <strong>CPC</strong> is then based on the median price of the set of comparable <strong>CPC(s)</strong>.</li></ul><p>To learn more about the back-end methodology, please refer to the business documentation below:</p><p><a href="https://docs.google.com/presentation/d/1FvFOgFyol6TdaU8JCm1IUHxVOhw3IzJKhuSdN5sNMoQ/edit#slide=id.g1161dbc3adf_2_214">Back-end | Business documentation - Google Slides</a></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u>Brief overview of the dashboard</u></strong>:</p><p><strong><u>CPC Prioritisation sheet</u></strong></p><p>Analyse the outcome of the run to estimate its impact.</p><p><br /></p><p><u>KPI(s) Displayed</u>:</p><p>Number of <strong>CPC</strong>: Number of CPC for which the AI tool tries to recommend a new price. With no filters applied, it sums the CPC(s) for all the product families that are in scope.</p><p><u>Price Increase with potential impact</u>: Number of <strong>CPC</strong> for which the recommended price is higher than the original price.</p><p> Note that the recommended price can never be lower than the original one but will stay the same if there is no increase.</p><p><strong><u>CPC</u></strong><u> with price increase recommendation</u>: Difference between the recommended price and the original price multiplied by the volume of sales.</p><p> <u>Min Volume threshold</u> considered is based on the last 12 months of transactions.</p><p> <u>Median price increase</u>: Average difference in price between the recommended price and original price including only the <strong>CPC</strong> with an increase.</p><p><u>Price increases potential impact</u>: chart enables a user to begin analysing price increase potentials by H4 / Prod L4, GBU Region, GBU Customer segment, Material/Product and Sold-To/Ship-To dimensions. This visual allows users to switch dimensions H4 /Product family, and customers and start understanding where the impact comes from.</p><p><strong><u> </u></strong></p><p>Default selections: By default, an end user will view either CS or SP GBU data and the GBU will be selected by default when the user opens the sheet. The currency and Unit of measure selections are also defaulted to Euros and KG. Admin users that have privilege to access both GBUs will see data for both GBUs but the GBU field will always be pre-selected to one of the GBUs. Admin Users can then switch the GBU selection from one to the other however they will not be able to select both GBUs at the same time.</p><p>Filters: The following filters are displayed in the CPC Prioritisation sheet to enable user to filter data and drill-down on dimensions such as GBU Product Family / H4 Prod L4 , Product / Material , Customer , Market Cluster / Group of Activity, CPC, Sales Rep and GBU. These filters are displayed at the top of the sheet.</p><p><br /></p><p><u> </u></p><p>Version Date & Version Run date: Version date and Version run date are display information presented to user to indicate when a particular version of the data set was created at the backend and the exact run date for that particular version. Version date is displayed in YYYY-MM format whereas version run date is displayed in the YYYY-MM-DD format.</p><p><br /></p><p><u> </u></p><p>Currency & Volume unit switches: These filters or selection elements allow users to select a currency and unit of measure of their choice. Based on the selection by the user, the dashboard converts or switches monetary measure values to selected currency and the volume measures to units of measure selected by the user.</p><p><br /></p><p><u> </u></p><p>Visuals: There are four KPIs and 2 charts. The KPIs Number of CPCs, Price Increase potential impact, minimum potential impact considered and CPC with Price increase recommendation. For the business definition of these KPIs please refer to business documentation. The two charts displayed are a horizontal bar chart and a table object. The Horizontal bar chart dimensions are Product family, Sold-To, GBU region and Customer Segment. The measure or the metric calculated along these dimensions are the measure of price increase potential impact.</p><p><br /></p><p>The Table object displays detailed information on CPC basis. The fields displayed are shown below. There are also buttons to sort the values in the table Price and Volume. By default the sort order is such that numeric fields such as Price, Volume, Dates are sorted numerically in descending order while textual values are sorted alphabetically in ascending order.</p><p><br /></p><p><u> </u></p><p>Show/Hide conditions: Show / hide conditions are used through out the dashboard to conditionally show and hide fields and measures depending on the GBU selected by user or the system. This is primarily to show fields and measures that are relevant to a GBU but not the other and vice versa.</p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><strong><u>Comparables sheet</u></strong></p><p>The measures displayed when a target CPC is selected are Minimum volume threshold, Original Price, Proposed adjustment, median of volume adjusted price. The full business definition of these metrics can be found in the business documentation. A table object displays these metrics across dimensions such as GBU region, customer segment, market cluster / group of activity, incoterms, end use, country ship to, sold to and manufacturing plant.</p><p><u> </u></p><p><u> </u></p><p><strong><u>Volume Adjustments & SHAP analysis sheet</u></strong></p><p>In the volume adjustment sheet the step of recommending a price based on the set of comparable <strong>CPC(s)</strong> is<strong> </strong>explored, this step is meant to account for the fact that the volume of sales from one <strong>CPC</strong> to another can vary, and hence have an impact on the recommended price. In order to achieve this, we can apply a volume adjustment step based on what our model has concluded in terms of impact of the volume on price.</p><p>For every family, we are fitting a function that outputs a price variation given a specific volume. The parameters of the function are extracted from DataIku and stored in BigQuery to be loaded in the dashboard. In this manner, we can plot the curve related to the function for each family directly in the dashboard.</p><p>For more information on this, please refer to the business documentation.</p><p>Note that the SHAP values used to find the price variations (as the y-axis in the graphs) are initially on a LOG10 SCALE! . You will often find "pow (10, x)" in the measures to go back to the "normal" scale. This allows us to have understandable values for the users (the log10 inverse function is 10^x). Volumes are also represented on a log10 scale to handle outliers with very high values.</p><p>The primary objective of this sheet is to provide a simulation tool to help the business understand and explain how volume adjustments are performed in the back end. The users can select any <strong>CPC</strong> as a comparable and a specific volume from the drop-down list to be adjusted to. The sheet then we displays all the steps leading to the volume adjusted price.</p><p><br /></p><p> </p><p><u>Visuals presented</u>:</p><p><u>Volume importance by <strong>CPC</strong> from the model</u>: scatterplot displaying all the CPC of the family with the price variation associated to their volume (in log scale). This price variation directly comes from the SHAP values output by the model (and brought out of the log scale as mentioned above). This is the scatterplot that is used to fit the volume adjustment function inside the back end.</p><p><u>Resulting volume curve</u>: Line chart representing the function fitted on previous scatterplot. Plotted thanks to the function parameters we import from the back end.</p><p>On both these objects, we add reference lines to show where the selected <strong>CPC</strong> and target volume stand and better understand the associated variations on the price.</p><p>The KPIs displayed at the bottom of the sheet represent the calculation details that lead to the volume adjusted price. Once again, since the values are initially on a log scale, subtracting the two adjustment ratios would not provide the right results: we need to divide the values. log(a - b) = log(a) / log(b)</p><p><strong><u> </u></strong></p><p>Volume Adjustments sheet displays KPI measures such as Comparable volume, Comparable original price, Target adjustment ratio, Comparable adjustment ratio, final ratio and the Volume adjusted price. The business definition for these measures and KPIs can be found in the business documentation. To display all information selection of product family, version, volume and Target CPC are required for the charts and KPIs in the sheet to populate.</p><p>Product family and a version should be selected to view the charts in the SHAP analysis sheet. There is a table that displays Feature weights per product family along with the feature, feature value, average feature value, & feature weights. A horizontal bar chart displays average price variation based on feature and SHAP values. A bubble chart plots the SHAP value per feature.</p><p><u> </u></p><p><u> </u></p><p><u> </u></p><p><u> </u></p><p><u> </u></p><p><u> </u></p><p><u> </u></p><p><u> </u></p><p><strong><u>Data extracts</u></strong></p><p>The data extract tab or sheet provides a means for the end user to filter & download / extract the data in spreadsheets for further analysis outside of the Qlik App. A version number should be selected by user to reduce the dataset for download.</p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><br /></p><p><strong><u>Data Model</u></strong></p><p>The OptiPrice data model is as shown below. The main dimension table is the <strong>DIM_CPC</strong> table. <strong>Fact_Recommendation</strong> is the primary fact table where the recommendation metrics are maintained. <strong>Bridge_Recommendation</strong> table acts as a link table or a bridge table between the <strong>Fact_Recommendation</strong> table and the <strong>Fact_Comparable</strong> table which is the second fact table. <strong>Volume_curves</strong> and <strong>SHAP_values</strong> tables are maintained purely to hold values to use in the front-end visuals within Volume adjustment sheet or the Shap analysis sheet. All the tables in the model are linked via various keys so that data filtering and drill-down / roll-up functionality within Qlik works as expected. Island tables such as <strong>FX_Rates</strong>, <strong>UOM_Rates</strong> are used as reference tables. <strong>Link_Table</strong> is part of the Qlik row level security section access visibility feature that ensures end-users can view data only belonging to their respective GBU.</p><p><br /></p><p><br /></p><p><br /></p><p>The OptiPrice apps data model is based on a standard star schema model, albeit with two fact tables linked via a Bridge_Recommendation table. As described above there is a single dimension table and a couple of special tables for volume curve plotting and SHAP analysis.</p><p><strong>ID_reco</strong>, <strong>ID_family_reco</strong>, <strong>ID_reco_fact_recommendation</strong>, <strong>ID_comparable</strong> and <strong>CPC</strong> are the primary keys used to link all the various tables together. A number of these keys are composite keys. i.e formed by combining two or more fields to form a single key (composite Key) field.</p><p>The list of tables and fields that are part of the data model are attached below.</p><p><br /></p><p><br /></p><p><strong><u>Security and Visibility Model</u></strong></p><p>The visibility model for the “OptiPrice” app is based on single field which is the GBU of the User. This is implemented such that users from one GBU can not access data from the other GBU and vice versa. The two GBUs that are applicable and in scope of the dashboard app currently are Novecare (CS) and Speciality Polymers (SPP). In the case of Speciality Polymers, for all confidential accounts, any sensitive fields, are masked. These sensitive fields are Sold-To Name / Account Name.</p><p>The confidential accounts information is sourced from the “<strong>Solvay Data/Apps/Common Data/Salesforce/Tables_Icare/Account.QVD</strong>” QVD file. Wherein the field” <strong>PRS_Code_Account__c</strong>” and “<strong>Confidential__c</strong>” denote the account and the confidentiality flag. This information is ingested into the data model and then any customer account flagged as confidential is identified and the corresponding sensitive fields are masked with a pre-defined text called “Confidential” instead of maintaining and displaying the actual value of the field. The following sensitive fields are masked for confidential accounts</p><ul><li>"Sold-To"</li><li>"Sold-To Name"</li><li>"Sold-To group"</li><li>"Ship-To"</li><li>"Ship-To Name"</li></ul><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p><p><strong><u> </u></strong></p>
Edit
Preview
Save
Close
{"serverDuration": 92, "requestCorrelationId": "1ae19fd4f9016e0e"}