Skip to Content
Personal Insights
Author's profile photo Adeeb Rizvi

Calculator rules and metric lookup tables in the goal plan

Hi Folks

I am writing this blog to share a personal experience working on an assignment where I had extensively leveraged the following two functionalities in the goal management module –

  1. Calculator Rules
  2. Metric Lookup Tables

I feel this will help couple of consultants who are new to this and are looking for some guidance on this topic.

 

Problem Statement : To create a goal plan which should have the provision to capture numeric quarterly targets and achievements against a goal, which should then be used to calculate the final score (Calculated Manager Annual Achievement), on a scale of 100, up to a maximum of 120 for that goal.

Following other points to be considered –

  1. Achievement Type could be “Less is Better” or “More is Better” (for example my goal could be such that if achievement is more than the target, then it is considered as better, like in the case of sales targets. Alternatively, for people in customer service may have a goal of reducing the monthly complaints to 5, now if they reduce it to 2, then that will be consider as better, hence lesser the achievement better the performance)
  2. Calculation Type could be Average (average of Q1, Q2, Q3 & Q4 targets and achievements), Summation (summation of Q1, Q2, Q3 & Q4 targets and achievements) and Milestone (only the Q4 target and achievement to be considered)
  3. Based on the Achievement Type, the Weightage Factor will either be calculated as (Total Target/Total Achievement) or (Total Achievement/Total Target).
  4. Based on the Calculation Type, Total Target and Total Annual Achievement to calculated accordingly – summation, average, only the Q4 target and achievement value.
  5. Calculated Manager Annual Achievement will be 100 times the Weightage Factor and cannot go beyond the limits of 0 – 120, e.g. if Weightage Factor is coming out to be 1.3, it should just be multiplied directly by 100.

 

Solution Design: The design consisted of a combination of standard and custom goal plan fields. Following fields were used –

S.No. Field Name Field ID
1. Goal Description name
2. Weightage weight
3. Unit of Measurement measure
4. Achievement Type

  • Less is Better
  • More is Better
customlm
5. Calculation Type

  • Average
  • Summation
  • Milestone
customavg
6. Q1 Target target
7. Q2 Target actual
8. Q3 Target target3
9. Q4 Target target4
10. Total Target total
11. Q1 Achievement (Manager) managerq1
12. Q2 Achievement (Manager) managerq2
13. Q3 Achievement (Manager) managerq3
14. Q4 Achievement (Manager) managerq4
15. Manager Total Annual Achievement managerannual
16. Weightage Factor factor
17. Calculated Manager Annual Achievement (Out of 100) calcscore
18. Weighted Performance Index actual-achievement
19. Rating rating

*fields highlighted in red were supposed to be auto-populated.

Following calculator rules were used –

  <calculator id="rule1"><![CDATA[customavg=="Summation"]]></calculator>
  <calculator id="rule2"><![CDATA[actual+target+target3+target4+0.001]]></calculator>
  <calculator id="rule3"><![CDATA[customavg=="Average"]]></calculator>
  <calculator id="rule4"><![CDATA[((actual+target+target3+target4)/4)+0.001]]></calculator>
  <calculator id="rule5"><![CDATA[managerq1+managerq2+managerq3+managerq4+0.001]]></calculator>
  <calculator id="rule7"><![CDATA[customlm=="Less"]]></calculator>
  <calculator id="rule8"><![CDATA[customlm=="More"]]></calculator>
  <calculator id="rule9"><![CDATA[total/managerannual]]></calculator>
  <calculator id="rule10"><![CDATA[managerannual/total]]></calculator>
  <calculator id="rule11"><![CDATA[factor<="1.2"]]></calculator>
  <calculator id="rule12"><![CDATA[factor>"1.2"]]></calculator>
  <calculator id="rule13"><![CDATA[factor*100]]></calculator>
  <calculator id="rule14"><![CDATA[1.2*100]]></calculator>
  <calculator id="rule15"><![CDATA[calcscore]]></calculator>
  <calculator id="rule16"><![CDATA[((managerq1+managerq2+managerq3+managerq4)/4)+0.001]]></calculator>
  <calculator id="rule17"><![CDATA[customavg=="custommilestone"]]></calculator>
  <calculator id="rule18"><![CDATA[(target4/1)+0.001]]></calculator>
  <calculator id="rule19"><![CDATA[(managerq4/1)+0.001]]></calculator> 
  <calculator id="rule20"><![CDATA[factor<="0"]]></calculator>
  <calculator id="rule21"><![CDATA[0*100]]>
  </calculator>

*in rule 2, rule 4 and rule 5, a factor of “0.001” has been added so that in where the total target or achievement value is “0”, the system does not give “undefined” error while calculating the % of achievement.

Following auto-population rules were used –

<auto-population field="total" mode="auto" calc-type="col">
    <rule>
      <rule-condition calculator-id="rule1"></rule-condition>
      <calculated-result calculator-id="rule2"/>
    </rule>
    <rule>
      <rule-condition calculator-id="rule3"></rule-condition>
      <calculated-result calculator-id="rule4"/>
    </rule>
    <rule>
      <rule-condition calculator-id="rule17"></rule-condition>
      <calculated-result calculator-id="rule18"/>
    </rule>
  </auto-population>
  <auto-population field="managerannual" mode="auto" calc-type="col">
    <rule>
      <rule-condition calculator-id="rule1"></rule-condition>
      <calculated-result calculator-id="rule5"/>
    </rule>
    <rule>
      <rule-condition calculator-id="rule3"></rule-condition>
      <calculated-result calculator-id="rule16"/>
    </rule>
    <rule>
      <rule-condition calculator-id="rule17"></rule-condition>
      <calculated-result calculator-id="rule19"/>
    </rule>
  </auto-population>
  <auto-population field="factor" mode="auto" calc-type="col">
    <rule>
      <rule-condition calculator-id="rule7"></rule-condition>
      <calculated-result calculator-id="rule9"/>
    </rule>
    <rule>
      <rule-condition calculator-id="rule8"></rule-condition>
      <calculated-result calculator-id="rule10"/>
    </rule>
  </auto-population>
  <auto-population field="calcscore" mode="auto" calc-type="col">
    <rule>
      <rule-condition calculator-id="rule11"></rule-condition>
      <calculated-result calculator-id="rule13"/>
    </rule>
    <rule>
      <rule-condition calculator-id="rule12"></rule-condition>
      <calculated-result calculator-id="rule14"/>
    </rule>
    <rule>
      <rule-condition calculator-id="rule20"></rule-condition>
      <calculated-result calculator-id="rule21"/>
    </rule>
  </auto-population>
  <auto-population field="actual-achievement" mode="auto" calc-type="col">
    <rule>
      <rule-condition calculator-id="rule11"></rule-condition>
      <calculated-result calculator-id="rule13"/>
    </rule>
    <rule>
      <rule-condition calculator-id="rule20"></rule-condition>
      <calculated-result calculator-id="rule21"/>
    </rule>
    <rule>
      <rule-condition calculator-id="rule12"></rule-condition>
      <calculated-result calculator-id="rule14"/>
    </rule>
  </auto-population>
  <auto-population field="rating" mode="auto" calc-type="col">
    <rule>
      <calculated-result calculator-id="GM_MLT_BASED_RATING_CALCULATOR"/>
    </rule>
  </auto-population>

 

With the help of these auto-population rules and the metric look-up table, the final score was pushed to the performance management form. This score could go up to a maximum of 120. Then on the PM form, scale adjusted calculation was enabled to convert the score in to a rating point on a scale of 1-6.

I hope a lot of you working on the calculator logics for the very first time can take insights from this, while designing your respective calculator and auto-population rules.

Do give it a read and share your thoughts in the comment section whether you liked the content or not and follow my profile for more content related to PMGM and SPCDP.

You can also follow the tags mentioned in this blog post to read more content about similar topics and follow the SAP SuccessFactors Community Page to read more about other topics in SuccessFactors.

 

Regards

Adeeb

Assigned Tags

      12 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Sonam Chauhan
      Sonam Chauhan

      Very helpful.Thanks!

      Author's profile photo Adeeb Rizvi
      Adeeb Rizvi
      Blog Post Author

      Thanks Sonam

      Author's profile photo Mohsin Ahamad Syed
      Mohsin Ahamad Syed

      Very Nice blog, it's very useful for beginners..

      Author's profile photo Adeeb Rizvi
      Adeeb Rizvi
      Blog Post Author

      Thanks Mohsin

      Author's profile photo Ivan Caudet
      Ivan Caudet

      Thanks Adeeb Rizvi .

      It´s possible to share the entire XML file?

      Author's profile photo Adeeb Rizvi
      Adeeb Rizvi
      Blog Post Author

      Sure Ivan. Share your email address please.

      Author's profile photo Ivan Caudet
      Ivan Caudet

      Here you are: djmalva@hotmail.com.

      Thanks in advance!

      Author's profile photo EDWIN ALEJANDRO BENITES
      EDWIN ALEJANDRO BENITES

      Very helpful, Adeeb Rizvi!

      Could you share the entire XML file?

      Thanks in advance!

       

      Author's profile photo Monica Magalhaes
      Monica Magalhaes

      Very interesting, Adeeb Rizvi!

      Could you share the entire XML file?

      Thanks in advance!

      Author's profile photo Tarek Shamikh
      Tarek Shamikh

      Interesting blog Adeeb Rizvi .

      I'm trying to configure metric table for the first time and trying to understand it.

      If it's possible to share the entire XML file?

      My email: tarekshamikh@outlook.com

      Thanks in advance!

      Author's profile photo Satya Deo Mishra
      Satya Deo Mishra

      I am  trying to configure metric table

      If it's possible to share the entire XML file?

      My email: sdmishra@hotmail.com

      Thanks in advance

      Author's profile photo Mohamed Mubarak
      Mohamed Mubarak

      Great Work Adeeb Rizvi

      Can u please share the XML with me

      M.mubarak60@gmail.com