<< Click to Display Table of Contents >> ## DQM Check for Relative Percent Difference |
Copyright © 2020 EarthSoft, Inc • Modified: 24 Feb 2020 |

This is a Check for Relative Percent Difference (RPD) values for duplicate sample results that fall outside Quality Control (QC) limits.

Notes: •The QC_RPD column or both of the QC_SPIKE_RECOVERY and QC_DUP_SPIKE_RECOVERY columns must be populated in DT_RESULT_QC for this check to function. •Control limits for this check are determined as described in the RT_DQM_CONTROL_LIMITS section. •See EarthSoft.DQM.RelativePercentDiffField to check field duplicate samples without using DT_RESULT_QC. |

Check name is EarthSoft.DQM.RelativePercentDifference = Relative Percent Difference (RPD).

This check uses the REPORTABLE_RESULT and TEST_BATCH_TYPE parameters from Global Parameters. There are nine other parameters:

•Multiplier – Multiplier used with detection limit in the Orig/Dup check to test for results with concentrations > multiplier * detection limit. Defaults to 5.

•Medium_code_soil – RT_MATRIX.MEDIUM_CODE for soil samples. Defaults to "Soil".

•MultiplierSoil – Multiplier used with detection limit in the Orig/Dup check to test soil samples for results with the absolute difference in concentrations > multiplierSoil * detection limit. Defaults to 2.

•Sample_type_LCSD – The sample type for Lab Control Sample Dups (only the Dups). Defaults to BD.

•Sample_type_MSD – The sample type for Matrix Spike Dups (only the Dups). Defaults to MSD, SD.

•Sample_type_Orig_Dup – The sample type for other Dups (only the Dups), such as Lab Replicates. Defaults to LR.

•Sample_result_type_1 – Which RESULT_TYPE to use with these SAMPLE_TYPES. Defaults to SAMPLE_TYPE = BD / RESULT_TYPE (stored in the REMARK column) = SC.

•Sample_result_type_2 – Which RESULT_TYPE to use with these SAMPLE_TYPES. Defaults to SAMPLE_TYPE = MSD, SD / RESULT_TYPE (stored in the REMARK column)= SC.

•Sample_result_type_3 – Which RESULT_TYPE to use with these SAMPLE_TYPES. Defaults to SAMPLE_TYPE = LR / RESULT_TYPE (stored in the REMARK column)= TRG.

Notes: •The default value is used if there is no record in RT_DQM_CHECK_PARAM for an input parameter. •The default value is used if the PARAM_VALUE is NULL for this parameter in RT_DQM_CHECK_PARAM. |

Errors (where table is not indicated, it is DT_RESULT_QC):

For Blank Spikes and Matrix Spikes:

•If QC_RPD, QC_SPIKE_RECOVERY, and QC_DUP_SPIKE_RECOVERY are all NULL or Not Numeric, then add error and skip result.

•If QC_RPD is NULL or Not Numeric, and either QC_SPIKE_RECOVERY or QC_DUP_SPIKE_RECOVERY are also NULL or Not Numeric, then add error and skip result.

•If the Control Limit is NULL or Not Numeric in both RT_DQM_CONTROL_LIMITS and DT_RESULT_QC, then add error and skip result.

For Lab Duplicates:

•If DT_RESULT.RESULT_NUMERIC is NULL or Not Numeric, then add error and skip result.

Exceptions (where table is not indicated, it is DT_RESULT_QC):

For LCS/LCSD and LCS/LCSD_NON_DETECT

•Review results with DT_SAMPLE.SAMPLE_TYPE_CODE = sample_type_LCSD and DT_RESULT.RESULT_TYPE_CODE = sample_result_type_1.

•Qualify a result if rpd > rpd_cl.

•Qualify associated results related by TEST_BATCH_ID.

•Use the LCS/LCSD qualifier for results with detected concentrations and the LCS/LCSD_NON_DETECT qualifier for non-detect results.

For MS/MSD and MS/MSD_NON_DETECT

•Review results with DT_SAMPLE.SAMPLE_TYPE_CODE = sample_type_MSD and DT_RESULT.RESULT_TYPE_CODE = sample_result_type_2.

•Qualify a result if rpd > rpd_cl.

•Qualify associated results related by SYS_SAMPLE_CODE in the PARENT_SAMPLE_CODE field of the MSD's parent sample. For example:

▪MSD sample's SYS_SAMPLE_CODE = ABC_MSD and PARENT_SAMPLE_CODE = ABC_MS.

▪MSD's parent sample's SYS_SAMPLE_CODE = ABC_MS and PARENT_SAMPLE_CODE = ABC.

▪Associated Results are found by finding results with SYS_SAMPLE_CODE = ABC.

•Use the MS/MSD qualifier for results with detected concentrations and the MS/MSD_NON_DETECT qualifier for non-detect results.

For Orig/Dup and Orig/Dup_NON_DETECT

•Review results with DT_SAMPLE.SAMPLE_TYPE_CODE = sample_type_Orig_Dup and DT_RESULT.RESULT_TYPE_CODE = sample_result_type_3.

•Find the parent sample using DT_SAMPLE.PARENT_SAMPLE_CODE or DT_FIELDQC_BATCH_PARTNER.

•TEST #1:

▪For both samples, is DT_RESULT.RESULT_NUMERIC >= multiplier * DT_RESULT.REPORTING_DETECTION_LIMIT?

▪If TRUE, then

▪calculate rpd_dup

▪If rpd_dup > rpd_cl, then qualify the results.

•TEST #2 (if TEST #1 = FALSE):

▪If the RT_MATRIX.MEDIUM_CODE of DT_SAMPLE.MATRIX_CODE = medium_code_soil,

▪then AD_multiplier = multiplierSoil

▪else AD_multiplier = 1

▪ABS_DIFF = absolute difference in the parent and duplicate concentrations = ABS(Parent - Dup).

▪Detection_Limit = the value in the first column that is not NULL:

▪DT_RESULT.REPORTING_DETECTION_LIMIT

▪DT_RESULT.QUANTITATION_LIMIT

▪DT_RESULT.METHOD_DETECTION_LIMIT

▪If the ABS_DIFF > AD_multiplier * Detection_Limit, then qualify the results.

•Use the Orig/Dup qualifier for results with detected concentrations.

•Use the Orig/Dup_NON_DETECT qualifier for non-detect results.

Calculations (where table is not indicated, it is DT_RESULT_QC):

RT_DQM_CONTROL_LIMITS is discussed in more detail here.

For Blank Spikes and Matrix Spikes (sample_type_LCSD and sample_type_MSD):

•If QC_RPD is Numeric,

▪then rpd = QC_RPD

▪else rpd = 100 * ABS(QC_SPIKE_RECOVERY - QC_DUP_SPIKE_RECOVERY) / (0.5 * (QC_SPIKE_RECOVERY + QC_DUP_SPIKE_RECOVERY).

For Blank Spikes (sample_type_LCSD):

•If RT_DQM_CONTROL_LIMITS.LCS_DUP_RPD_CL is Numeric,

▪then rpd_cl = RT_DQM_CONTROL_LIMITS.LCS_DUP_RPD_CL

▪else rpd_cl = QC_RPD_CL.

For Matrix Spikes (sample_type_MSD):

•If RT_DQM_CONTROL_LIMITS.MS_DUP_RPD_CL is Numeric,

▪then rpd_cl = RT_DQM_CONTROL_LIMITS.MS_DUP_RPD_CL

▪else rpd_cl = QC_RPD_CL.

For Lab Duplicates (sample_type_Orig_Dup):

•rpd_dup = 100 * ABS(RESULT_NUMERIC - RESULT_NUMERIC from parent) /(0.5 * (RESULT_NUMERIC + RESULT_NUMERIC from parent).

•If RT_DQM_CONTROL_LIMITS.LAB_DUP_RPD_CL is Numeric,

▪then rpd_cl = RT_DQM_CONTROL_LIMITS.LAB_DUP_RPD_CL

▪else rpd_cl = QC_RPD_CL.