You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 24 Next »

In order to control price deviations at One Quote level, a custom approval process has been built. We built it in order to manage potentially different approvers per product lines.

I/ Approval fields calculation during price configuration

  • At One Quote line item level as soon the "Quoted price" is edited, the system calculates dynamically if there is an approval needed or not:

Depending on the deviation one of the 3 roles below may need to approve:

    • RMD (Regional market director)
    • GMD (Global market director)
    • PAM (Product Attribute Manager)

To calculate the RMD and GMD approver role we use the corresponding approval thresholds % stored on the related volume bracket and we calculate at OQLI level the "GMD approval" and "RMD approval" threshold unit values.

The logic of these two fields calculation is different depending on the GBU:

    • If the GBU is Novecare we calculate a margin threshold we compare with the quoted margin and margin floor.
    • If the GBU is different than Novecare we calculate a price threshold we compare with the quoted price and price floor.

For GBU = "Novecare":

    • If the quoted margin is below  "RMD approval" and above "GMD approval" and Price floor the approver role will be RMD
    • If the quoted margin is below "GMD approval" and above price floor the approver role will be GMD
    • If the quoted margin is below "Price floor" the approver will be PAM

For GBU different than "Novecare":

    • If the quoted price is below  "RMD approval" and above "GMD approval" and Price floor the approver role will be RMD
    • If the quoted price is below "GMD approval" and above price floor the approver role will be GMD
    • If the quoted price is below "Price floor" the approver will be PAM

TS only use the last part linked to the price floor. They don't need any GMD or RMD approvals. But it's important to know that the logic is in place for future GBU's we'll onboard on the process.

If the "enable scaling price" checkbox is enabled at OQLI level we compare the minimum price between Quoted price/ Price (Bracket 2) / Price (Bracket 3) to know if there is an approval needed or not.

  • Absolute thresholds:

We also implemented an absolute threshold logic to request an approval if the annual impact of the deviation will raise a certain amount.

Absolute thresholds are maintained at Custom metadata level (One Quote Approval) and at the moment only Novecare use it.

For Novecare values are the below:

    • RMD Absolute threshold = 20 000€
    • GMD Absolute threshold = 100 000€

To give a concrete example how it works the system calculates the price impact versus the estimated annual volume.

Egs:

If an OQLI has a estimated annual volume at 150 000 kg, a price guidance at 2€/kg and a quoted price at 1,5€/kg. The annual impact is (2€-1,5€)*150 000 = 75 000€. On this example we meet the RMD aboslute thresold and an approval will be require even if we are above the RMD approval threshold.


  • Differencies between Novecare and Technology solutions:
    • As described above for Novecare the approval logic is based on margin instead of the price for TS.
    • For TS we request an approval only by the PAM team when the quoted price is below the price floor. We never request an approval by a GMD or an RMD.
    • At TS they don't use the absolute threshold logic


  • Approver matrix:

For the system to find the right approver after an approver role is defined at OQLI level we maintain a matrix at utility level on the "One Quotes price deviation" record type.

We look at the record with the same combination of GBU/BU/Region/Role and we retrieve the approver.

Edit access to this matrix is managed via sharing rule:


  • List of OQLI fields used on the approval process:
Field NameComment
GBUUse to know which logic to use. For Novecare margin logic. For other GBU's logic based on prices.
Estimated Annual volumeUse to calculate the annual impact to be compared with absolute thresholds.
Quoted PriceTo be compared with thresholds to know if there is an approval needed. Use for GBU different than Novecare.

Price (Bracket 2)

Use if scaling price is true. We compare the minum value between quoted price, price (bracket 2) and price (bracket 3) with thresholds to know if there is an approval needed.

Price (Bracket 3)

Use if scaling price is true. We compare the minum value between quoted price, price (bracket 2) and price (bracket 3) with thresholds to know if there is an approval needed.
Quoted MarginTo be compared with thresholds to know if there is an approval needed. Used on the Novecare logic.
Price GuidanceUse to calculate GMD and RMD Approval fields for GBU different than Novecare.
Margin GuidanceUse to calculate GMD and RMD Approval fields for Novecare.
Price FloorTo be compared with the quoted price to know if there is a PAM approval needed when below. For GBU different than Novecare.
Margin FloorTo be compared with the quoted margin to know if there is a PAM approval needed when below. For Novecare.
GMD ApprovalTo be compared with the quoted margin and the quoted price to know if there is a GMD approval needed when below. 
RMD ApprovalTo be compared with the quoted margin and the quoted price to know if there is an RMD approval needed when below. 
Approver RoleTo track who will be the approver role to retrieve from the matrix.
Approval StatusTo track the status of the OQLI on the approval process.
ApproverTo track the approver Name.

For more information on fields formulas please check Unable to locate Jira server for this macro. It may be due to Application Link configuration.

II/ Approval process

  • Send a One Quote for approval

To send a quote for approval the One Quote owner has to click on the "Send for approval" button at the top right of the LWC on the "Configuration and Product" tab.

Condition for the button to be displayed:

All the product lines have to be configured. An OQLI is considered configured as soon the "Product & Plant" and "Customer & demand" columns are fully populated.

As soon the button is pushed with no errors, the One Quote status is updated to "Sent for approval", the OQLI status of the lines requiring approval are updated to "Approval pending". All the lines with no approval needed are updated to approve.

The table and the quote are now in read only for the One Quote owner.

  • Approval / Rejection process

When the approver goes to the quote, all the lines where he's the approver are highlited in orange. A new "Approved" column is now displayed for him to let him the possibility to approve or reject all his lines individually.

The approver has also the possibility to write a comment on the approval comment field on the LWC.

As soon all his decision are made, a "Send decision" button is displayed at the top right of the LWC.

When the button is pushed, all approved lines are updated to approve and all rejected lines are updated to rejected.

Rejection process:

If a line is rejected, the One Quote owner has the possibility to edit again the line and review the approver comment to edit the price or delete the line. Then he will need to send for approval again to move forward.

As soon all the lines status are "Approved", the One Quote status is automatically updated to "Approved" and the owner can move forwards on the process.

III/ Notifications

Notifications are send by email and on the salesforce bell when the events below happens:

  • Quote sent for approval: Notification send to all the approvers on the quote
  • An OQLI is rejected: Notification send to the One Quote owner
  • A quote is fully approved: Notification send to the One Quote owner



  • No labels