top of page

 

kippy

Screen Shot 2018-11-25 at 22.33.30.png

formula

Anchor 1

Intro

​Each KPI can have a formula applied​​ to help manipulate it's actual or score. Below is a list of the available formula that can be set and their syntax. 

​

​

1) Actual adjusting formulas

​​The in-built formulas include divide, multiply, add, subtract, percentage, min, max and average. These each take two parameters which are the names of KPIs in the current team. The result will be set as the KPI actual. e.g. =cloud.kippy.percentage("Actual Test Effort","Planned Test Effort")
​

The use formula takes one parameters e.g. =cloud.kippy.use("Actual Test Effort") and will set the actual to the value of that KPI.

​

The abs formula takes no parameters e.g. =cloud.kippy.abs()  and will set the actual to the positive value if a negative

value is entered (e.g. -1 => 1, 0=>0, 1=>1).  

​​

The copy function can be used to make the Actual the same as the Actual for another KPI from the same or different Team e.g. copy the ‘items sold’ KPI from the Sales team with =cloud.kippy.copy ("Sales","Items Sold")

​​​

​

2) Referencing other teams​

KPi's on different teams can be referred to by prefixing the KPI name with the name of the Team and a full-stop e.g. =cloud.kippy.percentage("Actual Test Effort","Sales.Planned Test Effort") will get the Planned Test Effort from the Sales team.​

​​​​

The children formula can be used to sum the actual of all KPIs with the name kpiName in the current team’s direct sub-teams (i.e. one level below) e.g. =cloud.kippy.children.sum("kpiName")

​

If the kpiName is not provided, then the name of the current KPI will be used e.g. =cloud.kippy.children.sum()

​​

A more detailed example is available here.

​

Instead of sum, you can use children average formula to get the average of the childrens' actuals:

​

=cloud.kippy.children.average

​

You can also get the average value of the childrens' calculated scores using:
 

=cloud.kippy.children.average.score

​

To get the weighted average of each, you can use the following formulas. 

 

=cloud.kippy.children.average.weighted

=cloud.kippy.children.average.weighted.score

​

Note, the weighting used for the weighted average is taken as the weight of the children's KPI.

​

​​

3) Absolute values

KPI names can be replaced with absolute number values e.g.

​

=cloud.kippy.divide("Monthly spend", 28)

​​

​​

4) Variables

In the Tools | Formulas screen, variables can be added for each month with a value e.g. for February 2025, you could add a variable 'days of month' with a value of 28. 

​

The variable can then be used in place of a KPI parameter name in any of the formulas e.g. to find the average daily spend, instead of setting the KPI formula as:

​

=cloud.kippy.divide("Monthly spend", 28)

​

it could be set as:

​

=cloud.kippy.divide("Monthly spend", "days of month")

​

The metric can then be set for each month (manually or via an API). 

​

NOTE: Variables are system-wide but are scoped to each month. 

​

 

System variables

Kippy automatically updates some variables automatically.

​

For example, every time an employee is appraised, the variable for that period 'Appraised employees' is updated with the total number of appraised employees.

​

Another variable 'High performers' is updated with total number of appraised employees with a competency score above 80. 

​

These two variable can then be used in a KPI (e.g. the percentage of employees appraised as high performing) with the formula:

​

=cloud.kippy.percentage("High performers","Appraised employees")

​

Every time another employee is appraised, the KPI will update automatically.

​

Contact support if you need other kippy system variables.

​​​

​​

5) Score adjusting formulas

Scores can also be manipulated with the following functions:

 

Restrict score to maximum of 100
=cloud.kippy.score.top()     


Restrict score to a maximum value e.g. 110
=cloud.kippy.score.top(110)    

Restrict score to minimum of 0

=cloud.kippy.score.bottom()     

 

Restrict score to a minimum value e.g. 10

=cloud.kippy.score.bottom (10)  

 

Restrict score to be within the range specified

=cloud.kippy.score.range ( 20, 80 )    
 

Absolute value e.g. -5 will be 5

=cloud.kippy.score.positive()    

 

Absolute value multiplied by -1
=cloud.kippy.score.negative()    

 

Set score as 0, 80 or 100 if below, between or above the two parameters
=cloud.kippy.score.mid(20,90)    

​​​

Change score to new value if score below limit e.g. make score 120 if score below 0

=cloud.kippy.score.below(0,120)    

​

Change score to new value if score above limit e.g. make score 0 if score above 110

=cloud.kippy.score.below(110,0)    

​

​

​​

6) System-wide score adjustments

System-wide score adjustments can also be set in Tools | Settings | Config.

​

Upper and lower limits can be set for all KPI scores. 
 

Also, the banding for the red, amber, green can be adjusted holistically.

​​

​

7) Validation​

Formulas that do not pass validation will be shown as Red on the Maintain screen. 

Hover over the formula box for information about why the formula is invalid. 

The reasons may include:

- unsupported formula name

- referencing a non-existent KPI

- referencing a non-existent Team

- the wrong number of parameters for the formula

- spurious characters pasted in to the formulas e.g. Microsoft curly-quotes, single-quotes, etc. from Microsoft Excel.

​

8) Complex formulas

The kippy eval function allows complex formulas to be resolved, much like how you would use multiple operators, numbers and references in Excel to put the result into the Excel cell. 

The cloud.kippy.eval() function allows you to build advanced calculated KPIs using mathematical expressions that combine existing KPI scores — even from other teams.
You can apply arithmetic, logic, and mathematical functions to derive new insights.

​

The basic syntax is

 

=cloud.kippy.eval(expression)


Inside the parentheses, you can write a mathematical expression using:
   •    
Single quotes ' ' around KPI names or metrics.
   •    Team prefixes when referring to KPIs from another team.
   •    Operators (+ - * / ^ %) and functions (avg, if, pow, min, etc.).

​

Like other kippy formulas, you can reference KPIs in the current team or in other teams by prefixing the name with the team name e.g. 

​

'Net profit'    The KPI named Net profit for the current team.
'Total budget'    The KPI named Total budget for the current team.
'Sales.Total sales'    The KPI Total sales from the Sales team.

​

You can perform standard math operations directly on KPI values:

​

=cloud.kippy.eval('Net profit' + 'Total budget')
=cloud.kippy.eval(('Net profit' - 'Total budget') / 'Total budget')
=cloud.kippy.eval(('Net profit' * 100) / 'Total budget')

​

These are the supported mathematical functions with example and description:

avg(a, b, …)    =cloud.kippy.eval(avg('Net profit', 'Total budget', 100))    Average of KPIs and numbers
pow(x, y)    =cloud.kippy.eval(pow('Net profit', 2))    Raises x to the power of y
sqrt(x)    =cloud.kippy.eval(sqrt('Total budget'))    Square root
min(a, b)    =cloud.kippy.eval(min('Net profit', 'Total budget'))    Smaller of the two values
max(a, b)    =cloud.kippy.eval(max('Net profit', 'Total budget'))    Larger of the two values
log(x)    =cloud.kippy.eval(log('Total budget'))    Natural logarithm
abs(x)    =cloud.kippy.eval(abs('Net profit'))    Absolute value

​

You can also add conditional logic using the if() function e.g.

​

=cloud.kippy.eval(if('Net profit' > 0, 'Net profit' * 1.05, 0))


This example:

Increases Net profit by 5% if it’s positive

Returns 0 if it’s not

​

You can also combine conditions and functions e.g.

​

=cloud.kippy.eval(if('Net profit' > 'Total budget', 'Net profit', 'Total budget'))
=cloud.kippy.eval(if('Net profit' > 0, max('Net profit', 'Sales.Total sales'), avg('Total budget', 100)))

=cloud.kippy.eval(('Net profit' + pow('Sales.Total sales', 2)) / avg('Total budget', 50, 100))

​

Note, formulas are re-evaluated when actuals change (not when the changed KPI formulas is saved) so if you are testing a new formula, change an actual if you want your new formula to be re-evaluated. 

​

Summary

Consider trying and testing new formulas in a test kippy instance. See video here for example.

Monitor formulas to ensure they are running as expected, especially KPI names are modified, or formulas are modified and there are already historical actuals.

For more advanced actual manipulation, use APIs and Adapters to implement complex and conditional logic. 

Contact support@kippy.me for any questions or to have additional formulas supported. 

​

bottom of page