| Quintiq file version 2.0 | 
| #parent: #root | 
| Constraint IsStandardDeviationValid | 
| { | 
|   #keys: '2[151132.0.11701268][151132.0.11701269]' | 
|   ConstraintCondition: | 
|   [* | 
|     return guard( this.Summary().StandardDeviation().IsInfinite() | 
|                 or this.Summary().StandardDeviation() < this.UpperThresholdForStandardDeviation(), true ); | 
|   *] | 
|   ConstraintKind: 'Soft' | 
|   ConstraintText: | 
|   [* | 
|     @Translations::LibOpt_Statistic_HighStandardDeviation( LibOpt_Utility::FormatRealWithDecimalPlaces( this.Summary().StandardDeviation() ), | 
|                                                                                                        LibOpt_Utility::FormatRealWithDecimalPlaces( this.UpperThresholdForStandardDeviation() ), | 
|                                                                                                        ifexpr( this.UOM() = Translations::LibOpt_UOM_NA(), '', this.UOM() ) | 
|                                                                                                     )@ | 
|   *] | 
|   Description: | 
|   [* | 
|     Whether the `LibOpt_StatisticSummary.StandardDeviation` among values collected by this `LibOpt_StatisticScopeElement` is within a reasonable range. | 
|      | 
|     The `UpperThreshold` and/or `LowerThreshold` of a `LibOpt_StatisticScopeElement` are derived using the "outlier" approach. | 
|     When the `LibOpt_StatisticSummary.StandardDeviation` is too large (indicating that the spread of the data points is large), it follows that the `LibOpt_StatisticSummary.IQR` is large too, which makes the "outlier" thresholds too large/small. | 
|     As a result, none of the values collected by this statistic would actually violate the "outlier" thresholds, and no `LibOpt_Issues` will be created.. | 
|     The absence of issues gives a false impression that the aspect that this `LibOpt_StatisticScopeElement` focuses on does not require further attention. | 
|     Thus, if this constraint is fired for your statistic, then it might be worth to look into the values of this `LibOpt_StatisticScopeElement` even though no issues were created. | 
|   *] | 
| } |