Calculating the Impact Score

The default formula for calculating the Impact Score is displayed below. As a result, it returns the mean of the highest value registered for each type of impact in a business component.

 

#MaxOperationalImpact = Max(#Operational1Day, #Operational3Days, #Operational5Days, #Operational7Days, #Operational15Days, #Operational30Days);

#MaxFinancialImpact =  Max(#Financial1Day, #Financial3Days, #Financial5Days, #Financial7Days, #Financial15Days, #Financial30Days);

#MaxReputationImpact = Max(#Reputation1Day, #Reputation3Days, #Reputation5Days, #Reputation7Days, #Reputation15Days, #Reputation30Days);

#MaxRegulatoryImpact = Max(#Regulatory1Day, #Regulatory3Days, #Regulatory5Days, #Regulatory7Days, #Regulatory15Days, #Regulatory30Days);

#ImpactScore = (#MaxOperationalImpact + #MaxFinancialImpact + #MaxReputationImpact + #MaxRegulatoryImpact) / 4;

 

This default formula can be customized using business component attributes. To edit it, open the web.config file, which is in the installation folder for the Continuity module. The value attribute, from the CriticalityFormula key must be edited (see figure below).

 

The formulas can be comprised of one or more lines, separated by colons (;). The value returned will be calculated according to the result of the last line executed.

The most common writing format follows the syntax below, where [x] is optional:

Line 1:   variable A = <expression 1>;

Line 2:   variable B = <expression 2>;

Line N:  variable Z = <expression N>;

 

The tables below list the variables, operators, and functions available, as well as their descriptions.

Variable

Description

#[CustomVarAttribName]

Returns the value of an attribute associated with the business component.

 

Example: #LinearImpact = Value of the attribute with the variable name of "LinearImpact".

 

Types of attributes supported:

Number

Text

Paragraph

Date/Time (with the "Date" subtype)

List of Options

Outline

Relationship

#MTPD

MTPD registered in the BIA Data tab for the business component.

#RPO

RPO registered in the BIA Data tab for the business component.

#RTO

RTO registered in the BIA Data tab for the business component.

#Financial1Day

Financial impact after 1 day of unavailability, as defined in the BIA Data tab for the business component.

#Financial3Days

Financial impact after 3 days of unavailability, as defined in the BIA Data tab for the business component.

#Financial5Days

Financial impact after 5 days of unavailability, as defined in the BIA Data tab for the business component.

#Financial7Days

Financial impact after 7 days of unavailability, as defined in the BIA Data tab for the business component.

#Financial15Days

Financial impact after 15 days of unavailability, as defined in the BIA Data tab for the business component.

#Financial30Days

Financial impact after 30 days of unavailability, as defined in the BIA Data tab for the business component.

#Reputation1Day

Image impact after 1 day of unavailability, as defined in the BIA Data tab for the business component.

#Reputation3Days

Image impact after 3 days of unavailability, as defined in the BIA Data tab for the business component.

#Reputation5Days

Image impact after 5 days of unavailability, as defined in the BIA Data tab for the business component.

#Reputation7Days

Image impact after 7 days of unavailability, as defined in the BIA Data tab for the business component.

#Reputation15Days

Image impact after 15 days of unavailability, as defined in the BIA Data tab for the business component.

#Reputation30Days

Image impact after 30 days of unavailability, as defined in the BIA Data tab for the business component.

#Regulatory1Day

Regulatory impact after 1 day of unavailability, as defined in the BIA Data tab for the business component.

#Regulatory3Days

Regulatory impact after 3 days of unavailability, as defined in the BIA Data tab for the business component.

#Regulatory5Days

Regulatory impact after 5 days of unavailability, as defined in the BIA Data tab for the business component.

#Regulatory7Days

Regulatory impact after 7 days of unavailability, as defined in the BIA Data tab for the business component.

#Regulatory15Days

Regulatory impact after 15 days of unavailability, as defined in the BIA Data tab for the business component.

#Regulatory30Days

Regulatory impact after 30 days of unavailability, as defined in the BIA Data tab for the business component.

#Operational1Day

Operational impact after 1 day of unavailability, as defined in the BIA Data tab for the business component.

# Operational3Days

Operational impact after 3 days of unavailability, as defined in the BIA Data tab for the business component.

# Operational5Days

Operational impact after 5 days of unavailability, as defined in the BIA Data tab for the business component.

# Operational7Days

Operational impact after 7 days of unavailability, as defined in the BIA Data tab for the business component.

# Operational15Days

Operational impact after 15 days of unavailability, as defined in the BIA Data tab for the business component.

# Operational30Days

Operational impact after 30 days of unavailability, as defined in the BIA Data tab for the business component.

 

Related Operator

Description

==

Returns true if both elements are the same and false if not. Ex: "#result = #var == 1"

!=

Returns true if both elements are different and false if not. Ex: "#result = #var != 1"

Returns true if the element on the left is less than that on the right. Ex: "#result = #var < 1"

<=

Returns true if the element on the left is less than or equal to the one on the right. Ex: "#result = #var <= 1"

Returns true if the element on the left is greater than that on the right. Ex: "#result = #var > 1"

>=

Returns true if the element on the left is greater or equal to the one on the right. Ex: "#result = #var > 1"

in

Returns true if the element is contained in the set. Ex: "#result = 3 in {1,2,3,4}"

between

Returns true if the element is contained within the interval defined. Ex: "#result = 3 between {1,4}"

 

Logical Operator

Description

Or

Returns true if a condition is accepted. Ex: "#result = (#var == 1) or (#var == 2)"

and

Returns true if all conditions are accepted. Ex: "#result = (#var != 1) and (#var != 2)"

!

Denies the Boolean result of an expression. If the result is true, it returns false. If false, it returns true. Ex: "#result = !(2==1)"

 

Mathematical Operator

Description

+

Sum. Ex: "#result = 2 + 3"

Returns: 5

-

Subtraction. Ex: "#result = 2 - 3"

Returns: -1

*

Multiplication. Ex: "#result = 2 * 3"

Returns: 6

/

Division. Ex: "#result = 2.0/3.0"

Returns: 0.66666

%

Mod operation. Ex: "#result = 2 - 3"

Returns: -1

^

Exponentiation. Ex: "#result = 2 ^ 3"

Returns: 8

 

Attribution and Variables

Description

=

Used to attribute values to variables. Ex: "#var = 5"

#name

Declares the name of a variable. Ex: "#var = 'hello'"

 

Ternary Operation (Conditional Operator)

Description

<boolean expression> ? <if true then…> : <if false then…>

Creates a condition for executing an expression. Ex.:

#var >= 5 ? 'High' : 'Low'

 

 

Ternary Operation (Conditional Operator)

Description

E

See also other functions available in the Math class of the .NET 4 framework at: http://msdn.microsoft.com/en-us/library/system.math.aspx

PI

Ceiling(double a)

Floor(double d)

IEEERemainder(double x, double y)

Pow(double x, double y)

Round(double a)

Round(double value, int digits)

Sign(double value)

Sqrt(double d)

Truncate(double d)

Max(object val1, object val2, …)

These functions accept any number of parameters. The return is a double number.

 

Object parameters mean that they can receive any numeric parameter (int, long, double, etc…) or any parameter/object whose textual representation (.toString()) can be converted to a number on a floating point (double). For example, a string parameter with the value "101.23" can be used as a parameter and will be considered as the number 101.23.

 

Ex: Max( 10, $result, "15.3" );

 

Returns the highest value among the parameters, considering that all of these are converted in to numbers at a floating point even if the parameter is text (string).

Min(object val1, object val2,…)

 

Other Functions

Description

Lookup(object valueToLookup, object expectedResult1, object result1, …)

Performs a search in a collection of items.

 

Ex: Lookup(#Severity, "Low", 1, "Medium", 2, "High", 3);

 

Returns 1 if the value of the #Severity variable is equal to "Low", 2 if it is equal to "Medium", and 3 if it is "High". If it does not represent any of these values, the function returns 0.

LookupRange(double valueToLookup, string range1, double val1, string range2, double val2, … )

Allows a numeric value to be compared with various intervals, resulting in a new value.

 

Ex: LookupRange( #AssetValue, "0:1000", 1, "1000:10000", 2, "10000:100000", 3 );

 

Returns 1 if the value of the #AssetValue variable is between 0 and 1,000; 2 if it is between 1,000 and 10,000; and 3 if it is between 10,000 and 100,000. If the variable is not found within any of the intervals, the function returns 0.

FirstBiggerThan(object valueToCompare, value1, value2, …)

Returns the index of the first value that is greater than the value being searched for.

 

Ex: FirstBiggerThan( #ImpactValue, 1000, 10000, 20000);

 

Returns 0 if the value of the #ImpactValue variable is greater than 1,000; 1 if it is greater than 10,000; and 2 if it is greater than 20,000.

FirstBiggerThanOrEqualTo(object valueToCompare, value1, value2, …)

Returns the index of the first value that is greater than or equal to the value being searched for.

 

Ex: FirstBiggerThanOrEqualTo( #ImpactValue, 1000, 10000, 20000);

 

Returns 0 if the value of the #ImpactValue variable is greater than or equal to 1,000; 1 if it is greater than or equal to 10,000; and 2 if it is greater than or equal to 20,000.

FirstLessThan(object valueToCompare, value1, value2, …)

Returns the index of the first value that is less than the value being searched for.

 

Ex: FirstLessThan( #ImpactValue, 1000, 10000, 20000);

 

Returns 0 if the value of the #ImpactValue attribute is less than 1,000; 1 if it is less than 10,000; and 2 if it is less than 20,000.

FirstLessThanOrEqualTo(object valueToCompare, value1, value2, …)

Returns the index of the first value that is less than or equal to the value being searched for.

 

Ex: FirstLessThanOrEqualTo(# Impact Value, 1000, 10000, 20000);

 

Returns 0 if the value of the #ImpactValue variable is less than or equal to 1,000; 1 if it is less than or equal to 10,000; and 2 if it is less than or equal to 20,000.