Relative Percent Difference Check

<< Click to Display Table of Contents >>

Navigation:  DQM > DQM Checks >

Relative Percent Difference Check

Overview

Check

Parameters

Additional Notes for Parameters

Rules

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

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

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

 

 

Overview

 

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/QC_ORIGINAL_CONC and QC_DUP_SPIKE_RECOVERY/QC_DUP_ORIGINAL_CONC 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 precision for field duplicate samples.

 

Check

 

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

 

Parameters

 

This check uses five Global Parameters:

1.msd_parent_sample_ms – See Exceptions section below for additional information.

2.reportable_result – DT_RESULT.REPORTABLE_RESULT values to include in DQM datasets.

3.result_type_code – DT_RESULT.RESULT_TYPE_CODE to include in DQM datasets.

4.test_type_batch – AT_TEST_BATCH_ASSIGN.TEST_BATCH_TYPE to include in DQM dataset.

5.use_conc_for_calc – Y/N option to use the concentration (QC_ORIGINAL_CONC and QC_DUP_ORIGINAL_CONC) instead of the recovery in the RPD calculation when running the RPD check for LCSD or MSD samples. Defaults to "N".

 

Twenty-three parameters are available for this check. None of these parameters allow for input of analyte-specific or method-specific PARAM_VALUEs.

1.Acceptable_variance_lab_dup – Acceptable variance when comparing calculated RPD to reported RPD for Laboratory Duplicate samples (%). Defaults to 1.

2.Acceptable_variance_LCSD – Acceptable variance when comparing calculated RPD to reported RPD for LCSD samples (%). Defaults to 1.

3.Acceptable_variance_MSD – Acceptable variance when comparing calculated RPD to reported RPD for MSD samples (%). Defaults to 1.

4.AD_multiplier_DL – Multiplier used to define non-detect results = AD_multiplier_DL * detection limit. Defaults to 1.

5.Calculated_before_reported_LCSD – Y/N option to try calculated RPD before the reported RPD when running RPD check for LCSD samples. Defaults to “Y”.

6.Calculated_before_reported_MSD – Y/N option to try calculated RPD before the reported RPD when running RPD check for MSD samples. Defaults to “Y”.

7.Compare_to_calculated_LCSD – Y/N option to compare calculated RPD to reported RPD for LCSD samples. Defaults to “N”.

8.Compare_to_calculated_MSD – Y/N option to compare calculated RPD to reported RPD for MSD samples. Defaults to “N”.

9.Compare_to_reported_lab_dup – Y/N option to compare calculated RPD to reported RPD for Lab Dup samples. Defaults to “N”.

10.Dilution_factor_control_limit – Control limit for comparison of each result’s dilution factor. Results with a dilution factor over the control limit will not be evaluated. Will only be used for the evaluation of precision between recoveries for the LCS/LCSD and the MS/MSD.  Defaults to 5.

11.flag_QC – TRUE/FALSE for flagging QC samples; QC sample types are configured in the sample_type_LCSD and sample_type_MSD parameters.

12.inorganics_asso_method – test_batch/parent_sample for associating inorganic results. Defaults to "test_batch".

13.organics_asso_method – test_batch/parent_sample for associating organic results. Defaults to "test_batch".

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

15.Multiplier – Multiplier used in the LAB DUP RPD > CL rule to test for results with concentrations > multiplier * detection limit. Defaults to 5.

16.MultiplierSoil – Multiplier used with detection limit in the LAB DUP ABS DIFF > AD_Multiplier_CL rule to test soil samples for results with the absolute difference in concentrations > multiplierSoil * detection limit. Defaults to 2.

17.Reported_before_calculated_lab_dup – Y/N option to try calculated RPD before the reported RPD when running RPD check for Laboratory Duplicate samples. Defaults to “N”.

18.Sample_result_type_1 – Which RESULT_TYPE to use with Sample_type_LCSD. Defaults to "SC".

19.Sample_result_type_2 – Which RESULT_TYPE to use with Sample_type_MSD. Defaults to "SC".

20.Sample_result_type_3 – Which RESULT_TYPE to use with Sample_type_Orig_Dup. Defaults to "TRG".

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

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

23.Sample_type_Orig_Dup – The sample type for other Dups (only the Dups), such as Lab Replicates or Laboratory Duplicates. Defaults to "LR".

 

Additional Notes for Parameters

 

For Blank Spike/Blank Spike Duplicates and Matrix Spike/Matrix Spike Duplicates

Calculations:

If compare_to_calculated = "Y" (compare_to_calculated_LCSD, compare_to_calculated_MSD)
or calculated_before_reported = "Y" (calculated_before_reported_LCSDcalculated_before_reported_ MSDthen:

oDQM will calculate the RPD for every result using QC_SPIKE_RECOVERY/QC_ORIGINAL_CONC and QC_DUP_SPIKE_RECOVERY/QC_DUP_ORIGINAL_CONC columns.

oDQM will also calculate the RPD if the QC_RPD column is null.

Comparisons:

If compare_to_calculated = "Y" (compare_to_calculated_LCSD, compare_to_calculated_MSD) then:

oDQM will compare the calculated RPD to the reported value in the QC_RPD column.

oDQM will create an Error in the Errors tab if the difference exceeds acceptable_variance (acceptable_variance_LCSD, acceptable_variance_MSD).

If calculated_before_reported = "Y" (calculated_before_reported_LCSDcalculated_before_reported_ MSDthen:

oDQM will use the DQM-calculated value to compare to the Control Limit.

oIf QC_SPIKE_RECOVERY/QC_ORIGINAL_CONC or QC_DUP_SPIKE_RECOVERY/QC_DUP_ORIGINAL_CONC is NULL or Not Numeric, but QC_RPD is populated (with a numeric value), DQM will use the reported value to compare to the Control Limit.

Exceptions: 

If the Control Limit is exceeded, an Exception will be added to the Exceptions table.

 

For Laboratory Duplicates

Calculations:

If compare_to_reported_lab_dup = "Y" or reported_before_calculated_lab_dup = "N" then:

oDQM will calculate the RPD for every result using DT_RESULT.RESULT_NUMERIC for both the parent sample and the laboratory duplicate sample.

oDQM will also calculate the RPD if the QC_RPD column is null.

Comparisons:

If compare_to_reported_lab_dup = "Y" then:

oDQM will compare the calculated RPD to the reported value in the QC_RPD column.

oDQM will create an Error in the Errors tab if the difference exceeds acceptable_variance_lab_dup.

If reported_before_calculated_lab_dup = "N" then:

oDQM will use the DQM-calculated value to compare to the Control Limit.

If reported_before_calculated_lab_dup = "Y" then:

oIf QC_RPD is null or not numeric, DQM will use the DQM-calculated value to compare to the Control Limit.

Exceptions: 

If the Control Limit is exceeded, an Exception will be added to the Exceptions table.

 

Notes: Default parameter values listed above refer to the value provided in the DQM Starter QAPP.xlsx.

 

Rules

 

LCS/LCSD – A high relative percent difference (RPD) was observed between the laboratory control sample and the laboratory control sample duplicate.

LCS/LCSD_NON_DETECT- A high relative percent difference (RPD) was observed between the laboratory control sample and the laboratory control sample duplicate.

 

MS/MSD - A high relative percent difference (RPD) was observed between the matrix spike sample and the matrix spike sample duplicate.

MS/MSD_NON_DETECT - A high relative percent difference (RPD) was observed between the matrix spike sample and the matrix spike sample duplicate.

 

LAB DUP RPD > CL – A high relative percent difference (RPD) was observed between the laboratory duplicate and the parent sample.

LAB DUP ABS DIFF > DETECTION LIMIT -The absolute difference between the laboratory duplicate and parent sample results exceeded the AD_MULTIPLIER * Detection Limit.

 

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.

Qualifier: 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.

Sample Relationships

When the global parameter msd_parent_sample_ms = “Y”.

The PARENT_SAMPLE_CODE for Matrix Spike Duplicate (MSD) sample should match the Matrix Spike (MS) SYS_SAMPLE_CODE.

The PARENT_SAMPLE_CODE for the MS sample should match the original sample’s SYS_SAMPLE_CODE.
Although the parent for MSD samples are MS, the result populated in DT_RESULT_QC.QC_DUP_ORIGINAL_CONC should equal the original sample’s result value.

When the global parameter msd_parent_sample_ms = “N”.

The PARENT_SAMPLE_CODE for both the MSD and MS should match the original sample’s SYS_SAMPLE_CODE.

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

For LAB DUP RPD > CL and LAB DUP ABS DIFF > DETECTION LIMIT (Laboratory Duplicates)

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

Parent Sample: 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.
Qualifier: Use the LAB DUP RPD qualifier.

If FALSE, then TEST #2.

TEST #2: Is the ABS_DIFF > AD_multiplier * Detection_Limit?

Definitions:

ABS_DIFF: Absolute difference in the parent and duplicate concentrations = ABS(Parent - Dup).
When detect_flag = N for one of the two values in the field duplicate pair, the Detection Limit * AD_Multiplier_DL is used as the value for the concentration of the non-detect in the ABS_DIFF calculation.

 AD_Multiplier: If the RT_MATRIX.MEDIUM_CODE of DT_SAMPLE.MATRIX_CODE = medium_code_soil,

then AD_multiplier = multiplierSoil

else AD_multiplier = 1

 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 TRUE, then qualify the results:
Qualifier: Use the LAB DUP ABS DIFF > DETECTION_LIMIT qualifier.

 

Associations

For organic results:

When organics_asso_method = test_batch, associated results are found using TEST_BATCH_ID.

When organics_asso_method = parent_sample, associated results are found using the PARENT_SAMPLE_CODEs. For Matrix Spike and Matrix Spike Duplicate samples, parent samples are based on the Global Parameter setting msd_parent_sample_ms.

For inorganic results:

When inorganics_asso_method = test_batch, associated results are found using TEST_BATCH_ID.

When inorganics_asso_method = parent_sample, associated results are found using the PARENT_SAMPLE_CODEs. For Matrix Spike and Matrix Spike Duplicate samples, parent samples are based on the Global Parameter setting msd_parent_sample_ms.

 

*Note: For laboratory duplicates an exception is already added for the parent sample.

 

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_ORIGINAL_CONC - QC_DUP_SPIKE_RECOVERY/QC_DUP_ORIGINAL_CONC) / (0.5 * (QC_SPIKE_RECOVERY/QC_ORIGINAL_CONC + QC_DUP_SPIKE_RECOVERY/QC_DUP_ORIGINAL_CONC).

 

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

 

Note: The RT_DQM_CONTROL_LIMITS.METHOD_ANALYTE_GROUP_CODE must be null or it must be a dataset selection on the Start Event Form.

 

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

 

In the Errors tab of the DQM Event Review Form, these errors may be listed:

"One of the required rules for this check is not present in the RT_DQM_RULE table."
If you receive this error, the QAPP can be updated following the How to Update Existing QAPPs documentation page.

"Lab Duplicate Detection Limit is Not Numeric."

"Lab Duplicate Parent Sample missing."

"Detect Flag = Y and Result_Numeric is NULL."

 

For Blank Spike/Blank Spike Duplicates and Matrix Spike/Matrix Spike Duplicates the below missing data will result in errors:

If QC_RPD is NULL or Not Numeric, or use_conc_for_calc = 'N' and QC_SPIKE_RECOVERY or QC_DUP_SPIKE_RECOVERY are also NULL or Not Numeric, then add error and skip result.

If QC_RPD is NULL or Not Numeric, or use_conc_for_calc = 'Y' and QC_ORIGINAL_CONC or QC_DUP_ORIGINAL_CONC 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.

If compare_to_calculated_ = "Y", DQM will create an Error in the Error tab if the difference exceeds acceptable_variance_.

If the dilution factor of a test exceeds the dilution_factor_control_limit, then skip the result.

 

Example errors:

"RPD Control Limit data missing from RT_DQM_CONTROL_LIMIT and DT_RESULT_QC"

"The RPD data is missing from DT_RESULT_QC."

"The RPD data in DT_RESULT_QC is Not Numeric."

"The Spike Recovery data used to calculate RPD is missing from DT_RESULT_QC."

"The Spike Recovery data used to calculate RPD is Not Numeric in DT_RESULT_QC."

"The variance between the reported RPD ({0}) and the calculated RPD ({1}) exceeded the Acceptable Variance ({2})."

"The Original Concentration data used to calculate RPD is missing from DT_RESULT_QC."

"The Original Concentration data used to calculate RPD is Not Numeric in DT_RESULT_QC."

 

For Laboratory Duplicates the below missing data will result in errors:

If DT_RESULT.RESULT_NUMERIC is NULL or Not Numeric when DETECT_FLAG = 'Y' for one of the samples in the laboratory duplicate pair, then add error and skip result.

If one of the results in the laboratory duplicate pair is detected and the other one is not, then add an error and the check is skipped on the lab duplicate pair. There may be more than one lab duplicate pair in the dataset and if both samples are present, the check will run on the other pair. (If both of the results are non-detect, then skip the result without an error).

If compare_to_calculated_ = "Y", DQM will create an Error in the Errors tab if the difference exceeds acceptable_variance_.