.. _data.quality: ============ Data Quality ============ The data service in WIP is responsible for maintaining both the current value and the historical values of data. Alongside these values, a data quality indicator is also tracked. This indicator provides additional information about the historical data, such as an indication of a bad instrument or calculation that is uncertain due to low-quality inputs. Data quality indicators are essential for understanding the reliability of data. They help identify potential issues with data sources and calculations, ensuring that decisions based on this data are well-informed. The WIP application is designed to consume and utilise data quality information effectively. This integration allows for better data management and more accurate analysis. The following table provides details on the numeric indicators and possible quality states: .. list-table:: :widths: 2 2 4 6 :header-rows: 1 :class: tight-table * - Quality ID - Type - Name - Description * - 0 - Good - Not Set - ? * - 1 - Good - Good - ? * - 2 - Good - Good-LocalOverride - Instrument has local override * - 3 - Good - Good-Clamped - Instrument is clamped * - 4 - Good - Override-(UserSpecified) - Override Specified in IOMap * - 5 - Good - Good-DataSubstituted - Data was substituted * - 10 - Suspect - Uncertain - ? * - 11 - Suspect - Frozen - Instrument quality is good, but value evaluated as frozen * - 12 - Suspect - Uncertain-SubstituteValue - ? * - 13 - Suspect - Uncertain-SensorNotAccurate - ? * - 14 - Suspect - Uncertain-EngineeringUnitsExceeded - ? * - 15 - Suspect - Uncertain-HAD-ExtraData - More than one piece of data that might be hidden exists at the same time stamp * - 16 - Suspect - Uncertain-HAD-Interpolated - Interpolated data value * - 30 - Bad - Bad - ? * - 31 - Bad - Missing - ? * - 32 - Bad - BelowLoLimit - Below Minimum specified in IOMap * - 33 - Bad - AboveHiLimit - Above Maximum specified in IOMap * - 34 - Bad - ProcessingErro - Error occurred while processing value * - 35 - Bad - Bad-CommunicationError - ? * - 36 - Bad - Bad-NoCommunication - ? * - 37 - Bad - Bad-Timeout - ? * - 38 - Bad - Bad-InvalidTimestamp - ? * - 39 - Bad - Bad-UserAcessDenied - ? * - 40 - Bad - Bad-Certificate - ? * - 41 - Bad - Bad-NotReadable - ? * - 42 - Bad - Bad-NotWritable - ? * - 43 - Bad - Bad-OutofRange - ? * - 44 - Bad - Bad-NotFound - ? * - 45 - Bad - Bad-OutofService - ? * - 46 - Bad - Bad-NoData - ? * - 47 - Bad - Bad-SyntaxError - ? * - 48 - Bad - Bad-DataTypeConversion - ? * - 49 - Bad - Bad-NotNumeric - ? * - 50 - Bad - Bad-NULL - ? * - 51 - Bad - Bad-Err - ? * - 52 - Bad - Bad-Empty - ? * - 53 - Bad - Bad-NaN - ? * - 54 - Bad - DataServiceHistorical-NotEnoughGoodRecords - ?