# Crystal Ball's Extreme Speed

Important: This feature was discontinued in Crystal Ball version 11.1.2 and later.

Crystal Ball version 7.1 features an Extreme Speed facility that is up to 100 times faster than previous versions. Extreme Speed is not only a welcome relief if you have a large simulation model but also allows you to run models which need a lot more than the normal number of iterations, or when you need simulation results very quickly (e.g. when analyzing in real time for a spot market). While for most Crystal Ball models, about 3,000 iterations will be sufficient (see here on how many iterations to run), there are a number of situations in which running many more iterations is very useful: the introduction of Extreme Speed therefore opens up a whole new world of possibilities.

We first discuss the good news: three very common situations in which the Extreme Speed is particularly useful. Then we review a few limitations to Crystal Ball's Extreme Speed.

### Situations in which Extreme Speed is very helpful

##### 1. Simulating a rare event

A rare event (for example, with 1/1000 probability) that is the focus of the risk assessment only occurs when two or more variables combine in a certain way. When the rare event occurs as a result of an extreme value (for example above some threshold) of just one variable it is easiest to calculate the probability that this variable exceeds the threshold, truncate the variable to values beyond the threshold, simulate this rare event and then adjust the outcome with the calculated probability. However, to do this with a combination of two or more variables is far more complicated, if not impossible, but Extreme Speed allows the otherwise impractical alternative of simulating the variables' entire ranges.

Example

Imagine the construction of an offshore oil platform, during which we need to evaluate the yearly probability that the oil platform will fail. The platform has 6 beams with individual but identical strength distributions and maximum yearly stresses on the platform (e.g. wind). The platform becomes unstable when two or more of these beams fail. If the stresses on each beam were independent, one could simply model one beam to determine the probability of failure P, and then the probability of two or more failures would be 1- (1-P)6 – 6P(1-P)5 (i.e. 1-[probability no beams fail] – [probability 1 beam fails]) from binomial probability theory.

However, this won't work if these maximum stresses on the individual beams are highly correlated (as they will be because the beams are subject to the same environment). The high degree of correlation between the stresses means that the probabilities of failure of individual beams are not independent (as binomial theory demands) and we therefore have to simulate. Being a (hopefully!) very low probability, the simulation would require a great number of iterations. The model Offshore Oil Platform gives an example.

Note with the Offshore Oil Platform:
In addition to illustrating a situation in which Crystal Ball's Extreme Speed feature is useful, the model Offshore Oil Platform shows the use of the MaxExtreme distribution. The use of this distribution is based on the following scenario: storm stresses occur randomly at an expected rate of 10 per year (which we can model with a Poisson(lambda = 10)) and the variation of intensity of individual stresses is 2.9 + Exponential (1/5) distributed, then the maximum stress in a year is MaxExtreme (7.5; 5). The MaxExtreme relationship to this Exponential distribution is explained here.

The links to the Offshore Oil Platform software specific models are provided here:

##### 2. Time-series forecasting

Extreme Speed can be very useful in time series models – models that predict the random behavior of a variable like exchange rate, a stock price, wind speed, sales volumes, etc. Time-series models make predictions at usually equal time increments by modeling the change in value between each interval and the next. The intervals are often quite large, for example, monthly in a cashflow model covering a year, or yearly in a cashflow model of say ten years. A time series model with fixed time increments is effectively modeling the average movement between steps, which means we are not modeling the extremes of movement that might occurwithin the time increment. We are not usually interested in those very short term extremes but there are circumstances in which we might be very interested, for example:

1. A spot market into which we can sell at very high price, or go short at a very low price; e.g. the New Zealand electricity spot market posts prices every 30 minutes;

2. Traffic flows that block the system (e.g. road junctions in a city, admissions into the Emergency unit of a hospital):

3. Exposure of a person to some chemical, where sudden short term concentrations have a much higher risk; and

4. Cash-flows where we have a big penalty for going over some agreed loan facility maximum.

Crystal Ball's Extreme speed makes it much more practical to reduce the time increment to smaller values and model the extremes more and therefore analyze far more effectively the response to those extremes. An example of this is the Electricity Option model:

An electricity reseller is thinking of selling an option to its customers. The buyer of this option will have the right to purchase electricity at any time within a period of 10 days at the spot rate with a cap of USD 120/KWh, thus saving money if the electricity price rises above that figure. In order to calculate the price of this option, the company needs to estimate how much the spot price could exceed the cap and how much electricity it would sell to the option-holder when the latter decides to exercise the option. The electricity price is modeled a random walk about a trending mean, and the demand for electricity has been modeled as Lognormal with an hourly seasonality over the day. For simplicity, the relationship between the price and demand is not taken into account.

This model was done on an hourly basis because reducing the time increment could result in rather large differences in the final outcome. The charts below show that an hourly-modeled electricity price dips above the exercise price quite often, but if it had a larger time increment, it would stay below the exercise price almost all the time.

Performing an hourly calculation requires quite a lot of computer resources and with the normal Crystal Ball speed it becomes almost impossible to make the required number of iterations. The Extreme Speed however gives the user such an opportunity!

The links to the Electricity Option software specific models are provided here:

##### 3. Simulating a Bayesian inference calculation

The Extreme Speed feature can also be very useful when performing a simulation of a Bayesian inference with the accept/reject method because this technique requires a lot of iterations. The main idea of this method can be summarized in three points below:

1. Set up priors for your estimated values

2. Replicate the system's interrelations to build a model as if the prior values were the real true values

3. Simulate the model and accept only those iterations, for which the outcome values match the observed data.

An example of such technique is given below:

You are an R&D company that is planning to commercialize a new technology for oil refineries to help them meet a new EPA NOx emission requirement that will come into effect 1 year from now. However, you only want to develop this technology further if there are at least 55 refineries in the US that could benefit from your technology. Recently, a competing technology was brought in the market (technology X) that also helps refineries meet these emissions and quite a few refineries are already using this technology (before start of EPA requirements), but it is a lot more expensive. You are convinced that a refinery that used technology X is as likely to buy your new technology (if you develop it) as a refinery that doesn't use any technology yet. The total market size for your new technology (Y) is therefore any refinery that currently doesn't meet EPA requirements plus any refinery that used technology X. What is the probability that this total market is more than 55 refineries?

The solution to this problem (see Market_Size_Estimation) requires over a million iterations to produce a reliable output distribution. The reason for that is that it uses two uninformed prior distributions with quite a wide range. Sampling independently (the priors are not correlated) from these two priors makes the occurrence of a valid scenario rather unlikely. Most of the time the combination of the generated prior values produce "unacceptable scenarios'.

Running the simulation on the above model makes it very obvious that the Extreme Speed feature would be very useful in modeling of such problems.

The links to the Market Size Estimation software specific models are provided here:

### Restrictions

There are a few situations in which Crystal Ball's Extreme Speed will not operate or operate slower than the Normal Speed (see also Crystal Ball's Help). These situations are:

##### Not operate or operate incorrectly:
• If you have cell references across workbooks, Extreme Speed will only recalculate the current Excel workbook;

• If the model uses any of the following functions:  CALL, CELL, GETPIVOTDATA, INDIRECT, INFO, HYPERLINK, REGISTER.ID, SQLREQUEST, Extreme Speed will return an error code;

• Extreme Speed returns an error code if the model uses formulas stored in defined names.  For best results, place the formula in a cell instead of a defined name;

• Extreme Speed requires all-numeric evaluation of formulas in the model.  In Excel one can write formulas that produce an intermediate character string result, which is used in later formulas to produce a numeric result.  Extreme Speed returns an error code if the model computes intermediate string results.  For best results, avoid the use of intermediate strings;

• Extreme Speed supports defined names and their use in formulas, but not the Excel Option "Accept labels in formulas" which allows cell labels to be used in formulas without defining them as names;

• Extreme Speed does not support multiple area references, e.g. (A1:A5,B1,C1:E1) except as used in standard functions such as SUM that accept a variable-length argument list of cell ranges.  Hence the only supported use of the comma as "union operator" is as the separator in an argument list of a standard function.  A defined name whose value is a multiple-area reference is not accepted.  For best results, avoid such uses of multiple-area references;

• Extreme Speed does not support 3-D references, where a cell range – used, for example, as an argument in a function call – spans multiple workbooks.  For best results we therefore recommend avoiding these 3-D references;

• Extreme Speed returns an error code if the model uses circular references.  Extreme Speed is stricter than Excel in its definition of a circular reference when array formulas are involved.  For example, {=A2:A3+1} in cells A1:A2 is a circular reference for Extreme Speed, but not for Excel.  If cells A1:A2 contain {=1+B1:B4} and cells B3:B4 contain {=1+A1:A4}, Extreme Speed considers this a circular reference, but Excel does not;

• The One-variable and Two-variable data table feature in Excel is not supported.  This feature uses a TABLE function to perform an automatic "what-if" analysis on one or two variables.

##### Operate slower:
• If your model uses a lot of users-defined functions, it may run slower than Normal speed. A restriction on the use of user-defined functions is that arguments must be simple scalars and cannot be cell range arguments.

• No labels