DRAFT
ECMPS QA/Cert Data
Check Specifications
United States Environmental Protection Agency
Office of Air and Radiation
Clean Air Markets Division
Ariel Rios Building
1200 Pennsylvania Avenue
Washington, DC 20460
December 10, 2014
-------
-------
Table of Contents
7-Day Calibration Test 1
Air Emission Testing 51
Appendix E Test 62
Cycle Time Test 129
Flow-to-Load Check 155
Flow-to-Load Reference Data 179
Fuel Flowmeter Accuracy Test 206
Fuelflow-to-Load Baseline Data 222
Fuelflow-to-Load Test 247
General Test 264
Linearity Check 298
Monitoring Plan 345
Online-Offline Calibration Test 348
Protocol Gas 411
QA Certification Event 433
RATA 457
Test Extension/Exemption 644
Transmitter Transducer Test 656
Unit Default Test 671
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
7-Day Calibration Test
Environmental Protection Agency
Page 1 of706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-1
Check Name:
Initialize 7-Day Calibration Test Variables
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the calibration test:
Set Calibration Injection Count to 0.
Set Calibration Minimum Zero Reference Value and Calibration Minimum Upscale Reference Value to null,
set Calibration Maximum Zero Reference Value and Calibration Maximum Upscale Reference Value to 0.
Set Calibration Injection Times Appropriate and Calibration Injection Times Valid to true.
Set Calibration Test Begin Date, Calibration Test Begin Hour, Calibration Test Begin Minute, Calibration Test End Date,
Calibration Test End Hour, Calibration Test End Minute, Last Calibration Injection Date, Calibration Test Calc Result, and
Calibration Upscale Gas Level Code.
Results:
Result
Response
Severity
Usage:
1
Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 2 of706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the calibration test:
If the ComponentID is null,
set Calibration Test Component Valid to false, and return result A.
Otherwise,
If the ComponentTypeCode of the associated component is equal to "S02", "NOX", "C02", "02", "FLOW", or "HG",
set Calibration Test Component Type Valid to true.
Otherwise,
set Calibration Test Component Type Valid to false, and return result B.
If Calibration Test Component is invalid, do not perform checks for Calibration Injection category. Set the calculated values in the
associated Calibration Injection records to null.
SEVNDAY-2
7-Day Calibration Test Component Type Valid
7DAY-1
CEM Check
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The ComponentTypeCode in the monitoring plan is [comptype]. This type of
component does not require a calibration test.
Severity
Fatal
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
Environmental Protection Agency
Page 3 of706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-3
Check Name:
7-Day Calibration Test Reason Code Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Test Reason Code (Lookup Table)
Test Reason Code (Lookup Table)
Specifications:
For the calibration test:
If the TestReasonCode is null,
return result A.
If the TestReasonCode is not equal to "INITIAL", "RECERT", or "DIAG",
Locate the TestReasonCode is not in the Test Reason Code Lookup table,
If not found,
return result B.
If found,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Severity
Critical Error Level 1
Fatal
C
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
Calibration Test Component Type Valid Equals true
QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
1
Environmental Protection Agency
Page 4 of706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-4
Check Name: Aborted 7-Day Calibration Test Not Evaluated
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the calibration test:
If the TestResultCode is equal to "ABORTED",
set Calibration Test Aborted to true, Calibration Test Calc Result to "ABORTED", and return result A.
Do not perform checks for the Calibration Injection category.
Set all calculated values in associated Calibration Injection records to null.
Otherwise,
set Calibration Test Aborted to false.
Results:
Result
A
Response
The TestResultCode indicates that the test was aborted. [Children] records for this test
will not be evaluated. If the test was aborted for a reason not related to monitor
performance, you should not report the test.
Severity
Informational Message
Usage:
1
Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
Conditions: Calibration Test Component Type Valid Equals true
Environmental Protection Agency
Page 5 of706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-5
Check Name: Identification of Previously Reported Test or Test Number for 7-Day Calibration Test
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a 7-day calibration test with valid span scale and end time and a non-null ComponentID:
Set Calibration Test Supp Data ID to null.
Locate another 7-day calibration test for the component where the SpanScale, EndDate, EndHour, and EndMinute is equal to the
SpanScale, EndDate, EndHour, and EndMinute of the current TestSummary record.
If found,
return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestTypeCode is equal to "7DAY", and the
ComponentID, SpanScale, EndDate and EndHour is equal to ComponentID, SpanScale, EndDate and EndHour of the
current TestSummary record, and the EndMinute is null or is equal to the EndMinute in the current TestSummary record,
and the TestNum is not equal to the TestNumber in the current TestSummary record,
If found,
return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "7DAY" and the TestNum equal to
the TestNumber in the current TestSummary record.
If found,
Set Calibration Test Supp Data ID to the QA Supp Data ID in the QASupp record.
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the ComponentID, SpanScale, EndDate, EndHour,
and EndMinute in the QASupp record is not equal to ComponentID, SpanScale, EndDate,
EndHour, or EndMinute of the current TestSummary record,
return result B.
Otherwise,
return result C.
Results:
Result Response
A Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
B Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
C This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 6 of706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
Conditions: Duplicate 7-Day Calibration Equals false
Environmental Protection Agency
Page 7 of706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-6
Check Name:
Zero Injection Time Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the calibration injection:
Set Zero Injection Valid to true.
If the ZeroInjectionDate is null, or the ZeroInjectionHour is null or not between 0 and 23, or the ZeroInjectionMinute is null and the
ZeroInjectionDate is on or after ECMPS MP Begin Date, or the ZeroInjectionMinute is not between 0 and 59,
set Calibration Injection Times Valid to false, and return result A.
Otherwise,
If Last Calibration Injection Date is null or is prior to the ZeroInjectionDate,
set Last Calibration Injection Date to ZeroInjectionDate.
Otherwise,
set Calibration Injection Times Appropriate to false.
If ZeroInjectionMinute is null and the ZeroInjectionDate is before ECMPS MP Begin Date, or UpscalelnjectionMinute is
null and the UpscalelnjectionDate is before ECMPS MP Begin Date,
return result B.
Results:
Result
A
B
Response
The [type] date, hour, and/or minute for [key] is invalid.
You did not provide [fieldname] for [key]. This information will be required for
ECMPS submissions.
Severity
Critical Error Level 1
Non-Critical Error
Usage:
1
Process/Category: QA Test Evaluation Report — Calibration Injection
1
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 8 of706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-7
Check Name:
Upscale Injection Time Valid
Related Former Checks: 7DAY-12
Applicability:
CEM Check
Description:
Specifications:
For the calibration injection:
Set Upscale Injection Valid to true.
Append the UpscaleGasLevelCode to Calibration Upscale Gas Level Code.
If the UpscalelnjectionDate is null, or the UpscalelnjectionHour is null or not between 0 and 23, or the UpscalelnjectionMinute is
null and the UpscalelnjectionDate is on or after ECMPS MP Begin Date, or the UpscalelnjectionMinute is not between 0 and 59,
set Calibration Injection Times Valid to false, and return result A.
If the ZeroInjectionDate is not null, and UpscalelnjectionDate is not equal to the ZeroInjectionDate,
return result B.
Results:
Result
A
B
Response
The [type] date, hour, and/or minute for [key] is invalid.
The ZeroInjectionDate was not equal to the UpscalelnjectionDate for [key]. The
zero-level and upscale injections reported in the same record must be performed on the
same day.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — Calibration Injection
1
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 9 of706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-8
Check Name: Zero Calibration Error Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the calibration injection:
If the ZeroCalibrationError is null,
return result A.
If the ZeroCalibrationError is less than 0,
Results:
Result
A
B
Usage:
1
1
return result B.
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report — Calibration Injection
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 10 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-9
Check Name:
Upscale Calibration Error Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the calibration injection:
If the UpscaleCalibrationError is null,
return result A.
If the UpscaleCalibrationError is less than 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1
Process/Category: QA Test Evaluation Report — Calibration Injection
1
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 11 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-10
Check Name:
Injection Upscale Gas Level Code Valid
Related Former Checks: 7DAY-3C
Applicability:
CEM Check
Description:
Specifications:
For the calibration injection:
If the UpscaleGasLevelCode is null,
set Upscale Calibration Valid to false, and return result A.
If the UpscaleGasLevelCode is not equal to "MID" or "HIGH",
set Upscale Calibration Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — Calibration Injection
1
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 12 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: SEVNDAY-11
Check Name: Zero Measured Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the calibration injection:
If ZeroMeasuredValue is null,
set Zero Calibration Injection Valid to false, and return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — Calibration Injection
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 13 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the calibration injection:
If UpscaleMeasuredValue is null,
set Upscale Calibration Injection Valid to false, and return result A.
SEVNDAY-12
Upscale Measured Value Valid
CEM Check
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — Calibration Injection
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 14 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the calibration injection:
Set Calculate Zero Calibration Injection to Zero Calibration Injection Valid.
If ZeroReferenceValue is null,
set Calculate Zero Calibration Injection to false, Calibration Maximum Zero Reference Value to null, and return result A.
If ZeroReferenceValue is less than 0,
set Calculate Zero Calibration Injection to false, Calibration Maximum Zero Reference Value to null, and return result B.
Otherwise,
If Calibration Maximum Zero Reference Value is not null,
If ZeroReferenceValue is greater than Calibration Maximum Zero Reference Value,
set Calibration Maximum Zero Reference Value to the ZeroReferenceValue.
If Calibration Minimum Zero Reference Value is null,
set Calibration Minimum Zero Reference Value to the ZeroReferenceValue.
Otherwise,
If ZeroReferenceValue is less than the Calibration Maximum Zero Reference Value,
set Calibration Minimum Zero Reference Value to the ZeroReferenceValue.
SEVNDAY-13
Zero Reference Value Valid
CEM Check
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report — Calibration Injection
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 15 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-14
Check Name:
Upscale Reference Value Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Test Tolerances (Cross Check Table)
Specifications:
For the calibration injection:
Set Calculate Upscale Calibration Injection to Upscale Calibration Injection Valid.
If UpscaleReferenceValue is null,
set Calculate Upscale Calibration Injection to false, Calibration Maximum Upscale Reference Value to null, and return
result A.
If UpscaleReference Value is less than or equal to 0,
set Calculate Upscale Calibration Injection to false, Calibration Maximum Upscale Reference Value to null, and return
result B.
If Calibration Maximum Upscale Reference Value is not null,
If UpscaleReference Value is greater than Calibration Maximum Upscale Reference Value,
set Calibration Maximum Upscale Reference Value to the UpscaleReferenceValue.
If Calibration Minimum Upscale Reference Value is null,
set Calibration Minimum Upscale Reference Value to the UpscaleReferenceValue.
Otherwise,
Otherwise,
If UpscaleReferenceValue is less than the Calibration Minimum Upscale Reference Value,
set Calibration Minimum Upscale Reference Value to the UpscaleReferenceValue.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — Calibration Injection
1
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 16 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-15
Check Name:
Calculate Zero Injection Results
Related Former Checks: 7DAY-13, 14, 17
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the calibration injection:
Add 1 to Calibration Injection Count.
If Calibration Injection Times Valid is true,
If the Calibration Test Begin Date is null or the Calibration Test Begin Hour/Begin Minute is later than the
ZeroInjectionDate, ZeroInjectionHour, and ZeroInjectionMinute,
set the Calibration Test Begin Date/Begin Hour/Begin Minute to the ZeroInjectionDate, ZeroInjectionHour, and
ZeroInjectionMinute.
If the Calibration Test Begin Date/Begin Hour/Begin Minute is later than the UpscaleInjectionDate,UpscaleInjectionHour,
and UpscalelnjectionMinute,
set the Calibration Test Begin Date/Begin Hour/Begin Minute to the UpscalelnjectionDate, UpscalelnjectionHour,
and UpscalelnjectionMinute.
If the Calibration Test End Date is null or the Calibration Test End Date/End Hour/EndMinute is prior to the
ZeroInjectionDate, ZeroInjectionHour, and ZeroInjectionMinute,
set the Calibration Test End Date/End Hour/EndMinute to the ZeroInjectionDate, ZeroInjectionHour, and
ZeroInjectionMinute.
If the Calibration Test End Date/End Hour/EndMinute is prior to the UpscalelnjectionDate, UpscalelnjectionHour, and
UpscalelnjectionMinute,
set the Calibration Test End Date/End Hour/EndMinute to the UpscalelnjectionDate, UpscalelnjectionHour, and
UpscalelnjectionMinute.
If Test Span Value is null,
set Calculate Zero Calibration Injection is false.
If Calculate Zero Calibration Injection is false,
set Calibration Test Calc Result to "INVALID", Calibration Zero Injection Calc Result to null, Calibration Zero Injection
Calc APS Indicator to null, and return result A.
Calculate diff = abs(Zero Injection Measured Value - Zero Injection Reference Value)
Set Calibration Zero Injection Calc APS Indicator to 0.
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Round diff to 1 decimal place.
Set Calibration Zero Injection Calc Result to diff.
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
Otherwise,
If Calibration Zero Injection Calc Result is greater than 0.5,
set Calibration Test Calc Result to "FAILED".
Environmental Protection Agency
Page 17 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If ZeroCalibrationError is greater than or equal to 0 and less than or equal to 0.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between diff and ZeroCalibrationError is less than
or equal to the Tolerance in the cross-check record,
set Calibration Test Calc Result to "PASSED".
Otherwise,
set Calibration Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate Calibration Zero Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9).
Round diff to 0 decimal places.
If Calibration Zero Injection Calc Result is greater than 2.5, Test Span Value is less than 200, and diff is less than
or equal to 5,
set Calibration Zero Injection Calc Result to diff.
set Calibration Zero Injection Calc APS Indicator to 1.
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
If Calibration Zero Injection Calc Result is greater than 2.5,
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
If ZeroAPSIndicator is NOT equal to 1 and ZeroCalibrationError is greater than or equal
to 0 and less than or equal to 2.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between Calibration Zero Injection Calc
Result and ZeroCalibrationError is less than or equal to the Tolerance in the
cross-check record,
If Calibration Test Calc Result is not equal to "PASSAPS",
set Calibration Test Calc Result to "PASSED".
Otherwise,
set Calibration Test Calc Result to "FAILED".
Otherwise,
set Calibration Test Calc Result to "FAILED".
If ZeroAPSIndicator is equal to 1 and ZeroCalibrationError is greater than or
equal to 0 and less than or equal to 5, and Test Span Value is less than 200,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between diff and
ZeroCalibrationError is less than or equal to the Tolerance in the
Environmental Protection Agency
Page 18 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
cross-check record,
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
If Calibration Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS"
set Calibration Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate Calibration Zero Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9).
Round diff to 2 decimal places.
If Calibration Zero Injection Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the associated
component is equal to "DP", and diff is less than or equal to 0.01,
set Calibration Zero Injection Calc Result to 0.
set Calibration Zero Injection Calc APS Indicator to 1.
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
If Calibration Zero Injection Calc Result is greater than 3.0,
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
If ZeroAPSIndicator is NOT equal to 1 and ZeroCalibrationError is greater than or equal
to 0 and less than or equal to 3.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between Calibration Zero Injection Calc
Result and ZeroCalibrationError is less than or equal to the Tolerance in the
cross-check record,
If Calibration Test Calc Result is not equal to "PASSAPS",
set Calibration Test Calc Result to "PASSED".
Otherwise,
set Calibration Test Calc Result to "FAILED".
Otherwise,
set Calibration Test Calc Result to "FAILED".
If ZeroAPSIndicator is equal to l,the SampleAcquisitionMethodCode of the
associated component is equal to "DP", and ZeroCalibrationError is greater than
or equal to 0 and less than or equal to 0.01,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to
"DifferencelNLOO".
If the absolute value of the difference between diff and
ZeroCalibrationError is less than or equal to the Tolerance in the
cross-check record,
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
Environmental Protection Agency
Page 19 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If Calibration Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS"
set Calibration Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "HG",
Calculate Calibration Zero Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9).
Round diff to 1 decimal place.
If Calibration Zero Injection Calc Result is greater than 5.0, Test Span Value is less than or equal to 10, and diff is
less than or equal to 1.0,
set Calibration Zero Injection Calc Result to diff.
set Calibration Zero Injection Calc APS Indicator to 1.
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
If Calibration Zero Injection Calc Result is greater than 5.0,
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
If ZeroAPSIndicator is NOT equal to 1 and ZeroCalibrationError is greater than or equal
to 0 and less than or equal to 5.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between Calibration Zero Injection Calc
Result and ZeroCalibrationError is less than or equal to the Tolerance in the
cross-check record,
If Calibration Test Calc Result is not equal to "PASSAPS",
set Calibration Test Calc Result to "PASSED".
Otherwise,
set Calibration Test Calc Result to "FAILED".
Otherwise,
set Calibration Test Calc Result to "FAILED".
If ZeroAPSIndicator is equal to 1, Test Span Value is less than or equal to 10,
and ZeroCalibrationError is greater than or equal to 0 and less than or equal to
1.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to
"DifferenceUGSCM".
If the absolute value of the difference between diff and
ZeroCalibrationError is less than or equal to the Tolerance in the
cross-check record,
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
If Calibration Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS"
set Calibration Test Calc Result to "PASSED".
Environmental Protection Agency
Page 20 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result Response Severity
A The software could not evaluate the [test] calculations reported for [key], because of the Informational Message
errors listed above.
Usage:
1 Process/Category: QA Test Evaluation Report — Calibration Injection
Environmental Protection Agency
Page 21 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-16
Check Name: Calculate Upscale Injection Results
Related Former Checks: 7DAY-13, 14, 17
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the calibration injection:
If Test Span Value is null,
set Calculate Upscale Calibration Injection to false.
If Calculate Upscale Calibration Injection is false,
set Calibration Test Calc Result to "INVALID", Calibration Upscale Injection Calc Result to null, Calibration Upscale
Injection Calc APS Indicator to null, and return result A.
Otherwise,
Calculate diff = abs(Upscale Injection Measured Value - Upscale Injection Reference Value)
Set Calibration Upscale Injection Calc APS Indicator to 0.
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Round diff to 1 decimal place.
Set Calibration Upscale Injection Calc Result to diff.
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
If Calibration Upscale Injection Calc Result is greater than 0.5,
set Calibration Test Calc Result to "FAILED".
If UpscaleCalibrationError is greater than or equal to 0 and less than or equal to 0.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between diff and UpscaleCalibrationError is less
than or equal to the Tolerance in the cross-check record,
set Calibration Test Calc Result to "PASSED".
Otherwise,
set Calibration Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate Calibration Upscale Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9)
Round diff to 0 decimal places.
If Calibration Upscale Injection Calc Result is greater than 2.5, Test Span Value is less than 200, and diff is less
than or equal to 5,
set Calibration Upscale Injection Calc Result to diff.
set Calibration Upscale Injection Calc APS Indicator to 1.
Environmental Protection Agency
Page 22 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
If Calibration Upscale Injection Calc Result is greater than 2.5,
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
If UpscaleAPSIndicator is NOT equal to 1 and UpscaleCalibrationError is greater than or
equal to 0 and less than or equal to 2.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between Calibration Upscale Injection Calc
Result and UpscaleCalibrationError is less than or equal to the Tolerance in the
cross-check record,
If Calibration Test Calc Result is not equal to "PASSAPS",
set Calibration Test Calc Result to "PASSED".
Otherwise,
set Calibration Test Calc Result to "FAILED".
Otherwise,
set Calibration Test Calc Result to "FAILED".
If UpscaleAPSIndicator is equal to 1 and UpscaleCalibrationError is greater than
or equal to 0 and less than or equal to 5, and Test Span Value is less than 200,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between diff and
UpscaleCalibrationError is less than or equal to the Tolerance in the
cross-check record,
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
If Calibration Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS"
set Calibration Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate Calibration Upscale Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9).
Round diff to 2 decimal places.
If Calibration Upscale Injection Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the
associated component is equal to "DP", and diff is less than or equal to 0.01,
set Calibration Upscale Injection Calc Result to 0.
set Calibration Upscale Injection Calc APS Indicator to 1.
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
Environmental Protection Agency
Page 23 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If Calibration Upscale Injection Calc Result is greater than 3.0,
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
If UpscaleAPSIndicator is NOT equal to 1 and UpscaleCalibrationError is greater than or
equal to 0 and less than or equal to 3.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between Calibration Upscale Injection Calc
Result and UpscaleCalibrationError is less than or equal to the Tolerance in the
cross-check record,
If Calibration Test Calc Result is not equal to "PASSAPS",
set Calibration Test Calc Result to "PASSED".
Otherwise,
set Calibration Test Calc Result to "FAILED".
Otherwise,
set Calibration Test Calc Result to "FAILED".
If UpscaleAPSIndicator is equal to 1, the SampleAcquisitionMethodCode of the
associated component is equal to "DP", and UpscaleCalibrationError is greater
than or equal to 0 and less than or equal to 0.01,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to
"DifferencelNLOO".
If the absolute value of the difference between diff and
UpscaleCalibrationError is less than or equal to the Tolerance in the
cross-check record,
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
If Calibration Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS"
set Calibration Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "HG",
Calculate Calibration Upscale Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9)
Round diff to 1 decimal place.
If Calibration Upscale Injection Calc Result is greater than 5.0, Test Span Value is less than or equal to 10, and diff
is less than or equal to 1.0,
set Calibration Upscale Injection Calc Result to diff.
set Calibration Upscale Injection Calc APS Indicator to 1.
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
If Calibration Upscale Injection Calc Result is greater than 5.0,
Environmental Protection Agency
Page 24 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If Calibration Test Calc Result is not equal to "INVALID" or "FAILED",
If UpscaleAPSIndicator is NOT equal to 1 and UpscaleCalibrationError is greater than or
equal to 0 and less than or equal to 5.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between Calibration Upscale Injection Calc
Result and UpscaleCalibrationError is less than or equal to the Tolerance in the
cross-check record,
If Calibration Test Calc Result is not equal to "PASSAPS",
set Calibration Test Calc Result to "FAILED".
If UpscaleAPSIndicator is equal to 1, Test Span Value is less than or equal to 10,
and UpscaleCalibrationError is greater than or equal to 0 and less than or equal to
1.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to
"DifferenceUGSCM".
If the absolute value of the difference between diff and
UpscaleCalibrationError is less than or equal to the Tolerance in the
cross-check record,
set Calibration Test Calc Result to "PASSED".
Otherwise,
set Calibration Test Calc Result to "FAILED".
Otherwise,
set Calibration Test Calc Result to "PASSAPS".
Otherwise,
If Calibration Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS
set Calibration Test Calc Result to "PASSED".
Results:
Result
A
Response
The software could not evaluate the [test] calculations reported for [key], because of the
errors listed above.
Severity
Informational Message
Usage:
1
Process/Category: QA Test Evaluation Report — Calibration Injection
Environmental Protection Agency
Page 25 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-17
Check Name: Reported Zero Injection Results Consistent with Recalculated Values
Related Former Checks: 7DAY-4, 15, 16
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the calibration injection:
In the QA Evaluation Process, the Calibration Zero Injection Calc Result and Calibration Zero Injection Calc APS Indicator will be
stored as calculated values in the Calibration Injection record.
If the ZeroAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "FLOW", and the
SampleAcquisitionMethodCode of the associated component is not equal to "DP",
return result A.
If the ZeroAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "S02" or "NOX", and the
Test Span Value is greater than or equal to 200,
return result B.
If the ZeroAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "C02" or "02",
return result C.
Otherwise,
If Calculate Zero Calibration Injection is equal to true,
If the ZeroAPSIndicator in the current record is not equal to 1 and the Calibration Zero Injection Calc APS
Indicator is equal to 1,
return result D.
If the ZeroCalibrationError is greater than or equal to 0,
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between the Calibration Zero Injection Calc Result and the
ZeroCalibrationError is greater than the Tolerance in the cross-check record,
return result E.
If the Calibration Zero Injection Calc APS Indicator is equal to 1,
If the ComponentTypeCode of the associated component is equal to "FLOW",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencelNLQO".
If the absolute value of the difference between the Calibration Zero Injection Calc Result
and the ZeroCalibrationError is greater than the Tolerance in the cross-check record,
return result E.
else if the ComponentTypeCode of the associated component is equal to "HG",
Environmental Protection Agency
Page 26 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferenceUGSCM".
If the absolute value of the difference between the Calibration Zero Injection Calc Result
and the ZeroCalibrationError is greater than the Tolerance in the cross-check record,
return result E.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between the Calibration Zero Injection Calc Result
and the ZeroCalibrationError is greater than the Tolerance in the cross-check record,
return result E.
else if ZeroAPSIndicator is equal to 0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between the Calibration Zero Injection Calc Result and the
ZeroCalibrationError is greater than the Tolerance in the cross-check record,
return result F.
Results:
Result
A
B
C
D
E
F
Usage:
1
Response
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance criteria for non-differential pressure flow monitors.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for S02 and NOX components when the
instrument span is greater than or equal to 200.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for C02 and 02 components.
You did not report a value of "1" in the [level] APS Indicator for [key], although EPA
applied the alternative performance specification to determine that the injection passed
the applicable performance specification.
The absolute difference reported as the [level] Calibration Error for [key] is inconsistent
with the recalculated absolute difference for the gas injection or reference signal.
The [level] Calibration Error reported for [key] is inconsistent with the recalculated
calibration error for the gas injection or reference signal.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA Test Evaluation Report — Calibration Injection
Environmental Protection Agency
Page 27 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-18
Check Name: Reported Upscale Injection Results Consistent with Recalculated Values
Related Former Checks: 7DAY-4, 15, 16
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the calibration injection:
In the QA Evaluation Process, the Calibration Upscale Injection Calc Result and Calibration Upscale Injection Calc APS Indicator
will be stored as calculated values in the Calibration Injection record.
If the UpscaleAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "FLOW", and the
SampleAcquisitionMethodCode of the associated component is not equal to "DP",
return result A.
If the UpscaleAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "S02" or "NOX", and
the Test Span Value is greater than or equal to 200,
return result B.
If the UpscaleAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "C02" or "02",
return result C.
Otherwise,
If Calculate Upscale Calibration Injection is equal to true,
If the UpscaleAPSIndicator in the current record is not equal to 1 and the Calibration Upscale Injection Calc APS
Indicator is equal to 1,
return result D.
If the UpscaleCalibrationError is greater than or equal to 0,
If the ComponentTypeCode of the associated component is equal to "C02" or "02"
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between the Calibration Upscale Injection Calc Result and
the UpscaleCalibrationError is greater than the Tolerance in the cross-check record,
return result E.
If the Calibration Upscale Injection Calc APS Indicator is equal to 1,
If the ComponentTypeCode of the associated component is equal to "FLOW",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencelNLQO".
If the absolute value of the difference between the Calibration Upscale Injection Calc
Result and the UpscaleCalibrationError is greater than the Tolerance in the cross-check
record,
return result E.
else if the ComponentTypeCode of the associated component is equal to "HG",
Environmental Protection Agency
Page 28 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferenceUGSCM".
If the absolute value of the difference between the Calibration Upscale Injection Calc
Result and the UpscaleCalibrationError is greater than the Tolerance in the cross-check
record,
return result E.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between the Calibration Upscale Injection Calc
Result and the UpscaleCalibrationError is greater than the Tolerance in the cross-check
record,
return result E.
else if UpscaleAPSIndicator is equal to 0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between the Calibration Upscale Injection Calc Result and
the UpscaleCalibrationError is greater than the Tolerance in the cross-check record,
return result F.
Results:
Result
A
B
C
D
E
F
Usage:
1
Response
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance criteria for non-differential pressure flow monitors.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for S02 and NOX components when the
instrument span is greater than or equal to 200.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for C02 and 02 components.
You did not report a value of "1" in the [level] APS Indicator for [key], although EPA
applied the alternative performance specification to determine that the injection passed
the applicable performance specification.
The absolute difference reported as the [level] Calibration Error for [key] is inconsistent
with the recalculated absolute difference for the gas injection or reference signal.
The [level] Calibration Error reported for [key] is inconsistent with the recalculated
calibration error for the gas injection or reference signal.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA Test Evaluation Report — Calibration Injection
Environmental Protection Agency
Page 29 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-19
Check Name: 7-Day Calibration Test Begin Time Consistent with Injection Times
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a calibration test with valid begin time and injection times and Calibration Injection Count greater than 0:
If BeginDate, BeginHour, and BeginMinute does not equal the InjectionDate, InjectionHour, and InjectionMinute of the earliest
injection,
return result A.
Results:
Result Response Severity
A You reported a test Begin Date, Hour, and Minute that is not the same as the Injection Critical Error Level 1
Date, Hour, and Minute of the first injection in the 7-day calibration test.
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test (Pass 2)
Conditions: Calibration Test Aborted Equals false
Environmental Protection Agency
Page 30 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-20
Check Name: 7-Day Calibration Test End Time Consistent with Injection Times
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the calibration test with valid end time and injection times and Calibration Injection Count greater than 0:
If EndDate, EndHour, and EndMinute does not equal the InjectionDate, InjectionHour, and InjectionMinute of the last injection,
return result A.
Results:
Result Response Severity
A You reported a Test End Date, Hour, and Minute that is not the same as the Injection Critical Error Level 1
Date, Hour, and Minute of the last injection in the 7 day calibration test.
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test (Pass 2)
Conditions: Calibration Test Aborted Equals false
Environmental Protection Agency
Page 31 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the calibration test:
If Calibration Injection Count is less than 7,
set Calibration Test Calc Result to "INVALID", and return result A.
Results:
Severity
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test (Pass 2)
Conditions: Calibration Test Aborted Equals false
SEvNDAY-21
Correct Number of Injections
7DAY-7
CEM Check
Result Response
A The test contains fewer than seven calibration injection records.
Environmental Protection Agency
Page 32 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-22
Check Name:
Upscale Gas Level Codes Valid
Related Former Checks: 7DAY-8
Applicability:
CEM Check
Description:
Specifications:
For the calibration test:
If the number of items in Calibration Upscale Gas Level Code is greater than 1,
set Calibration Calc Test Result to "INVALID", and return result A.
If the ComponentTypeCode of the associated component is equal to "FLOW", and the UpscaleGasLevelCode is equal to "MID",
set Calibration Calc Test Result to "INVALID", and return result B.
Results:
Result
A
Response
You have reported more than one value as the UpscaleGasLevelCode in the calibration
injection records.
You have reported a value of "MID" as the UpscaleGasLevelCode in at least one
calibration injection record. This value is not appropriate for flow components.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report 7-Day Calibration Test (Pass 2)
Calibration Test Aborted Equals false
Environmental Protection Agency
Page 33 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-23
Check Name:
Reference Values Consistent with Gas Level
Related Former Checks: 7DAY-9
Applicability:
CEM Check
Description:
Specifications:
For a calibration test with both the Calibration Maximum Zero Reference Value and the Calibration Minimum Upscale Reference Value not
equal to null,
If the Calibration Maximum Zero Reference Value is greater than or equal to the Calibration Minimum Upscale Reference Value,
set Calibration Test Calc Result to "INVALID", and return result A.
Results:
Result
A
Response
The reference values are not consistent with the calibration gas/signal levels reported.
The reference values of zero-level gas injections or signals must be less than those of
upscale gas injections.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report 7-Day Calibration Test (Pass 2)
Calibration Test Aborted Equals false
Environmental Protection Agency
Page 34 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-24
Check Name: Zero Injection Reference Value Consistent with Span
Related Former Checks: 7DAY-3A
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the calibration injection with a Test Span Value and a Calibration Maximum Zero Reference Value that are not null:
If the ComponentTypeCode of the associated component is not equal to "HG",
Calculate Calibration Zero Reference Percent of Span = Calibration Maximum Zero Reference Value / Test Span Value *
100, and round to result to one decimal place.
If Calibration Zero Reference Percent of Span is greater than 20.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and the
FieldDescription is equal to "GasPercentOfSpan".
If Calibration Zero Reference Percent of Span is greater than 20.0 + Tolerance in the cross-check record,
return result A.
Otherwise,
return result B.
Results:
Result
B
Response
The tag value of at least one Zero level reference signal or calibration gas for [key] is
[percent]%, which does not meet the performance specifications of 40 CFR Part 75.
The concentration of the zero reference signal or calibration gas must be less than or
equal to 20.0% of the span value. The test is invalid.
The tag value of at least one zero level reference signal or calibration gas for [key] is
[percent]%, which does not meet the performance specifications of 40 CFR Part 75.
The concentration of the zero reference signal or calibration gas must be less than or
equal to 20.0% of the span value.
Severity
Critical Error Level 2
Non-Critical Error
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test (Pass 2)
Conditions: Calibration Test Aborted Equals false
Environmental Protection Agency
Page 35 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-25
Check Name: Upscale Injection Reference Value Consistent with Span
Related Former Checks: 7DAY-3B, D, E
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the calibration test with a Test Span Value and a Calibration Minimum Upscale Reference Value that are not null:
Calculate Calibration Upscale Reference Percent of Span = Calibration Maximum Upscale Reference Value / Test Span Value *
100, and round to result to one decimal place.
Set noncritical to false.
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and the FieldDescription is equal to
"GasPercentOflSpan".
If Calibration Upscale Gas Level Code is equal to "MID", and the ComponentTypeCode of the associated component is not equal to
"FLOW",
If Calibration Upscale Reference Percent of Span is less than 50.0 or Calibration Upscale Reference Percent of Span greater
than 60.0,
If Calibration Upscale Reference Percent of Span is less than 50.0 - Tolerance in the cross-check record or
Calibration Upscale Reference Percent of Span is greater than 60.0 + Tolerance in the cross-check record,
return result A.
Otherwise,
set noncritical to true.
If Calibration Minimum Upscale Reference Value is not equal to Calibration Maximum Upscale Reference Value,
Calculate tempval = Calibration Minimum Upscale Reference Value / Test Span Value * 100, and round to result to
one decimal place.
If tempval is less than 50.0 - Tolerance in the cross-check record or tempval is greater than 60.0 + Tolerance in the
cross-check record,
set Calibration Upscale Reference Percent of Span to tempval, and return result A.
If tempval is less than 50.0 or tempval greater than 60.0,
set Calibration Upscale Reference Percent of Span to tempval and noncritical to true.
If noncritical is true,
return result B.
If Calibration Upscale Gas Level Code is equal to "HIGH",
If the ComponentTypeCode of the associated component is equal to "FLOW",
If Calibration Upscale Reference Percent of Span is less than 50.0 or Calibration Upscale Reference Percent of
Span is greater than 70.0,
If Calibration Upscale Reference Percent of Span is less than 50.0 - Tolerance in the cross-check record or
Calibration Upscale Reference Percent of Span is greater than 70.0 + Tolerance in the cross-check record,
Environmental Protection Agency
Page 36 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
return result C.
Otherwise,
set noncritical to true.
If Calibration Minimum Upscale Reference Value is not equal to Calibration Maximum Upscale Reference Value,
Calculate tempval = Calibration Minimum Upscale Reference Value / Test Span Value * 100, and round to
result to one decimal place.
If tempval is less than 50.0 - Tolerance in the cross-check record or tempval is greater than 70.0 +
Tolerance in the cross-check record,
set Calibration Upscale Reference Percent of Span to tempval, and return result C.
If tempval is less than 50.0 or tempval is greater than 70.0,
set Calibration Upscale Reference Percent of Span to tempval and noncritical to true.
If noncritical is true,
return result D.
Otherwise,
If Calibration Upscale Reference Percent of Span is greater than 100.0,
return result E.
If Calibration Upscale Reference Percent of Span is less than 80.0,
If Calibration Upscale Reference Percent of Span is less than 80.0 - Tolerance in the cross-check record,
return result E.
Otherwise,
set noncritical to true.
If Calibration Minimum Upscale Reference Value is not equal to Calibration Maximum Upscale Reference Value,
Calculate tempval = Calibration Minimum Upscale Reference Value / Test Span Value * 100, and round to
result to one decimal place.
If tempval is less than 80.0 - Tolerance in the cross-check record or tempval is greater than 100.0,
set Calibration Upscale Reference Percent of Span to tempval, and return result E.
If tempval is less than 80.0,
set Calibration Upscale Reference Percent of Span to tempval and noncritical to true.
If noncritical is true,
return result F.
Environmental Protection Agency
Page 37 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
B
D
Response
The tag value of at least one Mid level reference signal or calibration gas for [key] is
[percent]%, which does not meet the applicable performance specifications. The
concentration of the mid reference signal or calibration gas must be between 50.0% and
60.0% of the span value. The test is invalid.
The tag value of at least one Mid level reference signal or calibration gas for [key] is
[percent]%, which does not meet the applicable performance specifications. The
concentration of the 'mid' reference signal or calibration gas must be between 50.0% and
60.0% of the span value.
The tag value of at least one High level reference signal for [key] is [percent]%, which
does not meet the performance specifications of 40 CFR Part 75. The value of the high
reference signal for a flow component must be between 50.0% and 70.0% of the span
value. The test is invalid.
The tag value of at least one High level reference signal for [key] is [percent]%, which
does not meet the performance specifications of 40 CFR Part 75. The value of the 'high'
reference signal for a flow component must be between 50.0% and 70.0% of the span
value.
The tag value of at least one High level reference calibration gas for [key] is [percent]%,
which does not meet the applicable performance specifications. The concentration of
the high reference calibration gas must be between 80.0% and 100.0% of the span value.
The test is invalid.
The tag value of at least one High level reference calibration gas for [key] is [percent]%,
which does not meet the applicable performance specifications. The concentration of
the 'high' reference calibration gas must be between 80.0% and 100.0% of the span
value.
Severity
Critical Error Level 2
Non-Critical Error
Critical Error Level 2
Non-Critical Error
Critical Error Level 2
Non-Critical Error
Usage:
1
Process/Category: QA Test Evaluation Report 7-Day Calibration Test (Pass 2)
Conditions: Calibration Test Aborted Equals false
Environmental Protection Agency
Page 38 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-26
Check Name:
Injections Performed at Appropriate Times
Related Former Checks: 7DAY-10/11
Applicability:
CEM Check
Description:
Specifications:
For the calibration test:
Set Calibration Test Validity Determined to true.
If Calibration Injection Times Appropriate is equal to false,
set Calibration Test Calc Result to "INVALID", and return result A.
Results:
Result
A
Response
This test contains at least two zero-level calibration gas injections or reference signals
that were performed on the same day.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report 7-Day Calibration Test (Pass 2)
Calibration Test Aborted Equals false
Environmental Protection Agency
Page 39 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-27
Check Name: Determination of Overall 7-Day Calibration Test Status
Related Former Checks: 7DAY-18
Applicability: CEM Check
Description:
Validation Tables:
Test Result Code (Lookup Table)
Specifications:
For the calibration test:
If Calibration Test Calc Result is equal to "INVALID",
set Calibration Test Calc Result to null.
If TestResultCode is null,
return result A.
If TestResultCode is not equal to "PASSED", "PASSAPS", "FAILED", or "ABORTED",
Locate the TestResultCode is not in the Test Result Code Lookup table,
If not found,
return result B.
If found,
return result C.
If Calibration Test Calc Result is equal to "FAILED",
If TestResultCode is equal to "PASSED" or "PASSAPS",
return result D.
Otherwise,
return result E.
If Calibration Test Calc Result is equal to "PASSED" or "PASSAPS", and the TestResultCode is equal to "FAILED",
return result F.
In the QA Evaluation Process, the Calibration Test Calc Result and Test Span Value will be stored as calculated values in the Test
Summary record for the test, and (for tests that have not yet been submitted or have been approved for resubmission) the
appropriate values will be stored in the QA Supp Data record for the test.
Environmental Protection Agency
Page 40 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
C
D
E
F
Usage:
1
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
You have reported an online offline calibration demonstration, but the recalculated
results indicate a failing test.
You reported a failed 7-day calibration test. Please check to see that the test was
repeated and passed.
You reported a TestResultCode of "FAILED", but the results recalculated or determined
from the other reported values indicate that the test passed.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Informational Message
Critical Error Level 1
Process/Category:
QA Test Evaluation Report 7-Day Calibration Test (Pass 2)
Environmental Protection Agency
Page 41 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-31
Check Name:
Online Offline Indicator Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the calibration injection:
If OnlineOfflinelndicator is null,
return result A.
If OnlineOfflinelndicator is equal to 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B You reported an OnlineOfflinelndicator for [key] that indicates that the unit was offline, Critical Error Level 2
but 7-day calibration test injections must be performed when the unit is online.
Usage:
1
Process/Category: QA Test Evaluation Report — Calibration Injection
1
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 42 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: SEVNDAY-32
Check Name: Zero APS Indicator Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the calibration injection record:
If ZeroAPSIndicator is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — Calibration Injection
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 43 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: SEVNDAY-33
Check Name: Upscale APS Indicator Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the calibration injection record:
If UpscaleAPSIndicator is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — Calibration Injection
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
Environmental Protection Agency
Page 44 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-28
Check Name:
7-Day Calibration Test Result Code Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Test Result Code (Lookup Table)
Specifications:
For the calibration test:
If TestResultCode is null,
return result A.
If TestResultCode is not equal to "ABORTED", "PASSED", "PASSAPS", or "FAILED",
Locate the TestResultCode is not in the Test Result Code Lookup table,
If not found,
return result B.
If found,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Severity
Critical Error Level 1
Fatal
C
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
Environmental Protection Agency
Page 45 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
SEVNDAY-29
Check Name:
Duplicate Calibration Test
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the calibration test with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode is equal to "7DAY" and the TestNumber is equal to
the TestNumber in the current record.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "7DAY" and the TestNumber
is equal to the TestNumber in the current record.
If found,
return result B.
If found,
return result A.
Results:
Result
A
Response
Another [testtype] with this test number already exists. You must assign a different test
number.
You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
Environmental Protection Agency
Page 46 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the calibration test:
If the ComponentID is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
SEVNDAY-30
7-Day Calibration Test Component ID Valid
CEM Check
Environmental Protection Agency
Page 47 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: SEVNDAY-34
Check Name: Calculate 7-Day Calibration
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the injection:
Set 7DAY Zero Calc Result, 7DAY Zero Calc APS, 7DAY Upscale Calc Result, and 7DAY Upscale Calc APS to null.
If the UpscaleGasLevelCode is not equal to "MID" or "HIGH", or the UpscaleReferenceValue is null, or the
UpscaleMeasuredValue is null, or the ZeroReferenceValue is null, or the ZeroMeasuredValue is null, or the ZeroReferenceValue is
greater than or equal to UpscaleReferenceValue,
return result A.
If the associated ComponentTypeCode is equal to "FLOW" and the SpanScaleCode is not null; or the ComponentTypeCode is not
equal to "FLOW" and the SpanScaleCode is not equal to "H" or "L",
return result A.
Otherwise,
Locate the System Component records for the associated component with the earliest BeginDate.
If the BeginDate in the retrieved record is not null, the BeginHour in the retrieved record is between 0 and 23, and the
BeginDate and BeginHour is later than the BeginDate and BeginHour of the test.
Locate a Span Record for the location where the ComponentTypeCode equal to the ComponentTypeCode of the
associated component, the SpanScaleCode is equal to the SpanScaleCode in the test, the Span Value is greater than
0, the BeginDate and BeginHour is on or before the BeginDate and BeginHour of the retrieved record, and the
EndDate is null or the EndDate and EndHour is after the BeginDate and BeginHour of the retrieved record.
Otherwise,
Locate a Span Record for the location where the ComponentTypeCode equal to the ComponentTypeCode of the
associated component, the SpanScaleCode is equal to the SpanScaleCode in the test, the Span Value is greater than
0, the BeginDate and BeginHour is on or before the BeginDate and BeginHour of the test, and the EndDate is null
or the EndDate and EndHour is after the EndDate and EndHour of the test.
If the Span record is not found,
return result B.
Otherwise,
Calculate diff = abs(ZeroInjectionMeasuredValue - ZeroInjectionReferenceValue)
Set 7DAY Zero Calc APS to 0.
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Round diff to 1 decimal place.
Set 7DAY Zero Calc Result to diff.
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate 7DAY Zero Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 0 decimal places.
If 7DAY Zero Calc Result is greater than 2.5, SpanValue is less than 200, and diff is less than or equal to
Environmental Protection Agency
Page 48 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
5,
set 7DAY Zero Calc Result to diff
set 7DAY Zero Calc APS to 1.
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate 7DAY Zero Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 2 decimal places.
If 7DAY Zero Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the associated
component is equal to "DP", and diff is less than or equal to 0.01,
set 7DAY Zero Calc Result to 0.
set 7DAY Zero Calc APS to 1.
If the ComponentTypeCode of the associated component is equal to "HG",
Calculate 7DAY Zero Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 1 decimal place.
If 7DAY Zero Calc Result is greater than 5.0, SpanValue is less than or equal to 10, and diff is less than or
equal to 1.0,
set 7DAY Zero Calc Result to diff.
set 7DAY Zero Calc APS to 1.
Calculate diff = abs(UpscaleInjectionMeasuredValue - UpscalelnjectionReferenceValue)
Set 7DAY Upscale Calc APS to 0.
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Round diff to 1 decimal place.
Set 7DAY Upscale Calc Result to diff.
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate 7DAY Upscale Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 0 decimal places.
If 7DAY Upscale Calc Result is greater than 2.5, SpanValue is less than 200, and diff is less than or equal
to 5,
set 7DAY Upscale Calc Result to diff.
set 7DAY Upscale Calc APS to 1.
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate 7DAY Upscale Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 2 decimal places.
If 7DAY Upscale Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the associated
component is equal to "DP", and diff is less than or equal to 0.01,
set 7DAY Upscale Calc Result to 0.
set 7DAY Upscale Calc APS to 1.
If the ComponentTypeCode of the associated component is equal to "HG",
Environmental Protection Agency
Page 49 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Calculate 7DAY Upscale Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diffto 1 decimal place.
If 7DAY Upscale Calc Result is greater than 5.0, SpanValue is less than or equal to 10, and diflf is less than
or equal to 1.0,
set 7DAY Upscale Calc Result to diflf.
set 7DAY Upscale Calc APS to 1.
Results:
Result
A
B
Response
The values in this record could not be calculated because of invalid data.
You have not reported a valid monitoring plan span record that was active during the
test.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Calculations
Environmental Protection Agency
Page 50 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Air Emission Testing
Environmental Protection Agency
Page 51 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: AETB-1
Check Name: QI Last Name Valid
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Air Emission Testing record.
If the QILastName is null,
return result A.
else if the first letter of QILastName is not an alphabetic character,
return result B.
else if any character of QILastName is not an alphabetic character, a period, a comma, a hyphen, or a space,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
B The value [value] in the [fieldname] for [key] does not have the expected format. Please Informational Message
confirm that this value is reported correctly.
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Air Emission Testing Data
2 Process/Category: QA Test Evaluation Report — RATA Air Emission Testing Data
3 Process/Category: QA Test Evaluation Report — Unit Default Air Emission Testing Data
1 Process/Category: QA and Certification Data Entry Screen Evaluation Air Emission Testing Evaluation
Environmental Protection Agency
Page 52 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: AETB-2
Check Name: QI First Name Valid
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Air Emission Testing record.
If the QIFirstName is null,
return result A.
else if the first letter of QIFirstName is not an alphabetic character,
return result B.
else if any character of QIFirstName is not an alphabetic character, a period, a comma, a hyphen, or a space,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
B The value [value] in the [fieldname] for [key] does not have the expected format. Please Informational Message
confirm that this value is reported correctly.
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Air Emission Testing Data
2 Process/Category: QA Test Evaluation Report — RATA Air Emission Testing Data
3 Process/Category: QA Test Evaluation Report — Unit Default Air Emission Testing Data
1 Process/Category: QA and Certification Data Entry Screen Evaluation Air Emission Testing Evaluation
Environmental Protection Agency
Page 53 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
AETB-3
QI Middle Initial Valid
General Check
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For the Air Emission Testing record.
If the QIMiddlelnitial is not null and is not an alphabetic character,
return result A.
Results:
Result
Usage:
1
2
3
1
Response
The value [value] in the [fieldname] for [key] does not have the expected format. Please
confirm that this value is reported correctly.
Severity
Informational Message
Process/Category: QA Test Evaluation Report — Appendix E Air Emission Testing Data
Process/Category: QA Test Evaluation Report — RATA Air Emission Testing Data
Process/Category: QA Test Evaluation Report — Unit Default Air Emission Testing Data
Process/Category: QA and Certification Data Entry Screen Evaluation Air Emission Testing Evaluation
Environmental Protection Agency
Page 54 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: AETB-4
Check Name: AETB Name
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Air Emission Testing record:
If AETBName is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Air Emission Testing Data
2 Process/Category: QA Test Evaluation Report — RATA Air Emission Testing Data
3 Process/Category: QA Test Evaluation Report — Unit Default Air Emission Testing Data
1 Process/Category: QA and Certification Data Entry Screen Evaluation Air Emission Testing Evaluation
Environmental Protection Agency
Page 55 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: AETB-5
Check Name: AETB Phone Number
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Air Emission Testing record:
If AETBPhoneNumber is null,
return result A.
else if AETBPhoneNumber does not have the format 999-999-9999,
return result B.
Results:
Result
A
B
Usage:
1
2
3
1
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the [fieldname] for [key] does not have the expected format. Please
confirm that this value is reported correctly.
Severity
Critical Error Level 1
Informational Message
Process/Category: QA Test Evaluation Report — Appendix E Air Emission Testing Data
Process/Category: QA Test Evaluation Report — RATA Air Emission Testing Data
Process/Category: QA Test Evaluation Report — Unit Default Air Emission Testing Data
Process/Category: QA and Certification Data Entry Screen Evaluation Air Emission Testing Evaluation
Environmental Protection Agency
Page 56 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: AETB-6
Check Name: AETB Email Valid
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Air Emission Testing record:
If the AETBEmail is null,
return result A.
else if the AETBEmail does not conform to the format @.
return result B.
Results:
Result
A
B
Usage:
1
2
3
1
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the [fieldname] for [key] does not have the expected format. Please
confirm that this value is reported correctly.
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report — Appendix E Air Emission Testing Data
Process/Category: QA Test Evaluation Report — RATA Air Emission Testing Data
Process/Category: QA Test Evaluation Report — Unit Default Air Emission Testing Data
Process/Category: QA and Certification Data Entry Screen Evaluation Air Emission Testing Evaluation
Environmental Protection Agency
Page 57 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: AETB-7
Check Name: Provider Name
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Air Emission Testing record:
If ProviderName is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Air Emission Testing Data
2 Process/Category: QA Test Evaluation Report — RATA Air Emission Testing Data
3 Process/Category: QA Test Evaluation Report — Unit Default Air Emission Testing Data
1 Process/Category: QA and Certification Data Entry Screen Evaluation Air Emission Testing Evaluation
Environmental Protection Agency
Page 58 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: AETB-8
Check Name: Provider Email Valid
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Air Emission Testing record:
If the ProviderEmail is null,
return result A.
else if the ProviderEmail does not conform to the format @.
return result B.
Results:
Result
A
B
Usage:
1
2
3
1
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the [fieldname] for [key] does not have the expected format. Please
confirm that this value is reported correctly.
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report — Appendix E Air Emission Testing Data
Process/Category: QA Test Evaluation Report — RATA Air Emission Testing Data
Process/Category: QA Test Evaluation Report — Unit Default Air Emission Testing Data
Process/Category: QA and Certification Data Entry Screen Evaluation Air Emission Testing Evaluation
Environmental Protection Agency
Page 59 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: AETB-9
Check Name: Exam Date Valid
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Air Emission Testing record:
If the ExamDate is null,
return result A.
else if the ExamDate is after the BeginDate of the current test,
return result B.
else if the ExamDate is more than 5 years prior to the BeginDate of the current test,
return result C.
Results:
Result
Response
Severity
A
You did not provide [fieldname], which is required for [key].
Critical Error Level 1
B
You reported an ExamDate that is after the date of the test for [key].
Critical Error Level 1
C
You reported an ExamDate that is more than five years prior to the date of the test for
Critical Error Level 2
[key], AETB exams expire in five years.
Usage:
1
Process/Category:
QA
2
Process/Category:
QA
3
Process/Category:
QA
1
Process/Category:
QA
Environmental Protection Agency
Page 60 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
AETB-10
Check Name:
Required Air Emission Testing Record Check
Related Former Checks:
Applicability:
General Check
Description:
Validation Tables:
Vw System Parameter (Lookup Table)
Specifications:
For the current test:
If Monitoring System Type Code not in the list ("HG", "HCL", "HF", and "ST")
Locate an Air Emission Testing record for the test.
If not found,
Locate System Parameter lookup table record where SysParamName = 'PGVP_AETB_RULE_DATE'.
If the BeginDate of the current test is on or after the System Parameter.Param Value 1 + 1 year,
return result A.
Results:
Result
A
Response
You did not report any valid Air Emission Testing records for this test. This
information is required by the Air Emission Testing reporting rule.
Severity
Critical Error Level 2
Usage:
1
Process/Category: QA Test Evaluation Report Appendix E Test (Pass 2)
2
Process/Category: QA Test Evaluation Report RATA (Pass 2)
3
Process/Category: QA Test Evaluation Report Unit Default Test (Pass 2)
Environmental Protection Agency
Page 61 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Appendix E Test
Environmental Protection Agency
Page 62 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Appendix E test:
Set Last APPE Maximum HI Rate, APPE Maximum NOx Rate, APPE Level Count, and APPE Last Run Number to 0.
Set APPE HI Consistent with Operating Level to true.
Set APPE Gas and Oil Systems Consistent, APPE Run Sequence Valid, and Calculate APPE Segments to true.
Set APPE Run Sequence Consecutive to false.
Set APPE Run Sequence to null.
APPE-1
Initialize Appendix E Test Variables
Appendix E Check
Results:
Result
Usage:
1
1
2
3
4
Response
Process/Category:
Process/Category:
Process/Category:
Process/Category:
Process/Category:
Severity
QA Test Evaluation Report Appendix E Test (Pass 1)
QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Gas Evaluation
QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
QA and Certification Data Entry Screen Evaluation Appendix E Test Run Evaluation
QA and Certification Data Entry Screen Evaluation Appendix E Test Summary Evaluation
Environmental Protection Agency
Page 63 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-2
Check Name:
System Type Valid
Related Former Checks: APPE-3
Applicability:
Appendix E Check
Description:
Specifications:
For the Appendix E test:
If the MonitoringSystemID is null,
set APPE System Valid to false, and return result A.
Otherwise,
If the SystemTypeCode of the associated system is equal to "NOXE",
set APPE System Fuel Code to the FuelCode of the associated system, and set APPE System Valid to true.
If APPE System is invalid, do not perform checks in the other Appendix E categories. Set the calculated values in the associated
Appendix E Summary, Appendix E Run, Appendix E Heat Input from Gas, and Appendix E Heat Input from Oil records to null.
Otherwise,
set APPE System Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
According to your monitoring plan, the Appendix E test was not conducted for a NOXE
system.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
Environmental Protection Agency
Page 64 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-3
Check Name: Appendix E Test Reason Code Valid
Related Former Checks:
Applicability: Appendix E Check
Description:
Validation Tables:
Test Reason Code (Lookup Table)
Test Reason Code (Lookup Table)
Specifications:
For the Appendix E test:
If the TestReasonCode is null,
If EndDate is on or after ECMPS MP Begin Date,
return result A.
Otherwise,
return result B.
If the TestReasonCode is not equal to "INITIAL", "QA", or "RECERT",
Locate the TestReasonCode is not in the Test Reason Code Lookup table,
If not found,
return result C.
If found,
return result D.
Results:
Result
A
B
D
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You did not provide [fieldname] for [key]. This information will be required for
ECMPS submissions.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
Conditions: APPE System Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
Severity
Critical Error Level 1
Non-Critical Error
Fatal
Critical Error Level 1
Environmental Protection Agency
Page 65 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-4
Check Name: Identification of Previously Reported Test or Test Number for Appendix E Test
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For an Appendix E test with valid end time and a non-null MonitoringSystemID:
Set Extra APPE Test to false.
Locate another Appendix E test for the system where the EndDate, EndHour, and EndMinute are equal to the EndDate, EndHour,
and EndMinute of the current TestSummary record.
If found,
set Extra APPE Test to true, and return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestType Code is equal to "APPE", and the
MonitoringSystemID, EndDate, EndHour, and EndMinute is equal to MonitoringSystemID, EndDate, EndHour, and
EndMinute of the current TestSummary record, and the TestNum is not equal to the TestNumber in the current
TestSummary record,
If found,
set Extra APPE Test to true, and return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "APPE" and the TestNum equal to
the TestNumber in the current TestSummary record.
If found,
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the MonitoringSystemID, EndDate, EndHour, and
EndMinute in the QASupp record is not equal to MonitoringSystemID, EndDate, EndHour, or
EndMinute of the current TestSummary record,
return result B.
Otherwise,
return result C.
Results:
Result Response
A Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
B Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
C This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 66 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
Conditions: Duplicate Appendix E Test Equals false
Environmental Protection Agency
Page 67 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-5
Check Name:
Determine Run Sequence
Related Former Checks:
Applicability:
Appendix E Check
Description:
Specifications:
For the Appendix E test:
If there are no Appendix E Run records,
Set APPE Run Times Valid to false.
Otherwise,
Set APPE Run Times Valid to true.
Set tempLevelList to null.
Proceed through the Appendix E Run records for the test in run BeginDate/Hour/Minute order.
If the associated OperatingLevelForRun is not in the list tempLevelList.
append OperatingLevelForRun to tempLevelList.
If this is the first run of the test,
Set Simultaneous APPE Runs to false.
If the BeginDate is null, or the BeginHour is null or not between 0 and 23, or the BeginMinute is null or
not between 0 and 59,
set APPE Run Times Valid to false.
Set the APPE Test Begin Date, Begin Hour, and Begin Minute to the BeginDate, BeginHour, and
BeginMinute.
If the EndDate is null, or the EndHour is null or not between 0 and 23, or the EndMinute is null or not
between 0 and 59,
set APPE Run Times Valid to false.
If APPE Run Times Valid is equal to true, the BeginDate is not null, the BeginHour is between 0 and 23,
and the BeginMinute is between 0 and 59,
If the BeginDate, BeginHour, and BeginMinute is prior to the EndDate, EndHour, and EndMinute
of the previous run,
set Simultaneous APPE Runs to true.
If the EndDate is null, or the EndHour is null or not between 0 and 23, or the EndMinute is null or not
between 0 and 59,
set APPE Run Times Valid to false.
Otherwise,
Otherwise,
Set the APPE Test End Date, End Hour, and End Minute to the EndDate, EndHour, and
EndMinute.
Otherwise,
Environmental Protection Agency
Page 68 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
Set the APPE Test End Date, End Hour, and End Minute to the EndDate, EndHour, and
EndMinute.
Set APPE NOx Rate Array and APPE HI Rate Array as null decimal arrays with a dimension equal to the number of items in
tempLevelList + 1.
Results:
Result
Response
Severity
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Appendix E Test (Pass 1)
APPE System Valid Equals true
Environmental Protection Agency
Page 69 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-6
Check Name:
Fuel System Consistency Check
Related Former Checks: APPE-25
Applicability:
Appendix E Check
Description:
Specifications:
For the Appendix E test:
Set APPE System List, and APPE Systems with Inconsistent UOM to null.
Sort Appendix E Heat Input for Oil records in fuelflow MonitoringSystemID order.
For each unique fuelflow MonitoringSystemID:
Append the MonitoringSystemID to the APPE System List
If the OilVolumeUnitsOfMeasure in all the records for the system are not equal,
Sort Appendix E Heat Input for Gas records in fuelflow MonitoringSystemID order.
For each unique fuelflow MonitoringSystemID:
Append the MonitoringSystemID to the APPE System List.
If APPE Systems with Inconsistent UOM is not null,
return result A.
append MonitoringSystemID to APPE Systems with Inconsistent UOM.
Results:
Result
A
Response
The OilVolumeUnitsOfMeasure in the oil flow records for MonitoringSystemlD(s)
[system] are inconsistent.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Appendix E Test (Pass 1)
APPE System Valid Equals true
Environmental Protection Agency
Page 70 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-7
Check Name: Simultaneous Runs
Related Former Checks: APPE-4
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E test with valid run times:
If Simultaneous APPE Runs is equal to true,
return result A.
Results:
Result Response Severity
A One or more runs in this test have overlapping run times. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
Environmental Protection Agency
Page 71 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-8
Check Name: Out of Sequence or Missing Runs
Related Former Checks: APPE-5
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E test with valid run times:
If APPE Run Sequence Valid is equal to true,
If APPE Run Sequence Consecutive is equal to true,
If the RunNumbers in the APPE Run Sequence do not begin with 1 or are not consecutive,
return result A.
Otherwise,
return result A.
Results:
Severity
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 2)
Result Response
A There are missing or non-sequential OperatingLevelForRun and RunNumbers in this
test. Run numbers must begin with 1 and be consecutive within the entire test or within
each operating level. The lowest OperatingLevelForRun must be equal to 1.
Environmental Protection Agency
Page 72 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-9
Check Name:
Concurrent Appendix E Tests
Related Former Checks: APPE-6
Applicability:
Appendix E Check
Description:
Specifications:
For an Appendix E test with consistent dates:
Locate another Appendix E test for the system where the BeginDate, BeginHour, and BeginMinute is before the EndDate, EndHour,
and EndMinute of the current test, and the EndDate, EndHour, and EndMinute is after the BeginDate, BeginHour, and BeginMinute
of the current test.
If found,
return result A.
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "APPE"; the
MonitoringSystemID is equal to MonitoringSystemID of the current test; the BeginDate, BeginHour, and BeginMinute is
before the EndDate, EndHour, and EndMinute of the current test, and the EndDate, EndHour, and EndMinute is after the
BeginDate, BeginHour, and BeginMinute of the current record; and the TestNum is not equal to the TestNumber in the
current test.
If not found,
If found,
return result A.
Results:
Result
A
Response
The test was conducted at the same time as another Appendix E test for
MonitoringSystemID [system].
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Appendix E Test (Pass 1)
Extra APPE Test Equals false
Environmental Protection Agency
Page 73 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-10
Check Name: Appendix E Test Begin Time Consistent with Run Times
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E test with valid begin time and run times:
If BeginDate, BeginHour, and BeginMinute does not equal the APPE Test Begin Date, Begin Hour, and Begin Minute,
return result A.
Results:
Result Response Severity
A You reported a test BeginDate, BeginHour, and BeginMinute that is not the same as the Critical Error Level 1
BeginDate, BeginHour, and BeginMinute of the first run in the Appendix E test.
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
Environmental Protection Agency
Page 74 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-11
Check Name: Appendix E Test End Time Consistent with Run Times
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E test with valid end time and run times:
If EndDate, EndHour, and EndMinute does not equal the APPE Test End Date, End Hour, and End Minute,
return result A.
Results:
Result Response Severity
A You reported an EndDate, EndHour, and EndMinute for the Appendix E test that is not Critical Error Level 1
the same as the EndDate, EndHour, and EndMinute of the last run in the test.
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
Environmental Protection Agency
Page 75 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-12
Check Name: Initialize Variables for Operating Level
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Test Summary record:
Set APPE Level Maximum HI Rate, APPE Level Sum HI Rate, APPE Level Sum Reference Value, and APPE Level Run Count to
0.
Add 1 to APPE Level Count.
Results:
Result Response
Usage:
1 Process/Category:
1 Process/Category:
2 Process/Category:
3 Process/Category:
4 Process/Category:
Severity
QA Test Evaluation Report — Appendix E Test Summary (Pass 1)
QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Gas Evaluation
QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
QA and Certification Data Entry Screen Evaluation Appendix E Test Run Evaluation
QA and Certification Data Entry Screen Evaluation Appendix E Test Summary Evaluation
Environmental Protection Agency
Page 76 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
APPE-13
Operating Level for Run Valid
Appendix E Check
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For the Appendix E Test Summary record:
If the OperatingLevelforRun is null,
return result A.
If the OperatingLevelforRun is not between 1 and 99,
return result B.
Results:
Result
A
B
Usage:
1
1
2
3
4
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Fatal
Critical Error Level 1
Process/Category: QA Test Evaluation Report — Appendix E Test Summary (Pass 1)
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Gas Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Run Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Summary Evaluation
Environmental Protection Agency
Page 77 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-14
Check Name:
Mean Reference Value for Level Valid
Related Former Checks:
Applicability:
Appendix E Check
Description:
Specifications:
For the Appendix E Test summary record:
If the MeanReference Value is null,
set APPE Level Sum Reference Value to null, return result A.
If the MeanReference Value is less than 0,
set APPE Level Sum Reference Value to null, return result B.
Otherwise,
If MeanReference Value is greater than 3,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — Appendix E Test Summary (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Summary Evaluation
Environmental Protection Agency
Page 78 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-15
Check Name: F-Factor Valid
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Test summary record:
If FFactor is null,
return result A.
If FFactor is less than 1000 or greater than 22000,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values from [minvalue] to [maxvalue].
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Test Summary (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Summary Evaluation
Environmental Protection Agency
Page 79 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-16
Check Name: Average Hourly Heat Input for Level Valid
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Test Summary record:
If the AverageHourlyHeatlnputRate is null,
return result A.
If the AverageHourlyHeatlnputRate is less than 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Test Summary (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Summary Evaluation
Environmental Protection Agency
Page 80 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-17
Check Name: Initialize Variables for Run
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Test Run:
Set APPE Calc Run Total HI and APPE Run System Count to 0.
Add 1 to APPE Level Run Count.
If RunNumber is not null,
If APPE Level Run Count is equal to 1,
If APPE Level Count is equal to 1, and the associated OperatingLevelForRun is not equal to 1,
set APPE Run Sequence Valid to false.
Otherwise,
If RunNumber is not equal to 1,
set APPE Run Sequence Consecutive to true.
Otherwise,
If RunNumber - APPE Last Run Number is not equal to 1,
set APPE Run Sequence Valid to false.
Set APPE Last Run Number to RunNumber.
Append RunNumber to APPE Run Sequence in numeric order.
Results:
Result Response Severity
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test Run (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Gas Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Environmental Protection Agency
Page 81 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-18
Check Name:
Run Number Valid
Related Former Checks:
Applicability:
Appendix E Check
Description:
Specifications:
For the Appendix E Test Run record:
If the RunNumber is null,
return result A.
If the RunNumber is less than or equal to 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
B You defined an invalid [fieldname] for [key]. This value must be greater than one and Critical Error Level 1
less than 20,000.
Usage:
1
Process/Category: QA Test Evaluation Report Appendix E Test Run (Pass 1)
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Gas Evaluation
2
Process/Category:
QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
3
Process/Category:
QA and Certification Data Entry Screen Evaluation Appendix E Test Run Evaluation
Environmental Protection Agency
Page 82 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Appendix E run:
If the BeginDate is null, or the BeginHour is null or not between 0 and 23, or the BeginMinute is null or not between 0 and 59.
return result A.
Results:
Result Response
A The BeginDate, BeginHour, and/or BeginMinute for [key] is invalid
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test Run (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Run Evaluation
APPE-19
Run Begin Time Valid
Appendix E Check
Severity
Critical Error Level 1
Environmental Protection Agency
Page 83 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Appendix E run:
set APPE Run Length to null.
If the EndDate is null, or the EndHour is null or not between 0 and 23, or the EndMinute is null or not between 0 and 59,
return result A.
Otherwise,
If the BeginDate is not null, the BeginHour is between 0 and 23, and the BeginMinute is between 0 and 59.
If the BeginDate, BeginHour, and BeginMinute is on or after the EndDate, EndHour, and EndMinute,
return result B.
APPE-20
Run End Time Valid
APPE-13
Appendix E Check
Otherwise,
Calculate APPE Run Length as the difference in minutes between the BeginDate/Hour/Minute and the
EndDate/Hour/Minute.
If APPE Run Length is less than 8,
return result C.
Results:
Result Response Severity
A The EndDate, EndHour, and/or EndMinute for [key] are invalid. Critical Error Level 1
B The begin time was later than the end time for [key]. Critical Error Level 1
C According to the Begin and End times for [key], the run was less than 8 minutes. Each Non-Critical Error
run must be at least 8 minutes in duration.
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test Run (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Run Evaluation
Environmental Protection Agency
Page 84 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-21
Check Name: Response Time Valid
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Test Run Data check:
If the ResponseTime is not null,
If the ResponseTime is not between 0 and 800,
return result A.
Results:
Result Response Severity
A The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values from [minvalue] to [maxvalue].
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test Run (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Run Evaluation
Environmental Protection Agency
Page 85 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-22
Check Name:
Reference Value for Run Valid
Related Former Checks:
Applicability:
Appendix E Check
Description:
Specifications:
For the Appendix E Test Run Data check:
If the ReferenceValue is null,
set APPE Level Sum Reference Value to -1, and return result A.
If the ReferenceValue is less than 0,
set APPE Level Sum Reference Value to -1, and return result B.
Otherwise,
If APPE Level Sum Reference Value is greater than or equal to 0,
add ReferenceValue to APPE Level Sum Reference Value.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Appendix E Test Run (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Run Evaluation
Environmental Protection Agency
Page 86 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Appendix E Test run:
If the HourlyHeatlnputRate is null,
return result A.
If the HourlyHeatlnputRate is less than or equal to 0,
return result B.
If the HourlyHeatlnputRate is greater than APPE Level Maximum HI Rate,
set APPE Level Maximum HI Rate to HourlyHeatlnputRate.
APPE-23
Hourly Heat Input Rate for Run Valid
Appendix E Check
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B You defined an invalid [fieldname] for [key]. This value must be greater than one and Critical Error Level 1
less than 20,000.
Usage:
1 Process/Category:
1 Process/Category:
QA Test Evaluation Report Appendix E Test Run (Pass 1)
QA and Certification Data Entry Screen Evaluation Appendix E Test Run Evaluation
Environmental Protection Agency
Page 87 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: APPE-24
Check Name: Total Heat Input for Run Valid
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Test Run Data check:
If the TotalHeatlnput is null,
return result A.
If the TotalHeatlnput is less than or equal to 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B You defined an invalid [fieldname] for [key]. This value must be greater than one and Critical Error Level 1
less than 20,000.
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test Run (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Run Evaluation
Environmental Protection Agency
Page 88 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-25
Check Name:
Determine Oil System Type
Related Former Checks:
Applicability:
Appendix E Check
Description:
Specifications:
For the Appendix E Oil record:
Set APPE Oil System Type to null.
Add 1 to APPE Run System Count.
If the MonitoringSystemID is null,
return result A.
Otherwise,
Locate the Monitor System record for the location where the MonitoringSystemID is equal to the MonitoringSystemID in
the current record.
Set APPE Oil System Type to the SystemTypeCode in the retrieved record.
Results:
Result
A
Response
You did not provide [fieldname], which is required for [key].
Severity
Fatal
Usage:
1
Process/Category: QA Test Evaluation Report Appendix E Heat Input from Oil
1
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Environmental Protection Agency
Page 89 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-26
Check Name: Volumetric Oil Flow Valid
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Oil record:
If OilVolume is null, and APPE Oil System Type is equal to "OILV",
return result A.
If APPE Oil System Type is equal to "OILM", and either OilVolume or OilVolumeUnitsOfMeasureCode is not null,
return result B.
If OilVolume is less than or equal to 0,
return result C.
Results:
Result Response Severity
A You did not report a value for [fieldname] in the oil flow record for [key]. You must Critical Error Level 1
report a value in this field when you are using an OILV system.
B You reported a value for [fieldnames] in the oil flow record for [key]. You must not Critical Error Level 1
report a value in this field if you are using an OILM system.
C You defined an invalid [fieldname] for [key]. This value must be greater than one and Critical Error Level 1
less than 20,000.
Usage:
1 Process/Category:
1 Process/Category:
QA Test Evaluation Report Appendix E Heat Input from Oil
QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Environmental Protection Agency
Page 90 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-27
Check Name: Volumetric Oil Units of Measure Valid
Related Former Checks:
Applicability: Appendix E Check
Description:
Validation Tables:
Oil Volume UOM to Density UOM to GCV UOM (Cross Check Table)
Oil Volume UOM to Density UOM to GCV UOM (Cross Check Table)
Specifications:
For the Appendix E Oil record:
Set APPE Oil Density UOM and APPE Oil GCV UOM to null.
If OilVolumeUnitsOfMeasureCode is null,
If APPE Oil System Type is equal to "OILV",
return result A.
Otherwise,
Locate a record in the Oil Volume UOM to Density UOM to GCV UOM cross-check table where the OilVolumeUOM is
equal to the OilVolumeUnitsOfMeasureCode in the current record.
If not found,
return result B.
Otherwise,
set APPE Oil Density UOM to the OilDensityUOM in the cross-check record,
set APPE Oil GCV UOM to the OilGCVUOM in the cross-check record.
Results:
Result
A
B
Usage:
1
1
Response
You did not report a value for [fieldname] in the oil flow record for [key]. You must
report a value in this field when you are using an OILV system.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Appendix E Heat Input from Oil
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Environmental Protection Agency
Page 91 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-28
Check Name: Oil Density Units of Measure Valid
Related Former Checks: APPE-30
Applicability: Appendix E Check
Description:
Validation Tables:
Parameter UOM (Complex Lookup Table)
Parameter UOM (Complex Lookup Table)
Specifications:
For the Appendix E Oil record:
Set APPE Oil Density Minimum Value and APPE Oil Density Maximum Value to null.
Set APPE Oil Density UOM Valid to false.
If OilDensityUnitsOfMeasureCode is null,
If APPE Oil System Type is equal to "OILV" and OilDensity is not null,
return result A.
Otherwise,
Locate a record in the Parameter to Units Of Measure Lookup Table where the ParameterCode is equal to "DENSOIL" and
the UnitsOfMeasure is equal to the OilDensityUnitsOfMeasureCode in the current record.
If not found,
return result B.
Otherwise,
If APPE Oil Density UOM is not null,
If OilDensityUnitsOfMeasureCode is not equal to the APPE Oil Density UOM,
return result C.
Otherwise,
set APPE Oil Density UOM Valid to true.
set APPE Oil Density Minimum Value to Min Value in the lookup table record,
set APPE Oil Density Maximum Value to Max Value in the lookup table record.
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
The [fieldname] is inconsistent with the OilVolumeUnitsOfMeasureCode for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Appendix E Heat Input from Oil
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Environmental Protection Agency
Page 92 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Appendix E Oil record:
If APPE Oil System Type is equal to "OILM", and either OilDensity or OilDensityUnitsOfMeasureCode is not null,
return result A.
If OilDensity is null,
If APPE Oil System Type is "OILV" and OilMass is not null,
return result B.
If OilDensity is not null,
If OilDensity is less than or equal to 0,
return result C.
If APPE Oil Density Minimum Value is not null,
If the OilDensity is less than the APPE Oil Density Minimum Value,
return result D.
APPE-29
Oil Density Valid
APPE-31C
Appendix E Check
If APPE Oil Density Maximum Value is not null,
If the OilDensity is greater than the APPE Oil Density Maximum Value,
return result D.
Results:
Result
A
B
C
D
Usage:
1
1
Response
You reported a value for [fieldnames] in the oil flow record for [key]. You must not
report a value in this field if you are using an OILM system.
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Appendix E Heat Input from Oil
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Environmental Protection Agency
Page 93 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-30
Check Name: Mass Oil Flow Valid
Related Former Checks: APPE-31B/D
Applicability: Appendix E Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Test Tolerances (Cross Check Table)
Specifications:
For the Appendix E Oil record:
Set APPE Calc Oil Mass to null.
If OilMass is null,
If APPE System Type is equal to "OILM",
return result A.
Otherwise,
If OilMass is less than or equal to 0,
return result B.
If APPE System Type is equal to "OILV", and APPE Oil Density UOM Valid is true,
If OilVolume and OilDensity are greater than 0,
Calculate APPE Calc Oil Mass = OilVolume * OilDensity, and round to 1 decimal place.
If OilMass is not equal to APPE Calc Oil Mass,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "APPE" and the
FieldDescription is equal to "OilMass".
If the absolute value of the difference between OilMass and APPE Calc Oil Mass is greater than
the Tolerance in the cross-check record,
return result C.
Otherwise,
set APPE Calc Oil Mass to OilMass.
Results:
Result
A
B
C
Response
You did not report a value for [fieldname] in the oil flow record for [key]. You must
report a value for [fieldname] when you are using an OILM system.
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The OilMass recalculated from the OilVolume and OilDensity reported in the oil flow
record for [key] does not equal the reported value.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 94 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Heat Input from Oil
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Environmental Protection Agency
Page 95 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-31
Check Name: Oil GCV Units of Measure Valid
Related Former Checks: APPE-29
Applicability: Appendix E Check
Description:
Validation Tables:
Parameter UOM (Complex Lookup Table)
Parameter UOM (Complex Lookup Table)
Specifications:
For the Appendix E Oil record:
Set APPE Oil GCV Minimum Value and APPE Oil GCV Maximum Value to null.
Set APPE Oil GCV UOM Valid to false.
If OilGCVUnitsOfMeasureCode is null,
return result A.
Otherwise,
If OilMass is not null,
If OilGCVUnitsOfMeasureCode is not equal to "BTULB",
return result B.
Otherwise,
Locate the record in the Parameter to Units Of Measure Lookup Table where the ParameterCode is equal
to "GCV" and the UnitsOfMeasure is equal to the "BTULB".
set APPE Oil GCV UOM Valid to true.
set APPE Oil GCV Minimum Value to Min Value in the lookup table record,
set APPE Oil GCV Maximum Value to Max Value in the lookup table record.
Otherwise,
Locate a record in the Parameter to Units Of Measure Lookup Table where the ParameterCode is equal to "GCV"
and the UnitsOfMeasure is equal to the OilGCVUnitsOfMeasureCode in the current record.
If not found,
return result B.
Otherwise,
If APPE Oil GCV UOM is not null,
If OilGCVUnitsOfMeasureCode is not equal to the APPE Oil GCV UOM,
return result C.
Otherwise,
set APPE Oil GCV UOM Valid to true.
set APPE Oil GCV Minimum Value to Min Value in the lookup table record,
set APPE Oil GCV Maximum Value to Max Value in the lookup table record.
Environmental Protection Agency
Page 96 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
The OilGCVUnitsOfMeasureCode in the oil flow record for [key] is not valid. You
must report GCV in BTULB when you report a value for OilMass.
The [fieldname] is inconsistent with the OilVolumeUnitsOfMeasureCode for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Appendix E Heat Input from Oil
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Environmental Protection Agency
Page 97 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Appendix E Oil record:
If OilGCV is null,
return result A.
Otherwise,
If OilGCV is less than or equal to 0,
return result B.
If APPE Oil GCV Minimum Value is not null,
If the OilGCV is less than the APPE Oil GCV Minimum Value,
return result C.
If APPE Oil GCV Maximum Value is not null,
If the OilGCV is greater than the APPE Oil GCV Maximum Value,
return result C.
APPE-32
Oil GCV Valid
Appendix E Check
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Appendix E Heat Input from Oil
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Environmental Protection Agency
Page 98 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-33
Check Name: Heat Input from Oil Valid
Related Former Checks: APPE-32
Applicability: Appendix E Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Test Tolerances (Cross Check Table)
Specifications:
For the Appendix E Oil record:
Set APPE Calc Oil Heat Input to null.
If APPE GCV UOM Valid is true and OilGCV is greater than 0,
If APPE Calc Oil Mass is not null,
Calculate APPE Calc Oil Heat Input = APPE Calc Oil Mass * OilGCV / 1000000, and round the result to 1
decimal place.
Otherwise,
If OilMass is greater than 0,
Calculate APPE Calc Oil Heat Input = OilMass * OilGCV / 1000000, and round the result to 1 decimal
place.
Otherwise,
If OilVolume is greater than 0,
Calculate APPE Calc Oil Heat Input = OilVolume * OilGCV / 1000000, and round the result to 1
decimal place.
If OilHeatlnput is null,
return result A.
If OilHeatlnput is less than or equal to 0,
return result B.
If APPE Calc Oil Heat Input is null,
set APPE Calc Run Total HI to null.
Otherwise,
If APPE Calc Oil Heat Input is equal to OilHeatlnput,
If APPE Calc Run Total HI is not null,
Add OilHeatlnput to APPE Calc Run Total HI.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "APPE" and the
FieldDescription is equal to "HeatlnputRate".
If the absolute value of the difference between OilHeatlnput and APPE Calc Oil Heat Input is greater than the
Environmental Protection Agency
Page 99 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Tolerance in the cross-check record,
If APPE Calc Run Total HI is not null,
Add APPE Calc Oil Heat Input to APPE Calc Run Total HI, and return result C.
Otherwise,
return result C.
Otherwise,
If APPE Calc Run Total HI is not null,
Add OilHeatlnput to APPE Calc Run Total HI.
In the QA Evaluation process, the APPE Calc Oil Heat Input will be stored in the Appendix E Oil record.
Results:
Result Response
A You did not provide [fieldname], which is required for [key],
B You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
C The heat input recalculated from the values reported in the oil record for [key] does not
equal the reported OilHeatlnput.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Appendix E Heat Input from Oil
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Environmental Protection Agency
Page 100 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Appendix E gas record:
Add 1 to APPE Run System Count.
If Gas Volume is null,
return result A.
If Gas Volume is less than or equal to 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B You defined an invalid [fieldname] for [key]. This value must be greater than one and Critical Error Level 1
less than 20,000.
Usage:
1 Process/Category:
1 Process/Category:
APPE-34
Gas Volume Valid
Appendix E Check
QA Test Evaluation Report Appendix E Heat Input from Gas
QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Gas Evaluation
Environmental Protection Agency
Page 101 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-35
Check Name: Gas GCV Valid
Related Former Checks:
Applicability: Appendix E Check
Description:
Validation Tables:
Parameter UOM (Complex Lookup Table)
Parameter UOM (Complex Lookup Table)
Specifications:
For the Appendix E Gas record:
If GasGCV is null,
return result A.
Otherwise,
If GasGCV is less than or equal to 0,
return result B.
Otherwise,
Locate the record in the Parameter to Units Of Measure Lookup Table where the ParameterCode is equal to "GCV"
and the UnitsOfMeasure is equal to the "BTUHSCF".
Set APPE Gas GCV Minimum Value to Min Value in the retrieved record.
Set APPE Gas GCV Maximum Value to Max Value in the retrieved record.
If APPE Gas GCV Minimum Value is not null,
If the GasGCV is less than the APPE Gas GCV Minimum Value,
return result C.
If APPE Gas GCV Maximum Value is not null,
Results:
Result
A
B
Usage:
1
1
If the GasGCV is greater than the APPE Gas GCV Maximum Value,
return result C.
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Appendix E Heat Input from Gas
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Gas Evaluation
Environmental Protection Agency
Page 102 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-36
Check Name: Heat Input for Gas Valid
Related Former Checks: APPE-35
Applicability: Appendix E Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Test Tolerances (Cross Check Table)
Specifications:
For the Appendix E Gas record:
Set APPE Calc Gas Heat Input to null.
If GasGCV and GasVolume are both greater than 0,
Calculate APPE Calc Gas Heat Input = GasVolume * GasGCV / 1000000, and round the result to 1 decimal place.
If GasHeatlnput is null,
return result A.
If GasHeatlnput is less than or equal to 0,
return result B.
If APPE Calc Gas Heat Input is null,
set APPE Calc Run Total HI to null.
Otherwise,
If APPE Calc Gas Heat Input is equal to GasHeatlnput,
If APPE Calc Run Total HI is not null,
Add GasHeatlnput to APPE Calc Run Total HI.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "APPE" and the
FieldDescription is equal to "HeatlnputRate".
If the absolute value of the difference between GasHeatlnput and APPE Calc Gas Heat Input is greater than the
Tolerance in the cross-check record,
If APPE Calc Run Total HI is not null,
Add APPE Calc Gas Heat Input to APPE Calc Run Total HI, and return result C.
Otherwise,
return result C.
Otherwise,
If APPE Calc Run Total HI is not null,
Add GasHeatlnput to APPE Calc Run Total HI.
In the QA Evaluation process, the APPE Calc Gas Heat Input will be stored in the Appendix E Gas record.
Environmental Protection Agency
Page 103 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The heat input recalculated from the values reported in the gas record for [key] is not
equal to the GasHeatlnput.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Appendix E Heat Input from Gas
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Gas Evaluation
Environmental Protection Agency
Page 104 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-37
Check Name:
Reported Total HI for Run Consistent with Recalculated Value
Related Former Checks: APPE-16
Applicability:
Appendix E Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the Appendix E run:
If APPE Run System Count is equal to the number of items in the APPE System List,
Set APPE Use Calculated Run HI to true.
If APPE Calc Run Total HI is not null, TotalHeatlnput is greater than 0, and APPE Calc Run Total HI is not equal to
TotalHeatlnput,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "APPE" and the
FieldDescription is equal to "Heatlnput".
If the absolute value of the difference between TotalHeatlnput and APPE Calc Run Total HI is greater than the
Tolerance in the cross-check record,
return result A.
Otherwise,
Set APPE Use Calculated Run HI to false.
Otherwise,
set APPE Use Calculated Run HI to false.
set APPE Gas and Oil Systems Consistent to false.
set APPE Calc Run Total HI to null.
Results:
Result
A
Response
The reported TotalHeatlnput is not consistent with the value recalculated from the
Appendix E oil and gas records for [key].
Severity
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Appendix E Test Run (Pass 2)
Environmental Protection Agency
Page 105 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: APPE-38
Check Name: Insufficient Number of Runs
Related Former Checks: APPE-7
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E summary record:
If APPE Level Run Count is less than 3,
return result A.
Results:
Result Response Severity
A The Appendix E test contains fewer than three run records for [key], A minimum of Critical Error Level 1
three runs are required at each operating level.
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Test Summary (Pass 2)
Environmental Protection Agency
Page 106 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-39
Check Name: Heat Input Rate for Run Consistent with Operating Level
Related Former Checks: APPE-36
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Test summary record:
If APPE Heat Input Consistent with Operating Level is true,
If Last APPE Maximum HI Rate is greater than APPE Level Maximum HI Rate,
set Calculate APPE Segments and APPE Heat Input Consistent with Operating Level to false, and return result A.
Otherwise,
set Last APPE Maximum HI Rate to APPE Level Maximum HI Rate.
Results:
Result
Response
This test included one or more runs with an HourlyHeatlnputRate which is greater than
or equal to the HourlyHeatlnputRate for a run for a higher operating level.
Severity
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — Appendix E Test Summary (Pass 2)
Environmental Protection Agency
Page 107 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-40
Check Name: Reported Arithmetic Mean of Reference Values for Level Consistent with Recalculated Value
Related Former Checks: APPE-21
Applicability: Appendix E Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the Appendix E Test summary record:
If APPE Level Sum Reference Value is greater than or equal to 0, and APPE Level Run Count is greater than or equal to 3,
Calculate APPE Calc Level Mean Reference Value = APPE Level Sum Reference Value / APPE Level Run Count, and
round the result to 3 decimal places.
If MeanReferenceValue is greater than 0 and not equal to APPE Calc Level Mean Reference Value,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "APPE" and the
FieldDescription is equal to "MeanReferenceValue".
If the absolute value of the difference between MeanReferenceValue and APPE Calc Level Mean Reference Value
is greater than the Tolerance in the cross-check record,
set APPE NOx Rate Array (APPE Level Count) to APPE Calc Mean Reference Value, and return result A.
Otherwise,
set APPE NOx Rate Array (APPE Level Count) to MeanReferenceValue.
Otherwise,
set APPE NOx Rate Array (APPE Level Count) to APPE Calc Mean Reference Value.
If APPE Maximum NOx Rate is less than APPE NOx Rate Array (APPE Level Count),
set APPE Maximum NOx Rate to APPE NOx Rate Array (APPE Level Count).
Otherwise,
set APPE Calc Level Mean Reference Value to null, and Calculate APPE Segments to false.
Results:
Result Response Severity
A The MeanReferenceValue reported for [key] is inconsistent with the value recalculated Critical Error Level 1
from the run data for the test.
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Test Summary (Pass 2)
Environmental Protection Agency
Page 108 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-41
Check Name: Reported Average Heat Input Rate for Level Consistent with Recalculated Value
Related Former Checks: APPE-22
Applicability: Appendix E Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the Appendix E Test summary record:
If APPE Level Sum HI Rate is not null, and APPE Level Run Count is greater than or equal to 3,
Calculate APPE Calc Level Average HI Rate = APPE Level Sum HI Rate / APPE Level Run Count, and round the result to
1 decimal place.
If AverageHourlyHeatlnputRate is greater than 0 and not equal to APPE Calc Level Average HI Rate,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "APPE" and the
FieldDescription is equal to "HeatlnputRate".
If the absolute value of the difference between = AverageHourlyHeatlnputRate and APPE Calc Level Average HI
Rate is greater than the Tolerance in the cross-check record,
set APPE Heat Input Rate Array (APPE Level Count) to APPE Calc Level Average HI Rate, and return
result A.
Otherwise,
set APPE Heat Input Rate Array (APPE Level Count) to AverageHourlyHeatlnputRate.
Otherwise,
set APPE Heat Input Rate Array (APPE Level Count) to APPE Calc Level Average HI Rate.
Otherwise,
set APPE Calc Level Average HI Rate to null, and Calculate APPE Segments to false.
In the QA Evaluation process, the APPE Calc Level Average HI Rate and APPE Calc Level Mean Reference Value will be stored in
the Appendix E Summary record.
Results:
Result Response Severity
A The AverageHourlyHeatlnputRate reported for [key] is inconsistent with the value Critical Error Level 1
recalculated from the run and fuel data for the operating level.
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Test Summary (Pass 2)
Environmental Protection Agency
Page 109 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-42
Check Name: Insufficient Number of Operating Levels
Related Former Checks: APPE-8
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E test:
Set APPE Level Count Validated to true.
If the APPE Level Count is less than 4,
set Calculate APPE Segments to false, and return result A.
Results:
Result Response Severity
A You have included Appendix E runs at fewer than four operating levels. Appendix E Critical Error Level 1
tests for units subject to Part 75 must be performed at at least four operating levels.
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 2)
Environmental Protection Agency
Page 110 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-43
Check Name: Appendix E Oil and Gas Records Consistent
Related Former Checks: APPE-10/11/12
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E test:
If Calculate APPE Segments is equal to false,
set APPE NOx Rate Array and APPE HI Rate Array to null.
If APPE Gas and Oil Systems Consistent is equal to false,
set APPE NOx Rate Array and APPE HI Rate Array to null, and return result A.
If the APPE System Fuel Code is null,
set APPE NOx Rate Array and APPE HI Rate Array to null, and return result B.
If the number of items in the APPE System List is equal to 1,
If the APPE System Fuel Code is equal to "MIX"
set APPE NOx Rate Array and APPE HI Rate Array to null, and return result C.
Otherwise,
Locate the Monitor System record for the location where the MonitoringSystemID is equal to the APPE System
List.
If the FuelCode of the retrieved record is not equal to the APPE System Fuel Code,
set APPE NOx Rate Array and APPE HI Rate Array to null, and return result D.
Otherwise,
If the APPE System Fuel Code is not equal to "MIX",
set APPE NOx Rate Array and APPE HI Rate Array to null, and return result E.
In the QA Evaluation Process, for tests that have not yet been submitted or have been approved for resubmission) the appropriate
values will be stored in the QA Supp Data and QA Supp Data Attribute records for the test.
Results:
Result
A
B
C
D
E
Response
You have defined an inconsistent number of fuel flow records for this test. There must
be the same combination of supporting fuel flow records for each run.
The Monitoring System record for the fuel flow system used in this test did not contain a
FuelCode. The Appendix E test could not be validated.
You reported only one fuel flow record for the test. You must define at least two fuel
flow records for a NOXE system with a fuel code equal to MIX.
The FuelCode in the Monitor System record for the fuel flow system is not equal to the
FuelCode associated with the NOXE system.
You reported fuel flow records for more than one fuel flow system. You are only
allowed to report fuel flow records for more than one fuel flow system when the NOXE
system has a FuelCode equal to MIX.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 111 of706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 2)
Environmental Protection Agency
Page 112 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-44
Check Name:
Hourly Heat Input Rate Consistent with Recalculated Value
Related Former Checks: APPE-15
Applicability:
Appendix E Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the Appendix E Test run:
If APPE Calc Run Total HI and APPE Run Length are both not null,
If APPE Use Calculated Run HI is true,
Calculate APPE Calc Run HI Rate = APPE Calc Run Total HI / APPE Run Length * 60, and round the result to 1
decimal place.
Otherwise,
Calculate APPE Calc Run HI Rate = TotalHeatlnput / APPE Run Length * 60, and round the result to 1 decimal
place.
If HourlyHeatlnputRate is greater than 0 and is not equal to APPE Calc Run HI Rate,
Calculate minrate = APPE Calc Run Total HI / (APPE Run Length + 1) * 60, and round the result to 1 decimal
place.
If APPE Run Length is equal to 1,
set maxrate to 99999.9
Otherwise,
calculate maxrate = APPE Calc Run Total HI / (APPE Run Length - 1) * 60, and round the result to 1
decimal place.
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "APPE" and the
FieldDescription is equal to "HeatlnputRate".
Subtract the Tolerance in the cross-check record from minrate.
Add the Tolerance in the cross-check record to maxrate.
If the HourlyHeatlnputRate is less than minrate or is greater than maxrate,
If APPE Level Sum HI Rate is not null,
add APPE Calc Run HI Rate to APPE Level Sum HI Rate, and return result A.
Otherwise,
return result A.
Otherwise,
If APPE Level Sum HI Rate is not null,
add HourlyHeatlnputRate to APPE Level Sum HI Rate.
Otherwise,
If APPE Level Sum HI Rate is not null,
Environmental Protection Agency
Page 113 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
add APPE Calc Run HI Rate to APPE Level Sum HI Rate.
Otherwise,
set APPE Calc Run HI Rate and APPE Level Sum HI Rate to null.
In the QA Evaluation process, the APPE Calc Run HI Rate and APPE Calc Run Total HI will be stored in the Appendix E Run
record.
Results:
Result Response Severity
A The HourlyHeatlnputRate for [key] does not correspond to the hourly heat input rate Critical Error Level 1
recalculated from the start and end times and heat input derived from the Appendix E
gas and oil records.
Usage:
1 Process/Category: QA Test Evaluation Report Appendix E Test Run (Pass 2)
Environmental Protection Agency
Page 114 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-52
Check Name:
Maximum NOx Rate Consistent with NORX Default
Related Former Checks:
Applicability:
Appendix E Check
Description:
Specifications:
For the test with an APPE Maximum NOx Rate greater than 0 and a non-null APPE System Fuel Code:
Locate all Monitor Default records for the location where the ParameterCode is equal to "NORX", the PurposeCode is equal to
"MD", the FuelCode is equal to the APPE System Fuel Code, the BeginDate and BeginFtour is on or before the EndDate and
Endhour in the current test, and the EndDate is null or the EndDate and EndFtour is after the EndDate and EndFtour in the current
test.
Locate the earliest Monitor Default record for the location where the ParameterCode is equal to "NORX", the PurposeCode
is equal to "MD", the FuelCode is equal to the APPE System Fuel Code, and the EndDate is null or the EndDate and
EndFtour is after the EndDate and EndFtour in the current test.
If not found,
return result A.
If found, and the DefaultValue is less than the APPE Maximum NOx Rate,
return result B.
If found, and the DefaultValue in any record is less than the APPE Maximum NOx Rate,
If not found,
return result B.
Results:
Result
A
Response
You have not defined a maximum NOx emission rate default value for the fuel to be
used for missing data purposes in the monitoring plan.
Fhe maximum NOx emission rate calculated for this test exceeds the fuel-specific
maximum NOx rate default value that was reported in the monitoring plan.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1
Process/Category: QA Fest Evaluation Report Appendix E Fest (Pass 2)
Environmental Protection Agency
Page 115 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Appendix E Gas record:
If MonitoringSystemID is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Gas Evaluation
APPE-45
Gas Monitoring System ID Valid
Appendix E Check
Environmental Protection Agency
Page 116 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-46
Check Name:
Duplicate Appendix E Test
Related Former Checks:
Applicability:
Appendix E Check
Description:
Specifications:
For the Appendix E test with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode is equal to "APPE" and the TestNumber is equal to
the TestNumber in the current record.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "APPE" and the TestNumber
is equal to the TestNumber in the current record.
If found,
return result B.
If found,
return result A.
Results:
Result
A
Response
Another [testtype] with this test number already exists. You must assign a different test
number.
You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
Environmental Protection Agency
Page 117 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Appendix E test:
If MonitoringSystemID is null,
return result A.
Results:
Severity
Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
APPE-47
Appendix E Monitoring System ID Valid
Appendix E Check
Result Response
A You did not provide [fieldname], which is required for [key].
Environmental Protection Agency
Page 118 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: APPE-48
Check Name: Duplicate Appendix E Summary
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Summary record with a non-null OperatingLevelforRun:
Locate another Appendix E Summary record for the test where the OperatingLevelforRun is equal to the OperatingLevelforRun in
the current record.
If found,
return result A.
Results:
Result Response Severity
A Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Summary Evaluation
Environmental Protection Agency
Page 119 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: APPE-49
Check Name: Duplicate Appendix E Run
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Run record with a OperatingLevelforRun and RunNumber that are not null.
Locate another Appendix E Run record for the test where the OperatingLevelforRun and RunNumber are equal to the
OperatingLevelforRun and RunNumber in the current record.
If found,
return result A.
Results:
Result Response Severity
A Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Run Evaluation
Environmental Protection Agency
Page 120 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: APPE-50
Check Name: Duplicate Appendix E Oil Record
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Oil record with a OperatingLevelforRun, RunNumber, and MonitoringSystemID that are not null.
Locate another Appendix E Oil record for the test where the OperatingLevelforRun, RunNumber, and MonitoringSystemID are
equal to the OperatingLevelforRun, RunNumber, and MonitoringSystemID in the current record.
If found,
return result A.
Results:
Result Response Severity
A Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Oil Evaluation
Environmental Protection Agency
Page 121 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: APPE-51
Check Name: Duplicate Appendix E Gas Record
Related Former Checks:
Applicability: Appendix E Check
Description:
Specifications:
For the Appendix E Gas record with a OperatingLevelforRun, RunNumber, and MonitoringSystemID that are not null.
Locate another Appendix E Gas record for the test where the OperatingLevelforRun, RunNumber, and MonitoringSystemID are
equal to the OperatingLevelforRun, RunNumber, and MonitoringSystemID in the current record.
If found,
return result A.
Results:
Result Response Severity
A Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Heat Input from Gas Evaluation
Environmental Protection Agency
Page 122 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-53
Check Name:
Calculate Heat Input for Gas
Related Former Checks:
Applicability:
Appendix E Check
Description:
Specifications:
For the Appendix E Gas record:
Set APPE Gas Calc HI to null.
If GasGCV is null or is less than or equal to 0; or GasVolume is null or is less than or equal to 0,
return result A.
Otherwise,
Calculate APPE Gas Calc HI = GasVolume * GasGCV / 1000000, and round the result to 1 decimal place.
Results:
Result
A
Response
The values in this record could not be calculated because of invalid data.
Severity
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E HI from Gas Calculations
Environmental Protection Agency
Page 123 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-54
Check Name:
Calculate Heat Input for Oil
Related Former Checks:
Applicability:
Appendix E Check
Description:
Validation Tables:
Oil Volume UOM to Density UOM to GCV UOM (Cross Check Table)
Specifications:
For the Appendix E Oil record:
Set APPE Oil Calc HI and APPE Oil Calc Oil Mass to null.
If OilGCVUnitsOfMeasureCode is null; or OilGCV is null or is less than or equal to 0; or OilVolume is not null and is less than or
equal 0; or OilMass is not null and is less than or equal to 0,
return result A.
If both OilVolume and OilMass are null,
return result A.
If OilVolume is null or OilMassDensityUnitsOfMeasure is not null,
If OilGCVUnitsOfMeasureCode is not equal to "BTULB",
return result A.
If OilVolume is null,
Calculate APPE Oil Calc HI = OilMass * OilGCV / 1000000, and round the result to 1 decimal place
Otherwise,
If OilVolumeUnitsOfMeasureCode is null,
return result A.
Locate a record in the Oil Volume UOM to Density UOM to GCV UOM cross-check table where the
OilVolumeUOM is equal to the OilVolumeUnitsOfMeasureCode in the current record.
If not found,
return result A.
If found,
If the OilDensityUnitsOfMeasure is null,
If the OilGCVUnitsOfMeasureCode is not equal to the OilGCVUOM in the cross check record,
return result A.
Otherwise,
Calculate APPE Oil Calc HI = OilVolume * OilGCV / 1000000, and round the result to 1
decimal place.
Otherwise,
If OilDensityUnitsOfMeasureCode is not equal to the OilDensityUOM in the cross check record,
return result A.
Otherwise,
Environmental Protection Agency
Page 124 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
Calculate APPE Oil Calc Mass Oil = OilVolume * OilDensity.
Calculate APPE Oil Calc HI = APPE Oil Calc Mass Oil * OilGCV / 1000000, and round
the result to 1 decimal place.
Round APPE Oil Calc Mass Oil to 1 decimal place.
Results:
Result Response Severity
A The values in this record could not be calculated because of invalid data. Critical Error Level 1
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E HI from Oil Calculations
Environmental Protection Agency
Page 125 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Appendix E Test run:
Set APPE Run Calc HI and APPE Run Calc HI Rate to null.
If the EndDate is null, or the EndHour is null or not between 0 and 23, or the EndMinute is null or not between 0 and 59,
return result A.
If the BeginDate is null, the BeginHour is null or not between 0 and 23, or the BeginMinute is null or is not between 0 and 59,
return result A.
If the BeginDate, BeginHour, and BeginMinute is on or after the EndDate, EndHour, and EndMinute,
return result A.
Otherwise,
set tmpHI to 0.
For each Appendix E Oil record for the run.
If OilHeatlnput is null or is less than or equal to 0,
return result A.
Otherwise,
add OilHeatlnput to tmpHI.
For each Appendix E Gas record for the run.
If GasHeatlnput is null or is less than or equal to 0,
return result A.
Otherwise,
add GasHeatlnput to tmpHI.
If tmpHI is equal to 0,
return result B.
Otherwise,
Set APPE Run Calc HI to tmpHI.
Calculate APPE Run Calc HI Rate = tmpHI / (the difference in minutes between the BeginDate/Hour/Minute and
the EndDate/Hour/Minute) * 60, and round the result to 1 decimal place.
APPE-5 5
Calculate Appendix E Run
Appendix E Check
Results:
Result Response Severity
A The values in this record could not be calculated because of invalid data. Critical Error Level 1
B The values in this record could not be calculated because you did not report any gas or Critical Error Level 1
oil records.
Environmental Protection Agency
Page 126 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Run Calculations
Environmental Protection Agency
Page 127 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
APPE-56
Check Name:
Calculate Appendix E Summary
Related Former Checks:
Applicability:
Appendix E Check
Description:
Specifications:
For the Appendix E Test Summary record.:
Set APPE Calc Avg HI Rate and APPE Calc Mean RV to null.
If OperatingLevelforRun is null or is less than or equal to 0,
set tmpCt, tmpHI, and tmpRV to 0.
For each Appendix E run record for the operating level:
add 1 to tmpCt.
If Hourly HeatlnputRate is null or is less than or equal to 0; or ReferenceValue is null or is less than or equal to 0,
return result A.
Otherwise,
If tmpCt is less than 3,
return result B.
Otherwise,
Calculate APPE Avg HI Rate = tmpHI / tmpCt, and round the result to 1 decimal place.
Calculate APPE Mean RV = tmpRV / tmpCt, and round the result to 3 decimal places.
return result A.
Otherwise,
add HourlyHeatlnputRate to tmpHI.
add ReferenceValue to tmpRV.
Results:
Result
A
B
Response
The values in this record could not be calculated because of invalid data.
The Appendix E test contains fewer than three run records for [key], A minimum of
three runs are required at each operating level.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Summary Calculations
Environmental Protection Agency
Page 128 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Cycle Time Test
Environmental Protection Agency
Page 129 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
CYCLE-1
Check Name:
Initialize Cycle Time Test Variables
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the calibration test:
Set Cycle Time Zero Injection Count and Cycle Time High Injection Count to 0.
Set Cycle Time Calc Total Cycle Time to -1.
Set Cycle Time Calc Test Result, Cycle Time Zero Reference Value, and Cycle Time High Reference Value to null.
Set Cycle Time Injection Times Valid to true.
Set Cycle Time Test Begin Date, Cycle Time Test Begin Hour, Cycle Time Test Begin Minute, Cycle Time Test End Date, Cycle
Time Test End Hour, and Cycle Time Test End Minute to null.
Results:
Result
Response
Severity
Usage:
1
Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Injection Evaluation
2
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
Environmental Protection Agency
Page 130 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
CYCLE-2
Check Name:
Component Type Valid
Related Former Checks: CYCL-2
Applicability:
CEM Check
Description:
Specifications:
For the cycle time test:
If the ComponentID is null,
set Cycle Time Test Component Type Valid to false, and return result A.
Otherwise,
If the ComponentTypeCode of the associated component is equal to "S02", "NOX", "C02", "02", or "HG",
set Cycle Time Test Component Type Valid to true.
Otherwise,
set Cycle Time Test Component Type Valid to false, and return result B.
If Cycle Time Test Component is invalid, do not perform checks for Cycle Time Injection category. Set the calculated values in the
associated Cycle Time Injection records to null.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The component type code in the monitoring plan is [comptype]. This type of component
is not appropriate for a cycle time test.
Severity
Fatal
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
Environmental Protection Agency
Page 131 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: CYCLE-3
Check Name: Aborted Cycle Time Test Not Evaluated
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the cycle time test:
If the TestResultCode is equal to "ABORTED",
set Cycle Time Test Aborted to true, Cycle Time Calc Test Result to "ABORTED", and return result A.
Do not perform checks for the Cycle Time Injection category.
Set all calculated values in associated Cycle Time Injection records to null.
Otherwise,
set Cycle Time Test Aborted to false.
Results:
Result Response Severity
A The TestResultCode indicates that the test was aborted. [Children] records for this test Informational Message
will not be evaluated. If the test was aborted for a reason not related to monitor
performance, you should not report the test.
Usage:
1 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
Environmental Protection Agency
Page 132 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
CYCLE-4
Check Name:
Cycle Time Test Test Reason Code Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Test Reason Code (Lookup Table)
Test Reason Code (Lookup Table)
Specifications:
For the cycle time test:
If the TestReasonCode is null,
return result A.
If the TestReasonCode is not equal to "INITIAL", "RECERT" or "DIAG",
Locate the TestReasonCode in the Test Reason Code Lookup table,
If not found,
return result B.
If found,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Severity
Critical Error Level 1
Fatal
C
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
Cycle Time Test Component Type Valid Equals true
QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
1
Environmental Protection Agency
Page 133 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: CYCLE-5
Check Name: Identification of Previously Reported Test or Test Number for Cycle Time Test
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a cycle time test with valid Span Scale and End Times and a non-null ComponentID:
Set Cycle Time Test Supp Data ID to null.
Locate another cycle time test for the component where the SpanScale, EndDate, EndHour, and EndMinute are equal to the
SpanScale, EndDate, EndHour, and EndMinute of the current TestSummary record.
If found,
return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestType Code is equal to "CYCLE", and the
ComponentID, SpanScale, EndDate, EndHour, and EndMinute is equal to ComponentID, SpanScale, EndDate, EndHour,
and EndMinute of the current TestSummary record, and the TestNum is not equal to the TestNumber in the current
TestSummary record,
If found,
return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "CYCLE" and the TestNum equal to
the TestNumber in the current TestSummary record.
If found,
Set Cycle Time Test Supp Data ID to the QA Supp Data ID in the QASupp record.
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the ComponentID, SpanScale, EndDate, EndHour,
and EndMinute in the QASupp record is not equal to ComponentID, SpanScale, EndDate,
EndHour, or EndMinute of the current TestSummary record,
return result B.
Otherwise,
return result C.
Results:
Result
A
B
Response
Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 134 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
Conditions: Duplicate Cycle Time Equals false
Environmental Protection Agency
Page 135 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
CYCLE-6
Check Name:
Cycle Time Injection Begin Time Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the cycle time injection:
If GasLevelCode is equal to "ZERO",
add 1 to Cycle Time Zero Injection Count.
If GasLevelCode is equal to "HIGH",
add 1 to Cycle Time High Injection Count.
If the BeginDate is null, or the BeginHour is null or not between 0 and 23, or the BeginMinute is null or not between 0 and 59.
set Cycle Time Injection Dates Consistent and Cycle Time Injection Times Valid to false, and return result A.
Otherwise,
set Cycle Time Injection Dates Consistent to true.
Results:
Result
A
Response
The [type] date, hour, and/or minute for [key] is invalid.
Severity
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — Cycle Time Test Injection Evaluation
1
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Injection Evaluation
Environmental Protection Agency
Page 136 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the cycle time injection:
Set Cycle Time Calc Injection Cycle Time to null.
If the EndDate is null, or the EndHour is null or not between 0 and 23, or the EndMinute is null or not between 0 and 59.
set Cycle Time Injection Dates Consistent and Cycle Time Injection Times Valid to false, and return result A.
Otherwise,
If the BeginDate is not null, and the BeginHour is between 0 and 23, and the BeginMinute is between 0 and 59,
If the BeginDate/BeginHour/BeginMinute is after the EndDate/EndHour/EndMinute,
set Cycle Time Injection Dates Consistent and Cycle Time Injection Times Valid to false, and return result
B.
Otherwise,
If the Cycle Time Test Begin Date/Begin Hour/Begin Minute is null or is later than the BeginDate,
BeginHour, and BeginMinute,
set the Cycle Time Test Begin Date/Begin Hour/Begin Minute to the BeginDate, BeginHour, and
BeginMinute.
If the Cycle Time Test End Date/End Hour/End Minute is null or is before the EndDate, EndHour, and
EndMinute,
set the Cycle Time Test End Date/End Hour/End Minute to the EndDate, EndHour, and
EndMinute.
CYCLE-/
Cycle Time Injection End Time Valid
CEM Check
Results:
Result
A
B
Usage:
1
1
Response
The [type] date, hour, and/or minute for [key] is invalid.
You reported EndDate, EndHour, and EndMinute which is prior to or equal to
BeginDate, BeginHour, and BeginMinute for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report — Cycle Time Test Injection Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Injection Evaluation
Environmental Protection Agency
Page 137 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
CYCLE-8
Check Name:
Cycle Time Injection Calibration Gas Value Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the cycle time injection:
If CalibrationGasValue is null,
return result A.
If CalibrationGasValue is less than 0,
return result B.
If GasLevelCode is equal to "ZERO",
set Cycle Time Zero Reference Value to CalibrationGasValue.
If GasLevelCode is equal to "HIGH",
set Cycle Time High Reference Value to CalibrationGasValue.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — Cycle Time Test Injection Evaluation
1
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Injection Evaluation
Environmental Protection Agency
Page 138 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: CYCLE-9
Check Name: Calibration Gas Value Consistent with Span
Related Former Checks: CYCL-5
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the cycle time injection with a CalibrationGasValue greater than or equal to 0 and a Test Span Value greater than 0:
Calculate Cycle Time Reference Percent of Span = CalibrationGasValue divided by the Test Span Value times 100 (rounded to the
nearest tenth)
If the GasLevelCode is "ZERO",
If Cycle Time Reference Percent of Span is greater than 20.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "CYCLE" and the
FieldDescription is equal to "GasPercentOfSpan".
If Cycle Time Reference Percent of Span is greater than 20.0 + Tolerance in the cross-check record,
return result A.
Otherwise,
return result B.
If the GasLevelCode is "HIGH",
If Cycle Time Reference Percent of Span is greater than 100.0,
return result C.
If Cycle Time Reference Percent of Span is less than 80.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "CYCLE" and the
FieldDescription is equal to "GasPercentOfSpan".
If Cycle Time Reference Percent of Span is less than 80.0 - Tolerance in the cross-check record,
return result C.
Otherwise,
return result D.
Environmental Protection Agency
Page 139 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
B
D
Response
The tag value of the 'ZERO' level calibration gas of the cycle time test data for [key] is
[percent] % of span and does not meet the performance specifications of 40 CFR Part
75. The concentration of the 'zero' reference calibration gas must be less than or equal
to 20.0% of the span value reported in the monitoring plan.
The tag value of the 'ZERO' level calibration gas of the cycle time test data for [key] is
[percent] % of span and does not meet the performance specifications of 40 CFR Part
75. The concentration of the 'zero' reference calibration gas must be less than or equal
to 20.0% of the span value reported in the monitoring plan.
The tag value of the '111011 level calibration gas of the cycle time test data for [key] is
[percent] % of span and does not meet the performance specifications of 40 CFR Part
75. The concentration of the 'high' reference calibration gas must be between 80.0% and
100.0% of the span value reported in the monitoring plan.
The tag value of the 'HIGH level calibration gas of the cycle time test data for [key] is
[percent] % of span and does not meet the performance specifications of 40 CFR Part
75. The concentration of the 'high' reference calibration gas must be between 80.0% and
100.0% of the span value reported in the monitoring plan.
Severity
Critical Error Level 2
Non-Critical Error
Critical Error Level 2
Non-Critical Error
Usage:
1
Process/Category:
QA Test Evaluation Report — Cycle Time Test Injection Evaluation
Environmental Protection Agency
Page 140 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: CYCLE-10
Check Name: Cycle Time Injection Begin Monitor Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the cycle time injection:
If BeginMonitorValue is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — Cycle Time Test Injection Evaluation
1 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Injection Evaluation
Environmental Protection Agency
Page 141 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the cycle time injection:
If EndMonitorValue is null,
return result A.
Otherwise,
If BeginMonitorValue is not null,
If End Date of the injection is before {01/24/2008},
If GasLevelCode is equal to "ZERO" and BeginMonitorValue is greater than or equal to
EndMonitor V al ue,
return result B.
If GasLevelCode is equal to "HIGH" and BeginMonitorValue is less than or equal to EndMonitorValue,
return result C.
Otherwise,
If GasLevelCode is equal to "HIGH" and BeginMonitorValue is greater than or equal to
EndMonitor Val ue,
return result D.
CYCLE-11
Cycle Time Injection End Monitor Value Valid
CYCL-6
CEM Check
If GasLevelCode is equal to "ZERO" and BeginMonitorValue is less than or equal to EndMonitorValue,
return result E.
Results:
Result
A
B
C
D
E
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
The BeginMonitorValue for [key] was greater than or equal to the EndMonitorValue.
These values are unexpected for a 'zero' level gas injection.
The BeginMonitorValue for [key] was less than or equal to the EndMonitorValue.
These values are unexpected for a 'high' level gas injection.
The BeginMonitorValue for [key] was greater than or equal to the EndMonitorValue.
These values are unexpected for a 'high' level gas injection.
The BeginMonitorValue for [key] was less than or equal to the EndMonitorValue.
These values are unexpected for a 'zero' level gas injection.
Severity
Critical Error Level 1
Informational Message
Informational Message
Informational Message
Informational Message
Process/Category: QA Test Evaluation Report — Cycle Time Test Injection Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Injection Evaluation
Environmental Protection Agency
Page 142 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the cycle time injection:
If Cycle Time Injection Dates Consistent is equal to true,
Calculate Cycle Time Calc Injection Cycle Time as the difference (in minutes) between the EndDate/EndHour/EndMinute
and the BeginDate/BeginHour/BeginMinute, with a maximum value of 99.
If Cycle Time Calc Total Cycle Time is not null,
If InjectionCycleTime is not null and is one minute greater than the Cycle Time Calc Injection Cycle Time,
set Cycle Time Calc Injection Cycle Time to InjectionCycleTime.
If Cycle Time Calc Injection Cycle Time is greater than Cycle Time Calc Total Cycle Time,
set Cycle Time Calc Total Cycle Time to Cycle Time Calc Injection Cycle Time.
CYCLE-12
Cycle Time Injection Injection Cycle Time Valid
CYCL-8B
CEM Check
Otherwise,
Set Cycle Time Calc Total Cycle Time to null, and Cycle Time Calc Test Result to "INVALID".
In the QA Evaluation Process, the Cycle Time Calc Injection Cycle Time will be stored as a calculated value in the Cycle Time
Injection record for the gas level.
If InjectionCycleTime is null,
return result A.
If InjectionCycleTime is less than 0,
return result B.
If Cycle Time Calc Injection Cycle Time is not null, and the absolute value of the difference between Cycle Time Calc Injection
Cycle Time and InjectionCycleTime is greater than 1,
return result C.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
C The reported ComponentCycleTime for [key] does not equal the value of the component Critical Error Level 1
cycle time recalculated from the reported starting and ending times.
Usage:
1 Process/Category: QA Test Evaluation Report — Cycle Time Test Injection Evaluation
1 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Injection Evaluation
Environmental Protection Agency
Page 143 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
CYCLE-13
Check Name:
Cycle Time Test Begin Time Consistent with Injection Times
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For a cycle time test with valid begin time and injection times and either the Cycle Time High Injection Count or Cycle Time Zero Injection
Count greater than 0:
If BeginDate, BeginHour, and BeginMinute does not equal the BeginDate, BeginHour, and BeginMinute of the earliest injection,
return result A.
Results:
Result
A
Response
You reported a test Begin Date, Hour, and Minute that is not the same as the Begin
Date, Hour, and Minute of the first injection in the cycle time test.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Cycle Time Test Evaluation (Pass 2)
Cycle Time Test Aborted Equals false
Environmental Protection Agency
Page 144 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
CYCLE-14
Check Name:
Cycle Time Test End Time Consistent with Injection Times
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For a cycle time test with valid end time and injection times and either the Cycle Time High Injection Count or Cycle Time Zero Injection
Count greater than 0:
If EndDate, EndHour, and EndMinute does not equal the EndDate, EndHour, and EndMinute of the last injection,
return result A.
Results:
Result
A
Response
You reported a test End Date, Hour, and Minute that is not the same as the End Date,
Hour, and Minute of the last injection in the cycle time test.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Cycle Time Test Evaluation (Pass 2)
Cycle Time Test Aborted Equals false
Environmental Protection Agency
Page 145 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: CYCLE-15
Check Name: Calibration Gas Value Consistent with Gas Level
Related Former Checks: CYCL-3
Applicability: CEM Check
Description:
Specifications:
For the cycle time test:
If the Cycle Time Zero Reference Value and Cycle Time High Reference Value are not null,
If Cycle Time Zero Reference Value is greater than or equal to the Cycle Time High Reference Value,
set Cycle Time Calc Test Result to "INVALID", and return result A.
Otherwise,
set Cycle Time Calc Test Result to "INVALID".
Results:
Severity
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 2)
Conditions: Cycle Time Test Aborted Equals false
Result Response
A The calibration gas values were not consistent with the calibration gas levels reported.
The reference value of the zero-level gas injection must be less than that of the
high-level gas injection.
Environmental Protection Agency
Page 146 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the cycle time test:
Set Cycle Time Test Validity Determined to true.
If the Cycle Time Zero Injection Count is not equal to 1, or the Cycle Time High Injection Count is not equal to 1,
set Cycle Time Calc Test Result to "INVALID", and return result A.
Results:
Result Response Severity
A The cycle time test did not contain the correct number of injection records. There must Critical Error Level 1
be two records: one HIGH level gas injection and one ZERO level gas injection.
Usage:
1 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 2)
Conditions: Cycle Time Test Aborted Equals false
CYCLE-16
Correct Number of Cycle Time Injections
CYCL-7B
CEM Check
Environmental Protection Agency
Page 147 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the cycle time test:
If Cycle Time Calc Test Result is not equal to "INVALID", and Cycle Time Calc Total Cycle Time is greater than or equal to 0,
If TotalTime is greater than Cycle Time Calc Total Cycle Time,
set Cycle Time Calc Total Cycle Time to TotalTime .
If Cycle Time Calc Total Cycle Time is less than or equal to 15,
set Cycle Time Calc Test Result to "PASSED".
Otherwise,
set Cycle Time Calc Test Result to "FAILED".
Otherwise,
set Cycle Time Calc Total Cycle Time to null.
Set Cycle Time Test Total Time Calculated to true.
If TotalTime is null,
return result A.
If TotalTime is less than 0,
return result B.
If Cycle Time Calc Total Cycle Time is not null and is greater than the TotalTime,
return result C.
CYCLE-17
Cycle Time Test Total Cycle Time Valid
CYCL-9
CEM Check
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
The recalculated total cycle time does not equal the reported TotalCycleTime for the
test.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 2)
Conditions: Cycle Time Test Aborted Equals false
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
Environmental Protection Agency
Page 148 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
CYCLE-18
Check Name:
Cycle Time Test Test Result Code Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Test Result Code (Lookup Table)
Test Result Code (Lookup Table)
Specifications:
For the cycle time test:
If Cycle Time Calc Test Result is equal to "INVALID" or Cycle Time Calc Total Cycle Time is less than 0,
set Cycle Time Calc Test Result to null.
If TestResultCode is null,
return result A.
If TestResultCode is not equal to "ABORTED", "PASSED", or "FAILED",
Locate the TestResultCode in the Test Result Code Lookup table,
If not found,
return result B.
If found,
return result C.
If the Cycle Time Calc Test Result is equal to "FAILED", and TestResultCode is equal to "PASSED",
return result D.
If the Cycle Time Calc Test Result is equal to "PASSED", and TestResultCode is equal to "FAILED",
return result E.
In the QA Evaluation Process, the Cycle Time Calc Test Result, Test Span Value, and Cycle Time Calc Total Cycle Time will be
stored as calculated values in the Test Summary and Cycle Time Summary records for the test, and (for tests that have not yet been
submitted or have been approved for resubmission) the appropriate values will be stored in the QA Supp Data record for the test.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
The TestResultCode indicates a passing test, but the result recalculated from the cycle
time injection records indicates a failing test.
You reported a TestResultCode of "FAILED", but the results recalculated or determined
from the other reported values indicate that the test passed.
Severity
Critical Error Level 1
Fatal
C
Critical Error Level 1
D
Critical Error Level 1
E
Non-Critical Error
Environmental Protection Agency
Page 149 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 2)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
Environmental Protection Agency
Page 150 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
CYCLE-19
Check Name:
Duplicate Cycle Time Test
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the cycle time test with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode is equal to "CYCLE" and the TestNumber is equal to
the TestNumber in the current record.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "CYCLE" and the
TestNumber is equal to the TestNumber in the current record.
If found,
return result B.
If found,
return result A.
Results:
Result
A
Response
Another [testtype] with this test number already exists. You must assign a different test
number.
You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
Environmental Protection Agency
Page 151 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: CYCLE-20
Check Name: Duplicate Cycle Time Injection
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the cycle time injection with a valid GasLevelCode:
Locate another CycleTimelnjection record for the test where the GasLevelCode is equal to the GasLevelCode in the current record.
If found,
return result A.
Results:
Result Response Severity
A Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Injection Evaluation
Environmental Protection Agency
Page 152 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: CYCLE-21
Check Name: Cycle Time Injection Gas Level Code Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the Cycle Time Injection Data record:
If GasLevelCode is null,
return result A.
If GasLevelCode is not equal to either "ZERO" or "HIGH",
return result B.
Results:
Result Response
A You did not provide [fieldname], which is required for [key],
B You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Injection Evaluation
Severity
Fatal
Fatal
Environmental Protection Agency
Page 153 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
CYCLE-22
Check Name:
Component ID Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the cycle time test:
If the ComponentID is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
Environmental Protection Agency
Page 154 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Flow-to-Load Check
Environmental Protection Agency
Page 155 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
F2LCHK-1
Check Name:
System Type Valid
Related Former Checks: F TLCK-1
Applicability:
CEM Check
Description:
Specifications:
For the flow-to-load check:
If the MonitoringSystemID is null,
set Flow to Load Check System Valid to false, and return result A.
Otherwise,
If Flow To Load Check System is invalid, do not perform other checks. In the QA Evaluation Process, all calculated values will be
set to null, and (for tests that have not yet been submitted or have been approved for resubmission) the appropriate values will be
stored in the QA Supp Data record for the test.
If the SystemTypeCode of the associated system is equal to "FLOW",
set Flow to Load Check System Valid to true.
Otherwise,
set Flow to Load Check System Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
According to the monitoring system record, the monitoring system in this flow-to-load
check was not a flow system.
Severity
Fatal
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 156 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LCHK-2
Check Name: Flow to Load Check Test Reason Code Valid
Related Former Checks:
Applicability: CEM Check
Description:
Validation Tables:
Test Reason Code (Lookup Table)
Test Reason Code (Lookup Table)
Specifications:
For the Flow to Load check:
If the TestReasonCode is null,
If the Test Reporting Period Begin Date is on or after ECMPS MP Begin Date,
return result A.
Otherwise,
return result B.
If the TestReasonCode is not equal to "QA",
Locate the TestReasonCode is not in the Test Reason Code Lookup table,
If not found,
return result C.
If found,
return result D.
Results:
Result
A
B
C
D
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You did not provide [fieldname] for [key]. This information will be required for
ECMPS submissions.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Severity
Critical Error Level 1
Non-Critical Error
Fatal
Critical Error Level 1
Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Conditions: Flow to Load Check System Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 157 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LCHK-3
Check Name: Flow to Load Check Operating Level Valid
Related Former Checks:
Applicability: CEM Check
Description:
Validation Tables:
Operating Level Code (Lookup Table)
Operating Level Code (Lookup Table)
Specifications:
For the Flow to Load check:
If the OperatingLevelCode is null,
return result A.
If the OperatingLevelCode is not in the OperatingLevelCode lookup table,
return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Fatal
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Conditions: Flow to Load Check System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 158 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
F2LCHK-4
Check Name:
Flow to Load Check Data Test Basis Valid
Related Former Checks: FTLCK-3A
Applicability:
CEM Check
Description:
Validation Tables:
Test Basis Code (Lookup Table)
Test Basis Code (Lookup Table)
Specifications:
For a flow-to-load check:
If TestBasisCode is null,
If TestResultCode is equal to "PASSED" or "FAILED",
return result A.
If TestBasisCode is not in the TestBasisCode lookup table,
return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report Flow-to-Load Check Evaluation
Flow to Load Check System Valid Equals true
QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
1
Environmental Protection Agency
Page 159 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For a flow-to-load check:
If BiasAdjustedlndicator is null,
If TestResultCode is equal to "PASSED" or "FAILED",
return result A.
F2LCHK-5
Flow to Load Check Data Bias Adjusted Indicator Valid
FTLCK-3A
CEM Check
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Conditions: Flow to Load Check System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 160 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the flow-to-load check:
If TestResultCode is equal to "PASSED" or "FAILED",
If NumberOfHours is null,
return result A.
If NumberOfHours is less than 168,
return result B.
If TestResultCode is equal to "FEW168H" or "EXC168H",
If NumberOfHours is greater than or equal to 168,
return result C.
If NumberOfHours is not null,
return result D.
F2LCHK-6
Flow to Load Check Data Number of Hours Valid
FTLCK-3B, 5
CEM Check
Results:
Result
A
B
D
Response
You did not provide [fieldname], which is required for [key].
The NumberOfHours of quality assured flow data for the quarter is less than 168 hours.
A TestResultCode of'PASSED' or 'FAILED' indicates that there were at least 168 hours
of data and the test was performed. Report a code of'EXC168H' or 'FEW168H' for the
quarter if 168 hours are not available.
The NumberOfHours of quality assured flow data exceeds or equals 168 hours. A
Flow-to-load analysis or GHR analysis is required for the quarter. Do not report a
TestResultCode of'EXC168H' or 'FEW168H' for this quarter.
You should not report a value for [fieldname] when the TestResultCode is equal to
"EXC168H" or "FEW168H".
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Conditions: Flow to Load Check System Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 161 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LCHK-7
Check Name: Flow to Load Check Data Number of Hours Excluded for Fuel Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a flow-to-load check:
If NumberOlHoursExcludedForFuel is not null and is less than 0,
return result A.
Results:
Result Response Severity
A The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Conditions: Flow to Load Check System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 162 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LCHK-8
Check Name: Flow to Load Check Data Number of Hours Excluded for Ramping Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a flow-to-load check:
If NumberOfHoursExcludedRamping is not null and is less than 0,
return result A.
Results:
Result Response Severity
A The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Conditions: Flow to Load Check System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 163 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LCHK-9
Check Name: Flow to Load Check Data Number of Hours Excluded for Bypass Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a flow-to-load check:
If NumberOfHoursExcludedBypass is not null and is less than 0,
return result A.
Results:
Result
Response
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Conditions: Flow to Load Check System Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 164 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LCHK-10
Check Name: Flow to Load Check Data Number of Hours Excluded Pre RATA Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a flow-to-load check:
If NumberOfHoursExcludedPreRATA is not null and is less than 0,
return result A.
Results:
Result Response Severity
A The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Conditions: Flow to Load Check System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 165 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LCHK-11
Check Name: Flow to Load Check Data Number of Hours Excluded Test Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a flow-to-load check:
If NumberOfHoursExcludedTest is not null and is less than 0,
return result A.
Results:
Result Response Severity
A The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Conditions: Flow to Load Check System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 166 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LCHK-12
Check Name: Flow to Load Check Data Number of Hours Excluded for Main and Bypass Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a flow-to-load check:
If NumberOfHoursExcMainBypass is not null and is less than 0,
return result A.
Results:
Result Response Severity
A The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Conditions: Flow to Load Check System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 167 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
F2LCHK-13
Check Name:
Flow to Load Check Total Hours Valid
Related Former Checks: FTLCK-2
Applicability:
CEM Check
Description:
Specifications:
For the flow-to-load check:
If the sum of NumberOfHours (if greater than 0), NumberOfHoursExcludedForFuel (if greater than 0),
NumberOfHoursExcludedRamping (if greater than 0), NumberOfHoursExcludedBypass (if greater than 0),
NumberOfHoursExcludedPreRATA (if greater than 0), NumberOfHoursExcludedTest (if greater than 0), and
NumberOfHoursExcMainBypass (if greater than 0) is greater than 2209,
return result A.
Results:
Result
A
Response
The total number of hours used in the flow-to-load or GF1R analysis plus the number of
hours excluded exceed the total number of hours in the quarter.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report Flow-to-Load Check Evaluation
Flow to Load Check System Valid Equals true
QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
1
Environmental Protection Agency
Page 168 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LCHK-14
Check Name: Identification of Previously Reported Test or Test Number for Flow to Load Check
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For Flow-to-load Check with valid reporting period and operating level and a non-null MonitoringSystemID:
Set Flow to Load Check Supp Data ID to null.
Locate another flow-to-load check for the system where the OperatingLevelCode is equal to the OperatingLevelCode in the current
flow-to-load check and the reporting period is equal to the reporting period of the current flow-to-load check.
If found,
return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestType Code is equal to "F2LCHK", and the
MonitoringSystemID, OperatingLevelCode, and reporting period are equal to MonitoringSystemID, OperatingLevelCode,
and reporting period of the current flow-to-load check, and the TestNum is not equal to the TestNumber in the current
flow-to-load check.
If found,
return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "F2LCHK" and the TestNum equal
to the TestNumber in the current TestSummary record.
If found,
Set Flow to Load Check Supp Data ID to the QA Supp Data ID in the QASupp record.
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the MonitoringSystemID, OperatingLevelCode, and
ReportingPeriod in the QASupp record is not equal to MonitoringSystemID, OperatingLevelCode,
and reporting period of the current flow-to-load check,
return result B.
Otherwise,
return result C.
Results:
Result
A
B
Response
Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 169 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Conditions: Duplicate Flow to Load Check Equals false
Environmental Protection Agency
Page 170 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
F2LCHK-15
Check Name:
Required Flow to Load Reference Data for Flow to Load Check
Related Former Checks: FTLCK-4A, B
Applicability:
CEM Check
Description:
Specifications:
For the flow-to-load check with a valid reporting period, operating level, and a TestResultCode equal to "PASSED" or "FAILED":
Set Flow to Load Check Average Gross Unit Load and Flow to Load Check Load Units of Measure to null.
If the TestBasisCode in the flow-to-load check is equal to "Q",
Locate the latest QA Supp Attribute record for the location where the associated TestTypeCode is equal to "F2LREF",
CANSUBMIT is equal to "N", the MonitoringSystemID and OperatingLevelCode is equal to the MonitoringSystemID and
OperatingLevelCode of the flow-to-load check, the EndDate is on or prior to the last day of the reporting period in the
flow-to-load check, and the AttributeName is equal to "REFFLOWLOADRATIO".
else if the TestBasisCode in the flow-to-load check is equal to "H",
Locate the latest QA Supp Attribute record for the location where the associated TestTypeCode is equal to "F2LREF",
CAN SUBMIT is equal to "N", the MonitoringSystemID and OperatingLevelCode is equal to the MonitoringSystemID and
OperatingLevelCode of the flow-to-load check, the EndDate is on or prior to the last day of the reporting period in the
flow-to-load check, and the Attribute Name is equal to "REFGHR".
If not found, or Attribute Value is null,
If the TestBasisCode in the flow-to-load check is equal to "Q",
Locate the latest Flow-to-Load Reference data for the system where the OperatingLevelCode is equal to
OperatingLevelCode in the flow-to-load check and the EndDate is on or prior to the last day of the reporting period
in the flow-to-load check, and the ReferenceFlowLoadRatio is not null.
else if the TestBasisCode in the flow-to-load check is equal to "H",
Locate the latest Flow-to-Load Reference data for the system where the OperatingLevelCode is equal to
OperatingLevelCode in the flow-to-load check and the EndDate is on or prior to the last day of the reporting period
in the flow-to-load check, and the ReferenceGrossHeatRate is not null.
If AvgAbsolutePercentDiff is greater than 10 and less than or equal to 20,
If AverageGrossUnitLoad is greater than 0,
set Flow to Load Check Average Gross Unit Load to the AverageGrossUnitLoad.
Otherwise,
return result C.
Locate the latest Load record for the location where the BeginDate is on or before the EndDate in the
flow-to-load reference data and the EndDate is null or is on or after the EndDate in the flow-to-load
reference data.
If found, and the MaximumLoadUnitsOfMeasureCode is equal to "MW", "KLBHR", or "MMBTUHR",
set Flow to Load Check Load Units of Measure to the MaximumLoadUnitsOfMeasureCode.
If not found,
return result A.
If found,
Environmental Protection Agency
Page 171 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
return result D.
Otherwise,
If AvgAbsolutePercentDiff is greater than 10 and less than or equal to 20,
Locate the QA Supp Attribute record for the location where the QA Supp Data ID is equal to the QA Supp Data ID
in the retrieved QA Supp Attribute record and the AttributeName is equal to "AVG_GROSS_UNIT_LOAD".
If found, and Attribute Value is greater than 0,
set Flow to Load Check Average Gross Unit Load to the Attribute Value.
Otherwise,
return result C.
Locate the latest Load record for the location where the BeginDate is on or before the EndDate in the QA Supp
record and the EndDate is null or is on or after the EndDate in the QA Supp record.
If found, and the MaximumLoadUnitsOfMeasureCode is equal to "MW", "KLBHR", or "MMBTUHR",
set Flow to Load Check Load Units of Measure to the MaximumLoadUnitsOfMeasureCode.
Otherwise,
return result D.
Results:
Result
A
Response
You reported a TestBasisCode of [test basis indicator] in the flow-to-load check, but the
software could not find a prior flow-to-load reference data record based on the same
criterion.
The software could not evaluate the flow-to-load check result, because the average gross
unit load in the associated flow-to-load reference data was invalid.
The software could not evaluate the flow-to-load check result, because the load units of
measure could not be determined.
Severity
Critical Error Level 1
C
Critical Error Level 1
D
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 172 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the flow-to-load check:
Set Flow to Load Check Calc Test Result to null.
If the TestResultCode is equal to "PASSED" or "FAILED",
If AvgAbsolutePercentDiff is null,
return result A.
If AvgAbsolutePercentDiff is less than 0,
return result B.
If BiasAdjustedlndicator is equal to 1, and AvgAbsolutePercentDiff is greater than 15,
Set Flow to Load Check Calc Test Result to "FAILED".
If BiasAdjustedlndicator is equal to 1, and AvgAbsolutePercentDiff is less than or equal to 10,
Set Flow to Load Check Calc Test Result to "PASSED".
If BiasAdjustedlndicator is equal to 0, and AvgAbsolutePercentDiff is greater than 20,
Set Flow to Load Check Calc Test Result to "FAILED".
If BiasAdjustedlndicator is equal to 0, and AvgAbsolutePercentDiff is less than or equal to 15,
Set Flow to Load Check Calc Test Result to "PASSED".
If BiasAdjustedlndicator is null, and AvgAbsolutePercentDiff is greater than 20,
Set Flow to Load Check Calc Test Result to "FAILED".
If BiasAdjustedlndicator is null, and AvgAbsolutePercentDiff is less than or equal to 10,
Set Flow to Load Check Calc Test Result to "PASSED".
Otherwise,
If Flow to Load Check Average Gross Unit Load, Flow to Load Check Units of Measure, and
BiasAdjustedlndicator are not null,
If the Flow to Load Check Units of Measure is equal to "MW" and Flow to Load Check Average Gross
Unit Load is less than 60, or Flow to Load Check Units of Measure is equal to "KLBHR" and Flow to
Load Check Average Gross Unit Load is less than 500, or Flow to Load Check Units of Measure is equal
to "MMBTUHR" and Flow to Load Check Average Gross Unit Load is less than 600,
If BiasAdjustedlndicator is equal to 1,
If AvgAbsolutePercentDiff is greater than 15,
F2LCHK-16
Flow to Load Check Data Average Absolute Percentage Difference Valid
FTLCK-4
CEM Check
Environmental Protection Agency
Page 173 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Else
Set Flow to Load Check Calc Test Result to "FAILED".
If AvgAbsolutePercentDiff is less than or equal to 15,
Set Flow to Load Check Calc Test Result to "PASSED".
Otherwise,
If AvgAbsolutePercentDiff is greater than 20,
Set Flow to Load Check Calc Test Result to "FAILED".
If AvgAbsolutePercentDiff is less than or equal to 20,
Set Flow to Load Check Calc Test Result to "PASSED".
Otherwise,
If BiasAdjustedlndicator is equal to 1,
If AvgAbsolutePercentDiff is greater than 10,
Set Flow to Load Check Calc Test Result to "FAILED".
If AvgAbsolutePercentDiff is less than or equal to 10,
Set Flow to Load Check Calc Test Result to "PASSED".
Otherwise,
If AvgAbsolutePercentDiff is greater than 15,
Set Flow to Load Check Calc Test Result to "FAILED".
If AvgAbsolutePercentDiff is less than or equal to 15,
Set Flow to Load Check Calc Test Result to "PASSED".
Set Flow to Load Check Calc Test Result to TestResultCode
If the TestResultCode is equal to "FEW 168H" or "EXC168H", and AvgAbsolutePercentDiff is not null,
return result C.
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
You should not report a value for [fieldname] when the TestResultCode is equal to
"EXC168H" or "FEW168H".
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 174 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LCHK-17
Check Name: Flow to Load Check Test Result Code Valid
Related Former Checks: F TLCK-4 C/D, 6
Applicability: CEM Check
Description:
Validation Tables:
Test Result Code (Lookup Table)
Test Result Code (Lookup Table)
Specifications:
For the Flow to Load check:
In the QA Evaluation Process, the Flow to Load Check Calc Test Result will be stored as calculated values in the Test Summary
record for the test, and (for tests that have not yet been submitted or have been approved for resubmission) the appropriate values
will be stored in the QA Supp Data record for the test.
If the TestResultCode is null,
return result A.
If the TestResultCode is not equal to "PASSED", "FAILED", "EXC168H", or "FEW168H",
Locate the TestResultCode in the Test Result Code Lookup table,
If not found,
return result B.
If found,
return result C.
If TestResultCode is equal to "EXC168H",
If NumberOfHoursExcludedForFuel, NumberOfHoursExcludedRamping, NumberOfHoursExcludedBypass,
NumberOfHoursExcludedPreRATA, NumberOfHoursExcludedTest, NumberOfHoursExcMainBypass are all null or equal
to 0,
return result D.
If Flow to Load Check Calc Test Result is not null,
If TestResultCode is equal to "PASSED" and Flow to Load Check Calc Test Result is equal to "FAILED",
return result E.
If TestResultCode is equal to "FAILED" and Flow to Load Check Calc Test Result is equal to "PASSED",
return result F.
Environmental Protection Agency
Page 175 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
C
D
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
The TestResultCode was reported as "EXC168H" to indicate that fewer than 168 hours
of quality-assured flow rate data remain after excluding certain hours, but all the fields
for excluded hours were blank or zero.
The TestResultCode is equal to "PASSED", but the AvgAbsolutePercentDiff indicates
that the test failed the applicable standard based on the RATA load level reported in the
flow to load reference record and the use of bias adjusted or non-adjusted values.
The TestResultCode is equal to "FAILED", but the AvgAbsolutePercentDiff indicates
that the test passed the applicable standard based on the RATA load level reported in the
flow to load reference record and the use of bias adjusted or non-adjusted values.
Severity
Critical Error Level 1
Fatal
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 176 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
F2LCHK-18
Check Name:
Duplicate Flow to Load Check
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the flow-to-load check with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode is equal to "F2LCHK" and the TestNumber is equal
to the TestNumber in the current record.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "F2LCHK" and the
TestNumber is equal to the TestNumber in the current record.
If found,
return result B.
If found,
return result A.
Results:
Result
A
Response
Another [testtype] with this test number already exists. You must assign a different test
number.
You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Environmental Protection Agency
Page 177 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the flow-to-load check:
If the MonitoringSystemID is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
F2LCHK-19
System ID Valid
CEM Check
Environmental Protection Agency
Page 178 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Flow-to-Load Reference Data
Environmental Protection Agency
Page 179 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
F2LREF-1
Check Name:
System Type Valid
Related Former Checks: F TLRF-1
Applicability:
CEM Check
Description:
Specifications:
For the flow-to-load reference data:
If the MonitoringSystemID is null,
set Flow to Load Reference System Valid to false, and return result A.
Otherwise,
If Flow to Load Reference System is invalid, do not perform other checks. In the QA Evaluation Process, all calculated values will
be set to null, and (for tests that have not yet been submitted or have been approved for resubmission) the appropriate values will be
stored in the QA Supp Data record for the test.
If the SystemTypeCode of the associated system is equal to "FLOW",
set Flow to Load Reference System Valid to true.
Otherwise,
set Flow to Load Reference System Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
According to the monitoring system record, the Flow-to-load reference data was not for
a flow system.
Severity
Fatal
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 180 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LREF-2
Check Name: Identification of Previously Reported Test or Test Number for Flow to Load Reference Data
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For Flow-to-load Reference Data with valid End Times and a non-null MonitoringSystemID:
Set Flow to Load Reference Supp Data ID to null.
If ReferenceFlowToLoadRatio is not null,
Locate another flow-to-load reference data record for the system where the EndDate, EndHour, and EndMinute are equal to
EndDate, EndHour, and EndMinute of the current TestSummary record and the ReferenceFlowToLoadRatio is not null,
If found,
return result A.
Otherwise,
Locate an unassociated QASuppAttribute record for the location where the associated TestType Code is equal to
"F2LREF", and the MonitoringSystemID, EndDate, EndHour, and EndMinute is equal to MonitoringSystemID,
EndDate, EndHour, and EndMinute of the current TestSummary record, and the TestNum is not equal to the
TestNumber in the current TestSummary record, and the AttributeName is equal to
"REF_FLOW_LOAD_RATTO".
If found,
Locate a QASuppAttribute record with a QASuppDatalD equal to the QASuppDatalD in the retrieved
record and an AttributeName equal to "REFGHR"
If the first QASuppAttribute record was found and the second QASuppAttribute record was not found,
return result A..
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "F2LREF" and the TestNum
equal to the TestNumber in the current TestSummary record.
If found,
Set Flow to Load Reference Supp Data ID to the QA Supp Data ID in the QASupp record.
If CAN SUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the MonitoringSystemID, EndDate,
EndHour, and EndMinute in the QASupp record is not equal to MonitoringSystemID,
EndDate, EndHour, or EndMinute of the current TestSummary record,
return result B.
Otherwise,
Locate a QASuppAttribute record where the QASuppDatalD is equal to the
QASuppDatalD in the retrieved QASupp record and the AttributeName is equal
to "REF_FLOW_LOAD_RATIO".
If found,
return result C.
Environmental Protection Agency
Page 181 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
return result D.
else If ReferenceGrossHeatRate is not null,
Locate another flow-to-load reference data record for the system where the EndDate, EndHour, and EndMinute are equal to
EndDate, EndHour, and EndMinute of the current TestSummary record and the ReferenceGrossHeatRate is not null,
If found,
return result A.
Otherwise,
Locate an unassociated QASuppAttribute record for the location where the associated TestType Code is equal to
"F2LREF", and the MonitoringSystemID, EndDate, EndHour, and EndMinute is equal to MonitoringSystemID,
EndDate, EndHour, and EndMinute of the current TestSummary record, and the TestNum is not equal to the
TestNumber in the current TestSummary record, and the AttributeName is equal to "REFGHR".
If found,
Locate a QASuppAttribute record with a QASuppDatalD equal to the QASuppDatalD in the retrieved
record and an AttributeName equal to "REF FLOW LOAD RATIO".
If the first QASuppAttribute record was found and the second QASuppAttribute record was not found,
return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "F2LREF" and the TestNum
equal to the TestNumber in the current TestSummary record.
If found,
Set Flow to Load Reference Supp Data ID to the QA Supp Data ID in the QASupp record.
If CAN SUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the MonitoringSystemID, EndDate,
EndHour, and EndMinute in the QASupp record is not equal to MonitoringSystemID,
EndDate, EndHour, or EndMinute of the current TestSummary record,
return result B.
Otherwise,
Locate a QASuppAttribute record where the QASuppDatalD is equal to the
QASuppDatalD in the retrieved QASupp record and the AttributeName is equal
to "REF GHR".
If found,
return result C.
Otherwise,
return result D.
Environmental Protection Agency
Page 182 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
B
C
D
Usage:
1
Response
Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Another Certification Test record with this test number has already been submitted for
this location. If this is a different test, you must assign it a unique test number. If you
wish to edit the existing test, you should import or download the test.
Severity
Fatal
Fatal
Informational Message
Fatal
Process/Category:
QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Conditions: Duplicate Flow to Load Reference Equals false
Environmental Protection Agency
Page 183 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LREF-3
Check Name: Flow to Load Reference Data RATA Test Number Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the Flow to Load Reference data:
If the RATATestNumber is null,
set Flow to Load Reference RATA Test Number to false, and return result A.
Otherwise,
set Flow to Load Reference RATA Test Number to true.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
Conditions: Flow to Load Reference System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 184 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LREF-4
Check Name: Flow to Load Reference Data Operating Level Code Valid
Related Former Checks: FTLRF-2B, C
Applicability: CEM Check
Description:
Validation Tables:
Operating Level Code (Lookup Table)
Operating Level Code (Lookup Table)
Specifications:
For the Flow to Load Reference data:
If the OperatingLevelCode is null,
return result A.
If the OperatingLevelCode is not in the OperatingLevelCode lookup table,
return result B.
If the OperatingLevelCode is not equal to "N", Test End Date Valid and Test End Hour Valid are true,
Locate the latest Monitor Load record for the location where the BeginDate and BeginHour is on or before the EndDate and
EndHour in the TestSummary record and the EndDate is null or the EndDate and EndHour is on or after the EndDate and
EndHour in the TestSummary record.
If not found,
return result C.
If the NormalLevelCode in the retrieved record is not equal to the OperatingLevelCode, and either the SecondLevelCode in
the retrieved record is not equal to the OperatingLevelCode or the SecondNormallndicator is not equal to 1,
return result D.
Results:
Result
A
B
D
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
There is no MonitorLoad record for this unit or stack that was active during the RATA.
The software cannot validate whether the OperatingLevelCode in this record was a
normal load level.
The OperatingLevelCode is not designated as a normal load level in the active
MonitorLoad record. Flow-to-load reference data must be based on the RATA for the
normal operating level.
Severity
Fatal
Fatal
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
Conditions: Flow to Load Reference System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 185 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LREF-5
Check Name: Flow to Load Reference Data Methodology Valid
Related Former Checks: FTLRF-5A, C, D
Applicability: CEM Check
Description:
Specifications:
For the flow-to-load reference data:
Set Flow to Load Reference Methodology Valid to true.
If ReferenceFlowToLoadRatio is not null and ReferenceGrossHeatRate is not null,
set Flow to Load Reference Methodology Valid to false, and return result A.
If ReferenceFlowLoadRatio and ReferenceGrossHeatRate are both null,
set Flow to Load Reference Methodology Valid to false, and return result B.
If ReferenceGrossHeatRate is not null and the AverageHourlyHeatlnputRate is null,
set Flow to Load Reference Methodology Valid to false, and return result C.
Results:
Result
B
C
Response
You reported both a ReferenceFlowLoadRatio and a ReferenceGrossHeatRate. If you
need to use both methodologies for the quarterly flow-to-load evaluations, you must
report two separate flow-to-load reference data records, one reporting the flow-to-load
ratio and one reporting the gross heat rate.
You did not report a ReferenceFlowLoadRatio or a ReferenceGrossHeatRate value.
You reported a ReferenceGrossHeatRate value but did not provide the
AverageHourlyHeatlnputRate.
Severity
Fatal
Fatal
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
Conditions: Flow to Load Reference System Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 186 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LREF-6
Check Name: Flow to Load Reference Data Calc Separate Reference Indicator Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the flow-to-load reference data:
Locate the Monitor Location record for the location.
If the UnitStackPipelD begins with "MS",
If the CalcSeparateReferencelndicator is null,
return result A.
Otherwise,
If the CalcSeparateReferencelndicator is equal to 1,
return result B.
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You reported a value of "1" as the CalcSeparateReferencelndicator, but this is value is
only appropriate for a multiple stack.
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
Conditions: Flow to Load Reference System Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 187 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For flow-to-load reference data with a valid methodology:
If AverageHourlyHeatlnputRate is not null,
If ReferenceGrossHeatRate is null,
return result A.
F2LREF-7
Flow to Load Reference Data Average Hourly Heat Input Rate Valid
FTLRF-5B
CEM Check
Results:
Result
B
Usage:
1
1
If AverageHourlyHeatlnputRate is less than or equal to 0,
return result B.
Response
You reported an AverageHourlyHeatlnputRate but did not determine the
ReferenceGrossHeatRate value. The hourly heat input rate is only needed if you use the
GHR methodology.
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
Severity
Non-Critical Error
Critical Error Level 1
Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 188 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
F2LREF-8
Check Name:
Flow to Load Reference Data Reference RATA Valid
Related Former Checks: FTLRF-2A/E
Applicability:
CEM Check
Description:
Specifications:
For flow-to-load reference data:
Set Flow to Load Reference RATA Test ID and Flow to Load Reference RATA Supp ID to null.
If RATATestNumber and OperatingLevelCode are valid,
Locate a QA Supp Data record for the location where the TestTypeCode is equal to "RATA", the MonitoringSystemID is
equal to the MonitoringSystemID of the flow-to-load reference data, the TestNumber is equal to the RATATestNumber of
the flow-to-load reference data.
If not found,
Locate all RATA Summary records for the system where the TestNumber of the associated TestSummary record is
equal to the RATATestNumber of the flow-to-load reference data.
If not found,
return result A.
If found,
If the OperatingLevelCode in any retrieved record is equal to the OperatingLevelCode of the flow-to-load
reference data,
return result D.
Otherwise,
return result C.
If CAN SUBMIT is equal to "Y",
Locate all RATA Summary records for the system where the TestNumber of the associated TestSummary
record is equal to the RATATestNumber of the flow-to-load reference data.
If found and the associated NeedsEvalFlag is equal to " Y",
return result D.
//If no result
If TestResultCode in the retrieved QA Supp Data record is not null,
Locate the QA Supp Attribute record for the location where the QA Supp Data ID is equal to the QA Supp
Data ID in the retrieved QA Supp Data record and the AttributeName is equal to
"OPLEVELCDLIS T".
If the Attribute Value does not contain the OperatingLevelCode of the flow-to-load reference data,
return result C.
If found,
Otherwise,
If the Test End Date Valid, Test End Hour Valid, and Test End Minute Valid are true,
Environmental Protection Agency
Page 189 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If the EndDate/Hour/Minute of the flow-to-load reference data is after the
BeginDate/Hour/Minute and on or before the EndDate/Hour/Minute of the QA Supp Data
record,
set Flow to Load Reference RATA Supp ID to the QA Supp Data ID of the
retrieved record.
Otherwise,
return result B.
Otherwise,
return result D.
Results:
Result
A
B
C
D
Usage:
1
Response
The software could not find the reference RATA reported in the flow-to-load reference
data.
The reference RATA was performed at different time from the end time reported in the
flow-to-load reference data.
The reference RATA was not performed at the OperatingLevelCode [level] reported in
the flow-to-load reference data.
The flow-to-load-reference data cannot be evaluated, because the reference RATA has
not yet been evaluated or has critical errors.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 190 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For flow-to-load reference data:
Set Flow to Load Reference Calc Average Gross Unit Load and Flow to Load Reference Calc Average Reference Method Flow to
null.
If either the Flow to Load Reference RATA Supp ID and Flow to Load Reference RATA Summary ID is not null,
Set variables RunUsedCount, SumGrossUnitLoad, SumReferenceMethodFlow to 0.
If Flow to Load Reference RATA Supp ID is not null,
If the OperatingLevelCode in the flow-to-load reference data is equal to "H" or "N",
Locate a QASuppAttribute record where the QASuppDatalD is equal to Flow to Load Reference RATA
Supp ID and AttributeName is equal to "HIGH RUN USED COUNT"
If found,
set RunUsedCount to Attribute Value.
Locate a QASuppAttribute record where the QASuppDatalD is equal to Flow to Load Reference
RATA Supp ID and Attribute Name is equal to "fflGH SUM GROSS UNIT LOAD"
If found,
set SumGrossUnitLoad to Attribute Value.
Locate a QASuppAttribute record where the QASuppDatalD is equal to Flow to Load
Reference RATA Supp ID and Attribute Name is equal to
"HIGHSUMRATAREFVALUE"
If found,
set SumReferenceMethodFlow to AttributeValue.
Otherwise,
return result A.
Otherwise,
return result A.
Otherwise,
return result A.
If the OperatingLevelCode in the flow-to-load reference data is equal to "M",
Locate a QASuppAttribute record where the QASuppDatalD is equal to Flow to Load Reference RATA
Supp ID and Attribute Name is equal to "MIDRUNUSEDCOUNT"
If found,
set RunUsedCount to Attribute Value.
Locate a QASuppAttribute record where the QASuppDatalD is equal to Flow to Load Reference
RATA Supp ID and Attribute Name is equal to "MID_SUM_GROSS_UNIT_LOAD"
F2LREF-9
Calculate Flow to Load Reference Data Values
CEM Check
Environmental Protection Agency
Page 191 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If found,
set SumGrossUnitLoad to Attribute Value.
Locate a QASuppAttribute record where the QASuppDatalD is equal to Flow to Load
Reference RATA Supp ID and AttributeName is equal to
"MID_SUM_RATA_REF_'VALUE"
If found,
set SumReferenceMethodFlow to Attribute Value.
Otherwise,
return result A.
Otherwise,
return result A.
Otherwise,
return result A.
If the OperatingLevelCode in the flow-to-load reference data is equal to "L",
Locate a QASuppAttribute record where the QASuppDatalD is equal to Flow to Load Reference RATA
Supp ID and Attribute Name is equal to "LOW_RUN_USED_COUNT"
If found,
set RunUsedCount to AttributeValue.
Locate a QASuppAttribute record where the QASuppDatalD is equal to Flow to Load Reference
RATA Supp ID and Attribute Name is equal to "LOW_SUM_GROSS_UNIT_LOAD"
If found,
set SumGrossUnitLoad to Attribute Value.
Locate a QASuppAttribute record where the QASuppDatalD is equal to Flow to Load
Reference RATA Supp ID and Attribute Name is equal to
"LOW_SUM_RATA_REF_VALUE"
If found,
set SumReferenceMethodFlow to Attribute Value.
Otherwise,
return result A.
Otherwise,
return result A.
Otherwise,
return result A.
If Flow to Load Reference RATA Summary ID is not null:
Locate all RATA Run records where the associated RATASummarylD is equal to Flow to Load Reference RATA
Summary ID and the RunStatusFlag is equal to "RUNUSED".
For each retrieved RATA Run record:
If GrossUnitLoad is greater than 0 and either the CalculatedRATAReferenceValue is not null or
Environmental Protection Agency
Page 192 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
RATAReferenceValue is greater than 0,
Add 1 to RunUsedCount.
Add GrossUnitLoad to SumGrossUnitLoad.
If CalculatedRATAReferenceValue is not null,
add CalculatedRATAReferenceValue to SumReferenceMethodFlow.
Otherwise,
add RATAReferenceValue to SumReferenceMethodFlow.
Otherwise,
return result A.
If RunUsedCount is less than 9,
return result A.
Calculate SumReferenceMethodFlow = SumReferenceMethodFlow / RunUsedCount.
If UnitStackPipelD begins with "MS" and the CalcSeparateReferencelndicator is not equal to 1,
Locate the UnitStackConfiguration record where the stack/pipe location is the location in the flow-to-load reference
data.
Locate all UnitStackConfiguration records where the unit location is the unit location in the retrieved
UnitStackConfiguration record, the associated StackPipelD begins with "MS" but is not equal to the
UnitStackPipelD in the flow-to-load reference data.
For each retrieved UnitStackConfiguration record,
Set OtherReferenceMethodFlow and OtherRunUsedCount to 0.
Locate all QA Supp Data records where the location is the stack/pipe location in the retrieved
UnitStackConfiguration record, the TestTypeCode is equal to "RATA", CANSUBMIT is equal to "N",
the associated SystemTypeCode is equal to "FLOW", the EndDate is within 30 days of the EndDate in the
flow-to-load reference data, the TestResultCode begins with "PASS".
If more than one record is found,
return result B.
If one record is found,
Locate a QASuppAttribute record where the QASuppDatalD is equal to the QASuppDatalD of the
retrieved QA Supp Data record, the AttributeName is equal to "OPLEVELCDLIST", and
AttributeValue contains the OperatingLevelCode in the flow-to-load reference data.
If not found,
return result B.
Otherwise,
If the OperatingLevelCode in the flow-to-load reference data is equal to "H" or "N",
Locate a QASuppAttribute record where the QASuppDatalD is equal to the
QASuppDatalD of the retrieved QA Supp Data record and the Attribute Name is
equal to "fflGHRUNUSEDCOUNT".
If found,
Environmental Protection Agency
Page 193 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
add Attribute Value to OtherRunUsedCount.
Locate a QASuppAttribute record where the QASuppDatalD is equal to
the QASuppDatalD of the retrieved QA Supp Data record and the
AttributeName is equal to "fflGH_SUM_GROSS_UNIT LOAD"
If found,
add Attribute Value to SumGrossUnitLoad
Locate a QASuppAttribute record where the QASuppDatalD is
equal to the QASuppDatalD of the retrieved QA Supp Data
record and the Attribute Name is equal to
"HIGHSUMRATAREFJVALUE".
If found,
add AttributeValue to
OtherSumReferenceMethodFlow.
Otherwise,
return result A.
Otherwise,
return result A.
Otherwise,
return result A.
If the OperatingLevelCode in the flow-to-load reference data is equal to "M",
Locate a QASuppAttribute record where the QASuppDatalD is equal to the
QASuppDatalD of the retrieved QA Supp Data record and the Attribute Name is
equal to "MIDRUNUSEDCOUNT".
If found,
add Attribute Value to OtherRunUsedCount.
Locate a QASuppAttribute record where the QASuppDatalD is equal to
the QASuppDatalD of the retrieved QA Supp Data record and the
Attribute Name is equal to "MLDSUMGROSSUNITLOAD"
If found,
add Attribute Value to SumGrossUnitLoad
Locate a QASuppAttribute record where the QASuppDatalD is
equal to the QASuppDatalD of the retrieved QA Supp Data
record and the Attribute Name is equal to
"MIDSUMRATAREFVALUE".
If found,
add Attribute Value to
OtherSumReferenceMethodFlow.
Otherwise,
return result A.
Otherwise,
return result A.
Environmental Protection Agency
Page 194 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
return result A.
If the OperatingLevelCode in the flow-to-load reference data is equal to "L",
Locate a QASuppAttribute record where the QASuppDatalD is equal to the
QASuppDatalD of the retrieved QA Supp Data record and the AttributeName is
equal to "LOW_RUN_USED_COUNT".
If found,
add Attribute Value to OtherRunUsedCount.
Locate a QASuppAttribute record where the QASuppDatalD is equal to
the QASuppDatalD of the retrieved QA Supp Data record and the
Attribute Name is equal to "LOW_SUM_GROSS_UNIT_LOAD"
If found,
add Attribute Value to SumGrossUnitLoad
Locate a QASuppAttribute record where the QASuppDatalD is
equal to the QASuppDatalD of the retrieved QA Supp Data
record and the Attribute Name is equal to
"LOWSUMRATAREFVALUE".
If found,
add AttributeValue to
OtherSumReferenceMethodFlow.
Otherwise,
return result A.
Otherwise,
return result A.
Otherwise,
return result A.
If not found,
Locate all RATA Summary where the location is the stack/pipe location in the retrieved
UnitStackConfiguration record, the associated SystemTypeCode is equal to "FLOW", the
associated EndDate is within 30 days of the EndDate in the flow-to-load reference data, the
associated TestResultCode begins with "PASS", and the OperatingLevelCode is equal to the
OperatingLevelCode in the flow-to-load reference data.
If one record is found,
Locate all RATA Run records where the associated RATASummarylD is equal to
RATASummarylD of the retrieved record and the RunStatusFlag = "RUNUSED".
For each retrieved RATA Run record:
If GrossUnitLoad is greater than 0 and either the
CalculatedRATAReferenceValue is not null or RATAReferenceValue is greater
than 0,
Add 1 to OtherRunUsedCount.
Add GrossUnitLoad to SumGrossUnitLoad.
Environmental Protection Agency
Page 195 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If CalculatedRATAReferenceValue is not null,
add CalculatedRATAReferenceValue to
OtherSumReferenceMethodFlow.
Otherwise,
add RATAReferenceValue to OtherSumReferenceMethodFlow.
Otherwise,
return result A.
If OtherRunUsedCount is less than 9,
return result A.
Otherwise,
return result B.
Calculate RunUsedCount = RunUsedCount + OtherRunUsedCount.
Calculate SumReferenceMethodFlow = SumReferenceMethodFlow + (OtherSumReferenceMethodFlow /
OtherRunUsedCount).
Calculate Flow to Load Reference Calc Average Gross Unit Load = SumGrossUnitLoad / RunUsedCount, rounded to the
nearest integer.
Set Flow to Load Reference Calc Average Reference Method Flow to SumReferenceMethodFlow, rounded to the nearest
integer.
Results:
Result
A
Response
The AverageGrossUnitLoad and AverageReferenceMethodFlow could not be
recalculated because of invalid data in the reported reference RATA(s).
The AverageGrossUnitLoad and AverageReferenceMethodFlow could not be
recalculated because the software could not identify the reference RATA(s) at the other
multiple stack(s) linked to the unit.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 196 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LREF-10
Check Name: Flow to Load Reference Data Average Reference Method Flow Valid
Related Former Checks: FTLRF-4
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Test Tolerances (Cross Check Table)
Specifications:
For the flow-to-load reference data:
If the AverageReferenceMethodFlow is null,
return result A.
If the AverageReferenceMethodFlow is less than or equal to 0,
return result B.
Otherwise,
If the Flow to Load Reference Calc Average Reference Method Flow is not null,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "F2LREF" and the
FieldDescription is equal to "AverageReferenceMethodFlow".
If the absolute value of the difference between the Flow to Load Reference Calc Average Reference Method Flow
and the AverageReferenceMethodFlow is greater than the Tolerance in the cross-check record,
return result C.
Results:
Result Response
A You did not provide [fieldname], which is required for [key],
B You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
C The reported AverageReferenceMethodFlow is inconsistent with the recalculated
arithmetic mean of the reference method values in the run records of the reference
RATA(s).
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 197 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
F2LREF-11
Check Name:
Flow to Load Reference Data Average Gross Unit Load Valid
Related Former Checks: FTLRF-3
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Test Tolerances (Cross Check Table)
Specifications:
For the flow-to-load reference data:
Set Flow to Load Reference Calc GHR and Flow to Load Reference Calc Flow to Load Ratio to null.
If the AverageGrossUnitLoad is null,
return result A.
If the AverageGrossUnitLoad is less than or equal to 0,
return result B.
Otherwise,
If Flow to Load Reference Methodology Valid is true,
If AverageHourlyHeatlnputRate is greater than 0,
calculate Flow to Load Reference Calc GHR = AverageHourlyHeatlnputRate / AverageGrossUnitLoad *
1000, and round to the nearest integer.
If AverageReferenceMethodFlow is greater than 0,
calculate Flow to Load Reference Calc Flow to Load Ratio = AverageReferenceMethodFlow /
AverageGrossUnitLoad / 100000, and round to two decimal places.
If the Flow to Load Reference Calc Average Gross Unit Load is not null,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "F2LREF" and the
FieldDescription is equal to "AverageGrossUnitLoad".
If found, and the absolute value of the difference between the Flow to Load Reference Calc Average Gross Unit
Load and the AverageGrossUnitLoad is greater than the Tolerance in the cross-check record,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The reported AverageGrossUnitLoad is inconsistent with the recalculated average of the
GrossUnitLoad reported in the run records of the reference RATA(s).
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 198 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LREF-12
Check Name: Flow to Load Reference Data Reference Flow to Load Ratio Valid
Related Former Checks: FTLRF-6
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Test Tolerances (Cross Check Table)
Specifications:
For flow-to-load reference data with a valid methodology:
If ReferenceFlowToLoadRatio is not null,
If ReferenceFlowToLoadRatio is less than or equal to 0,
return result A.
Otherwise,
If Flow to Load Reference Calc Flow to Load Ratio is not null,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "F2LREF" and the
FieldDescription is equal to "ReferenceFlowLoadRatio".
If the absolute value of the difference between the Flow to Load Reference Calc Flow To Load Ratio and
the ReferenceFlowLoadRatio is greater than the Tolerance in the cross-check record,
return result B.
Results:
Result
A
B
Usage:
1
1
Response
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The ReferenceFlowLoadRatio does not equal the recalculated ratio based on the
reported values for AverageReferenceMethodFlow and AverageGrossUnitLoad.
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
Conditions: Flow to Load Reference System Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 199 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LREF-13
Check Name: Flow to Load Reference Data Reference Gross Heat Rate Valid
Related Former Checks: FTLRF-7
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Test Tolerances (Cross Check Table)
Specifications:
For flow-to-load reference data with a valid methodology:
In the QA Evaluation Process, the Flow to Load Reference Calc Average Gross Unit Load, Flow to Load Reference Calc Average
Reference Method Flow, Flow to Load Reference Calc Flow to Load Ratio, and Flow to Load Reference Calc GHR will be stored as
calculated values in the FlowToLoadReference record for the test, and (for tests that have not yet been submitted or have been
approved for resubmission) the appropriate values will be stored in the QA Supp Data and QA Supp Attribute records for the test.
If ReferenceGrossHeatRate is not null,
If ReferenceGrossHeatRate is less than or equal to 0,
return result A.
Otherwise,
If Flow to Load Reference Calc GHR is not null,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "F2LREF" and the
FieldDescription is equal to "ReferenceGHR".
If the absolute value of the difference between the Flow to Load Reference Calc GHR and the
ReferenceGrossHeatRate is greater than the Tolerance in the cross-check record,
return result B.
Results:
Result
A
B
Response
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The ReferenceGrossHeatRate does not equal the recalculated value based on the
reported values for AverageHourlyHeatlnputRate and the AverageGrossUnitLoad.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
Conditions: Flow to Load Reference System Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 200 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
F2LREF-14
Check Name:
Duplicate Flow to Load Reference Data
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For flow-to-load reference data with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode is equal to "F2LREF" and the TestNumber is equal to
the TestNumber in the current record.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "F2LREF" and the
TestNumber is equal to the TestNumber in the current record.
If found,
return result B.
If found,
return result A.
Results:
Result
A
Response
Another [testtype] with this test number already exists. You must assign a different test
number.
You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 201 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LREF-15
Check Name: System ID Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the flow-to-load reference data:
If the MonitoringSystemID is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Environmental Protection Agency
Page 202 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: F2LREF-16
Check Name: Calculate Flow-to-Load Reference Data
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the Flow-to-load Reference Data:
Set F2L Calc GUL, F2L Calc Flow, F2L Calc Ratio, and F2L Calc GHR to null.
If MonitoringSystemID is null, RATATestNumber is null, or OperatingLevelCode is not equal to "Ft", "L", "M",
return result A.
If the EndDate is null, or is before 1/1/1993, or is after the current date, or the EndHour is not between 0 and 23, or the EndMinute
is not between 0 and 59,
return result A.
If ReferenceFlowToLoadRatio and ReferenceGrossHeatRate are both null or are both not null,
return result A.
If ReferenceGrossHeatRate is not null and the AverageHourlyHeatlnputRate is null or is less than or equal to 0,
return result A.
Otherwise,
Locate all RATA Summary records where the MonitoringSystemID, OperatingLevelCode, and the TestNumber of
associated TestSummary record is equal to the MonitoringSystemID, OperatingLevelCode and RATATestNumber of the
flow-to-load reference data.
If not found,
return result B.
If found, and the EndDate/Hour/Minute of the flow-to-load reference data is on or before the BeginDate/Hour/Minute or is
after the EndDate/Hour/Minute of the TestSummary record associated with the retrieved RATA Summary record,
return result E.
Otherwise,
Set variables RunUsedCount, SumGrossUnitLoad, SumReferenceMethodFlow to 0.
Locate all RATA Run records for the retrieved RATA Summary record where the RunStatusFlag is equal to
"RUNUSED".
For each retrieved RATA Run record:
If GrossUnitLoad is greater than 0 and RATAReferenceValue is greater than 0,
Add 1 to RunUsedCount.
Add GrossUnitLoad to SumGrossUnitLoad.
Add RATAReferenceValue to SumReferenceMethodFlow.
Otherwise,
return result C.
If RunUsedCount is less than 9,
return result C.
Environmental Protection Agency
Page 203 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Calculate SumReferenceMethodFlow = SumReferenceMethodFlow / RunUsedCount.
If UnitStackPipelD begins with "MS" and the CalcSeparateReferencelndicator is not equal to 1,
Locate the UnitStackConfiguration record where the stack/pipe location is the location in the flow-to-load
reference data.
Locate all UnitStackConfiguration records where the unit location is the unit location in the retrieved
UnitStackConfiguration record, the associated StackPipelD begins with "MS" but is not equal to the
associated UnitStackPipelD in the flow-to-load reference data.
For each retrieved UnitStackConfiguration record,
Set OtherReferenceMethodFlow and OtherRunUsedCount to 0.
Locate all RATA Summary where the location is the stack/pipe location in the retrieved
UnitStackConfiguration record, the associated SystemTypeCode is equal to "FLOW", the
associated EndDate is within 30 days of the EndDate in the flow-to-load reference data, the
associated TestResultCode begins with "PASS", and the OperatingLevelCode is equal to the
OperatingLevelCode in the flow-to-load reference data.
If exactly one record is found,
Locate all RATA Run records for the retrieved RATA Summary record where the
RunStatusFlag = "RUNUSED".
For each retrieved RATA Run record:
If GrossUnitLoad is greater than 0 and RATAReferenceValue is greater than 0,
Add 1 to OtherRunUsedCount.
Add GrossUnitLoad to SumGrossUnitLoad.
Add RATAReferenceValue to OtherSumReferenceMethodFlow.
Otherwise,
return result C.
If OtherRunUsedCount is less than 9,
return result C.
Otherwise,
Calculate RunUsedCount = RunUsedCount + OtherRunUsedCount.
Calculate SumReferenceMethodFlow = SumReferenceMethodFlow +
OtherSumReferenceMethodFlow / OtherRunUsedCount).
Otherwise,
return result D.
Calculate F2L Calc GUL = SumGrossUnitLoad / RunUsedCount, rounded to the nearest integer.
Set F2L Calc Flow to SumReferenceMethodFlow, rounded to the nearest integer.
If ReferenceGHR is not null,
Calculate F2L Calc GHR = AverageHourlyHeatlnputRate / F2L Calc GUL * 1000, and round to the
nearest integer.
Environmental Protection Agency
Page 204 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
Calculate F2L Calc Ratio = F2L Calc Flow / F2L Calc GUL / 100000, and round to two decimal places.
Results:
Result
A
B
C
D
E
Response
The values in this record could not be calculated because of invalid data.
The software could not find the reference RATA reported in the flow-to-load reference
data. You should retrieve the RATA from the EPA host database if you wish to
calculate the values in this flow-to-load reference data record.
The values could not be recalculated because of invalid data in the reported reference
RATA(s).
The values could not be recalculated because the software could not identify the
reference RATA(s) at the other multiple stack(s) linked to the unit.
The reference RATA was performed at different time from the end time reported in the
flow-to-load reference data.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Calculations
Environmental Protection Agency
Page 205 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Fuel Flowmeter Accuracy Test
Environmental Protection Agency
Page 206 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the accuracy test:
If the ComponentID is null,
set Accuracy Test Component Type Valid to false, and return result A.
Otherwise,
If the ComponentTypeCode of the associated component is not equal to "OFFM" or "GFFM",
set Accuracy Test Component Type Valid to false, and return result B.
Otherwise,
set Accuracy Test Component Type Valid to true.
Results:
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
FFACC-1
Accuracy Test Component Type Valid
ACC-2
Appendix D Check
Result Response
A You did not provide [fieldname], which is required for [key],
B The component type in the monitoring plan is [comptype]. This type of component does
not require a fuel flow accuracy test. Only component types 'OFFM' or 'GFFM' may
have a fuel flow accuracy test.
Environmental Protection Agency
Page 207 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACC-2
Check Name:
Aborted Accuracy Test Check
Related Former Checks:
Applicability:
Appendix D Check
Description:
Specifications:
For the accuracy test:
If the Accuracy Test Component Type Valid is false,
set Evaluate Accuracy Test to false.
Otherwise,
If the TestResultCode is equal to "ABORTED",
set Evaluate Accuracy Test to false, set Accuracy Test Calc Result to "ABORTED", and return result A.
Otherwise,
set Evaluate Accuracy Test to true.
Results:
Result
A
Response
The TestResultCode indicates that the test was aborted. If the test was aborted for a
reason not related to monitor performance, you should not report the test.
Severity
Informational Message
Usage:
1
Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
Environmental Protection Agency
Page 208 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FFACC-3
Check Name: Identification of Previously Reported Test or Number for Fuel Flowmeter Accuracy Test
Related Former Checks:
Applicability: Appendix D Check
Description:
Specifications:
For an accuracy test with valid End Time and a non-null ComponentID:
Locate another accuracy test for the component where the EndDate, EndHour, and EndMinute are equal to the EndDate, EndHour,
and EndMinute of the current TestSummary record.
If found,
return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestTypeCode is equal to "FFACC", and the
ComponentID, EndDate, and EndHour is equal to ComponentID, EndDate, and EndHour of the current TestSummary
record, and the EndMinute is null or is equal to the EndMinute in the current TestSummary record, and the TestNum is not
equal to the TestNumber in the current TestSummary record,
If found,
return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "FFACC" and the TestNum equal to
the TestNumber in the current TestSummary record.
If found,
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the ComponentID, EndDate, EndHour, and
EndMinute in the QASupp record is not equal to ComponentID, EndDate, EndHour, or
EndMinute of the current TestSummary record,
return result B.
Otherwise,
return result C.
Results:
Result Response
A Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
B Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
C This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 209 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
Conditions: Duplicate Fuel Flow Accuracy Equals false
Environmental Protection Agency
Page 210 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the accuracy test:
If AccuracyTestMethodCode is valid and is equal to "ILMMF",
If ReinstallationDate or ReinstallationHour is not null,
return result A.
If the ReinstallationDate is not null,
If the ReinstallationDate is prior to 1/1/1993 or later than the current date,
return result B.
If the ReinstallationHour is between 0 and 23,
If the EndDate and EndHour of the test are valid, and the ReinstallationDate and ReinstallationHour are prior to the
EndDate and EndHour of the test,
return result C.
If the ReinstallationDate is null,
If AccuracyTestMethodCode is valid and is not equal to "ILMMF",
return result E.
FFACC-4
Accuracy Test Reinstallation Date Valid
Appendix D Check
Results:
Result
A
B
C
D
E
Usage:
1
1
Response
You reported a ReinstallationDate and/or ReinstallationHour for an accuracy test that,
according to the accuracy test method, was performed in-line.
You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
You reported a ReinstallationDate/Hour which precedes EndDate/Hour of the accuracy
test.
This check result is obsolete.
You did not report a ReinstallationDate for an accuracy test that, according to the
accuracy test method, was not performed in-line.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
No Errors
Critical Error Level 1
Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
Conditions: Evaluate Accuracy Test Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
Conditions: Evaluate Accuracy Test Screen Equals true
Environmental Protection Agency
Page 211 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACC-5
Check Name:
Accuracy Test Reinstallation Hour Valid
Related Former Checks:
Applicability:
Appendix D Check
Description:
Specifications:
For the accuracy test:
If the ReinstallationHour is null,
If AccuracyTestMethodCode is valid and is not equal to "ILMMF",
return result A.
If the ReinstallationHour is not between 0 and 23,
return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
Conditions:
QA Test Evaluation Report Fuel Flowmeter Accuracy Test
Evaluate Accuracy Test Equals true
QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
Evaluate Accuracy Test Screen Equals true
1
Environmental Protection Agency
Page 212 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACC-6
Check Name:
Accuracy Test Reason Code Valid
Related Former Checks:
Applicability:
Appendix D Check
Description:
Validation Tables:
Test Reason Code (Lookup Table)
Test Reason Code (Lookup Table)
Specifications:
For the accuracy test:
If the TestReasonCode is null,
If EndDate is on or after ECMPS MP Begin Date,
return result A.
Otherwise,
return result B.
If the TestReasonCode is not in the TestReasonCode lookup table,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You did not provide [fieldname] for [key]. This information will be required for
ECMPS submissions.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Non-Critical Error
C
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report Fuel Flowmeter Accuracy Test
Accuracy Test Component Type Valid Equals true
QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
1
Environmental Protection Agency
Page 213 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACC-7
Check Name:
Accuracy Test Method Code Valid
Related Former Checks:
Applicability:
Appendix D Check
Description:
Validation Tables:
Accuracy Test Method Code (Lookup Table)
Accuracy Test Method Code (Lookup Table)
Specifications:
For the accuracy test:
If the AccuracyTestMethodCode is null,
set Accuracy Test Method Valid to false, and return result A.
If the AccuracyTestMethodCode is not in the AccuracyTestMethodCode lookup table,
set Accuracy Test Method Valid to false, and return result B.
Otherwise,
set Accuracy Test Method Valid to true.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
Conditions:
QA Test Evaluation Report Fuel Flowmeter Accuracy Test
Evaluate Accuracy Test Equals true
QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
Evaluate Accuracy Test Screen Equals true
1
Environmental Protection Agency
Page 214 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACC-8
Check Name:
Accuracy Test Low Fuel Accuracy Valid
Related Former Checks:
Applicability:
Appendix D Check
Description:
Specifications:
For the accuracy test:
If LowFuelAccuracy is null,
return result A.
If LowFuelAccuracy is less than 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1
Process/Category:
Conditions:
Process/Category:
Conditions:
QA Test Evaluation Report Fuel Flowmeter Accuracy Test
Evaluate Accuracy Test Equals true
QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
Evaluate Accuracy Test Screen Equals true
1
Environmental Protection Agency
Page 215 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACC-9
Check Name:
Accuracy Test Mid Fuel Accuracy Valid
Related Former Checks:
Applicability:
Appendix D Check
Description:
Specifications:
For the accuracy test:
If MidFuelAccuracy is null,
return result A.
If MidFuelAccuracy is less than 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1
Process/Category:
Conditions:
Process/Category:
Conditions:
QA Test Evaluation Report Fuel Flowmeter Accuracy Test
Evaluate Accuracy Test Equals true
QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
Evaluate Accuracy Test Screen Equals true
1
Environmental Protection Agency
Page 216 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FFACC-10
Check Name: Accuracy Test High Fuel Accuracy Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Specifications:
For the accuracy test:
If HighFuelAccuracy is null,
return result A.
If FtighFuelAccuracy is less than 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
Conditions: Evaluate Accuracy Test Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
Conditions: Evaluate Accuracy Test Screen Equals true
Environmental Protection Agency
Page 217 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACC-11
Check Name:
Accuracy Test Result Code Valid
Related Former Checks: ACC-4
Applicability:
Appendix D Check
Description:
Validation Tables:
Test Result Code (Lookup Table)
Test Result Code (Lookup Table)
Specifications:
For the accuracy test:
Set Accuracy Test Calc Result to null.
If TestResultCode is not equal to "ABORTED",
If HighFuelAccuracy, MidFuelAccuracy, and LowFuelAccuracy are all greater than or equal to 0,
If the TestResultCode is null,
return result A.
If the TestResultCode is not equal to "PASSED", "FAILED" or "ABORTED",
Locate the TestResultCode in the Test Result Code Lookup table.
If not found,
return result B.
If found,
return result C.
If the TestResultCode is equal to "PASSED" and Accuracy Test Calc Result is equal to "FAILED",
return result D.
If the TestResultCode is equal to "FAILED" and Accuracy Test Calc Result is equal to "PASSED",
In the QA Evaluation Process, the Accuracy Test Calc Result will be stored as calculated values in the Test Summary record for the
test, and (for tests that have not yet been submitted or have been approved for resubmission) the appropriate values will be stored in
the QA Supp Data record for the test.
If HighFuelAccuracy, MidFuelAccuracy, or LowFuel Accuracy is greater than 2.0
set Accuracy Test Calc Result to "FAILED",
Otherwise,
set Accuracy Test Calc Result to "PASSED".
return result E.
Environmental Protection Agency
Page 218 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
C
D
E
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
The TestResultCode indicates a passing accuracy test but the accuracy results do not
meet the criteria of 2.0% of the upper range value to pass an accuracy test.
You reported a TestResultCode of "FAILED", but the results recalculated or determined
from the other reported values indicate that the test passed.
Severity
Critical Error Level 1
Fatal
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
Environmental Protection Agency
Page 219 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACC-12
Check Name:
Accuracy Test Component ID Valid
Related Former Checks:
Applicability:
Appendix D Check
Description:
Specifications:
For the accuracy test:
If the ComponentID is null,
set Evaluate Accuracy Test Screen to false, and return result A.
If TestResultCode is equal to "ABORTED",
set Evaluate Accuracy Test Screen to false.
Otherwise,
set Evaluate Accuracy Test Screen to true.
Results:
Result
A
Response
You did not provide [fieldname], which is required for [key].
Severity
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
Environmental Protection Agency
Page 220 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACC-13
Check Name:
Duplicate Fuel Flowmeter Accuracy Test
Related Former Checks:
Applicability:
Appendix D Check
Description:
Specifications:
For an accuracy test with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode is equal to "FFACC" and the TestNumber is equal to
the TestNumber in the current record.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "FFACC" and the TestNumber
is equal to the TestNumber in the current record.
If found,
return result B.
If found,
return result A.
Results:
Result
A
Response
Another [testtype] with this test number already exists. You must assign a different test
number.
You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
Environmental Protection Agency
Page 221 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Fuelflow-to-Load Baseline Data
Environmental Protection Agency
Page 222 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LBAS-1
Check Name:
FuelFlow to Load Baseline System Type Valid
Related Former Checks: FFLRF-1
Applicability:
Appendix D Check
Description:
Specifications:
For the fuel-flow-to-load baseline data:
If the MonitoringSystemID is null,
set FF2LBAS System Valid to false, and return result A.
Otherwise,
If the SystemTypeCode of the associated system is equal to "OILV", "OILM", "GAS", "LTOL", or "LTGS",
If FF2LBAS System is invalid, do not perform other checks. In the QA Evaluation Process, (for tests that have not yet been
submitted or have been approved for resubmission) the appropriate values will be stored in the QA Supp Data record for the test.
set FF2LBAS System Valid to true.
Otherwise,
set FF2LBAS System Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
According to the monitoring system record, the monitoring system for this [testtype] was
not a fuel flow system.
Severity
Fatal
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
Environmental Protection Agency
Page 223 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LBAS-2
Check Name: Identification of Previously Reported Test or Test Number for FuelFlow to Load Baseline Data
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For fuel flow-to-load baseline data with valid end time and a non-null MonitoringSystemID:
Locate another fuel flow-to-load baseline data record for the system where the EndDate and EndHour are equal to EndDate and
EndHour of the current TestSummary record.
If found,
return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestType Code is equal to "FF2LBAS", and the
MonitoringSystemID, EndDate, and EndHour is equal to MonitoringSystemID, EndDate, and EndHour of the current
TestSummary record, and the TestNum is not equal to the TestNumber in the current TestSummary record,
If found,
return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "FF2LBAS" and the TestNum equal
to the TestNumber in the current TestSummary record.
If found,
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the MonitoringSystemID, EndDate, and EndHour in
the QASupp record is not equal to MonitoringSystemID, EndDate, and EndHour of the current
TestSummary record,
return result B.
Otherwise,
return result C.
Results:
Result Response
A Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
B Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
C This test has already been submitted and will not be resubmitted. If you wish to Informational Message
resubmit this test, please contact EPA for approval.
Severity
Fatal
Fatal
Environmental Protection Agency
Page 224 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Conditions: Duplicate Fuel Flow to Load Baseline Equals false
Environmental Protection Agency
Page 225 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LBAS-3
Check Name: FuelFlow to Load Baseline Accuracy Test Number Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Specifications:
For fuelflow-to-load baseline data:
Set FF2LBAS Accuracy Test Baseline Start Date and FF2LBAS Accuracy Test Baseline Start Hour to null.
Set FF2LBAS PEI Required to false.
If AccuracyTestNumber is null,
return result A.
Otherwise,
Locate a QASupp record for the location where the TestType Code is equal to "FFACC" or "FFACCTT", the TestNumber
is equal to the AccuracyTestNumber in the baseline data, and CANSUBMIT is equal to "N".
If not found,
Locate a Test Summary record for the location where the TestType Code is equal to "FFACC" or "FFACCTT" and
the TestNumber is equal to the AccuracyTestNumber in the baseline data.
If not found,
return result B.
If either a QA Supp record or Test Summary record was found,
Locate a System Component record for the system in the baseline data where the Componentldentifier is equal to
the Componentldentifier in the retrieved QA Supp or Test Summary record.
If not found,
return result C.
Otherwise,
If the TestTypeCode in the retrieved QA Supp or Test Summary record is equal to "FFACCTT" or the
associated SampleAcquisitionMethodCode of the component in the System Component record is equal to
"VCON",
set FF2LBAS PEI Required to true.
If the associated ReinstallationDate in the retrieved QA Supp or Test Summary record is null,
Set FF2LBAS Accuracy Test Baseline Start Date to the EndDate in the retrieved QA Supp or Test
Summary record.
Set FF2LBAS Accuracy Test Baseline Start Hour to the EndHour in the retrieved QA Supp or
Test Summary record.
Otherwise,
Set FF2LBAS Accuracy Test Baseline Start Date to the associated ReinstallationDate in the
retrieved QA Supp or Test Summary record.
Set FF2LBAS Accuracy Test Baseline Start Hour to the associated ReinstallationHour in the
retrieved QA Supp or Test Summary record.
Environmental Protection Agency
Page 226 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
C
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
The test identified by the [fieldname] in the fuel flow-to-load baseline data cannot be
found.
The test identified by the [fieldname] in the fuel flow-to-load baseline data was
conducted for a flowmeter component that does not belong to this monitoring system.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
Conditions: FF2LBAS System Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 227 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LBAS-4
Check Name:
FuelFlow to Load Baseline Method Valid
Related Former Checks: FFLRF-5
Applicability:
Appendix D Check
Description:
Specifications:
For fuelflow-to-load baseline data:
If both the BaselineFuelFlowToLoadRatio and the BaselineGFtR are not null,
set FF2LBAS Method Valid to false, and return result A.
If both the BaselineFuelFlowToLoadRatio and the BaselineGFtR are null,
set FF2LBAS Method Valid to false, and return result B.
Otherwise,
set FF2LBAS Method Valid to true.
Results:
Result
A
Response
You reported both a Fuel flow-to-load ratio and a GHR value. Since only one
methodology can be used, this record is invalid.
You did not report either a Fuel flow-to-load ratio or a GHR value.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report Fuelflow-to-Load Baseline Data
FF2LBAS System Valid Equals true
QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
1
Environmental Protection Agency
Page 228 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LBAS-5
Check Name:
FuelFlow to Load Baseline Duration Valid
Related Former Checks: FFLRF-3
Applicability:
Appendix D Check
Description:
Specifications:
For fuelflow-to-load baseline data:
Set FF2LBAS Collection Period Flours to null.
If Test Dates Consistent is true,
If the calendar year/quarter of the EndDate is more than 4 quarters after the calendar year/quarter of the BeginDate,
return result A.
Otherwise,
set FF2LBAS Collection Period Hours to the number of hours between the BeginDate/BeginHour and the
EndDate/EndHour (inclusive).
Results:
Result
A
Response
The baseline period exceeds the 4 quarters allowed for the collection of fuel
flow-to-load baseline data.
Severity
Critical Error Level 2
Usage:
1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
1
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 229 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LBAS-6
Check Name: FuelFlow to Load Baseline PEI Test Number Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Specifications:
For fuelflow-to-load baseline data:
If PEITestNumber is null,
Set FF2LBAS Baseline Start Date to the FF2LBAS Accuracy Test Baseline Start Date.
Set FF2LBAS Baseline Start Hour to the FF2LBAS Accuracy Test Baseline Start Hour.
If FF2LBAS PEI Required is equal to true,
return result A.
Otherwise,
Set FF2LBAS Baseline Start Date and FF2LBAS Baseline Start Hour to null.
Locate a QASupp record for the location where the TestType Code is equal to "PEI", the TestNumber is equal to the
PEITestNumber in the baseline data, and CANSUBMIT is equal to "N".
If not found,
Locate a Test Summary record for the location where the TestType Code is equal to "PEI" and the TestNumber is
equal to the PEITestNumber in the baseline data.
If not found,
return result B.
If either a QA Supp record or Test Summary record was found,
Locate a System Component record for the system in the baseline data where the Componentldentifier is equal to
the Componentldentifier in the retrieved QA Supp or Test Summary record.
If not found,
return result C.
Otherwise,
If the FF2LBAS Accuracy Test Baseline Start Date and FF2L Accuracy Test Baseline Start Hour is later
EndDate and EndHour in the retrieved QA Supp or Test Summary record,
Set FF2LBAS Baseline Start Date to the FF2LBAS Accuracy Test Baseline Start Date.
Set FF2LBAS Baseline Start Hour to the FF2LBAS Accuracy Test Baseline Start Hour.
Otherwise,
Set FF2LBAS Baseline Start Date to the EndDate in the retrieved QA Supp or Test Summary
record.
Set FF2LBAS Baseline Start Hour to the EndHour in the retrieved QA Supp or Test Summary
record.
If the BeginDate and BeginHour in the retrieved SystemComponent record is later than the FF2LBAS
Baseline Start Date and FF2LBAS Baseline Start Hour,
return result D.
Environmental Protection Agency
Page 230 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
C
D
Usage:
1
1
Response
You have not reported a PEITestNumber in the fuel flow-to-load baseline data, even
though this type of flowmeter generally requires a primary element visual inspection.
The test identified by the [fieldname] in the fuel flow-to-load baseline data cannot be
found.
The test identified by the [fieldname] in the fuel flow-to-load baseline data was
conducted for a flowmeter component that does not belong to this monitoring system.
The BeginDate and BeginHour of the System Component record associated with the
flowmeter in this system is later than the begin date and hour of the baseline data
collection period, or the associated PEI or Accuracy Test.
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Severity
Critical Error Level 2
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Environmental Protection Agency
Page 231 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LBAS-7
Check Name:
FuelFlow to Load Baseline Average Load Valid
Related Former Checks: FFLRF-4 and 7B
Applicability:
Description:
Specifications:
For fuelflow-to-load baseline data:
Set FF2LBAS Load UOM Code to null.
If AverageLoad is null,
return result A.
If AverageLoad is less than or equal to 0,
return result B.
If Test Dates Consistent is equal to true,
Locate the Load record for the location with the highest MaximumLoad where the BeginDate and BeginHour is on or
before the EndDate and EndHour of the baseline data and the EndDate is null or the EndDate and EndHour is on or after the
BeginDate and BeginHour of the baseline data.
If not found,
return result C.
Otherwise,
Set FF2LBAS Load UOM Code to the MaximumLoadUnitsOfMeasureCode in the retrieved record.
If AverageLoad is greater than the MaximumLoad Value in the retrieved record,
return result D.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
There is no MonitorLoad record for this unit or pipe that was active during the baseline
data collection period.
The AverageLoad reported for the baseline period exceeds the MaximumLoadValue
reported in the monitoring plan.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
D
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
1
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 232 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
FF2LBAS-8
FuelFlow to Load Baseline Avg Hourly Heat Input Rate Valid
FFLRF-6C
Appendix D Check
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For fuelflow-to-load baseline data with valid method and a non-null AverageHourlyHeatlnputRate:
If AverageHourlyHeatlnputRate is less than or equal to 0,
return result A.
Results:
Result
Response
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
Severity
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 233 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LBAS-9
Check Name: FuelFlow to Load Baseline Heat Input Rate Consistent with Maximum Heat Input
Related Former Checks: FFLRF-9
Applicability: Appendix D Check
Description:
Specifications:
For fuelflow-to-load baseline data with a valid method, consistent dates, and AverageHourlyHeatlnputRate greater than 0:
If the LocationID begins with "MP",
Locate the Unit Stack Configuration record for the pipe location where the BeginDate is on or before the EndDate of the
baseline data and the EndDate is null or is on or after the BeginDate of the baseline data.
Locate the Unit Capacity record with the highest MaximumHeatlnputCapacity where the location is the unit in the Unit
Stack Configuration record, the BeginDate is on or before the EndDate of the baseline data, and the EndDate is null or is on
or before the BeginDate of the baseline data.
If not found,
return result A.
If found,
If the AverageHourlyHeatlnputRate is greater than the MaximumHeatlnputCapacity in the retrieved record,
return result B.
If the LocationID begins with "CP",
Locate the Unit Stack Configuration records for the pipe location where the BeginDate is on or before the EndDate of the
baseline data and the EndDate is null or is on or after the BeginDate of the baseline data.
Set totalHI to 0.
For each retrieved record,
Locate the Unit Capacity record with the highest MaximumHeatlnputCapacity where the location is the unit in the
Unit Stack Configuration record, the BeginDate is on or before the EndDate of the baseline data, and the EndDate
is null or is on or before the BeginDate of the baseline data.
If not found,
return result A.
If found,
add MaximumHeatlnputCapacity to totalHI.
If the AverageHourlyHeatlnputRate is greater than totalHI,
return result B.
Otherwise,
Locate the Unit Capacity record with the highest MaximumHeatlnputCapacity where the location is the location in the
baseline data, the BeginDate is on or before the EndDate of the baseline data, and the EndDate is null or is on or before the
BeginDate of the baseline data.
If not found,
return result A.
If found,
If the AverageHourlyHeatlnputRate is greater than the MaximumHeatlnputCapacity in the retrieved record,
Environmental Protection Agency
Page 234 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
return result B.
Results:
Result
A
B
Usage:
1
Response
There are no active UnitCapacity records for this unit or for all units linked to this pipe
during the baseline data collection period.
The AverageHourlyHeatlnputRate for the baseline period exceeds the maximum heat
input capacity for the unit or for all units linked to the pipe.
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA Test Evaluation Report Fuelflow-to-Load Baseline Data
Environmental Protection Agency
Page 235 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
FF2LBAS-10
FuelFlow to Load Baseline Average FuelFlow Rate Valid
FFLRF-6A
Appendix D Check
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For fuelflow-to-load baseline data with valid method and non-null AverageFuelFlowRate:
If AverageFuelFlowRate is less than or equal to 0,
return result A.
Results:
Result
Response
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
Severity
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 236 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LBAS-11
Check Name: FuelFlow to Load Baseline Begin Time Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Specifications:
For a fuel flow-to-load baseline data record with a valid begin time and a non-null FF2LBAS Baseline Start Date:
If the BeginDate and BeginHour of the baseline data is prior to the FF2L Baseline Start Date and FF2L Baseline Start Flour,
return result A.
Results:
Result Response Severity
A According to the Accuracy Test (and PEI) associated with the fuel flow-to-load baseline Critical Error Level 2
data, the begin date and hour of the baseline data collection period is prior to the date
when the accuracy test (and PEI) were completed or the flowmeter was reinstalled.
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 237 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LBAS-12
Check Name: FuelFlow to Load Baseline Number of Flours Excluded Cofiring Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Specifications:
For fuelflow-to-load baseline data:
If the NumberOfHoursExcludedCofiring is not null and is less than 0,
return result A.
Results:
Result Response Severity
A The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 23 8 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LBAS-13
Check Name: FuelFlow to Load Baseline Number of Flours Excluded Ramping Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Specifications:
For fuelflow-to-load baseline data:
If the NumberOfHoursExcludedRamping is not null and is less than 0,
return result A.
Results:
Result Response Severity
A The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 239 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LBAS-14
Check Name:
FuelFlow to Load Baseline Number of Flours Excluded Low Range Valid
Related Former Checks:
Applicability:
Appendix D Check
Description:
Specifications:
For fuelflow-to-load baseline data:
If the NumberOfHoursExcludedLowRange is not null and is less than 0,
return result A.
If FF2LBAS Data Collection Period Hours is not null,
tempval = 168
If NumberOfHoursExcludedCofiring is greater than 0,
calculate tempval = tempval + NumberOfHoursExcludedCofiring.
If NumberOfHoursExcludedRamping is greater than 0,
calculate tempval = tempval + NumberOfHoursExcludedRamping.
If NumberOfHoursExcludedLowRange is greater than 0,
calculate tempval = tempval + NumberOfHoursExcludedLowRange.
If tempval is greater than FF2LBAS Data Collection Period Hours,
return result B.
Results:
Result
A
Response
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
The number of hours excluded in the baseline data collection period exceeds the number
of available clock hours in the period.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
1
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 240 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LBAS-15
Check Name:
FuelFlow to Load Baseline Base FuelFlow to Load UOM Valid
Related Former Checks: FFLRF-6B, 7A, and 8
Applicability:
Appendix D Check
Description:
Validation Tables:
Fuel Flow to Load Baseline UOM to Load UOM and System Type (Cross Check Table)
Parameter UOM (Complex Lookup Table)
Fuel Flow to Load Baseline UOM to Load UOM and System Type (Cross Check Table)
Parameter UOM (Complex Lookup Table)
Specifications:
For fuelflow-to-load baseline data:
Set FF2LBAS Fuel Flow to Load Ratio UOM Code Valid to false.
If FF2LBAS Method Valid is true and AverageFuelFlowRate is not null,
Set FF2LBAS Fuel Flow to Load Ratio UOM Code Valid to true.
If FuelFlowToLoadUOMCode is null,
set FF2LBAS Fuel Flow to Load Ratio UOM Code Valid to false, and return result A.
Otherwise,
Locate a record in the Parameter to Units of Measure lookup table where the ParameterCode is equal to "FF2L"
and the UnitsOfMeasureCode is equal to the FuelFlowToLoadUOMCode.
If not found,
set FF2LBAS Fuel Flow to Load Ratio UOM Code Valid to false, and return result B.
Otherwise,
If the FF2LBAS Load UOM Code and MonitoringSystemID are not null,
Locate a record in the Baseline UOM to Load UOM to SystemType cross-check table where the
BaselineUOM is equal to the FuelFlowToLoadUOMCode, the LoadUOM is equal to the
FF2LBAS Load UOM Code, and the SystemTypeList contains the SystemTypeCode the
Monitoring System record associated with the baseline data.
If not found,
set FF2LBAS Fuel Flow to Load Ratio UOM Code Valid to false, and return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
The [fieldname] does not correspond to the MaximumLoadUnitsOfMeasure and
SystemTypeCode of the system reported in the monitoring plan.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
1
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 241 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LBAS-16
Check Name:
FuelFlow to Load Baseline Base GHR UOM Valid
Related Former Checks: FFLRF-6D
Applicability:
Appendix D Check
Description:
Validation Tables:
Fuel Flow to Load Baseline UOM to Load UOM and System Type (Cross Check Table)
Parameter UOM (Complex Lookup Table)
Fuel Flow to Load Baseline UOM to Load UOM and System Type (Cross Check Table)
Parameter UOM (Complex Lookup Table)
Specifications:
For fuelflow-to-load baseline data:
Set FF2LBAS GHR UOM Code Valid to false.
If FF2LBAS Method Valid is true and AverageHourlyHeatlnputRate is not null,
Set FF2LBAS GHR UOM Code Valid to true.
If GHRUnitsOfMeasureCode is null,
set FF2LBAS GHR UOM Code Valid to false, and return result A.
Otherwise,
Locate a record in the Parameter to Units of Measure lookup table where the ParameterCode is equal to "GHR" and
the UnitsOfMeasureCode is equal to the GHRUnitsOfMeasureCode.
If not found,
set FF2LBAS GHR UOM Code Valid to false, and return result B.
Otherwise,
If the FF2LBAS Load UOM Code is not null,
Locate a record in the Baseline UOM to Load UOM to SystemType cross-check table where the
BaselineUOM is equal to the GHRUnitsOfMeasureCode and the LoadUOM is equal to the
FF2LBAS Load UOM Code.
If not found,
set FF2LBAS GHR UOM Code Valid to false, and return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
The [fieldname] does not correspond to the MaximumLoadUnitsOfMeasure reported in
the monitoring plan.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
1
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 242 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LBAS-17
Check Name:
FuelFlow to Load Baseline FuelFlow to Load Ratio Valid
Related Former Checks:
Applicability:
Appendix D Check
Description:
Specifications:
For fuelflow-to-load baseline data with valid method and a non-null AverageFuelFlowRate:
If BaselineFuelFlowToLoadRatio is null,
return result A.
If BaselineFuelFlowToLoadRatio is less than or equal to 0,
return result B.
If FF2LBAS Fuel Flow to Load Ratio UOM Code Valid is true, AverageLoad is greater than 0, and AverageFuelFlowRate is greater
than 0,
Calculate calcFFLR = AverageFuelFlowRate / AverageLoad, and round result to two decimal places.
If BaselineFuelFlowToLoadRatio is not equal to calcFFLR,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The recalculated baseline fuel flow-to-load ratio does not equal the reported ratio.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
1
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 243 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LBAS-18
Check Name: FuelFlow to Load Baseline GHR Valid
Related Former Checks: FFLRF-10B
Applicability: Appendix D Check
Description:
Specifications:
For fuelflow-to-load baseline data:
If the BaselineGFtR is null, and the BaselineFuelFlowToLoadRatio is not null,
set FF2LBAS Test Basis to "Q".
If the BaselineGFtR is not null, and the BaselineFuelFlowToLoadRatio is null,
set FF2LBAS Test Basis to "H".
Otherwise,
set FF2LBAS Test Basis to null.
In the QA Evaluation Process, (for tests that have not yet been submitted or have been approved for resubmission) the appropriate
values will be stored in the QA Supp Data and QA Supp Attribute records for the test.
If FF2LBAS Method Valid is true, and the AverageHourlyHeatlnputRate is not null,
If BaselineGFtR is null,
return result A.
If BaselineGFtR is less than or equal to 0,
return result B.
If FF2LBAS Load UOM Code Valid is true, AverageLoad is greater than 0, and AverageHourlyHeatlnputRate is greater
than 0,
Calculate calcGHR = AverageHourlyHeatlnputRate / AverageLoad *1000, and round result to the nearest integer.
If BaselineGFtR is not equal to calcGHR,
return result C.
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The recalculated baseline GHR does not equal the reported GFIR.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 244 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LBAS-19
Check Name: System ID Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the fuel flow-to-load baseline data:
If the MonitoringSystemID is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 245 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LBAS-20
Check Name:
Duplicate FuelFlow to Load Baseline Data
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For fuel flow-to-load baseline data with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode is equal to "FF2LBAS" and the TestNumber is equal
to the TestNumber in the current record.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "FF2LBAS" and the
TestNumber is equal to the TestNumber in the current record.
If found,
return result B.
If found,
return result A.
Results:
Result
A
Response
Another [testtype] with this test number already exists. You must assign a different test
number.
You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Environmental Protection Agency
Page 246 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Fuelflow-to-Load Test
Environmental Protection Agency
Page 247 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LTST-1
Check Name:
FuelFlow to Load Test System Type Valid
Related Former Checks: FFLRF-1
Applicability:
Appendix D Check
Description:
Specifications:
For the fuel-flow-to-load test:
If the MonitoringSystemID is null,
set FF2LTST System Valid to false, and return result A.
Otherwise,
If the SystemTypeCode of the associated system is equal to "OILV", "OILM", "GAS", "LTOL", or "LTGS",
If FF2LTST System is invalid, do not perform other checks. In the QA Evaluation Process, (for tests that have not yet been
submitted or have been approved for resubmission) the appropriate values will be stored in the QA Supp Data record for the test.
set FF2LTST System Valid to true.
Otherwise,
set FF2LTST System Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
According to the monitoring system record, the monitoring system for this [testtype] was
not a fuel flow system.
Severity
Fatal
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
Environmental Protection Agency
Page 248 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LTST-2
Check Name: Identification of Previously Reported Test or Test Number for FuelFlow to Load Test
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For Fuel Flow-to-load Test with valid reporting period and a non-null MonitoringSystemID:
Locate another fuel flow-to-load test for the system where the reporting period is equal to the reporting period of the current fuel
flow-to-load test.
If found,
return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestType Code is equal to "FF2LTST", and the
MonitoringSystemID and reporting period are equal to MonitoringSystemID and reporting period of the current fuel
flow-to-load test, and the TestNum is not equal to the TestNumber in the current fuel flow-to-load test.
If found,
return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "FF2LTST" and the TestNum equal
to the TestNumber in the current TestSummary record.
If found,
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the MonitoringSystemID and ReportingPeriod in the
QASupp record is not equal to MonitoringSystemID and reporting period of the current fuel
flow-to-load test,
return result B.
Otherwise,
return result C.
Results:
Result
A
B
Response
Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 249 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Conditions: Duplicate Fuel Flow to Load Test Equals false
Environmental Protection Agency
Page 250 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LTST-3
Check Name:
FuelFlow to Load Test Basis Valid
Related Former Checks:
Applicability:
Appendix D Check
Description:
Validation Tables:
Test Basis Code (Lookup Table)
Test Basis Code (Lookup Table)
Specifications:
For a fuel flow-to-load test:
If TestBasisCode is null,
If TestResultCode is equal to "PASSED" or "FAILED",
return result A.
If TestBasisCode is not in the TestBasisCode lookup table,
return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported a [fieldname] that is not in the list of valid values.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report Fuelflow-to-Load Test
FF2LTST System Valid Equals true
QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
1
Environmental Protection Agency
Page 251 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LTST-4
Check Name: FuelFlow to Load Test Basis Consistent with Baseline Data
Related Former Checks: FFLCK-4
Applicability: Appendix D Check
Description:
Specifications:
For the fuel flow-to-load test with a valid Reporting Period,
Locate the latest QA Supp Data record for the location where the TestTypeCode is equal to "FF2LBAS", the MonitoringSystemID
is equal to the MonitoringSystemID in the current test, the EndDate is on or prior to the last day of the quarter of the current test,
and CAN SUBMIT is equal to "N".
Locate the latest Fuel Flow-to-Load Baseline Data record for the system where the EndDate is on or prior to the last day of the
quarter of the current test.
If TestResultCode is not equal to "INPROG",
If there is no QA Supp Data record and there is no Fuel Flow-to-Load Baseline Data record,
return result A.
Otherwise,
If no Fuel Flow-to-Load Baseline Data record was found, or the TestSummarylD of both records are equal, or the
EndDate of the QA Supp Data record is later than the EndDate of the Fuel Flow-to-Load Baseline Data record,
Locate a QA Supp Attribute record for the QA Supp Data record where the AttributeName is equal to
"TESTBASISCD".
If found,
If the TestBasisCode in the current test is equal to "Q" and the Attribute Value in the retrieved
QA Supp Attribute record is equal to "H"; or the TestBasisCode in the current test is equal to "H"
and the Attribute Value in the retrieved QA Supp Attribute record is equal to "Q",
return result B.
Otherwise,
If the TestBasisCode in the current test is equal to "Q" and the BaselineFuelFlowToLoadRatio in the
retrieved Fuel Flow-to-Load Baseline Data record is null, or the TestBasisCode in the current test is equal
to "H" and the BaselineGHR is the retrieved Fuel Flow-to-Load Baseline Data is null,
return result B.
Otherwise,
If a QA Supp Data record or a Fuel Flow-to-Load Baseline Data record was located above,
If no Fuel Flow-to-Load Baseline Data record was found, or the TestSummarylD of both records are equal, or the
EndDate of the QA Supp Data record is later than the EndDate of the Fuel Flow-to-Load Baseline Data record,
Set BaselineEndDate to the EndDate in the QA Supp Data record.
Otherwise,
Set BaselineEndDate to the EndDate in the Fuel Flow-to-Load Baseline Data record.
If the BaselineEndDate is prior to the last day of the quarter of the fuel flow-to-load test,
Locate all System Component records for the system where the ComponentTypeCode is equal to "GFFM"
or "OFFM", and the EndDate is null or is on or after the Baseline End Date.
Environmental Protection Agency
Page 252 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Locate a QA Supp Data record for the location where the TestTypeCode is equal to "FFACC" or
"FFACCTT", the ComponentID is equal to any of the ComponentlDs in the System Component records
retrieved above, and the EndDate or ReinstallationDate is on or after the BaselineEndDate.
If none are found,
return result C.
Results:
Result
A
B
Response
The fuel flow-to-load baseline data associated with this test cannot be found.
The TestBasisCode is inconsistent with the data submitted in the associated fuel
flow-to-load baseline data.
You reported a TestResultCode of "INPROG" indicating that the baseline data
collection period is still in progress, but the EndDate of the associated fuel flow-to-load
baseline data is prior to the end of the test quarter.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 2
Usage:
1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
Environmental Protection Agency
Page 253 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LTST-5
Check Name: FuelFlow to Load Average Difference Valid
Related Former Checks: FFLCK-5
Applicability: Appendix D Check
Description:
Specifications:
For the fuel flow-to-load test:
If TestResultCode is equal to "PASSED" or "FAILED",
If AverageDifference is null,
return result A.
If AverageDifference is less than 0,
return result B.
If AverageDifference is greater than 15.0 and the TestResultCode is equal to "PASSED",
return result C.
If AverageDifference is greater than 10.0 and the TestResultCode is equal to "PASSED",
return result D.
If AverageDifference is less than or equal to 10.0 and the TestResultCode is equal to "FAILED",
return result E.
If TestResultCode is equal to "FEW168H" or "EXC168H" and the AverageDifference is not null,
return result F.
Results:
Result
A
B
D
E
F
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
The TestResultCode of the fuel flow-to-load test indicates a passing test, but the
AverageDifference indicates a failing test.
The TestResultCode of the fuel flow-to-load test indicates a passing test, but the
AverageDifference is between 10.0% and 15.0%, which may be a failing test result.
Disregard this error message if the arithmetic average of the hourly loads used in the fuel
flow-to-load ratio or GHR data analysis for this quarter was less than or equal to 50
MW, 500 klb/hr of steam, or 600 mmBtu/hr.
The TestResultCode of the fuel flow-to-load test indicates a failing test, but the
AverageDifference indicates a passing test.
You should not report a value for [fieldname] when the TestResultCode is equal to
"EXC168H" or "FEW168H".
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Informational Message
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
Conditions: FF2LTST System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Environmental Protection Agency
Page 254 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the fuel flow-to-load test:
If NumberOfHoursUsed is less than 0,
return result A.
If TestResultCode is equal to "PASSED" or "FAILED",
If NumberOfHoursUsed is null,
return result B.
If NumberOfHoursUsed is less than 168,
return result C.
If TestResultCode is equal to "FEW168H" or "EXC168H",
If NumberOfHoursUsed is greater than or equal to 168,
return result D.
If NumberOfHoursUsed is not null,
return result E.
FF2LTST-6
FuelFlow to Load Test Number of Hours Used Valid
FFLCK-3
Appendix D Check
Results:
Result
B
C
D
Response
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
You did not provide [fieldname], which is required for [key].
The NumberOfHoursUsed was less than 168 which is the minimum required to complete
the quarterly fuel flow-to-load test.
The NumberOfHoursUsed is greater than or equal to 168, which is inconsistent with the
TestResultCode that indicates that the minimum number of hours of data was not
available for the quarter.
You should not report a value for [fieldname] when the TestResultCode is equal to
"EXC168H" or "FEW168H".
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
Conditions: FF2LTST System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Environmental Protection Agency
Page 255 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LTST-7
Check Name: FuelFlow to Load Test Number of Flours Excluded Cofiring Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Specifications:
For the fuel flow-to-load test:
If the NumberOfHoursExcludedCofiring is not null and is less than 0,
return result A.
Results:
Result Response Severity
A The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
Conditions: FF2LTST System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Environmental Protection Agency
Page 256 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the fuel flow-to-load test:
If the NumberOfHoursExcludedRamping is not null and is less than 0,
return result A.
FF2LTST-8
FuelFlow to Load Test Number of Flours Excluded Ramping Valid
Appendix D Check
Results:
Result Response Severity
A The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
Conditions: FF2LTST System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Environmental Protection Agency
Page 257 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the fuel flow-to-load test:
If the NumberOfHoursExcludedLowRange is not null and is less than 0,
return result A.
FF2LTST-9
FuelFlow to Load Test Number of Flours Excluded Low Range Valid
Appendix D Check
Results:
Result Response Severity
A The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
Conditions: FF2LTST System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Environmental Protection Agency
Page 258 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LTST-10
Check Name: FuelFlow to Load Test Reason Code Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Validation Tables:
Test Reason Code (Lookup Table)
Test Reason Code (Lookup Table)
Specifications:
For the Fuel Flow to Load check:
If the TestReasonCode is null,
If the Test Reporting Period Begin Date is on or after ECMPS MP Begin Date,
return result A.
Otherwise,
return result B.
If the TestReasonCode is not equal to "QA",
Locate the TestReasonCode in the Test Reason Code Lookup table,
If not found,
return result C.
If found,
return result D.
Results:
Result
A
B
D
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You did not provide [fieldname] for [key]. This information will be required for
ECMPS submissions.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Severity
Critical Error Level 1
Non-Critical Error
Fatal
Critical Error Level 1
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
Conditions: FF2LTST System Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Environmental Protection Agency
Page 259 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FF2LTST-11
Check Name: FuelFlow to Load Test Result Code Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Validation Tables:
Test Result Code (Lookup Table)
Test Result Code (Lookup Table)
Specifications:
For the fuel flow-to-load test:
In the QA Evaluation Process, (for tests that have not yet been submitted or have been approved for resubmission) the appropriate
values will be stored in the QA Supp Data record for the test.
If the TestResultCode is null,
return result A.
If the TestResultCode is not equal to "PASSED", "FAILED", "INPROG", "EXC168H", or "FEW168H",
Locate the TestResultCode is not in the Test Result Code Lookup table,
If not found,
return result B.
If found,
return result C.
If TestResultCode is equal to "EXC168H", and NumberOfHoursExcludedCofiring, NumberOfHoursExcludedRamping,
NumberOfHoursExcludedLowRange are all null or equal to 0,
return result D.
Results:
Result
A
B
D
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
The TestResultCode was reported as "EXC168H" to indicate that fewer than 168 hours
of quality-assured flow rate data remain after excluding certain hours, but all the fields
for excluded hours were blank or zero.
Severity
Critical Error Level 1
Fatal
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
Conditions: FF2LTST System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Environmental Protection Agency
Page 260 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the fuel flow-to-load test:
If the sum of NumberOfHoursUsed (if greater than 0), NumberOfHoursExcludedForCofiring (if greater than 0),
NumberOfHoursExcludedRamping (if greater than 0), and NumberOfHoursExcludedLowRange (if greater than 0) is greater than
2209,
return result A.
FF2LTST-12
Fuel Flow to Load Test Total Flours Valid
FFLCK-6
Appendix D Check
Results:
Result Response Severity
A The total number of hours used in the fuel flow-to-load or GF1R analysis and the number Critical Error Level 1
of hours excluded exceed the total number of hours in the quarter.
Usage:
1 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
Conditions: FF2LTST System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Environmental Protection Agency
Page 261 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the fuel flow-to-load test:
If the MonitoringSystemID is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
FF2LTST-13
System ID Valid
Appendix D Check
Environmental Protection Agency
Page 262 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FF2LTST-14
Check Name:
Duplicate FuelFlow to Load Test
Related Former Checks:
Applicability:
Appendix D Check
Description:
Specifications:
For fuel flow-to-load test with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode is equal to "FF2LTST" and the TestNumber is equal
to the TestNumber in the current record.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "FF2LTST" and the
TestNumber is equal to the TestNumber in the current record.
If found,
return result B.
If found,
return result A.
Results:
Result
A
Response
Another [testtype] with this test number already exists. You must assign a different test
number.
You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Environmental Protection Agency
Page 263 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
General Test
Environmental Protection Agency
Page 264 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
TEST-1
Test Begin Date Valid
CEM Check
For the test:
If BeginDate is null,
return result A.
If BeginDate is before 01/01/1993 or after the current date,
return result B.
Results:
Result
A
B
Usage:
1
2
3
4
5
6
7
Response
You did not provide [fieldname], which is required for [key].
You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 265 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
TEST-2
Test Begin Hour Valid
CEM Check
For the test:
If BeginHour is null,
return result A.
If BeginHour is not between 0 and 23,
return result B.
Results:
Result
A
B
Usage:
1
2
3
4
5
6
7
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 266 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: TEST-3
Check Name: Test Begin Minute Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the test:
Set Test Begin Minute Valid to true.
If BeginMinute is null,
If BeginDate is on or after ECMPS MP Begin Date, or the TestTypeCode is equal to "LINE", "RATA", "CYCLE",
"F2LREF", "APPE" or "UNITDEF",
set Test Begin Minute Valid to false, and return result A.
Otherwise,
return result B.
If BeginMinute is not between 0 and 59,
set Test Begin Minute Valid to false, and return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You did not provide [fieldname] for [key]. This information will be required for
ECMPS submissions.
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Informational Message
Critical Error Level 1
Environmental Protection Agency
Page 267 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
2 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
3 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
4 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
5 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
6 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
3 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
4 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
5 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
6 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 268 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the test:
If EndDate is null,
return result A.
If EndDate is before 01/01/1993 or after the current date,
return result B.
Results:
Severity
Fatal
Fatal
TEST-4
Test End Date Valid
CEM Check
Result Response
A You did not provide [fieldname], which is required for [key],
B You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
Environmental Protection Agency
Page 269 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
2 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
3 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
4 Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
5 Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
6 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
7 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
8 Process/Category: QA Test Evaluation Report Miscellaneous Tests
Conditions: Miscellaneous Test Type Valid Equals true
9 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
10 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
11 Process/Category: QA Test Evaluation Report Transmitter Transducer Test
12 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
3 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
4 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
5 Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
6 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
7 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
8 Process/Category: QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
9 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
10 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
11 Process/Category: QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
12 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 270 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the test:
If EndHour is null,
return result A.
If EndHour is not between 0 and 23,
return result B.
Results:
Severity
Fatal
Critical Error Level 1
TEST-5
Test End Hour Valid
CEM Check
Result Response
A You did not provide [fieldname], which is required for [key],
B The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Environmental Protection Agency
Page 271 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
2 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
3 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
4 Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
5 Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
6 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
7 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
8 Process/Category: QA Test Evaluation Report Miscellaneous Tests
Conditions: Miscellaneous Test Type Valid Equals true
9 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
10 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
11 Process/Category: QA Test Evaluation Report Transmitter Transducer Test
12 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
3 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
4 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
5 Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
6 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
7 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
8 Process/Category: QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
9 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
10 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
11 Process/Category: QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
12 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 272 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
TEST-6
Check Name:
Test End Minute Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the test:
Set Test End Minute Valid to true.
If TestTypeCode is not equal to "ONOFF",
If EndMinute is null,
If TestEndDate is on or after ECMPS MP Begin Date, or the TestTypeCode is equal to "LINE", "RATA",
"CYCLE", "F2LREF", "APPE" or "UNITDEF",
set Test End Minute Valid to false, and return result A.
Otherwise,
return result B.
If EndMinute is not between 0 and 59,
set Test End Minute Valid to false, and return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You did not provide [fieldname] for [key]. This information will be required for
ECMPS submissions.
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Fatal
Informational Message
C
Critical Error Level 1
Environmental Protection Agency
Page 273 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
2 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
3 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
4 Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
5 Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
6 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
7 Process/Category: QA Test Evaluation Report Miscellaneous Tests
Conditions: Miscellaneous Test Type Valid Equals true
8 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
9 Process/Category: QA Test Evaluation Report Transmitter Transducer Test
10 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
3 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
4 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
5 Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
6 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
7 Process/Category: QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
8 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
9 Process/Category: QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
10 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 274 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For a test:
If Test Begin Date Valid, Test Begin Hour Valid, Test End Date Valid, and Test End Hour Valid are all true,
If TestTypeCode is equal to "ONOFF" or "FF2LBAS",
If BeginDate/BeginHour is on or after the EndDate/EndHour,
set Test Dates Consistent to false, and return result A.
Otherwise,
set Test Dates Consistent to true.
Otherwise,
If Test Begin Minute Valid and Test End Minute Valid are both true,
If BeginDate/BeginHour/BeginMinute is on or after the EndDate/EndHour/EndMinute,
set Test Dates Consistent to false, and return result A.
TEST-7
Test Dates Consistent
CEM Check
Otherwise,
set Test Dates Consistent to true.
Otherwise,
set Test Dates Consistent to false.
Otherwise,
set Test Dates Consistent to false.
Results:
Result Response Severity
A You reported EndDate, EndHour, and EndMinute which is prior to or equal to Critical Error Level 1
BeginDate, BeginHour, and BeginMinute for [key].
Environmental Protection Agency
Page 275 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
2 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
3 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
4 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
5 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
6 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
7 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
8 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
3 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
4 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
5 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
6 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
7 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
8 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 276 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
TEST-8
Check Name:
Test Span Scale Valid
Related Former Checks: LIN-10
Applicability:
CEM Check
Description:
Specifications:
For a test:
set Test Span Scale Valid to true and Test Span Value to null.
If the ComponentID is not null,
If the ComponentTypeCode of the associated component is not equal to "FLOW",
If the SpanScaleCode is null,
set Test Span Scale Valid to false, and return result A.
If the SpanScaleCode is not equal to "H" or "L",
set Test Span Scale Valid to false, and return result B.
If Test Dates Consistent is true,
If the SpanScaleCode is equal to "H"
Locate an Analyzer Range records for the component where the AnalyzerRangeCode is equal to
"L", the BeginDate and BeginHour is on or before the BeginDate and BeginHour in the current
test, and the EndDate is null or the EndDate and EndHour is after the EndDate and EndHour of the
current test.
If found,
set Test Span Scale Valid to false, and return result C.
If the SpanScaleCode is equal to "L"
Locate an Analyzer Range records for the component where the AnalyzerRangeCode is equal to
"H", the BeginDate and BeginHour is on or before the BeginDate and BeginHour of the current
test, and the EndDate is null or the EndDate and EndHour is after the EndDate and EndHour of the
current test.
If found,
set Test Span Scale Valid to false, and return result C.
Otherwise,
If the SpanScaleCode is not null,
set Test Span Scale Valid to false, and return result D.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
The active analyzer range for the component is inconsistent with the span scale [value]
reported for this test.
You reported a SpanScaleCode, but this is not appropriate for flow component.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
D
Critical Error Level 1
Environmental Protection Agency
Page 277 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
2 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
3 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
4 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
3 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
4 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Environmental Protection Agency
Page 278 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: TEST-9
Check Name: Determine Span Value
Related Former Checks: LIN-9
Applicability: CEM Check
Description:
Specifications:
For the test with valid dates and span scale:
Set Test Span Determined to true.
Locate the System Component records for the associated component with the earliest Begin Date.
If found,
If the BeginDate in the retrieved record is not null, the BeginHour in the retrieved record is between 0 and 23, and the
BeginDate and BeginHour is later than the BeginDate and BeginHour of the test.
Locate all Span Records for the location where the ComponentTypeCode equal to the ComponentTypeCode of the
associated component, the SpanScaleCode is equal to the SpanScaleCode in the test, the Span Value is greater than
0, the BeginDate and BeginHour is on or before the BeginDate and BeginHour of the retrieved record, and the
EndDate is null or the EndDate and EndHour is after the BeginDate and BeginHour of the retrieved record.
Otherwise,
Locate all Span Records for the location where the ComponentTypeCode equal to the ComponentTypeCode of the
associated component, the SpanScaleCode is equal to the SpanScaleCode in the test, the Span Value is greater than
0, the BeginDate and BeginHour is on or before the EndDate and EndHour of the test, and the EndDate is null or
the EndDate and EndHour is after the BeginDate and BeginHour of the test.
If not found,
return result A.
If more than one record is found with different Span Values,
return result B.
If one record is found,
set Test Span Value to the SpanValue in the retrieved span record.
else
return result C.
Results:
Result Response Severity
A You have not reported a valid monitoring plan span record that was active during the Critical Error Level 1
test.
B You reported more than one monitoring plan span record that was active during the test. Critical Error Level 1
C The tested component is not part of any monitoring system. Critical Error Level 1
Environmental Protection Agency
Page 279 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Usage:
1
2
3
4
Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
Conditions: Calibration Test Aborted Equals false
Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
Conditions: Linearity Test Aborted Equals false
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Environmental Protection Agency
Page 280 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the test:
Set Test Reporting Period Valid to true.
Set Test Reporting Period Begin Date to null.
If Reporting Period ID is null,
set Test Reporting Period Valid to false, and return result A.
Otherwise,
Locate the Reporting Period ID in the Reporting Period table.
Set Test Reporting Period Begin Date to the first day of the Year and Quarter in the retrieved record.
If the Year and Quarter in the retrieved record is later than the current quarter,
set Test Reporting Period Valid to false, and return result B.
TEST-10
Test Year and Quarter Valid
CEM Check
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
B You reported a Year/Quarter which is outside the range of acceptable values for this Fatal
test.
Usage:
1 Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
2 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Environmental Protection Agency
Page 281 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
TEST-12
Check Name:
Miscellaneous Test Type Code Valid
Related Former Checks:
Applicability:
General Check
Description:
Specifications:
For the test:
Set Miscellaneous Test Type Valid to true.
If TestTypeCode is null,
return result A.
If TestTypeCode is not equal to "LEAK", "PET, "DAHS", "PEMSACC", "OTHER", "DGFMCAL", "MFMCAL", "TSCAL",
"BCAL", or: "QGA",
set Miscellaneous Test Type Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
This test has not been evaluated.
Severity
Fatal
Informational Message
Usage:
1
Process/Category: QA Test Evaluation Report Miscellaneous Tests
1
Process/Category: QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
Environmental Protection Agency
Page 282 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the miscellaneous test:
If TestDescription is null,
If TestTypeCode is equal to "OTHER",
return result A.
Otherwise,
If TestTypeCode is not equal to "OTHER",
return result B.
TEST-14
Miscellaneous Test Description Valid
General Check
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B You reported a TestDescription, but this is not appropriate for this test type. Use the Non-Critical Error
TestComment field to enter additional information about the test.
Usage:
1 Process/Category: QA Test Evaluation Report Miscellaneous Tests
Conditions: Miscellaneous Test Type Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
Environmental Protection Agency
Page 283 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
TEST-15
Miscellaneous Test Grace Period Indicator Valid
General Check
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For the miscellaneous test:
If the GracePeriodlndicator is equal to 1,
If the TestTypeCode is not equal to "LEAK",
return result A.
Results:
Result
A
Usage:
1
Response
The GracePeriodlndicator is not appropriate for this test type.
Severity
Critical Error Level 1
1
Process/Category: QA Test Evaluation Report Miscellaneous Tests
Process/Category: QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
Environmental Protection Agency
Page 284 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the miscellaneous test:
If both the MonitoringSystemID and ComponentID are not null,
return result A.
If TestTypeCode is equal to "LEAK", "PET, or "DAHS",
If ComponentID is null,
set Miscellaneous Test ID Fieldname to "ComponentID", and return result B.
If TestTypeCode is equal to "PEMSACC",
If MonitoringSystemID is null,
set Miscellaneous Test ID Fieldname to "MonitoringSystemID", and return result B.
If MonitoringSystemID is not null,
Locate the Monitor System record for the location where the MonitoringSystemID is equal to the MonitoringSystemID in
the test.
If the TestTypeCode is equal to "PEMSACC",
If the SystemTypeCode in the retrieved record is not equal to "NOXP",
set Miscellaneous Test ID Fieldname to "monitoring system", and return result C.
If ComponentID is not null,
Locate the Component record for the location where the ComponentID is equal to the ComponentID in the test.
If the TestTypeCode is equal to "DAHS",
If the ComponentTypeCode in the retrieved record is not equal to "DAHS",
set Miscellaneous Test ID Fieldname to "component", and return result C.
If the TestTypeCode is equal to "LEAK",
If the ComponentTypeCode in the retrieved record is not equal to "FLOW",
set Miscellaneous Test ID Fieldname to "component", and return result C.
Otherwise,
If the SampleAcquisitionMethodCode in the retrieved record is not equal "DP" or "O",
return result D.
If the TestTypeCode is equal to "PEI",
If the ComponentTypeCode in the retrieved record is not equal to "OFFM" or "GFFM",
set Miscellaneous Test ID Fieldname to "component", and return result C.
If the TestTypeCode is equal to "DGFMTCAL", "MFMCAL", "TSCAL" or "BCAL",
TEST-16
Miscellaneous Test System or Component Valid
General Check
Environmental Protection Agency
Page 285 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If the ComponentTypeCode in the retrieved record is not equal to "STRAIN",
set Miscellaneous Test ID Fieldname to "component", and return result C.
If the TestTypeCode is equal to "QGA",
If the ComponentTypeCode in the retrieved record is not equal to "HCL" or "HF",
set Miscellaneous Test ID Fieldname to "component", and return result C.
If both the MonitoringSystemID and ComponentID are null,
return result E.
Results:
Result
A
Response
You have reported both a MonitoringSystemID and a ComponentID for this test. This is
invalid.
You did not provide [fieldname], which is required for [key].
The type of [fieldname] associated with this test is not appropriate for the test type.
The SampleAcquisitionMethodCode of the component associated with this test is
invalid. Leak checks are only performed on differential pressure (DP) flow monitors.
You have not reported MonitoringSystemID and ComponentID for this test. Both cannot
be Blank/null
Severity
Critical Error Level 1
B
C
D
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
E
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report Miscellaneous Tests
Miscellaneous Test Type Valid Equals true
QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
1
Environmental Protection Agency
Page 286 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
TEST-17
Check Name:
Miscellaneous Test Reason Code Valid
Related Former Checks:
Applicability:
General Check
Description:
Validation Tables:
Test Reason Code (Lookup Table)
Test Reason Code (Lookup Table)
Specifications:
For the miscellaneous test:
If TestReasonCode is null,
return result A.
If TestReasonCode is not in the Test Reason Code Lookup table,
return result B.
If TestTypeCode is equal to "LEAK" and TestReasonCode is equal to "INITIAL" or "RECERT", or TestTypeCode is equal to
"DAHS" and TestReasonCode is equal to "QA",
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report Miscellaneous Tests
Miscellaneous Test Type Valid Equals true
QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
1
Environmental Protection Agency
Page 287 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
TEST-18
Check Name:
Miscellaneous Test Result Code Valid
Related Former Checks:
Applicability:
General Check
Description:
Validation Tables:
Test Result Code (Lookup Table)
Test Result Code (Lookup Table)
Specifications:
For the miscellaneous test:
If TestResultCode is null,
return result A.
If TestResultCode is not equal to "ABORTED", "PASSED", or "FAILED",
Locate the TestResultCode is not in the Test Result Code Lookup table,
If not found,
return result B.
If found,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Fatal
C
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report Miscellaneous Tests
Miscellaneous Test Type Valid Equals true
QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
1
Environmental Protection Agency
Page 288 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: TEST-20
Check Name: Identification of Previously Reported Test or Test Number for Miscellaneous Test
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For a miscellaneous test with valid End Times:
Locate another test for the location where the TestTypeCode, MonitorSystemID, ComponentID, EndDate, EndHour, and EndMinute
is equal to the TestTypeCode, MonitorSystemID, ComponentID, EndDate, EndHour, and EndMinute of the current TestSummary
record.
If found,
return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestTypeCode, MonitorSystemID, ComponentID,
EndDate, and EndHour is equal to TestTypeCode, MonitorSystemID, ComponentID, EndDate, and EndHour of the current
TestSummary record, and the EndMinute is null or is equal to the EndMinute in the current TestSummary record, and the
TestNum is not equal to the TestNumber in the current TestSummary record,
If found,
return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode and TestNum are equal to the TestTypeCode
and TestNumber in the current TestSummary record.
If found,
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the MonitorSystemID, ComponentID, EndDate,
EndHour, and EndMinute in the QASupp record is not equal to MonitorSystemID, ComponentID,
EndDate, EndHour, or EndMinute of the current TestSummary record,
return result B.
Otherwise,
return result C.
Results:
Result Response
A Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
B Another test with this test type and test number has already been submitted for this
location. This test cannot be submitted with this test number. If this is a different test,
you should assign it a unique test number.
C This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 289 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Miscellaneous Tests
1 Process/Category: QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
Conditions: Duplicate Miscellaneous Test Equals false
Environmental Protection Agency
Page 290 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: TEST-21
Check Name: Invalid Test Message
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For an invalid test:
return result A.
Results:
Result Response Severity
A IMPORTANT FYI: This test was determined to be "INVALID" due to one or more Informational Message
Critical Level 2 errors. The reported data indicate that the test was not performed
according to the requirements and therefore cannot be used to validate emissions data.
Unless you make corrections to the test data and re-run the evaluation, this test will be
disregarded by the emissions evaluation routine. If you are unable to eliminate the
Critical Level 2 error(s) by correcting the test data but you believe this test should be
considered valid, contact your CAMD analyst.
Usage:
1 Process/Category: QA Test Evaluation Report Invalid Tests
Environmental Protection Agency
Page 291 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
TEST-22
Check Name:
Monitor Plan Evaluation Check
Related Former Checks:
Applicability:
General Check
Description:
Specifications:
For the test:
Locate all Monitoring Plan Location records for the location where the SeverityLevelCd of the associated Monitoring Plan is equal
to "CRIT1" or "FATAL", and the End Quarter of the associated Monitoring Plan is null or is on or after the EndDate or
Year/Quarter of the test.
Locate all Monitoring Plan Location records for the location where the MustSubmitFlag and NeedsEvalFlag of the
associated Monitoring Plan are equal to "Y", and the End Quarter of the associated Monitoring Plan is null or is on or after
the EndDate or Year/Quarter of the test.
If found,
return result B.
If found,
return result A.
Otherwise,
Results:
Result
A
Response
A Monitoring Plan associated with this [entity] has critical errors. You must correct all
active and future Monitoring Plans containing the location in this [entity] in order to
submit this [entity] to be loaded on EPA's host system.
A Monitoring Plan associated with this [entity] has not been evaluated. You must
evaluate all active and future Monitoring Plans containing the location in this [entity] in
order to complete the evaluation of this [entity].
Severity
Critical Error Level 1
B
Critical Error Level 1
Environmental Protection Agency
Page 292 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
2 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
3 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
4 Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
5 Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
6 Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
7 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
8 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
9 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
10 Process/Category: QA Test Evaluation Report Miscellaneous Tests
11 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
12 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
13 Process/Category: QA Test Evaluation Report Transmitter Transducer Test
14 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Environmental Protection Agency
Page 293 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
If (CurrentTest.lcstlypcCoAc is equal to "7DAY" OR "CYCLE")
Set ComponentRecord to the record in ComponentRecords where ComponentID is equal to CurrentTest.ComponentlD.
If (ComponentRecord is NOT equal to null)
If (ComponentRecord.ComponentTypeCode is equal to "HG")
If CurrentTest.InjectionProtocol is null,
Return result A.
Else if CurrentTest .InjectionProtocol is NOT equal to "HGE" OR "HGO",
Return result B.
Else
If CurrentTest.InjectionProtocol is NOT null,
Return result C.
Else
If CurrentTest .InjectionProtocol is NOT null,
Return result D.
TEST-23
Injection Protocol Valid
Results:
Result
A
B
C
D
Response
You did not identify an injection protocol (HGE or HGO), as required for a Hg CEMS
seven day calibration or cycle time test.
You did not identify an injection protocol (HGE or HGO), as required for a Hg CEMS
seven day calibration or cycle time test.
An injection protocol is only reported for Hg CEMS.
An injection protocol is not required for this test type.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 294 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
2 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
3 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
4 Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
5 Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
6 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Baseline Data
7 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
8 Process/Category: QA Test Evaluation Report Miscellaneous Tests
9 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
10 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
11 Process/Category: QA Test Evaluation Report Transmitter Transducer Test
12 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
3 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
4 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
5 Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
6 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
7 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
8 Process/Category: QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
9 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
10 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
11 Process/Category: QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
12 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 295 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For the RATA:
If the TestNumber is null,
return result A.
TEST-13
Test Number Valid
CEM Check
Results:
Result
A
Usage:
1
2
3
4
5
6
7
9
10
11
12
13
14
Response
You did not provide [fieldname], which is required for [key].
Severity
Fatal
Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Baseline Data Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 296 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
TEST-19
Check Name:
Duplicate Miscellaneous Test
Related Former Checks:
Applicability:
General Check
Description:
Specifications:
For the miscellaneous test with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode and the TestNumber are equal to the TestTypeCode
and TestNumber in the current record.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode and the TestNumber are equal to the
TestTypeCode and TestNumber in the current record.
If found,
return result B.
If found,
return result A.
Results:
Result
A
Response
Another test with this test type and test number already exists. You must assign a
different test number.
You cannot change the TestNumber to the value that you have entered, because a test
with this TestType and TestNumber has already been submitted. If this is a different
test, you should assign it a different TestNumber. If you are trying to resubmit this test,
you should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
Environmental Protection Agency
Page 297 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Linearity Check
Environmental Protection Agency
Page 298 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the linearity check:
If there are no Linearity Injection records,
Set Injection Times Valid to false.
Otherwise,
Set Linearity Injection Times Valid to true.
Proceed through the Linearity Injection records for the test in Injection Date/Hour/Minute order.
If the InjectionDate is null, or the InjectionHour is null or not between 0 and 23, or the InjectionMinute is null or
not between 0 and 59,
set Linearity Injection Times Valid to false.
Otherwise,
Set the Linearity Test Begin Date, Begin Hour, and Begin Minute to the InjectionDate, InjectionHour, and
InjectionMinute of the first injection.
Set the Linearity Test End Date, End Hour, and End Minute to the InjectionDate, InjectionHour, and
InjectionMinute of the last injection.
If the associated GasLevelCode of any injection is the same as the GasLevelCode of the prior injection,
set Injection Sequence Valid to false.
Otherwise,
set Injection Sequence Valid to true.
If any two injections had the same InjectionDate, InjectionHour, and InjectionMinute,
set Simultaneous Linearity Injections to true.
Otherwise,
set Simultaneous Linearity Injections to false.
LINEAR-1
Determine Linearity Injection Sequence
CEM Check
Results:
Result
Usage:
1
Response
Process/Category:
Conditions:
Severity
QA Test Evaluation Report Linearity Test (Pass 1)
Linearity Test Aborted Equals false
Environmental Protection Agency
Page 299 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-2
Check Name:
Linearity Component Type Valid
Related Former Checks: LIN-1
Applicability:
CEM Check
Description:
Specifications:
For the linearity check:
If the ComponentID is null,
set Linearity Component Valid to false, and return result A.
Otherwise
If the TestTypeCode is equal to "LINE",
If the ComponentTypeCode of the associated component is equal to "NOX", "S02", "C02", or "02",
set LinearityTestType to "linearity check",
set Linearity Component Valid to true.
Otherwise,
set Linearity Component Valid to false, and return result B.
else if the TestTypeCode is equal to "HGLINE",
If the ComponentTypeCode of the associated component is equal to "HG",
set LinearityTestType to "Hg linearity check",
set Linearity Component Valid to true.
Otherwise,
set Linearity Component Valid to false, and return result B.
else if the TestTypeCode is equal to "HGSI3",
If the ComponentTypeCode of the associated component is equal to "HG" and the HgConverterlndicator of the
associated component is equal to 1,
set LinearityTestType to "three-point system integrity check",
set Linearity Component Valid to true.
Otherwise,
set Linearity Component Valid to false, and return result C.
If Linearity Component is invalid, do not perform checks for the Linearity Summary (Pass 1), Linearity Injection, and Linearity
Summary (Pass 2) categories. Set the calculated values in the associated Linearity Summary records to null.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The ComponentTypeCode for this test is [comptype]. This type of component does not
require a linearity check.
This type of component does not require a three-point system integrity check. Only HG
components with a converter may have a three-point system integrity check.
Severity
Fatal
Critical Error Level 1
C
Critical Error Level 1
Environmental Protection Agency
Page 300 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
Environmental Protection Agency
Page 301 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-3
Check Name: Aborted Check Not Evaluated
Related Former Checks: LIN-2
Applicability: CEM Check
Description:
Specifications:
For the linearity check:
If the TestResultCode is equal to "ABORTED",
set Linearity Test Result to "ABORTED", Linearity Test Aborted to true, and return result A.
Do not perform checks for the Linearity Summary (Pass 1), Linearity Injection, and Linearity Summary (Pass 2) categories.
Set all calculated values in associated Linearity Summary records to null.
Otherwise,
set Linearity Test Aborted to false.
Results:
Result Response Severity
A The TestResultCode indicates that the test was aborted. [Children] records for this test Informational Message
will not be evaluated. If the test was aborted for a reason not related to monitor
performance, you should not report the test.
Usage:
1 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
Conditions: Linearity Component Valid Equals true
Environmental Protection Agency
Page 302 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-4
Check Name: Identification of Previously Reported Test or Test Number for Linearity Check
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the linearity check with valid span scale and end time and a non-null ComponentID:
Set Extra Linearity Test to false and Linearity Supp Data ID to null.
Locate another test for the component where the TestTypeCode, SpanScale, EndDate, EndHour, and EndMinute are equal to the
TestTypeCode, SpanScale, EndDate, EndHour, and EndMinute of the current TestSummary record.
If found,
set Extra Linearity Test to true, and return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestTypeCode, ComponentID, SpanScale, EndDate,
EndHour, and EndMinute is equal to the TestTypeCode, ComponentID, SpanScale, EndDate, EndHour, and EndMinute of
the current TestSummary record, and the TestNum is not equal to the TestNumber in the current TestSummary record,
If found,
set Extra Linearity Test to true, and return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode and the TestNum are equal to the TestTypeCode
and TestNumber in the current TestSummary record.
If found,
Set Linearity Supp Data ID to the QA Supp Data ID in the QASupp record.
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the ComponentID, SpanScale, EndDate, EndHour,
and EndMinute in the QASupp record is not equal to ComponentID, SpanScale, EndDate,
EndHour, or EndMinute of the current TestSummary record,
return result B.
Otherwise,
return result C.
Results:
Result Response
A Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
B Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
C This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 303 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
Conditions: Duplicate Linearity Equals false
Environmental Protection Agency
Page 304 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-5
Check Name: Linearity Test Begin Time Consistent with Injections
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the linearity check with valid begin time and injection times:
If BeginDate, BeginHour, and BeginMinute does not equal the InjectionDate, InjectionHour, and InjectionMinute of the earliest
injection,
return result A.
Results:
Result Response Severity
A You reported a Test Begin Date, Hour, and Minute that is not the same as the Injection Critical Error Level 1
Date, Hour, and Minute of the first injection in the test.
Usage:
1 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
Conditions: Linearity Test Aborted Equals false
Environmental Protection Agency
Page 305 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-6
Check Name: Linearity Test End Time Consistent with Injections
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the linearity check with valid end time and injection times:
If EndDate, EndHour, and EndMinute does not equal the InjectionDate, InjectionHour, and InjectionMinute of the latest injection,
return result A.
Results:
Result Response Severity
A You reported a Test End Date, Hour, and Minute that is not the same as the Injection Critical Error Level 1
Date, Hour, and Minute of the last injection in the test.
Usage:
1 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
Conditions: Linearity Test Aborted Equals false
Environmental Protection Agency
Page 306 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-9
Check Name: Linearity Test Reason Code Valid
Related Former Checks:
Applicability: CEM Check
Description:
Validation Tables:
Test Reason Code (Lookup Table)
Test Reason Code (Lookup Table)
Specifications:
For the linearity check:
If the TestReasonCode is null,
return result A.
If the TestReasonCode is not in the TestReasonCode lookup table,
return result B.
Results:
Result Response
A You did not provide [fieldname], which is required for [key],
B You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Usage:
1 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
Conditions: Linearity Component Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 307 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: LINEAR-11
Check Name: Simultaneous Gas Injections
Related Former Checks: LIN-3
Applicability: CEM Check
Description:
Specifications:
For the linearity check with valid injection times.
If Simultaneous Linearity Injections is equal to true,
return result A.
Results:
Result Response Severity
A You reported that two or more reference gas injections were performed at the same date Critical Error Level 1
and time. Two injections in a [testtype] cannot be performed simultaneously.
Usage:
1 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
Conditions: Linearity Test Aborted Equals false
Environmental Protection Agency
Page 308 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-12
Check Name: Inappropriate Gas Injections Sequence
Related Former Checks: LIN-4
Applicability: CEM Check
Description:
Specifications:
For the linearity check with valid injection times:
If Linearity Sequence Valid is equal to false,
return result A.
Results:
Severity
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
Conditions: Linearity Test Aborted Equals false
Result Response
A Two or more consecutive reference gas injections have the same calibration gas level.
Section 6.2 in Appendix A of 40 CFR Part 75 requires successive gas injections during a
[testtype] to be at different calibration gas levels.
Environmental Protection Agency
Page 309 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-13
Check Name:
Concurrent Tests
Related Former Checks: LIN-7A
Applicability:
CEM Check
Description:
Specifications:
For the linearity check with valid Begin and End Times and a valid Span Scale:
Locate another test for the component where the TestTypeCode and SpanScale is equal to the TestTypeCode and SpanScale in the
current Test Summary record; the BeginDate, BeginHour, and BeginMinute is before the EndDate, EndHour, and EndMinute in the
current Test Summary record; and the EndDate, EndHour, and EndMinute is after the BeginDate, BeginHour, and BeginMinute in
the current Test Summary record.
If found,
return result A.
If not found,
Locate an unassociated QA Supp record for the location where the TestTypeCode, ComponentID and SpanScale is equal to
the TestTypeCode, ComponentID and SpanScale in the current Test Summary record; the BeginDate, BeginHour, and
BeginMinute is before the EndDate, EndHour, and EndMinute in the current Test Summary record; and the EndDate,
EndHour, and EndMinute is after the BeginDate, BeginHour, and BeginMinute in the current Test Summary record; and the
TestNum is not equal to the TestNumber in the current Test Summary record.
If found,
return result A.
Results:
Result
A
Response
This [testtype] was conducted at the same time as another [testtype] for the same
component and range.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Linearity Test (Pass 1)
Extra Linearity Test Equals false
And Linearity Component Valid Equals true
Environmental Protection Agency
Page 310 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-14
Check Name: Duplicate Linearity Summary Check
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the linearity summary record:
If the GasLevelCode is equal to the Last Linearity Level Code,
set Linearity Level Valid to false, and return result A.
Do not perform the checks in the Linearity Injections and Linearity Summary (Pass 2) categories.
Set all calculated values in associated Linearity Summary records to null.
Otherwise,
Set Last Linearity Level Code to the GasLevelCode, and add GasLevelCode to the Linearity Level List.
Results:
Result Response Severity
A You have reported more than one linearity summary record for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — Linearity Summary (Pass 1)
Environmental Protection Agency
Page 311 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: LINEAR-16
Check Name: Linearity Summary Mean Measured Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the linearity summary record,
If MeanMeasuredValue is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — Linearity Summary (Pass 1)
Conditions: Linearity Level Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Summary Evaluation
Environmental Protection Agency
Page 312 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-17
Check Name: Linearity Summary Mean Reference Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the linearity summary record:
If MeanReferenceValue is null,
return result A.
If MeanReference Value is less than 0,
return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report — Linearity Summary (Pass 1)
Conditions: Linearity Level Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Summary Evaluation
Environmental Protection Agency
Page 313 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-18
Check Name:
Linearity Summary Percent Error Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the linearity summary record,
If PercentError is null,
set Linearity Summary Percent Error Valid to false, and return result A.
If PercentError is less than 0,
set Linearity Summary Percent Error Valid to false, and return result B.
Otherwise,
set Linearity Summary Percent Error Valid to true.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report — Linearity Summary (Pass 1)
Linearity Level Valid Equals true
QA and Certification Data Entry Screen Evaluation Linearity Summary Evaluation
1
Environmental Protection Agency
Page 314 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-19
Check Name:
Linearity Injection Injection Time Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the linearity injection:
Set Linearity Injection Included to false.
If the Injection Date is null, or the Injection Hour is null or not between 0 and 23, or the Injection Minute is null or not between 0
and 59,
set Linearity Injection Time Valid to false, Linearity Injection Count to -1, Linearity Level Valid to false, and return result
A.
set Linearity Injection Time Valid to true.
If the Injection Date/Hour/Minute is equal to the Last Linearity Injection Time,
set Linearity Level Valid to false and Linearity Injection Count to -1.
Otherwise,
set Linearity Injection Time to the Injection Date/Hour/Minute.
If Linearity Injection Count is greater than or equal to 0,
add 1 to Linearity Injection Count.
if Linearity Injection Count is less than or equal to 3,
set Linearity Injection Included to true.
Otherwise,
Results:
Result
A
Response
The [type] date, hour, and/or minute for [key] is invalid.
Severity
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Linearity Injection
1
Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Injection Evaluation
Environmental Protection Agency
Page 315 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the linearity injection:
If Measured Value is null,
set Linearity Level Valid to false, and return result A.
Otherwise,
If both Linearity Injection Included and Linearity Level Valid are true,
add MeasuredValue to Linearity Measured Value Total.
LINEAR-20
Linearity Injection Measured Value Valid
CEM Check
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Linearity Injection
1 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Injection Evaluation
Environmental Protection Agency
Page 316 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-21
Check Name:
Linearity Injection Reference Value Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the linearity injection:
If Reference Value is null,
set Linearity Reference Value Valid and Linearity Level Valid to false, and return result A.
If Reference Value is less than 0,
set Linearity Reference Value Valid and Linearity Level Valid to false, and return result B.
Otherwise,
set Linearity Reference Value Valid to true,
If both Linearity Injection Included and Linearity Level Valid are true,
add ReferenceValue to Linearity Reference Value Total.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Linearity Injection
1
Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Injection Evaluation
Environmental Protection Agency
Page 317 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-22
Check Name: Linearity Injection Reference Value Consistent with Span and Gas Level
Related Former Checks: LIN-14
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the linearity injection record with a valid ReferenceValue and a Test Span Value greater than 0:
Calculate Linearity Reference Percent of Span = ReferenceValue divided by the Test Span Value times 100 (rounded to the nearest
tenth)
If the GasLevelCode is "LOW",
If Linearity Reference Percent of Span is less than 20.0 or greater than 30.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
Current IJnearitySummary.'lc%ll\pcCodc and the FieldDescription is equal to "GasPercentOfSpan".
If Linearity Reference Percent of Span is less than 20.0 - Tolerance in the cross-check record or is greater than 30.0
+ Tolerance in the cross-check record,
set Linearity Reference Value Consistent with Span to "CRITICAL", and return result A.
Otherwise,
If Linearity Reference Value Consistent with Span is null,
set Linearity Reference Value Consistent with Span to "WARNING", and return result B.
If the GasLevelCode is "MID",
If Linearity Reference Percent of Span is less than 50.0 or greater than 60.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
Current [JnearitySummary.'lc%ll\pcCodc and the FieldDescription is equal to "GasPercentOfSpan".
If Linearity Reference Percent of Span is less than 50.0 - Tolerance in the cross-check record or is greater than 60.0
+ Tolerance in the cross-check record,
set Linearity Reference Value Consistent with Span to "CRITICAL", and return result C.
Otherwise,
If Linearity Reference Value Consistent with Span is null,
set Linearity Reference Value Consistent with Span to "WARNING", and return result D.
If the GasLevelCode is "HIGH",
If Linearity Reference Percent of Span is greater than 100.0,
set Linearity Reference Value Consistent with Span to "CRITICAL", and return result E.
If Linearity Reference Percent of Span is less than 80.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
CurrentfJnearitySummary.'l csll ypcCodc and the FieldDescription is equal to "GasPercentOfSpan".
If Linearity Reference Percent of Span is less than 80.0 - Tolerance in the cross-check record,
Environmental Protection Agency
Page 318 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
set Linearity Reference Value Consistent with Span to "CRITICAL", and return result E.
Otherwise,
If Linearity Reference Value Consistent with Span is null,
set Linearity Reference Value Consistent with Span to "WARNING", and return result F.
Results:
Result
B
D
Usage:
1
Response
The tag value of the "LOW" level reference calibration gas for the injection data is
[percent]% of span and does not meet the performance specifications of 40 CFR Part 75.
The concentration of the low reference calibration gas must be between 20.0% and
30.0% of the span value. This test is invalid.
The tag value of the "LOW" level reference calibration gas for the injection data is
[percent]% of span and does not meet the performance specifications of 40 CFR Part 75.
The concentration of the low reference calibration gas must be between 20.0% and
30.0% of the span value.
The tag value of the "MID" level reference calibration gas for the injection data is
[percent]% of span and does not meet the performance specifications of 40 CFR Part 75.
The concentration of the mid reference calibration gas must be between 50.0% and
60.0% of the span value. This test is invalid.
The tag value of the "MID" level reference calibration gas for the injection data is
[percent]% of span and does not meet the performance specifications of 40 CFR Part 75.
The concentration of the mid reference calibration gas must be between 50.0% and
60.0% of the span value.
The tag value of the "HIGH" level reference calibration gas for the injection data is
[percent]% of span and does not meet the performance specifications of 40 CFR Part 75.
The concentration of the high reference calibration gas must be between 80.0% and
100.0% of the span value. This test is invalid.
The tag value of the "HIGH" level reference calibration gas for the injection data is
[percent]% of span and does not meet the performance specifications of 40 CFR Part 75.
The concentration of the high reference calibration gas must be between 80.0% and
100.0% of the span value.
Process/Category: QA Test Evaluation Report Linearity Injection
Conditions: Linearity Reference Value Consistent with Span Not Equal CRITICAL
Severity
Critical Error Level 2
Non-Critical Error
Critical Error Level 2
Non-Critical Error
Critical Error Level 2
Non-Critical Error
Environmental Protection Agency
Page 319 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-23
Check Name:
Linearity Reference Values Consistent with Calibration Gas Levels
Related Former Checks: LIN-8
Applicability:
CEM Check
Description:
Specifications:
For each linearity injection record with a valid ReferenceValue and an associated GasLevelCode equal to "MID":
Locate a Linearity Injection record for the test with an associated GasLevelCode equal to "HIGH" and a ReferenceValue less than
the ReferenceValue in the current injection record.
If found,
set Linearity Reference Values Consistent to false, and return result A.
Otherwise,
Locate a Linearity Injection record for the test with an associated GasLevelCode equal to "LOW" and a ReferenceValue
greater than the ReferenceValue in the current injection record.
If found,
set Linearity Reference Values Consistent to false, and return result A.
Results:
Result
A
Response
The reference values in this test are not consistent with the calibration gas levels. The
reference values of low-level gas injections must be less than those of mid-level gas
injections; and the reference values of mid-level gas injections must be less than those of
high-level gas injections.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Linearity Injection
Linearity Reference Values Consistent Equals true
Environmental Protection Agency
Page 320 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-24
Check Name:
Simultaneous Injection in Alternate Range Test
Related Former Checks: LIN-7B
Applicability:
CEM Check
Description:
Specifications:
For the linearity injection with a valid Injection Time:
If the Span Scale is "H",
Locate a Component Linearity Injection record for the component where the associated SpanScale is equal to "L"; the
InjectionDate, InjectionHour, and InjectionMinute is equal to the InjectionDate, InjectionHour, and InjectionMinute in the
current injection record.
If found,
set Simultaneous Injection for Alternate Range to true, and return result A.
If the Span Scale is "L",
Locate a Component Linearity Injection record for the component where the associated SpanScale is equal to "H"; the
InjectionDate, InjectionHour, and InjectionMinute is equal to the InjectionDate, InjectionHour, and InjectionMinute in the
current injection record.
If found,
set Simultaneous Linearity Injection for Alternate Range to true, and return result A.
Results:
Result
A
Response
An injection in this test was conducted at the same time as an injection in another
[testtype] for the alternate range of the same analyzer.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Linearity Injection
Simultaneous Linearity Injection for Alternate Range Equals false
Environmental Protection Agency
Page 321 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-25
Check Name: Appropriate Number of Gas Injections
Related Former Checks: LIN-12, LIN-13
Applicability: CEM Check
Description:
Specifications:
For the linearity summary record:
If the Linearity Injection Count is greater than 0 and less than 3,
set Calculate Linearity Level to false, and return result A.
Otherwise
set Calculate Linearity Level to Linearity Level Valid.
If the Linearity Injection Count is greater than 3,
return result B.
Results:
Result Response
A There are fewer than three gas injections for [key]. For each gas level there must be
three injections.
B There were more than three gas injections for [key]. Only the last three injections at this
level were retained for analysis. All other gas injections have been disregarded.
Usage:
1 Process/Category: QA Test Evaluation Report — Linearity Summary (Pass 2)
Severity
Critical Error Level 1
Informational Message
Environmental Protection Agency
Page 322 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-26
Check Name:
Calculate Gas Level Results
Related Former Checks: LIN-15, LIN-16
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the linearity summary record:
If Calculate Linearity Level is equal to true,
Calculate Linearity Summary Mean Reference Value = Linearity Reference Value Total 13.
Calculate Linearity Summary Mean Measured Value = Linearity Measured Value Total I 3.
Calculate Linearity Summary Mean Difference = ahsf Linearity Summary Mean Reference Value - Linearity Summary
Mean Measured Value).
If Linearity Summary Mean Reference Value is greater than 0,
Calculate Linearity Summary Percent Error = min (Linearity Summary Mean Difference I Linearity Summary
Mean Reference Value * 100, 9999.9), rounded to 1 decimal place.
else
Set Linearity Summary Percent Error to null.
Round Linearity Summary Mean Reference Value to 3 decimal places.
Round Linearity Summary Mean Measured Value to 3 decimal places.
If the Component Type Code of the associated component is equal to "S02" or "NOX",
Round Linearity Summary Mean Difference to 0 decimal places.
Otherwise,
Round Linearity Summary Mean Difference to 1 decimal place.
If Linearity Summary Mean Reference Value is greater than 0 AND (Linearity Summary Percent Error is less than or
equal to 5.0; or if the Component Type Code of the associated component is equal to "HG" and the Linearity Summary
Percent Error is less than or equal to 10.0),
set Linearity Summary APS Indicator to 0.
If Linearity Test Result is not equal to "INVALID", "FAILED", or "PASSAPS",
set Linearity Test Result to "PASSED".
Otherwise,
If the Component Type Code of the associated component is equal to "S02" or "NOX",
If Linearity Summary Mean Difference is less than or equal to 5,
set Linearity Summary APS Indicator to 1, and Linearity Summary Percent Error to Linearity
Summary Mean Difference.
If Linearity Test Result is not equal to "FAILED" or "INVALID",
set Linearity Test Resultto "PASSAPS".
Environmental Protection Agency
Page 323 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
If Linearity Summary Mean Reference Value is greater than 0,
set Linearity Summary APS Indicator to 0.
Otherwise,
set Linearity Summary APS Indicator to 1, and Linearity Summary Percent Error to
Linearity Summary Mean Difference.
If Linearity Test Result is not equal to "FAILED" or "INVALID",
If APSIndicator in the Linearity Summary record is equal to 1,
Set Linearity Test Result to "FAILED".
If PercentError in the Linearity Summary record is greater than or equal to 0 and
less than or equal to 5,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "LINE" and the FieldDescription is equal to
"MeanDifferencePPM".
If the absolute value of the difference between the Linearity Summary
Mean Difference and the Percent Error in the Linearity Summary
record is less than or equal to the Tolerance in the cross-check record,
Set Linearity Test Result to "PASSAPS".
Otherwise,
If PercentError in the Linearity Summary record is greater than or equal to 0 and
less than or equal to 5.0, AND Linearity Summary Mean Reference Value is
greater than 0,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "LINE" and the FieldDescription is equal to "PercentError".
If the absolute value of the difference between the Linearity Summary
Percent Error (MeanDiff) and the Percent Error in the Linearity
Summary record is less than or equal to the Tolerance in the cross-check
record,
If Linearity Test Result is not equal to "PASSAPS",
set Linearity Test Result to "PASSED".
Otherwise,
set Linearity Test Result to "FAILED".
Otherwise,
set Linearity Test Result to "FAILED".
If the Component Type Code of the associated component is equal to "C02" or "02",
If Linearity Summary Mean Difference is less than or equal to 0.5,
set Linearity Summary APS Indicator to 1, and Linearity Summary Percent Error to Linearity
Summary Mean Difference.
If Linearity Test Result is not equal to "FAILED" or "INVALID",
Environmental Protection Agency
Page 324 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
set Linearity Test Resutito "PASSAPS".
Otherwise,
Set Linearity Summary APS Indicator to 0.
If Linearity Test Result is not equal to "FAILED" or "INVALID",
If APSIndicator in the Linearity Summary record is equal to 1,
Set Linearity Test Result to "FAILED".
If PercentError in the Linearity Summary record is greater than or equal to 0 and
less than or equal to 0.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "LINE" and the FieldDescription is equal to
"MeanDifferencePCT".
If the absolute value of the difference between the Linearity Summary
Mean Difference and the Percent Error in the Linearity Summary
record is less than or equal to the Tolerance in the cross-check record,
Set Linearity Test Result to "PASSAPS".
Otherwise,
If PercentError in the Linearity Summary record is greater than or equal to 0 and
less than or equal to 5.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "LINE" and the FieldDescription is equal to "PercentError".
If the absolute value of the difference between the Linearity Summary
Percent Error(MeanDiff) and the PercentError in the Linearity
Summary record is less than or equal to the Tolerance in the cross-check
record,
If Linearity Test Result is not equal to "PASSAPS",
set Linearity Test Result to "PASSED".
Otherwise,
set Linearity Test Result to "FAILED".
Otherwise,
set Linearity Test Result to "FAILED".
If the Component Type Code of the associated component is equal to "HG",
If Linearity Summary Mean Difference is less that or equal to 0.8,
set Linearity Summary APS Indicator to 1, and Linearity Summary Percent Error to Linearity
Summary Mean Difference.
If Linearity Test Result is not equal to "FAILED" or "INVALID",
set Linearity Test Resultto "PASSAPS".
Otherwise,
If Linearity Summary Mean Reference Value is greater than 0,
Set Linearity Summary APS Indicator to 0.
Environmental Protection Agency
Page 325 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
set Linearity Summary APS Indicator to 1, and Linearity Summary Percent Error to
Linearity Summary Mean Difference.
If Linearity Test Result is not equal to "FAILED" or "INVALID",
If APSIndicator in the Linearity Summary record is equal to 1,
Set Linearity Test Result to "FAILED".
If PercentError in the Linearity Summary record is greater than or equal to 0 and
less than or equal to 0.8,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to CurrentLinearitySummary.TestTypeCode and the
FieldDescription is equal to "MeanDifferenceUGSCM".
If the absolute value of the difference between the Linearity Summary
Mean Difference and the Percent Error in the Linearity Summary
record is less than or equal to the Tolerance in the cross-check record,
If PercentError in the Linearity Summary record is greater than or equal to 0 and
less than or equal to 10.0, AND Linearity Summary Mean Reference Value is
greater than 0,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to CurrentLinearity Summary. TestTypeCode and the
FieldDescription is equal to "PercentError".
If the absolute value of the difference between the Linearity Summary
Percent Error (MeanDiff) and the Percent Error in the Linearity
Summary record is less than or equal to the Tolerance in the cross-check
record,
Set Linearity Test Result to "PASSAPS".
Otherwise,
If Linearity Test Result is not equal to "PASSAPS",
set Linearity Test Result to "PASSED".
Otherwise,
set Linearity Test Result to "FAILED".
Otherwise,
set Linearity Test Result to "FAILED".
Otherwise,
set Linearity Test Result to "INVALID", Linearity Summary Mean Reference Value, Linearity Summary Mean
Measured Value, Linearity Summary Percent Error, Linearity Summary APS Indicator to null, and return result A.
Results:
Result
A
Response
The software could not evaluate the [test] calculations reported for [key], because of the
errors listed above.
Severity
Informational Message
Environmental Protection Agency
Page 326 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report — Linearity Summary (Pass 2)
Environmental Protection Agency
Page 327 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-27
Check Name: Reported Summary Values Consistent with Recalculated Gas Level Values
Related Former Checks: LIN-20, LIN-21
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the linearity summary record:
If Calculate Linearity Level is equal to true,
If the APSIndicator in the current record is not equal to 1 and the Linearity Summary APS Indicator is equal to 1,
return result A.
Otherwise,
If the Reported Percent Error is valid,
If the APSIndicator in the current record is equal to 0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "LINE",
"HGLINE", or "HGSI3" and the FieldDescription is equal to "PercentError".
If the absolute value of the difference between the Linearity Summary Percent Error and the
Percent Error in the Linearity Summary record is greater than the Tolerance in the cross-check
record,
return result B.
If the APSIndicator in the current record is equal to 1,
If the Component Type Code of the associated component is equal to "S02" or "NOX",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"LINE" and the FieldDescription is equal to "MeanDifferencePPM".
If the absolute value of the difference between the Linearity Summary Mean Difference
and the Percent Error in the Linearity Summary record is greater than the tolerance in the
cross-check record,
return result B.
else if the Component Type Code of the associated component is equal to "HG",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
CurrentLinearitySummary.TestTypeCode and the FieldDescription is equal to
"MeanDifferenceUGSCM".
If the absolute value of the difference between the Linearity Summary Mean Difference
and the Percent Error in the Linearity Summary record is greater than the tolerance in the
cross-check record,
return result B.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
CurrentLinearitySummary.TestTypeCode and the FieldDescription is equal to
"MeanDifferencePCT".
Environmental Protection Agency
Page 328 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If the absolute value of the difference between the Linearity Summary Mean Difference
and the Percent Error in the Linearity Summary record is greater than the tolerance in the
cross-check record.
return result B.
Set Linearity Intermediate Values to null.
If the Component Type Code of the associated component is equal to "S02" or "NOX",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "LINE" and the
FieldDescription is equal to "MeanDifferencePPM".
else if the Component Type Code of the associated component is equal to "HG",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
CurrentLinearitySummary.TestTypeCode and the FieldDescription is equal to
"MeanDifferenceUGSCM".
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
CurrentLinearity Summary. TestTypeCode and the FieldDescription is equal to "MeanDifferencePCT".
If MeanReferenceValue in the Linearity Summary record is not null, and the absolute value of the difference
between the Linearity Summary Mean Reference Value and the MeanReferenceValue in the Linearity Summary
record is greater than the tolerance in the cross-check record,
append "MeanReferenceValue" to Linearity Intermediate Values.
If MeanMeasuredValue in the Linearity Summary record is not null, and the absolute value of the difference
between the Linearity Summary Mean Measured Value and the MeanMeasuredValue in the Linearity Summary
record is greater than the tolerance in the cross-check record,
append "MeanMeasuredValue" to Linearity Intermediate Values.
If Linearity Intermediate Values is not null,
return result C.
In the QA Evaluation Process, the Linearity Summary Mean Reference Value, Linearity Summary Mean Measured Value, Linearity
Summary Percent Error, Linearity Summary APS Indicator will be stored as calculated values in the Linearity Summary record for
the gas level.
Otherwise,
Results:
Result
A
Response
The APS flag in the Linearity Summary record for [key] is not equal to 1, although EPA
applied the alternative performance specification to determine that the test passed the
applicable performance specification.
The Percent Error reported in the Linearity Summary record for [key] is inconsistent
with the value which has been recalculated from the injections associated with the test.
The [fieldnames] reported in the Linearity Summary record for [key] is inconsistent with
the value which has been recalculated from the injections associated with the test.
Severity
Critical Error Level 1
B
Critical Error Level 1
C
Non-Critical Error
Environmental Protection Agency
Page 329 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report — Linearity Summary (Pass 2)
Environmental Protection Agency
Page 330 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-28
Check Name:
Too Few Gas Levels
Related Former Checks: LIN-6A
Applicability:
CEM Check
Description:
Specifications:
For the linearity test:
If Linearity Test Result is equal to "ABORTED", or Linearity Component Valid is false,
set Calculate Linearity Test to true.
If the number of levels in the Linearity Level List is less than 3,
set Linearity Test Result to null and Calculate Linearity Test to false, and return result A.
If Linearity Test Result is equal to "INVALID",
set Linearity Test Result to null and Calculate Linearity Test to false.
If Linearity Test Result is null,
set Calculate Linearity Test to false.
set Calculate Linearity Test to false.
Otherwise,
Results:
Result
A
Response
You have reported fewer than three calibration gas levels in this test.
Severity
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Linearity Test (Pass 2)
Environmental Protection Agency
Page 331 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-29
Check Name: Determine Linearity Check Results
Related Former Checks: LIN-22
Applicability: CEM Check
Description:
Specifications:
For the linearity check:
If TestResultCode is null,
return result A.
If TestResultCode is not equal to "ABORTED", "PASSED", "PASSAPS", or "FAILED",
Locate the TestResultCode in the Test Result Code Lookup table.
If not found,
return result B.
If found,
return result C.
If the Linearity Test Result is equal to "FAILED", and the TestResultCode is equal to "PASSED" or "PASSAPS",
return result D.
If the Linearity Test Result is equal to "PASSED" or "PASSAPS", and the TestResultCode is equal to "FAILED",
return result E.
In the QA Evaluation Process, the Linearity Test Result and the Test Span Value will be stored as calculated values in the Test
Summary record for the test, and (for tests that have not yet been submitted or have been approved for resubmission) the
appropriate values will be stored in the QA Supp Data record for the test.
Results:
Result
A
B
C
D
E
Usage:
1
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
The TestResultCode indicates a passing test, but the result recalculated from the
injection records indicates a failing test.
You reported a TestResultCode of "FAILED", but the results recalculated or determined
from the other reported values indicate that the test passed.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA Test Evaluation Report Linearity Test (Pass 2)
Environmental Protection Agency
Page 332 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the linearity check:
Set Linearity Test Result to null, Linearity Level List to null, Last Linearity Level Code to null, Linearity Reference Values
Consistent to true, and Simultaneous Linearity Injection for Alternate Range to false.
Set Linearity Test Type to null.
LINEAR-30
Initialize Linearity Test Variables
CEM Check
Results:
Result Response Severity
Usage:
1 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Injection Evaluation
Environmental Protection Agency
Page 333 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-36
Check Name: Initialize Linearity Summary Variables
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the linearity summary record:
Set Linearity Reference Value Total, Linearity Measured Value Total, and Linearity Injection Count to 0.
Set Linearity Level Valid to true.
Set Last Injection Time and Linearity Reference Value Consistent with Span to null.
Results:
Result Response Severity
Usage:
1 Process/Category: QA Test Evaluation Report — Linearity Summary (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Injection Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Summary Evaluation
Environmental Protection Agency
Page 334 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: LINEAR-37
Check Name: APS Indicator Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the linearity summary record:
If APSIndicator is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — Linearity Summary (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Summary Evaluation
Environmental Protection Agency
Page 335 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-10
Check Name:
Linearity Test Result Code Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Test Result Code (Lookup Table)
Specifications:
For the linearity check:
If TestResultCode is null,
return result A.
If TestResultCode is not equal to "ABORTED", "PASSED", "PASSAPS", or "FAILED",
Locate the TestResultCode in the Test Result Code Lookup table.
If not found,
return result B.
If found,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Severity
Critical Error Level 1
Fatal
C
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
Environmental Protection Agency
Page 336 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-15
Check Name: Linearity Summary Calibration Gas Level Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a Linearity Summary record:
If GasLevelCode is null,
return result A.
If GasLevelCode is not equal to "HIGH", "MID", or "LOW",
return result B.
Results:
Severity
Fatal
Fatal
Result Response
A You did not provide [fieldname], which is required for [key],
B You reported a [fieldname] that is not in the list of valid values.
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Injection Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Summary Evaluation
Environmental Protection Agency
Page 337 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-31
Check Name:
Duplicate Linearity
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the linearity check with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode and the TestNumber are equal to the TestTypeCode
and TestNumber in the current record.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode and the TestNumber are equal to the
TestTypeCode and TestNumber in the current record.
If found,
return result B.
If found,
return result A.
Results:
Result
A
Response
Another test with this test type and test number already exists. You must assign a
different test number.
You cannot change the TestNumber to the value that you have entered, because a test
with this TestType and TestNumber has already been submitted. If this is a different
test, you should assign it a different TestNumber. If you are trying to resubmit this test,
you should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category:
Conditions:
QA and Certification Data Entry Screen Evaluation Linearity Evaluation
Test Number Valid Equals true
Environmental Protection Agency
Page 338 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-32
Check Name: Duplicate Linearity Summary
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the Linearity Summary record with a valid GasLevelCode:
Locate another Linearity Summary record for the test where the GasLevelCode is equal to the GasLevelCode in the current record:
If found,
return result A.
Results:
Result Response Severity
A Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Summary Evaluation
Environmental Protection Agency
Page 339 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-33
Check Name:
Duplicate Linearity Injection
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the Linearity Injection record:
Set Duplicate Linearity Injection to false.
If GasLevelCode, InjectionDate, InjectionHour, and InjectionMinute are all valid,
Locate another Linearity Injection record for the test where the GasLevelCode, InjectionDate, InjectionHour, and
InjectionMinute are equal to the GasLevelCode, InjectionDate, InjectionHour, and InjectionMinute in the current record.
If found,
set Duplicate Linearity Injection to true, and return result A.
Results:
Result
A
Response
Another [recordtype] record already exists with the same [fieldnames].
Severity
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Injection Evaluation
Environmental Protection Agency
Page 340 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: LINEAR-34
Check Name: Too Many Gas Injections
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the linearity injection record that is not a duplicate:
Count the number of linearity injections in the test where the GasLevelCode is equal to the GasLevelCode in the current record
(excluding the current record).
If the number is greater than 2,
return result A.
Results:
Result Response Severity
A There were more than three gas injections for [key]. Only the last three injections at this Informational Message
level were retained for analysis. All other gas injections have been disregarded.
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Injection Evaluation
Environmental Protection Agency
Page 341 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the linearity check:
If the ComponentID is null,
return result A.
Results:
Severity
Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
LINEAR-35
Linearity Component ID Valid
CEM Check
Result Response
A You did not provide [fieldname], which is required for [key].
Environmental Protection Agency
Page 342 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
LINEAR-38
Check Name:
Calculate Linearity Summary Values
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the linearity summary record:
Set Linearity Calc MRV, Linearity Calc MMV, Linearity Calc PE, and Linearity Calc APS to null.
If the GasLevelCode is not equal to "HIGH", "LOW", or "MID",
Set TotalRV, TotalMV, and InjCt to 0.
Sort the Linearity Injection records for the GasLevelCode in descending InjectionDate, InjectionHour, InjectionMinute
For each injection record:
If the Injection Date is null, or the Injection Hour is null or not between 0 and 23, or the Injection Minute is null or
not between 0 and 59,
return result A.
Otherwise,
Add lto InjCt.
If InjCt is less than or equal to 3,
If Measured Value is null, Reference Value is null, or ReferenceValue is less than 0,
return result A.
Otherwise,
add MeasuredValue to TotalMV.
add ReferenceValue to TotalRV.
If InjCt is less than 3,
return result B.
Otherwise,
Calculate Linearity Calc MRV = TotalRV / 3.
Calculate Linearity Calc MMV = TotalMV / 3.
Calculate MeanDiff = abs(Linearity Calc MRV - Linearity Calc MMV).
Calculate Linearity Calc PE = min (MeanDiff / Linearity Calc MRV * 100, 9999.9)
Round Linearity Calc MRV and Linearity Calc MMV to 3 decimal places.
If the Component Type Code of the associated component is equal to "S02" or "NOX",
Round MeanDiff to 0 decimal places.
Otherwise,
return result A.
Otherwise,
order.
Environmental Protection Agency
Page 343 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Round MeanDiffto 1 decimal place.
Round Linearity Calc PE to 1 decimal place.
If Linearity CalcPE is less than or equal to 5.0; OR the Component Type Code of the associated component is equal
to "HG" and Linearity CalcPE is less than or equal to 10.0,
set Linearity Calc APS to 0.
Otherwise,
If the Component Type Code of the associated component is equal to "S02" or "NOX",
If MeanDiff is less than or equal to 5,
set Linearity Calc APS to 1, and Linearity Calc PE to MeanDiff.
Otherwise,
set Linearity Calc APS to 0.
If the Component Type Code of the associated component is equal to "C02" or "02",
If MeanDiff is less that or equal to 0.5,
set Linearity Calc APS to 1, and Linearity Calc PE to MeanDiff.
Otherwise,
set Linearity Calc APS to 0.
If the Component Type Code of the associated component is equal to "HG",
If MeanDiff is less than or equal to 0.8,
set Linearity Calc APS to 1, and Linearity Calc PE to MeanDiff.
Otherwise,
set Linearity Calc APS to 0.
Return Linearity Calc MRV, Linearity Calc MMV, Linearity Calc PE, and Linearity Calc APS to screen.
Results:
Result
A
B
Response
The values in this record could not be calculated because of invalid data.
There are fewer than three gas injections for [key]. For each gas level there must be
three injections.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Summary Calculations
Environmental Protection Agency
Page 344 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Monitoring Plan
Environmental Protection Agency
Page 345 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the monitoring plan:
If the associated First ECMPS Reporting Period for the monitoring plan is null,
Set ECMPS MP Begin Date to {01/01/2009}
Else
Set ECMPS MP Begin Date to the first day of the First ECMPS Reporting Period.
Set Protocol Gases to null.
Results:
Result Response Severity
MONPLAN-8
Initialize Variables
General Check
Environmental Protection Agency
Page 346 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report 7-Day Calibration Test Evaluation (Pass 1)
2 Process/Category: QA Test Evaluation Report Appendix E Test (Pass 1)
3 Process/Category: QA Test Evaluation Report Cycle Time Test Evaluation (Pass 1)
4 Process/Category: QA Test Evaluation Report Flow-to-Load Check Evaluation
5 Process/Category: QA Test Evaluation Report Flow-to-Load Reference Data Evaluation
6 Process/Category: QA Test Evaluation Report Fuel Flowmeter Accuracy Test
7 Process/Category: QA Test Evaluation Report Fuelflow-to-Load Test
8 Process/Category: QA Test Evaluation Report Linearity Test (Pass 1)
9 Process/Category: QA Test Evaluation Report Miscellaneous Tests
10 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
11 Process/Category: QA Test Evaluation Report Transmitter Transducer Test
12 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Injection Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation 7-Day Calibration Test Evaluation
3 Process/Category: QA and Certification Data Entry Screen Evaluation Appendix E Test Evaluation
4 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Injection Evaluation
5 Process/Category: QA and Certification Data Entry Screen Evaluation Cycle Time Test Evaluation
6 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Check Evaluation
7 Process/Category: QA and Certification Data Entry Screen Evaluation Flow-to-Load Reference Data Evaluation
8 Process/Category: QA and Certification Data Entry Screen Evaluation Fuel Flowmeter Accuracy Test Evaluation
9 Process/Category: QA and Certification Data Entry Screen Evaluation Fuelflow-to-Load Test Evaluation
10 Process/Category: QA and Certification Data Entry Screen Evaluation Linearity Evaluation
11 Process/Category: QA and Certification Data Entry Screen Evaluation Miscellaneous Test Evaluation
12 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
13 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
14 Process/Category: QA and Certification Data Entry Screen Evaluation Test Extension Exemption Evaluation
15 Process/Category: QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
16 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
1 Process/Category: Other QA Evaluation Report Test Extension Exemption Evaluation
Environmental Protection Agency
Page 347 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Online-Offline Calibration Test
Environmental Protection Agency
Page 348 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the OOC test:
If the ComponentID is null,
set OOC Test Component Type Valid to false, and return result A.
Otherwise,
If the ComponentTypeCode of the associated component is equal to "S02", "NOX", "C02", "02", or "FLOW",
set OOC Test Component Type Valid to true.
Otherwise,
set OOC Test Component Type Valid to false, and return result B.
If OOC Test Component is invalid, do not perform injection-based checks. Set the calculated values to null.
ONOFF-1
Online Offline Calibration Test Component Type Check
OFFON-1
CEM Check
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The ComponentTypeCode in the monitoring plan is [comptype]. This type of Critical Error Level 1
component does not require an online offline calibration test.
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Environmental Protection Agency
Page 349 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-2
Check Name: Aborted Online Offline Calibration Test Check
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OOC Test Component Type Valid is equal to true,
set Evaluate OOC Injections to true.
Otherwise,
set Evaluate OOC Injections to false.
Results:
Result Response Severity
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Environmental Protection Agency
Page 350 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
ONOFF-3
Check Name:
Online Offline Calibration Test Reason Code Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Test Reason Code (Lookup Table)
Test Reason Code (Lookup Table)
Specifications:
For the OOC test:
If the TestReasonCode is null,
If the TestReasonCode is not equal to "INITIAL" or "DIAG",
Locate the TestReasonCode in the Test Reason Code Lookup table,
If not found,
return result B.
If found,
return result C.
return result A.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Severity
Critical Error Level 1
Fatal
C
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
QA Test Evaluation Report Online Offline Calibration Test
OOC Test Component Type Valid Equals true
QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
1
Environmental Protection Agency
Page 351 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the OOC test:
If the UpscaleGasLevelCode is null,
set Upscale OOC Gas Level Valid to false, and return result A.
If the UpscaleGasLevelCode is not equal to "MID" or "HIGH",
set Upscale OOC Gas Level Valid to false, and return result B.
If the UpscaleGasLevelCode is equal to "MID",
If the ComponentTypeCode of the associated component is equal to "FLOW",
set Upscale OOC Gas Level Valid to false, and return result C.
Otherwise,
set Upscale OOC Gas Level Valid to true.
ONOFF-4
Online Offline Calibration Test Upscale Gas Level Code Valid
CEM Check
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You have reported a value of "MID" as the UpscaleGasLevelCode. This value is not
appropriate for flow components.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 352 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-5
Check Name: Offline Upscale Injection Time Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If the OfflineUpscalelnjectionDate is null, or the OfflineUpscalelnjectionHour is null or not between 0 and 23,
set OOC Injection Times Valid to false, and return result A.
Results:
Result Response Severity
A The [type] injection Date and/or Hour is invalid. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 353 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-6
Check Name: Offline Upscale Measured Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OfflineUpscaleMeasuredValue is null,
return result A.
Results:
Result
A
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
Severity
Critical Error Level 1
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 354 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-7
Check Name: Offline Upscale Reference Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OfflineUpscaleReferenceValue is null,
return result A.
If OfflineUpscaleReference Value is less than or equal to 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B You defined an invalid [fieldname] for [key]. This value must be greater than one and Critical Error Level 1
less than 20,000.
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Conditions:
QA Test Evaluation Report Online Offline Calibration Test
Evaluate OOC Injections Equals true
QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 355 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the OOC test:
If the OfflineUpscaleCalibrationError is null,
return result A.
If the OfflineUpscaleCalibrationError is less than 0,
return result B.
ONOFF-8
Offline Upscale Calibration Error Valid
CEM Check
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 356 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-9
Check Name: Offline Zero Injection Time Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If the OfflineZeroInjectionDate is null, or the OfflineZeroInjectionHour is null or not between 0 and 23,
set OOC Injection Times Valid to false, and return result A.
Results:
Result Response Severity
A The [type] injection Date and/or Hour is invalid. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 357 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-IO
Check Name: Offline Zero Measured Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OfflineZeroMeasuredValue is null,
return result A.
Results:
Result
A
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
Severity
Critical Error Level 1
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 358 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-11
Check Name: Offline Zero Reference Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OfflineZeroReferenceValue is null,
return result A.
If OfflineZeroReferenceValue is less than 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 359 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-12
Check Name: Offline Zero Calibration Error Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If the OfflineZeroCalibrationError is null,
return result A.
If the OfflineZeroCalibrationError is less than 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 360 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-13
Check Name: Online Upscale Injection Time Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If the OnlineUpscalelnjectionDate is null, or the OnlineUpscalelnjectionHour is null or not between 0 and 23,
set OOC Injection Times Valid to false, and return result A.
Results:
Result Response Severity
A The [type] injection Date and/or Hour is invalid. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 361 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-14
Check Name: Online Upscale Measured Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OnlineUpscaleMeasuredValue is null,
return result A.
Results:
Result
A
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
Severity
Critical Error Level 1
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 362 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-15
Check Name: Online Upscale Reference Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OnlineUpscaleReferenceValue is null,
return result A.
If OnlineUpscaleReferenceValue is less than or equal to 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B You defined an invalid [fieldname] for [key]. This value must be greater than one and Critical Error Level 1
less than 20,000.
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Conditions:
QA Test Evaluation Report Online Offline Calibration Test
Evaluate OOC Injections Equals true
QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 363 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-16
Check Name: Online Upscale Calibration Error Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If the OnlineUpscaleCalibrationError is null,
return result A.
If the OnlineUpscaleCalibrationError is less than 0,
return result B.
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 364 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-17
Check Name: Online Zero Injection Time Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If the OnlineZeroInjectionDate is null, or the OnlineZeroInjectionHour is null or not between 0 and 23,
set OOC Injection Times Valid to false, and return result A.
Results:
Result
Response
The [type] injection Date and/or Hour is invalid.
Severity
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 365 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-18
Check Name: Online Zero Measured Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OnlineZeroMeasuredValue is null,
return result A.
Results:
Result
A
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
Severity
Critical Error Level 1
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 366 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-19
Check Name: Online Zero Reference Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OnlineZeroReferenceValue is null,
return result A.
If OnlineZeroReferenceValue is less than 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 367 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-20
Check Name: Online Zero Calibration Error Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If the OnlineZeroCalibrationError is null,
return result A.
If the OnlineZeroCalibrationError is less than 0,
return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Evaluate OOC Screen Equals true
Environmental Protection Agency
Page 368 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
ONOFF-21
Check Name:
Reference Values Consistent with Calibration Gas Levels
Related Former Checks: OFFON-8
Applicability:
CEM Check
Description:
Specifications:
For an OOC Test with both an Online Zero Reference Value and a Offline Zero Reference Value that are greater than or equal to 0 and both
an Online Upscale Reference Value and a Offline Upscale Reference Value that are greater than 0:
If max(Offline Zero Reference Value, Online Zero Reference Value) is greater than or equal to the min(Offline Upscale Reference
Value, Online Upscale Reference Value),
set OOC Test Calc Result to "INVALID", and return result A.
Results:
Result
A
Response
The reference values are not consistent with the reported calibration gas levels. The
reference values of zero-level gas injections or reference signals must be less than those
of upscale gas injections.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
Conditions:
QA Test Evaluation Report Online Offline Calibration Test
Evaluate OOC Injections Equals true
QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Evaluate OOC Screen Equals true
1
Environmental Protection Agency
Page 369 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
ONOFF-22
Check Name:
Online Offline Calibration Test Injection Sequence Valid
Related Former Checks: OFFON-9
Applicability:
CEM Check
Description:
Specifications:
For an OOC test with valid injection times:
If the later of the OfflineZeroInjectionDate/Hour and the OfflineUpscalelnjectionDate/Hour is not prior to the earlier of the
OnlineZeroInjectionDate/Hour and the OnlineUpscalelnjectionDate/Hour,
return result A.
Otherwise,
If the difference between the earlier of the OfflineZeroInjectionDate/Hour and the OfflineUpscalelnjectionDate/Hour and
the later of the OnlineZeroInjectionDate/Hour and the OnlineUpscalelnjectionDate/Hour is greater than 26 hours,
return result B.
Results:
Result
A
Response
The offline calibration injections were not completed prior to the online calibration
injections for this test.
The injections for this test were not completed within a period of 26 clock hours.
Severity
Critical Error Level 2
B
Critical Error Level 2
Usage:
1
Process/Category:
Conditions:
Process/Category:
Conditions:
QA Test Evaluation Report Online Offline Calibration Test
Evaluate OOC Injections Equals true
QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Evaluate OOC Screen Equals true
1
Environmental Protection Agency
Page 370 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-23
Check Name: Identification of Previously Reported Test or Test Number for Online Offline Calibration Test
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For an OOC test with valid span scale and end time and a non-null ComponentID:
Locate another OOC test for the component where the SpanScale, EndDate, and EndFtour are equal to the SpanScale, EndDate, and
EndFtour of the current TestSummary record.
If found,
return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestTypeCode is equal to "ONOFF", and the
ComponentID, SpanScale, EndDate, and EndHour is equal to ComponentID, SpanScale, EndDate, and EndHour of the
current TestSummary record, and the TestNum is not equal to the TestNumber in the current TestSummary record,
If found,
return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "ONOFF" and the TestNum equal to
the TestNumber in the current TestSummary record.
If found,
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the ComponentID, SpanScale, EndDate, and
EndHour in the QASupp record is not equal to ComponentID, SpanScale, EndDate, and EndHour
of the current TestSummary record,
return result B.
Otherwise,
return result C.
Results:
Result Response
A Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
B Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
C This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Conditions: Duplicate Online Offline Calibration Equals false
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 371 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
ONOFF-24
Check Name:
Online Offline Calibration Test Begin Time Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For an OOC test with valid begin date, begin hour, and injection times:
If BeginDate/BeginHour of the test does not equal the earliest of the OfflineZeroInjectionDate/Hour,
OnlineZeroInjectionDate/Ftour, OfflineUpscalelnjectionDate/Hour and the OnlineUpscalelnjectionDate/Hour,
return result A.
Results:
Result
A
Response
You reported a test BeginDate and BeginHour that is not the same as the date and hour
of the first injection in the test.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
Conditions:
QA Test Evaluation Report Online Offline Calibration Test
Evaluate OOC Injections Equals true
QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Evaluate OOC Screen Equals true
1
Environmental Protection Agency
Page 372 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
ONOFF-25
Check Name:
Online Offline Calibration Test End Time Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For an OOC test with valid end date, end hour, and injection times:
If EndDate/EndHour of the test does not equal the latest of the OfflineZeroInjectionDate/Hour, OnlineZeroInjectionDate/Ftour,
OfflineUpscalelnjectionDate/Hour and the OnlineUpscalelnjectionDate/Hour,
return result A.
Results:
Result
A
Response
You reported a test EndDate and EndFtour that is not the same as the date and hour of
the last injection in the test.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
Conditions:
QA Test Evaluation Report Online Offline Calibration Test
Evaluate OOC Injections Equals true
QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Evaluate OOC Screen Equals true
1
Environmental Protection Agency
Page 373 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-26
Check Name: Upscale Reference Values Consistent with Span
Related Former Checks: OFFON-3
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For an OOC Test with a Test Span Value that is not null and both an Online Upscale Reference Value and an Offline Upscale Reference
Value that are greater than 0:
Calculate OOC Upscale Reference Percent of Span = max(OfflineUpscaleReferenceValue, OnlineUpscaleReferenceValue) / Test
Span Value * 100, and round to result to one decimal place.
Set noncritical to false.
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and the FieldDescription is equal to
"GasPercentOflSpan".
If UpscaleGasLevelCode is equal to "MID", and the ComponentTypeCode of the associated component is not equal to "FLOW",
If OOC Upscale Reference Percent of Span is less than 50.0 or OOC Upscale Reference Percent of Span greater than 60.0,
If OOC Upscale Reference Percent of Span is less than 50.0 - Tolerance in the cross-check record or OOC Upscale
Reference Percent of Span greater than 60.0 + Tolerance in the cross-check record,
return result A.
Otherwise,
set noncritical to true.
If OfflineUpscaleReferenceValue is not equal to the OnlineUpscaleReferenceValue,
Calculate tempval = min(OfflineUpscaleReferenceValue, OnlineUpscaleReferenceValue) / Test Span Value * 100,
and round to result to one decimal place.
If tempval is less than 50.0 - Tolerance in the cross-check record or tempval is greater than 60.0 + Tolerance in the
cross-check record,
set OOC Upscale Reference Percent of Span to tempval, and return result A.
If tempval is less than 50.0 or tempval greater than 60.0,
set OOC Upscale Reference Percent of Span to tempval and noncritical to true.
If noncritical is true,
return result B.
If UpscaleGasLevelCode is equal to "HIGH",
If the ComponentTypeCode of the associated component is equal to "FLOW",
If OOC Upscale Reference Percent of Span is less than 50.0 or OOC Upscale Reference Percent of Span is greater
than 70.0,
If OOC Upscale Reference Percent of Span is less than 50.0 - Tolerance in the cross-check record or OOC
Upscale Reference Percent of Span greater than 70.0 + Tolerance in the cross-check record,
return result C.
Environmental Protection Agency
Page 374 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
set noncritical to true.
If OfflineUpscaleReferenceValue is not equal to OnlineUpscaleReferenceValue,
Calculate tempval = min(OfflineUpscaleReferenceValue, OnlineUpscaleReferenceValue) / Test Span
Value * 100, and round to result to one decimal place.
If tempval is less than 50.0 - Tolerance in the cross-check record or tempval is greater than 70.0 +
Tolerance in the cross-check record,
set OOC Upscale Reference Percent of Span to tempval, and return result C.
If tempval is less than 50.0 or tempval is greater than 70.0,
set OOC Upscale Reference Percent of Span to tempval and noncritical to true.
If noncritical is true,
return result D.
Otherwise,
If OOC Upscale Reference Percent of Span is greater than 100.0,
return result E
If OOC Upscale Reference Percent of Span is less than 80.0,
If OOC Upscale Reference Percent of Span is less than 80.0 - Tolerance in the cross-check record,
return result E.
Otherwise,
set noncritical to true.
If OfflineUpscaleReferenceValue is not equal to OnlineUpscaleReferenceValue,
Calculate tempval = min(OfflineUpscaleReferenceValue, OnlineUpscaleReferenceValue) / Test Span
Value * 100, and round to result to one decimal place.
If tempval is less than 80.0 - Tolerance in the cross-check record or tempval is greater than 100.0,
set OOC Upscale Reference Percent of Span to tempval, and return result E.
If tempval is less than 80.0,
set OOC Upscale Reference Percent of Span to tempval and noncritical to true.
If noncritical is true,
return result F.
Environmental Protection Agency
Page 375 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
B
D
Response
The tag value of at least one Mid level reference signal or calibration gas for [key] is
[percent]%, which does not meet the applicable performance specifications. The
concentration of the mid reference signal or calibration gas must be between 50.0% and
60.0% of the span value. The test is invalid.
The tag value of at least one Mid level reference signal or calibration gas for [key] is
[percent]%, which does not meet the applicable performance specifications. The
concentration of the 'mid' reference signal or calibration gas must be between 50.0% and
60.0% of the span value.
The tag value of at least one High level reference signal for [key] is [percent]%, which
does not meet the performance specifications of 40 CFR Part 75. The value of the high
reference signal for a flow component must be between 50.0% and 70.0% of the span
value. The test is invalid.
The tag value of at least one High level reference signal for [key] is [percent]%, which
does not meet the performance specifications of 40 CFR Part 75. The value of the 'high'
reference signal for a flow component must be between 50.0% and 70.0% of the span
value.
The tag value of at least one High level reference calibration gas for [key] is [percent]%,
which does not meet the applicable performance specifications. The concentration of
the high reference calibration gas must be between 80.0% and 100.0% of the span value.
The test is invalid.
The tag value of at least one High level reference calibration gas for [key] is [percent]%,
which does not meet the applicable performance specifications. The concentration of
the 'high' reference calibration gas must be between 80.0% and 100.0% of the span
value.
Severity
Critical Error Level 2
Non-Critical Error
Critical Error Level 2
Non-Critical Error
Critical Error Level 2
Non-Critical Error
Usage:
1
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Environmental Protection Agency
Page 376 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
ONOFF-27
Check Name:
Zero Reference Values Consistent with Span
Related Former Checks: OFFON-3
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For an OOC Test with a Test Span Value that is not null and both an Online Zero Reference Value and an Offline Zero Reference Value that
are greater than or equal to 0:
Calculate OOC Zero Reference Percent of Span = max(Online Zero Reference Value, Offline Zero Reference Value) / Test Span
Value * 100, and round to result to one decimal place.
If OOC Zero Reference Percent of Span is greater than 20.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and the FieldDescription is
equal to "GasPercentOfSpan".
If OOC Zero Reference Percent of Span is greater than 20.0 + Tolerance in the cross-check record,
return result A.
Otherwise,
return result B.
Results:
Result
A
Response
The tag value of at least one Zero level reference signal or calibration gas for [key] is
[percent]%, which does not meet the performance specifications of 40 CFR Part 75.
The concentration of the zero reference signal or calibration gas must be less than or
equal to 20.0% of the span value. The test is invalid.
Severity
Critical Error Level 2
B
The tag value of at least one zero level reference signal or calibration gas for [key] is
[percent]%, which does not meet the performance specifications of 40 CFR Part 75.
The concentration of the zero reference signal or calibration gas must be less than or
equal to 20.0% of the span value.
Non-Critical Error
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Online Offline Calibration Test
Evaluate OOC Injections Equals true
Environmental Protection Agency
Page 377 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-28
Check Name: Calculate Offline Upscale Gas Injection or Reference Signal Results
Related Former Checks: OFFON-IO
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the OOC Test:
If Test Span Value is null, the Upscale OOC Gas Level Valid is false, the Offline Upscale Reference Value is null or is less than or
equal to zero, or Offline Upscale Measured Values is null,
set OOC Test Calc Result to "INVALID", OOC Offline Upscale Injection Calc Result to null, OOC Offline Upscale
Injection Calc APS Indicator to null, and return result A.
Otherwise,
Calculate diff = abs(Offline Upscale Injection Measured Value - Offline Upscale Injection Reference Value)
Set OOC Offline Upscale Injection Calc APS Indicator to 0.
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Round diff to 1 decimal place.
Set OOC Offline Upscale Injection Calc Result to diff.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
If OOC Offline Upscale Injection Calc Result is greater than 0.5,
set OOC Test Calc Result to "FAILED".
If OfflineUpscaleCalibrationError is greater than or equal to 0 and less than or equal to 0.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between diff and OfflineUpscaleCalibrationError is
less than or equal to the Tolerance in the cross-check record,
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate OOC Offline Upscale Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9)
Round diff to 0 decimal places.
If OOC Offline Upscale Injection Calc Result is greater than 2.5, Test Span Value is less than 200, and diff is less
than or equal to 5,
set OOC Offline Upscale Injection Calc Result to diff.
set OOC Offline Upscale Injection Calc APS Indicator to 1.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
set OOC Test Calc Result to "PASSAPS".
Environmental Protection Agency
Page 378 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
If OOC Offline Upscale Injection Calc Result is greater than 2.5,
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
If OfflineUpscaleAPSIndicator is NOT equal to 1 and OfflineUpscaleCalibrationError is
greater than or equal to 0 and less than or equal to 2.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between OOC Offline Upscale Injection
Calc Result and OfflineUpscaleCalibrationError is less than or equal to the
Tolerance in the cross-check record,
If OOC Test Calc Result is not equal to "PASSAPS",
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "FAILED".
Otherwise,
set OOC Test Calc Result to "FAILED".
If OfflineUpscaleAPSIndicator is equal to 1 and OfflineUpscaleCalibrationError
is greater than or equal to 0 and less than or equal to 5, and Test Span Value is
less than 200,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between diff and
OfflineUpscaleCalibrationError is less than or equal to the Tolerance in
the cross-check record,
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS"
set OOC Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate OOC Offline Upscale Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9).
Round diff to 2 decimal places.
If OOC Offline Upscale Injection Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the
associated component is equal to "DP", and diff is less than or equal to 0.01,
set OOC Offline Upscale Injection Calc Result to 0.
set OOC Offline Upscale Injection Calc APS Indicator to 1.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Offline Upscale Injection Calc Result is greater than 3.0,
Environmental Protection Agency
Page 379 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
If OfflineUpscaleAPSIndicator is NOT equal to 1 and OfflineUpscaleCalibrationError is
greater than or equal to 0 and less than or equal to 3.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between OOC Offline Upscale Injection
Calc Result and OfflineUpscaleCalibrationError is less than or equal to the
Tolerance in the cross-check record,
set OOC Test Calc Result to "FAILED".
If OfflineUpscaleAPSIndicator is equal to 1, the SampleAcquisitionMethodCode
of the associated component is equal to "DP", and
OfflineUpscaleCalibrationError is greater than or equal to 0 and less than or equal
to 0.01,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to
"DifferencelNLOO".
If the absolute value of the difference between diff and
OfflineUpscaleCalibrationError is less than or equal to the Tolerance in
the cross-check record,
If OOC Test Calc Result is not equal to "PASSAPS",
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "FAILED".
Otherwise,
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS
set OOC Test Calc Result to "PASSED".
Results:
Result
A
Response
The software could not evaluate the [test] calculations reported for [key], because of the
errors listed above.
Severity
Informational Message
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Online Offline Calibration Test
Evaluate OOC Injections Equals true
Environmental Protection Agency
Page 380 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-29
Check Name: Calculate Offline Zero Gas Injection or Reference Signal Results
Related Former Checks: OFFON-IO
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the OOC Test:
If Test Span Value is null or Offline Zero Reference Value is null or is less than zero, or Offline Zero Measured Values is null,
set OOC Test Calc Result to "INVALID", OOC Offline Zero Injection Calc Result to null, OOC Offline Zero Injection Calc
APS Indicator to null, and return result A.
Otherwise,
Calculate diff = abs(Offline Zero Injection Measured Value - Offline Zero Injection Reference Value)
Set OOC Offline Zero Injection Calc APS Indicator to 0.
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Round diff to 1 decimal place.
Set OOC Offline Zero Injection Calc Result to diff.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
If OOC Offline Zero Injection Calc Result is greater than 0.5,
set OOC Test Calc Result to "FAILED".
If OfflineZeroCalibrationError is greater than or equal to 0 and less than or equal to 0.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between diff and OfflineZeroCalibrationError is less
than or equal to the Tolerance in the cross-check record,
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate OOC Offline Zero Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9)
Round diff to 0 decimal places.
If OOC Offline Zero Injection Calc Result is greater than 2.5, Test Span Value is less than 200, and diff is less than
or equal to 5,
set OOC Offline Zero Injection Calc Result to diff.
set OOC Offline Zero Injection Calc APS Indicator to 1.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
set OOC Test Calc Result to "PASSAPS".
Otherwise,
Environmental Protection Agency
Page 381 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If OOC Offline Zero Injection Calc Result is greater than 2.5,
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
If OfflineZeroAPSIndicator is NOT equal to 1 and OfflineZeroCalibrationError is greater
than or equal to 0 and less than or equal to 2.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between OOC Offline Zero Injection Calc
Result and OfflineZeroCalibrationError is less than or equal to the Tolerance in
the cross-check record,
If OOC Test Calc Result is not equal to "PASSAPS",
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "FAILED".
Otherwise,
set OOC Test Calc Result to "FAILED".
If OfflineZeroAPSIndicator is equal to 1 and OfflineZeroCalibrationError is
greater than or equal to 0 and less than or equal to 5, and Test Span Value is less
than 200,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between diff and
OfflineZeroCalibrationError is less than or equal to the Tolerance in the
cross-check record,
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS"
set OOC Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate OOC Offline Zero Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9).
Round diff to 2 decimal places.
If OOC Offline Zero Injection Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the associated
component is equal to "DP", and diff is less than or equal to 0.01,
set OOC Offline Zero Injection Calc Result to 0.
set OOC Offline Zero Injection Calc APS Indicator to 1.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Offline Zero Injection Calc Result is greater than 3.0,
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
Environmental Protection Agency
Page 382 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If OfflineZeroAPSIndicator is NOT equal to 1 and OfflineZeroCalibrationError is greater
than or equal to 0 and less than or equal to 3.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between OOC Offline Zero Injection Calc
Result and OfflineZeroCalibrationError is less than or equal to the Tolerance in
the cross-check record,
set OOC Test Calc Result to "FAILED".
If OfflineZeroAPSIndicator is equal to 1, the SampleAcquisitionMethodCode of
the associated component is equal to "DP", and OfflineZeroCalibrationError is
greater than or equal to 0 and less than or equal to 0.01,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to
"DifferencelNLQO".
If the absolute value of the difference between diff and
OfflineZeroCalibrationError is less than or equal to the Tolerance in the
cross-check record,
If OOC Test Calc Result is not equal to "PASSAPS",
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "FAILED".
Otherwise,
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS
set OOC Test Calc Result to "PASSED".
Results:
Result
A
Response
The software could not evaluate the [test] calculations reported for [key], because of the
errors listed above.
Severity
Informational Message
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Online Offline Calibration Test
Evaluate OOC Injections Equals true
Environmental Protection Agency
Page 383 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-30
Check Name: Calculate Online Upscale Gas Injection or Reference Signal Results
Related Former Checks: OFFON-IO
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the OOC Test:
If Test Span Value is null, or Upscale OOC Gas Level Valid is false, or Online Upscale Reference Value is null or is less than or
equal to zero, or Online Upscale Measured Values is null,
set OOC Test Calc Result to "INVALID", OOC Online Upscale Injection Calc Result to null, OOC Online Upscale
Injection Calc APS Indicator to null, and return result A.
Otherwise,
Calculate diff = abs(Online Upscale Injection Measured Value - Online Upscale Injection Reference Value)
Set OOC Online Upscale Injection Calc APS Indicator to 0.
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Round diff to 1 decimal place.
Set OOC Online Upscale Injection Calc Result to diff.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
If OOC Online Upscale Injection Calc Result is greater than 0.5,
set OOC Test Calc Result to "FAILED".
If OnlineUpscaleCalibrationError is greater than or equal to 0 and less than or equal to 0.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between diff and OnlineUpscaleCalibrationError is
less than or equal to the Tolerance in the cross-check record,
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate OOC Online Upscale Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9)
Round diff to 0 decimal places.
If OOC Online Upscale Injection Calc Result is greater than 2.5, Test Span Value is less than 200, and diff is less
than or equal to 5,
set OOC Online Upscale Injection Calc Result to diff.
set OOC Online Upscale Injection Calc APS Indicator to 1.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
set OOC Test Calc Result to "PASSAPS".
Otherwise,
Environmental Protection Agency Page 384 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If OOC Online Upscale Injection Calc Result is greater than 2.5,
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
If OnlineUpscaleAPSIndicator is NOT equal to 1 and OnlineUpscaleCalibrationError is
greater than or equal to 0 and less than or equal to 2.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between OOC Online Upscale Injection
Calc Result and OnlineUpscaleCalibrationError is less than or equal to the
Tolerance in the cross-check record,
If OOC Test Calc Result is not equal to "PASSAPS",
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "FAILED".
Otherwise,
set OOC Test Calc Result to "FAILED".
If OnlineUpscaleAPSIndicator is equal to 1 and OnlineUpscaleCalibrationError is
greater than or equal to 0 and less than or equal to 5, and Test Span Value is less
than 200,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between diff and
OnlineUpscaleCalibrationError is less than or equal to the Tolerance in
the cross-check record,
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS"
set OOC Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate OOC Online Upscale Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9).
Round diff to 2 decimal places.
If OOC Online Upscale Injection Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the
associated component is equal to "DP", and diff is less than or equal to 0.01,
set OOC Online Upscale Injection Calc Result to 0.
set OOC Online Upscale Injection Calc APS Indicator to 1.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Online Upscale Injection Calc Result is greater than 3.0,
Environmental Protection Agency
Page 385 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
If OnlineUpscaleAPSIndicator is NOT equal to 1 and OnlineUpscaleCalibrationError is
greater than or equal to 0 and less than or equal to 3.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between OOC Online Upscale Injection
Calc Result and OnlineUpscaleCalibrationError is less than or equal to the
Tolerance in the cross-check record,
set OOC Test Calc Result to "FAILED".
If OnlineUpscaleAPSIndicator is equal to 1, the SampleAcquisitionMethodCode
of the associated component is equal to "DP", and OnlineUpscaleCalibrationError
is greater than or equal to 0 and less than or equal to 0.01,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to
"DifferencelNLOO".
If the absolute value of the difference between diff and
OnlineUpscaleCalibrationError is less than or equal to the Tolerance in
the cross-check record,
If OOC Test Calc Result is not equal to "PASSAPS",
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "FAILED".
Otherwise,
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS
set OOC Test Calc Result to "PASSED".
Results:
Result
A
Response
The software could not evaluate the [test] calculations reported for [key], because of the
errors listed above.
Severity
Informational Message
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Online Offline Calibration Test
Evaluate OOC Injections Equals true
Environmental Protection Agency
Page 386 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-31
Check Name: Calculate Online Zero Gas Injection or Reference Signal Results
Related Former Checks: OFFON-IO
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the OOC Test:
If Test Span Value is null or Online Zero Reference Value is null or is less than zero, or Online Zero Measured Values is null,
set OOC Test Calc Result to "INVALID", OOC Online Zero Injection Calc Result to null, OOC Online Zero Injection Calc
APS Indicator to null, and return result A.
Otherwise,
Calculate diff = abs(Online Zero Injection Measured Value - Online Zero Injection Reference Value)
Set OOC Online Zero Injection Calc APS Indicator to 0.
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Round diff to 1 decimal place.
Set OOC Online Zero Injection Calc Result to diff.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
If OOC Online Zero Injection Calc Result is greater than 0.5,
set OOC Test Calc Result to "FAILED".
If OnlineZeroCalibrationError is greater than or equal to 0 and less than or equal to 0.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between diff and OnlineZeroCalibrationError is less
than or equal to the Tolerance in the cross-check record,
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate OOC Online Zero Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9)
Round diff to 0 decimal places.
If OOC Online Zero Injection Calc Result is greater than 2.5, Test Span Value is less than 200, and diff is less than
or equal to 5,
set OOC Online Zero Injection Calc Result to diff.
set OOC Online Zero Injection Calc APS Indicator to 1.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
set OOC Test Calc Result to "PASSAPS".
Otherwise,
Environmental Protection Agency
Page 387 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If OOC Online Zero Injection Calc Result is greater than 2.5,
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
If OnlineZeroAPSIndicator is NOT equal to 1 and OnlineZeroCalibrationError is greater
than or equal to 0 and less than or equal to 2.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between OOC Online Zero Injection Calc
Result and OnlineZeroCalibrationError is less than or equal to the Tolerance in
the cross-check record,
If OOC Test Calc Result is not equal to "PASSAPS",
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "FAILED".
Otherwise,
set OOC Test Calc Result to "FAILED".
If OnlineZeroAPSIndicator is equal to 1 and OnlineZeroCalibrationError is
greater than or equal to 0 and less than or equal to 5, and Test Span Value is less
than 200,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between diff and
OnlineZeroCalibrationError is less than or equal to the Tolerance in the
cross-check record,
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS"
set OOC Test Calc Result to "PASSED".
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate OOC Online Zero Injection Calc Result = min(round(diff / Test Span Value * 100, 1), 9999.9).
Round diff to 2 decimal places.
If OOC Online Zero Injection Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the associated
component is equal to "DP", and diff is less than or equal to 0.01,
set OOC Online Zero Injection Calc Result to 0.
set OOC Online Zero Injection Calc APS Indicator to 1.
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Online Upscale Injection Calc Result is greater than 3.0,
If OOC Test Calc Result is not equal to "INVALID" or "FAILED",
Environmental Protection Agency
Page 388 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If OnlineZeroAPSIndicator is NOT equal to 1 and OnlineZeroCalibrationError is greater
than or equal to 0 and less than or equal to 3.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal
to "7DAY" and the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between OOC Online Zero Injection Calc
Result and OnlineZeroCalibrationError is less than or equal to the Tolerance in
the cross-check record,
set OOC Test Calc Result to "FAILED".
If OnlineZeroAPSIndicator is equal to 1, the SampleAcquisitionMethodCode of
the associated component is equal to "DP", and OnlineZeroCalibrationError is
greater than or equal to 0 and less than or equal to 0.01,
Locate the Test Tolerance cross-check record where the TestTypeCode is
equal to "7DAY" and the FieldDescription is equal to
"DifferencelNLQO".
If the absolute value of the difference between diff and
OnlineZeroCalibrationError is less than or equal to the Tolerance in the
cross-check record,
If OOC Test Calc Result is not equal to "PASSAPS",
set OOC Test Calc Result to "PASSED".
Otherwise,
set OOC Test Calc Result to "FAILED".
Otherwise,
set OOC Test Calc Result to "PASSAPS".
Otherwise,
If OOC Test Calc Result is not equal to "INVALID", "FAILED", or "PASSAPS
set OOC Test Calc Result to "PASSED".
Results:
Result
A
Response
The software could not evaluate the [test] calculations reported for [key], because of the
errors listed above.
Severity
Informational Message
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Online Offline Calibration Test
Evaluate OOC Injections Equals true
Environmental Protection Agency
Page 389 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
ONOFF-32
Check Name:
Reported Offline Upscale Injection Results Consistent with Recalculated Values
Related Former Checks: OFFON-13
Applicability:
CEM Check
Description:
Specifications:
For the OOC test:
If the OfflineUpscaleAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "FLOW", and the
SampleAcquisitionMethodCode of the associated component is not equal to "DP",
return result A.
If the OfflineUpscaleAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "S02" or
"NOX", and the Test Span Value is greater than or equal to 200,
return result B.
If the OfflineUpscaleAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "C02" or "02",
return result C.
Otherwise,
If OOC Offline Upscale Injection Calc Result is not null,
If the OfflineUpscaleAPSIndicator in the current record is not equal to 1 and the OOC Offline Upscale Injection
Calc APS Indicator is equal to 1,
return result D.
If the OfflineUpscaleCalibrationError is greater than or equal to 0,
If the ComponentTypeCode of the associated component is equal to "C02" or "02"
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between the OOC Offline Upscale Injection Calc Result and
the OfflineUpscaleCalibrationError is greater than the Tolerance in the cross-check record,
return result E.
If the OOC Offline Upscale Injection Calc APS Indicator is equal to 1,
If the ComponentTypeCode of the associated component is equal to "FLOW",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencelNLQO".
If the absolute value of the difference between the OOC Offline Upscale Injection Calc
Result and the OfflineUpscaleCalibrationError is greater than the Tolerance in the
cross-check record,
return result E.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between the OOC Offline Upscale Injection Calc
Result and the OfflineUpscaleCalibrationError is greater than the Tolerance in the
Environmental Protection Agency
Page 390 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
cross-check record,
return result E.
else if the OfflineUpscaleAPSIndicator is equal to 0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between the OOC Offline Upscale Injection Calc Result and
the OfflineUpscaleCalibrationError is greater than the Tolerance in the cross-check record,
return result F.
Results:
Result
A
B
C
D
E
F
Usage:
1
Response
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance criteria for non-differential pressure flow monitors.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for S02 and NOX components when the
instrument span is greater than or equal to 200.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for C02 and 02 components.
You did not report a value of "1" in the [level] APS Indicator for [key], although EPA
applied the alternative performance specification to determine that the injection passed
the applicable performance specification.
The absolute difference reported as the [level] Calibration Error for [key] is inconsistent
with the recalculated absolute difference for the gas injection or reference signal.
The [level] Calibration Error reported for [key] is inconsistent with the recalculated
calibration error for the gas injection or reference signal.
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 391 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
ONOFF-33
Check Name:
Reported Offline Zero Injection Results Consistent with Recalculated Values
Related Former Checks: OFFON-13
Applicability:
CEM Check
Description:
Specifications:
For the OOC test:
If the OfflineZeroAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "FLOW", and the
SampleAcquisitionMethodCode of the associated component is not equal to "DP",
return result A.
If the OfflineZeroAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
and the Test Span Value is greater than or equal to 200,
return result B.
If the OfflineZeroAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "C02" or "02",
return result C.
Otherwise,
If OOC Offline Zero Injection Calc Result is not null,
If the OfflineZeroAPSIndicator in the current record is not equal to 1 and the OOC Offline Zero Injection Calc APS
Indicator is equal to 1,
return result D.
If the OfflineZeroCalibrationError is greater than or equal to 0,
If the ComponentTypeCode of the associated component is equal to "C02" or "02"
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between the OOC Offline Zero Injection Calc Result and the
OfflineZeroCalibrationError is greater than the Tolerance in the cross-check record,
return result E.
If the OOC Offline Zero Injection Calc APS Indicator is equal to 1,
If the ComponentTypeCode of the associated component is equal to "FLOW",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencelNLQO".
If the absolute value of the difference between the OOC Offline Zero Injection Calc
Result and the OfflineZeroCalibrationError is greater than the Tolerance in the
cross-check record,
return result E.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between the OOC Offline Zero Injection Calc
Result and the OfflineZeroCalibrationError is greater than the Tolerance in the
Environmental Protection Agency
Page 392 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
cross-check record,
return result E.
else if OfflineZeroAPSIndicator is equal to 0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between the OOC Offline Zero Injection Calc Result and the
OfflineZeroCalibrationError is greater than the Tolerance in the cross-check record,
return result F.
Results:
Result
A
B
C
D
E
F
Usage:
1
Response
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance criteria for non-differential pressure flow monitors.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for S02 and NOX components when the
instrument span is greater than or equal to 200.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for C02 and 02 components.
You did not report a value of "1" in the [level] APS Indicator for [key], although EPA
applied the alternative performance specification to determine that the injection passed
the applicable performance specification.
The absolute difference reported as the [level] Calibration Error for [key] is inconsistent
with the recalculated absolute difference for the gas injection or reference signal.
The [level] Calibration Error reported for [key] is inconsistent with the recalculated
calibration error for the gas injection or reference signal.
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 393 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
ONOFF-34
Check Name:
Reported Online Upscale Injection Results Consistent with Recalculated Values
Related Former Checks: OFFON-13
Applicability:
CEM Check
Description:
Specifications:
For the OOC test:
If the OnlineUpscaleAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "FLOW", and the
SampleAcquisitionMethodCode of the associated component is not equal to "DP",
return result A.
If the OnlineUpscaleAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
and the Test Span Value is greater than or equal to 200,
return result B.
If the OnlineUpscaleAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "C02" or "02",
return result C.
Otherwise,
If OOC Online Upscale Injection Calc Result is not null,
If the OnlineUpscaleAPSIndicator in the current record is not equal to 1 and the OOC Online Upscale Injection
Calc APS Indicator is equal to 1,
return result D.
If the OnlineUpscaleCalibrationError is greater than or equal to 0,
If the ComponentTypeCode of the associated component is equal to "C02" or "02"
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between the OOC Online Upscale Injection Calc Result and
the OnlineUpscaleCalibrationError is greater than the Tolerance in the cross-check record,
return result E.
If the OOC Online Upscale Injection Calc APS Indicator is equal to 1,
If the ComponentTypeCode of the associated component is equal to "FLOW",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencelNLQO".
If the absolute value of the difference between the OOC Online Upscale Injection Calc
Result and the OnlineUpscaleCalibrationError is greater than the Tolerance in the
cross-check record,
return result E.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between the OOC Online Upscale Injection Calc
Result and the OnlineUpscaleCalibrationError is greater than the Tolerance in the
Environmental Protection Agency
Page 394 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
cross-check record,
return result E.
else if OnlineUpscaleAPSIndicator is equal to 0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between the OOC Online Upscale Injection Calc Result and
the OnlineUpscaleCalibrationError is greater than the Tolerance in the cross-check record,
return result F.
Results:
Result
A
B
C
D
E
F
Usage:
1
Response
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance criteria for non-differential pressure flow monitors.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for S02 and NOX components when the
instrument span is greater than or equal to 200.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for C02 and 02 components.
You did not report a value of "1" in the [level] APS Indicator for [key], although EPA
applied the alternative performance specification to determine that the injection passed
the applicable performance specification.
The absolute difference reported as the [level] Calibration Error for [key] is inconsistent
with the recalculated absolute difference for the gas injection or reference signal.
The [level] Calibration Error reported for [key] is inconsistent with the recalculated
calibration error for the gas injection or reference signal.
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 395 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
ONOFF-35
Check Name:
Reported Online Zero Injection Results Consistent with Recalculated Values
Related Former Checks: OFFON-13
Applicability:
CEM Check
Description:
Specifications:
For the OOC test:
If the OnlineZeroAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "FLOW", and the
SampleAcquisitionMethodCode of the associated component is not equal to "DP",
return result A.
If the OnlineZeroAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
and the Test Span Value is greater than or equal to 200,
return result B.
If the OnlineZeroAPSIndicator is equal to 1, the ComponentTypeCode of the associated component is equal to "C02" or "02",
return result C.
Otherwise,
If OOC Online Zero Injection Calc Result is not null,
If the OnlineZeroAPSIndicator in the current record is not equal to 1 and the OOC Online Zero Injection Calc APS
Indicator is equal to 1,
return result D.
If the OnlineZeroCalibrationError is greater than or equal to 0,
If the ComponentTypeCode of the associated component is equal to "C02" or "02"
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "DifferencePCT".
If the absolute value of the difference between the OOC Online Zero Injection Calc Result and the
OnlineZeroCalibrationError is greater than the Tolerance in the cross-check record,
return result E.
If the OOC Online Zero Injection Calc APS Indicator is equal to 1,
If the ComponentTypeCode of the associated component is equal to "FLOW",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencelNLQO".
If the absolute value of the difference between the OOC Online Zero Injection Calc Result
and the OnlineZeroCalibrationError is greater than the Tolerance in the cross-check
record,
return result E.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"7DAY" and the FieldDescription is equal to "DifferencePPM".
If the absolute value of the difference between the OOC Online Zero Injection Calc Result
and the OnlineZeroCalibrationError is greater than the Tolerance in the cross-check
Environmental Protection Agency
Page 396 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
record,
return result E.
else if OnlineZeroAPSIndicator is equal to 0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "7DAY" and
the FieldDescription is equal to "CalibrationError".
If the absolute value of the difference between the OOC Online Zero Injection Calc Result and the
OnlineZeroCalibrationError is greater than the Tolerance in the cross-check record,
return result F.
Results:
Result
A
B
C
D
E
F
Usage:
1
Response
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance criteria for non-differential pressure flow monitors.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for S02 and NOX components when the
instrument span is greater than or equal to 200.
You reported a value of "1" as the [level] APS Indicator for [key], but you must use the
standard performance specification criteria for C02 and 02 components.
You did not report a value of "1" in the [level] APS Indicator for [key], although EPA
applied the alternative performance specification to determine that the injection passed
the applicable performance specification.
The absolute difference reported as the [level] Calibration Error for [key] is inconsistent
with the recalculated absolute difference for the gas injection or reference signal.
The [level] Calibration Error reported for [key] is inconsistent with the recalculated
calibration error for the gas injection or reference signal.
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Conditions: Evaluate OOC Injections Equals true
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 397 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-36
Check Name: Determination of Overall Online Offline Calibration Test Result
Related Former Checks: OFFON-14
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OOC Test Calc Result is equal to "INVALID",
set OOC Test Calc Result to null.
If TestResultCode is null,
return result A.
If TestResultCode is not equal to "PASSED"or "PASSAPS",
Locate the TestResultCode is not in the Test Result Code Lookup table,
If not found,
return result B.
If found,
return result C.
If OOC Test Calc Result is equal to "FAILED",
return result D.
In the QA Evaluation Process, the OOC Test Calc Result and Test Span Value will be stored as calculated values in the Test
Summary record for the test, the calculated injection values will be stored in the OnlineOfflineCalibration record for the test, and
(for tests that have not yet been submitted or have been approved for resubmission) the appropriate values will be stored in the QA
Supp Data record for the test.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B You reported the value [value], which is not in the list of valid values, in the field Fatal
[fieldname] for [key],
C You reported the value [value], which is not in the list of valid values for this test type, Critical Error Level 1
in the field [fieldname] for [key].
D You have reported an online offline calibration demonstration, but the recalculated Critical Error Level 1
results indicate a failing test.
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Environmental Protection Agency
Page 398 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For the OOC test:
ONOFF-40
Initialize Online Offline Calibration Test Variables
OFFON-1
CEM Check
Set OOC Injection Times Valid to true.
Set OOC Test Calc Result to null.
Results:
Result
Usage:
1
1
Response
Process/Category:
Process/Category:
Severity
QA Test Evaluation Report Online Offline Calibration Test
QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Environmental Protection Agency
Page 399 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For the OOC test:
ONOFF-41
Online Zero APS Indicator Valid
CEM Check
If OnlineZeroAPSIndicator is null,
return result A.
Results:
Result
A
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
Severity
Critical Error Level 1
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Environmental Protection Agency
Page 400 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For the OOC test:
ONOFF-42
Offline Zero APS Indicator Valid
CEM Check
If OfflineZeroAPSIndicator is null,
return result A.
Results:
Result
A
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
Severity
Critical Error Level 1
Process/Category: QA Test Evaluation Report Online Offline Calibration Test
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Environmental Protection Agency
Page 401 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: ONOFF-43
Check Name: Online Upscale APS Indicator Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OnlineUpscaleAPSIndicator is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Environmental Protection Agency
Page 402 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: ONOFF-44
Check Name: Offline Upscale APS Indicator Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test:
If OfflineUpscaleAPSIndicator is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Online Offline Calibration Test
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Environmental Protection Agency
Page 403 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the OOC test:
If the ComponentID is null,
set Evaluate OOC Screen to false, and return result A.
If TestResultCode is equal to "ABORTED",
set Evaluate OOC Screen to false.
Otherwise,
set Evaluate OOC Screen to true.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
ONOFF-37
Online Offline Calibration Test Component ID Valid
CEM Check
Environmental Protection Agency
Page 404 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-38
Check Name: Duplicate Online Offline Calibration Test
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the OOC test with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode is equal to "ONOFF" and the TestNumber is equal to
the TestNumber in the current record.
If found,
return result A.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "ONOFF" and the
TestNumber is equal to the TestNumber in the current record.
If found,
return result B.
Results:
Result Response
A Another [testtype] with this test number already exists. You must assign a different test
number.
B You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Severity
Fatal
Fatal
Environmental Protection Agency
Page 405 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
ONOFF-39
Check Name:
Online Offline Calibration Test Result Code Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Test Result Code (Lookup Table)
Specifications:
For the OOC test:
If TestResultCode is null,
return result A.
If TestResultCode is not equal to "PASSED" or "PASSAPS",
Locate the TestResultCode is not in the Test Result Code Lookup table,
If not found,
return result B.
If found,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Severity
Critical Error Level 1
Fatal
C
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Online Offline Calibration Test Evaluation
Environmental Protection Agency
Page 406 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: ONOFF-45
Check Name: Calculate Online Offline Calibration
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the injection:
Set Online Zero Calc Result, Online Zero Calc APS, Online Upscale Calc Result, and Online Upscale Calc APS to null.
Set Offline Zero Calc Result, Offline Zero Calc APS, Offline Upscale Calc Result, and Offline Upscale Calc APS to null.
If the UpscaleGasLevelCode is not equal to "MID" or "HIGH", or the OnlineUpscaleReferenceValue is null, or the
OnlineUpscaleMeasuredValue is null, or the OnlineZeroReferenceValue is null, or the OnlineZeroMeasuredValue is null, or the
ZeroReferenceValue is greater than or equal to UpscaleReferenceValue,
return result A.
If the OfflineUpscaleReferenceValue is null, or the OfflineUpscaleMeasuredValue is null, or the OfflineZeroReferenceValue is null,
or the OfflineZeroMeasuredValue is null,
return result A.
If max(OnlineZeroReferenceValue, OfflineZeroReferenceValue) is greater than or equal to min(OnlineUpscaleReferenceValue,
OfflineUpscaleReferenceValue,
return result A.
If the associated ComponentTypeCode is equal to "FLOW" and the SpanScaleCode is not null; or the ComponentTypeCode is not
equal to "FLOW" and the SpanScaleCode is not equal to "H" or "L",
return result A.
Otherwise,
Locate the System Component records for the associated component with the earliest BeginDate.
If the BeginDate in the retrieved record is not null, the BeginHour in the retrieved record is between 0 and 23, and the
BeginDate and BeginHour is later than the BeginDate and BeginHour of the test.
Locate a Span Record for the location where the ComponentTypeCode equal to the ComponentTypeCode of the
associated component, the SpanScaleCode is equal to the SpanScaleCode in the test, the Span Value is greater than
0, the BeginDate and BeginHour is on or before the BeginDate and BeginHour of the retrieved record, and the
EndDate is null or the EndDate and EndHour is after the BeginDate and BeginHour of the retrieved record.
Otherwise,
Locate a Span Record for the location where the ComponentTypeCode equal to the ComponentTypeCode of the
associated component, the SpanScaleCode is equal to the SpanScaleCode in the test, the Span Value is greater than
0, the BeginDate and BeginHour is on or before the BeginDate and BeginHour of the test, and the EndDate is null
or the EndDate and EndHour is after the EndDate and EndHour of the test.
If the Span record is not found,
return result B.
Otherwise,
Calculate diff = abs(OnlineZeroInjectionMeasuredValue - OnlineZeroInjectionReferenceValue)
Set Online Zero Calc APS to 0.
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Environmental Protection Agency
Page 407 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Round diffto 1 decimal place.
Set Online Zero Calc Result to diff
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate Online Zero Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 0 decimal places.
If Online Zero Calc Result is greater than 2.5, SpanValue is less than 200, and diff is less than or equal to
5,
set Online Zero Calc Result to diff.
set Online Zero Calc APS to 1.
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate Online Zero Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 2 decimal places.
If Online Zero Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the associated
component is equal to "DP", and diff is less than or equal to 0.01,
set Online Zero Calc Result to 0.
set Online Zero Calc APS to 1.
Calculate diff = abs(OnlineUpscaleInjectionMeasuredValue - OnlineUpscalelnjectionReferenceValue)
Set Online Upscale Calc APS to 0.
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Round diffto 1 decimal place.
Set Online Upscale Calc Result to diff.
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate Online Upscale Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 0 decimal places.
If Online Upscale Calc Result is greater than 2.5, SpanValue is less than 200, and diff is less than or equal
to 5,
set Online Upscale Calc Result to diff.
set Online Upscale Calc APS to 1.
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate Online Upscale Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 2 decimal places.
If Online Upscale Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the associated
component is equal to "DP", and diff is less than or equal to 0.01,
set Online Upscale Calc Result to 0.
set Online Upscale Calc APS to 1.
Calculate diff = abs(OfflineZeroInjectionMeasuredValue - OfflineZeroInjectionReferenceValue)
Set Offline Zero Calc APS to 0.
Environmental Protection Agency
Page 408 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Round diffto 1 decimal place.
Set Offline Zero Calc Result to diff
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate Offline Zero Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 0 decimal places.
If Offline Zero Calc Result is greater than 2.5, SpanValue is less than 200, and diff is less than or equal to
5,
set Offline Zero Calc Result to diff.
set Offline Zero Calc APS to 1.
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate Offline Zero Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 2 decimal places.
If Offline Zero Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the associated
component is equal to "DP", and diff is less than or equal to 0.01,
set Offline Zero Calc Result to 0.
set Offline Zero Calc APS to 1.
Calculate diff = abs(OfflineUpscaleInjectionMeasuredValue - OfflineUpscalelnjectionReferenceValue)
Set Offline Upscale Calc APS to 0.
If the ComponentTypeCode of the associated component is equal to "C02" or "02",
Round diffto 1 decimal place.
Set Offline Upscale Calc Result to diff.
If the ComponentTypeCode of the associated component is equal to "S02" or "NOX",
Calculate Offline Upscale Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 0 decimal places.
If Offline Upscale Calc Result is greater than 2.5, SpanValue is less than 200, and diff is less than or equal
to 5,
set Offline Upscale Calc Result to diff.
set Offline Upscale Calc APS to 1.
If the ComponentTypeCode of the associated component is equal to "FLOW",
Calculate Offline Upscale Calc Result = min(round(diff / SpanValue * 100, 1), 9999.9).
Round diff to 2 decimal places.
If Offline Upscale Calc Result is greater than 3.0, the SampleAcquisitionMethodCode of the associated
component is equal to "DP", and diff is less than or equal to 0.01,
set Offline Upscale Calc Result to 0.
set Offline Upscale Calc APS to 1.
Environmental Protection Agency
Page 409 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result Response Severity
A The values in this record could not be calculated because of invalid data. Critical Error Level 1
B You have not reported a valid monitoring plan span record that was active during the Critical Error Level 1
test.
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation QA and Certification Data Entry Screen Evaluation
Environmental Protection Agency
Page 410 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Protocol Gas
Environmental Protection Agency
Page 411 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: PGVP-1
Check Name: Gas Type Code Valid
Related Former Checks:
Applicability: CEM Check
Description:
Validation Tables:
[Protocol Gas Parameter to Type] (Cross Check Table)
Gas Type Code (Lookup Table)
Specifications:
For a Protocal Gas record with a non-null Protocol Gas Parameter.
If GasTypeCode is null,
return result A.
Else if GasTypeCode is equal to "ZERO",
If TestTypeCode does not equal "RATA", "APPE" or "UNITDEF",
return result F.
If result is null,
If the GasTypeCode is not in the GasTypeCode lookup table.
return result B.
else if the GasTypeCode == "ZAM"
return result B.
else if the Protocol Gas Parameter is equal to "S02", "NOX", "C02", or "02",
Locate Protocol Gas Parameter To Type Cross Reference records where ProtocolGasParameter is equal
to Protocol Gas Parameter, and GasTypeList contains the GasTypeCode in the current Protocol Gas
record.
If not found,
return result D.
else
add Protocol Gas Parameter + GasLevelCode to the Protocol Gases list.
else if the Protocol Gas Parameter contains "7E" but not "3A",
Locate Protocol Gas Parameter To Type Cross Reference records where ProtocolGasParameter is equal
to "NOX", and GasTypeList contains the GasTypeCode in the current Protocol Gas record.
If not found,
return result D.
else
add "NOX" + GasLevelCode to the Protocol Gases list.
else if the Protocol Gas Parameter contains both "7E" and "3A",
Locate Protocol Gas Parameter To Type Cross Reference records where ProtocolGasParameter is equal
to "NOX" or "DIL", and GasTypeList contains the GasTypeCode in the current Protocol Gas record.
If not found,
return result D.
else
Environmental Protection Agency
Page 412 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
For each located record,
add Protocol Gas Parameter To Type Cross Protocol GasParameter +
GasLevelCode to the Protocol Gases list.
else if the Protocol Gas Parameter contains "3A",
Locate Protocol Gas Parameter To Type Cross Reference records where ProtocolGasParameter is equal
to "DIL", and GasTypeList contains the GasTypeCode in the current Protocol Gas record.
If not found,
return result D.
else
add "DIL" + GasLevelCode to the Protocol Gases list.
If result is null, and the GasTypeCode :
return result C.
"APPVD"
Results:
Result
A
B
D
E
F
Usage:
1
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported "APPVD" as the [fieldname] for [key]. This code indicates that you
received approval from EPA for a new type of Protocol Gas. If you have not received
approval from EPA, please contact ECMPS support. If you have already received
approval, you should log in to the ECMPS host, so that the ECMPS program can obtain
the necessary information to override this error.
You reported an GasTypeCode that is not appropriate for the component type or the test
reference method for [key].
You reported an [fieldname] of "AIR" for [key], which indicates the use of purified air
material, but this material can only be used for a high-level calibration.
You reported a GasTypeCode of "ZERO" which is only appropriate for the low level
calibration of a reference analyzer used in Reference Method 3A, 6C, or 7E testing.
Process/Category:
2 Process/Category:
3 Process/Category:
4 Process/Category:
QA Test Evaluation Report — Appendix E Protocol Gas Data
QA Test Evaluation Report — Linearity Protocol Gas Data
QA Test Evaluation Report — RATA Protocol Gas Data
QA Test Evaluation Report — Unit Default Protocol Gas Data
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 413 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: PGVP-2
Check Name: Cylinder ID Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a Protocal Gas record with a non-null Protocol Gas Parameter.
If CylinderlD is null,
If GasTypeCode is not null and is not equal to "AIR" or "ZERO",
return result A.
Otherwise,
If the GasTypeCode is equal to "AIR" or "ZERO",
return result B.
Results:
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Protocol Gas Data
2 Process/Category: QA Test Evaluation Report — Linearity Protocol Gas Data
3 Process/Category: QA Test Evaluation Report — RATA Protocol Gas Data
4 Process/Category: QA Test Evaluation Report — Unit Default Protocol Gas Data
1 Process/Category: QA and Certification Data Entry Screen Evaluation Protocol Gas Evaluation
Result Response
A You did not provide [fieldname], which is required for [key],
B You indicated that you used purified air material or zero air material instead of a
cylinder gas, but you reported a Cylinderldentifier.
Environmental Protection Agency
Page 414 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
PGVP-3
Check Name:
Vendor ID Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Protocol Gas Vendor (Lookup Table)
Vw System Parameter (Lookup Table)
Protocol Gas Vendor (Lookup Table)
Vw System Parameter (Lookup Table)
Specifications:
For a Protocal Gas record with a non-null Protocol Gas Parameter.
If VendorlD is null,
If GasTypeCode is not null and is not equal to "AIR", "SRM", "NTRM", "GMIS", "RGM", "PRM", or "ZERO",
return result A.
else if the VendorlD is not in the Protocol Gas Vendor lookup table,
return result B.
else if the GasTypeCode is equal to "AIR", "SRM", "NTRM", "GMIS", "RGM", "PRM", or "ZERO",
return result C.
else if the DeactivationDate in the Protocol Gas Vendor record is not null and the BeginDate of the current test is on or after the
DeactivationDate + 3 years,
return result E.
else if the VendorlD is equal to "NONPGVP",
Locate System Parameter lookup table record where SysParamName = 'PGVP_AETB_RULE_DATE'.
If the BeginDate of the current test is on or after the System Parameter. Param Value 1 + 60 days + 8 years,
return result D.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported a [fieldname] for [key], but this value should only be reported for an EPA
Protocol Gas Type. The cylinder gas type of [gastype] indicates the use of a non-EPA
Protocol Gas Type.
You reported a Vendorldentifier of "NONPGVP" for [key], indicating the use of a EPA
Protocol Gas Type purchased from a vendor not participating in the Protocol Gas
Vendor Program (PGVP). You cannot use a gas purchased from a non-participating
vendor that was acquired more than 60 days after the PGVP Effective Date.
You have reported a Vendorldentifier for [key] of a vendor who is no longer
participating in the Protocol Gas Verification Program.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
D
Critical Error Level 2
E
Critical Error Level 2
Environmental Protection Agency
Page 415 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Usage:
1
Process/Category:
QA
2
Process/Category:
QA
3
Process/Category:
QA
4
Process/Category:
QA
1
Process/Category:
QA
Environmental Protection Agency
Page 416 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: PGVP-4
Check Name: Cylinder Expiration Date Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a Protocal Gas record with a non-null Protocol Gas Parameter.
If ExpirationDate is null,
If the GasTypeCode is not null and not equal to "AIR" or "ZERO",
return result A.
Otherwise,
If the GasTypeCode is equal to "AIR" or "ZERO",
return result B.
else if the ExpirationDate is prior to the End Date of the current test,
return result C.
else if the ExpirationDate is more than 8 years after the Begin Date of the current test,
return result D.
Results:
Result
A
B
C
D
Usage:
1
2
3
4
1
Response
You did not provide [fieldname], which is required for [key].
You reported a [fieldname] for [key], but this value should only be reported for an EPA
Protocol Gas Type. The cylinder gas type of [gastype] indicates the use of a non-EPA
Protocol Gas Type.
You reported an ExpirationDate for the cylinder that is prior to the date of the test for
[key].
You reported an ExpirationDate for the cylinder that is more than eight years after the
date of the test for [key]. Gas cylinders expire in less than eight years.
Process/Category: QA Test Evaluation Report — Appendix E Protocol Gas Data
Process/Category: QA Test Evaluation Report — Linearity Protocol Gas Data
Process/Category: QA Test Evaluation Report — RATA Protocol Gas Data
Process/Category: QA Test Evaluation Report — Unit Default Protocol Gas Data
Process/Category: QA and Certification Data Entry Screen Evaluation Protocol Gas Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
Critical Error Level 2
Environmental Protection Agency
Page 417 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: PGVP-5
Check Name: Gas Level Code Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a Protocal Gas record with a non-null Protocol Gas Parameter.
If GasLevelCode is null,
return result A.
else if GasLevelCode is not equal to "HIGH", "MID", or "LOW",
return result B.
else if the GasTypeCode == "AIR" and the GasLevelCode is not equal to "HIGH",
return result C.
else if GasTypeCode equals "ZERO", and GasLevelCode is not equal to "LOW",
return result D.
Results:
Result
A
B
D
Usage:
1
2
3
4
1
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported an [fieldname] of "AIR" for [key], which indicates the use of purified air
material, but this material can only be used for a high-level calibration.
You reported an [fieldname] of "Zero" for [key], which indicates the use of zero air
material, but this material may only be used for a low-level calibration.
Process/Category: QA Test Evaluation Report — Appendix E Protocol Gas Data
Process/Category: QA Test Evaluation Report — Linearity Protocol Gas Data
Process/Category: QA Test Evaluation Report — RATA Protocol Gas Data
Process/Category: QA Test Evaluation Report — Unit Default Protocol Gas Data
Process/Category: QA and Certification Data Entry Screen Evaluation Protocol Gas Evaluation
Severity
Fatal
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 418 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: PGVP-6
Check Name: Protocol Gas Record Consistent with Test
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a Protocol Gas record:
Set Protocol Gas Parameter to null.
If the TestTypeCode of the current test is equal to "RATA",
If the SystemTypeCode associated with the current test is equal to "FLOW",
return result A.
else
if RATA Ref Method Code does not contain "3A", "6C", or "7E",
return result B.
else
if the associated SystemTypeCode is equal to "S02", "C02", or "02",
set Protocol Gas Parameter to the associated SystemTypeCode.
else
Set Protocol Gas Parameter to the RATA Ref Method Code.
else if the TestTypeCode of the current test is equal to "APPE" or "UNITDEF"
Set Protocol Gas Parameter to "7E, 3A"
Otherwise,
Set Protocol Gas Parameter to the associated ComponentTypeCode.
Results:
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category:
2 Process/Category:
3 Process/Category:
4 Process/Category:
Result Response
A You incorrectly reported a Protocol Gas Record for [key]. You should not report a
Protocol Gas record for a RATA of a FLOW monitoring system.
B You incorrectly reported a Protocol Gas Record for [key]. You should only report a
Protocol Gas record for a RATA performed using instrumental reference methods 3A,
6C, or 7E.
QA Test Evaluation Report — Appendix E Protocol Gas Data
QA Test Evaluation Report — Linearity Protocol Gas Data
QA Test Evaluation Report — RATA Protocol Gas Data
QA Test Evaluation Report — Unit Default Protocol Gas Data
Environmental Protection Agency
Page 419 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
PGVP-7
Check Name:
Required Protocol Gas Records Reported
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Vw System Parameter (Lookup Table)
Specifications:
For the test:
If the Protocol Gases list is not null,
If the TestTypeCode == "RATA",
If RATA Ref Method Code contains "6C", and the Protocol Gases list does not contain "S02HIGH", "S02MID",
AND "S02LOW",
return result A.
else if RATA Ref Method Code contains "7E", and the Protocol Gases list does not contain "NOXHIGH",
"NOXMID", AND "NOXLOW",
return result A.
else if RATA Ref Method Code contains "3A",
if the SystemTypeCode == "C02",
if the Protocol Gases list does not contain "C02HIGH", "C02MID", AND "C02LOW",
return result A.
else if the SystemTypeCode == "02",
if the Protocol Gases list does not contain "02HIGH", "02MID", AND "02LOW",
return result A.
else
if the Protocol Gases list does not contain "DILHIGH", "DILMID", AND "DILLOW",
return result A.
else if the TestTypeCode == "APPE" or "UMTDEF",
If the Protocol Gases list does not contain "NOXHIGH", "NOXMID", "NOXLOW","DILHIGH", "DILMID",
AND "DILLOW",
return result A.
else
If the Protocol Gases list does not contain ComponentTypeCode + "HIGH", ComponentTypeCode + "MID", AND
ComponentTypeCode + "LOW",
return result A.
Else if TestTypeCode is not equal to "RATA" or SystemTypeCode is not equal to "FLOW" and RATA Ref Method Code contains
"3A", "6C", or "7E",
Locate System Parameter lookup table record where SysParamName = 'PGVPAETBRULEDATE'.
If the BeginDate of the current test is on or after the System Parameter. Param Value 1 + 180 days,
return result B.
Environmental Protection Agency
Page 420 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result Response
A You did not report Protocol Gas records for all three gas levels for all reference gases
used in the test.
B You did not report any valid Protocol Gas records for this test. This information is
required by the Protocol Gas Verification Program reporting rule.
Usage:
1
Process/Category: QA Test Evaluation Report Appendix E Test (Pass 2)
Conditions: APPE System Valid Equals True
Process/Category: QA Test Evaluation Report Linearity Test (Pass 2)
Conditions: Linearity Component Valid Equals True
And Linearity Test Aborted Equals False
Process/Category: QA Test Evaluation Report RATA (Pass 2)
Conditions: RATA Aborted Equals False
And RATA System Valid Equals True
Process/Category: QA Test Evaluation Report Unit Default Test (Pass 2)
Conditions: Unit Default Fuel Valid Equals True
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 421 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
PGVP-10
Check Name:
Gas Type Code Component List Valid
Related Former Checks: 2013 Q1 replacement for PGVP-1
Applicability:
CEM Check
Description:
Specifications:
For a Protocal Gas record with a non-null Protocol Gas Parameter.
If GasTypeCode is null,
set Protocol Gas Component List Valid = false,
set Protocol Gas Approval Requested = false,
return result A.
Else
set Protocol Gas Approval Requested = false,
set Protocol Gas Invalid Component List to null,
set Protocol Gas Exclusive Component List to null.
set Protocol Gas Balance Component List to null,
set Protocol Gas Duplicate Component List to null.
set Protocol Gas Component List to null.
set Protocol Gas Component Count to 0.
set Gas Type Contains Zero to false.
set Balance Component Count to 0.
For each GasComponentCode in GasTypeCode,
Locate a record in the GasComponentCodeLookupTable where GasComponentCode is equal to the
GasComponentCode in the GasTypeCode.
If not found,
add GasComponentCode to Protocol Gas Invalid Component List.
Else
If the located CanCombinelndicator is equal to 0,
add GasComponentCode to Protocol Gas Exclusive Component List.
If the located BalanceComponentlndicator is equal to 1,
add GasComponentCode to Protocol Gas Balance Component List.
increament Balance Component Count by 1.
If the GasComponentCode is equal to "APPVD",
set Protocol Gas Approval Requested = true.
Else if the GasComponentCode is equal to "ZERO",
set Gas Type Contains Zero to true.
If GasComponentCode is not in Protocol Gas Component List,
add GasComponentCode to Protocol Gas Component List.
Else if GasComponentCode is not in Protocol Gas Duplicate Component List,
add GasComponentCode to Protocol Gas Duplicate Component List.
increament Protocol Gas Component Count by 1.
If Protocol Gas Invalid Component List is not null,
Environmental Protection Agency
Page 422 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
set Protocol Gas Component List Valid = false,
return result B.
Else if Protocol Gas Duplicate Component List is not null,
set Protocol Gas Component List Valid = false,
return result H.
Else if Protocol Gas Exclusive Component List is not null, and Protocol Gas Component Count is greater than 1,
set Protocol Gas Component List Valid = false,
return result C.
Else if Gas Type Contains Zero is equal to true, and TestTypeCode does not equal "RATA", "APPE" or "UNITDEF",
set Protocol Gas Component List Valid = false,
return result D.
Else if Protocol Gas Approval Requested is equal to true,
set Protocol Gas Component List Valid = false,
return result E.
Else if Protocol Gas Exclusive Component List is null, and Balance Component Count is equal to 0,
set Protocol Gas Component List Valid = false,
return result F.
Else if Protocol Gas Exclusive Component List is null, and Balance Component Count is greater than 1,
set Protocol Gas Component List Valid = false,
return result G.
Else
set Protocol Gas Component List Valid = true.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the values ([invalidlist]), in the field [fieldname] for [key], which are not
in the list of valid values.
You reported multiple gas components in the field [fieldname] for [key] that include
values ([exclusivelist]) that you should report by themselves.
You reported a GasTypeCode of "ZERO" which is only appropriate for the low level
calibration of a reference analyzer used in Reference Method 3A, 6C, or 7E testing.
You reported "APPVD" as the [fieldname] for [key]. This code indicates that you
received approval from EPA for a new type of Protocol Gas. If you have not received
approval from EPA, please contact ECMPS support. If you have already received
approval, you should log in to the ECMPS host, so that the ECMPS program can obtain
the necessary information to override this error.
You did not report a required PGVP balance component. A single balance component
is required when reporting other individual gas components.
You reported multiple PGVP balance components ([balancelist]). A single balance
component is required when reporting other individual gas components.
You reported one or more duplicate GasTypeCode components.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
D
Critical Error Level 1
E
Critical Error Level 1
F
Critical Error Level 1
G
Critical Error Level 1
H
Critical Error Level 1
Environmental Protection Agency
Page 423 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Protocol Gas Data
2 Process/Category: QA Test Evaluation Report — Linearity Protocol Gas Data
3 Process/Category: QA Test Evaluation Report — RATA Protocol Gas Data
4 Process/Category: QA Test Evaluation Report — Unit Default Protocol Gas Data
Environmental Protection Agency
Page 424 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
PG VP-11
Check Name:
Protocol Gas Parameter Consistent with Gas Component List
Related Former Checks: 2013 Q1 replacement for PGVP-1
Applicability:
CEM Check
Description:
Specifications:
For a Protocal Gas record with a non-null Protocol Gas Parameter.
If Protocol Gas Component List Valid is equal to true, and Protocol Gas Approval Requested is equal to false,
If the Protocol Gas Parameter is equal to "S02" or "C02",
If the GasTypeCode is equal to "GMIS", "NTRM", "PRM", "RGM", "SRM" or "ZERO",
add Protocol Gas Parameter + GasLevelCode to the Protocol Gases list.
Else if Protocol Gas Parameter is a GasComponentCode in GasTypeCode,
add Protocol Gas Parameter + GasLevelCode to the Protocol Gases list.
Else
return result A.
else if the Protocol Gas Parameter is equal to "02",
If the GasTypeCode is equal to "GMIS", "NTRM", "PRM", "RGM", "SRM" or "ZERO",
add "02" + GasLevelCode to the Protocol Gases list.
Else if GasTypeCode is equal to "AIR",
add "02" + GasLevelCode to the Protocol Gases list.
Else "02" is a GasComponentCode in GasTypeCode,
add "02" + GasLevelCode to the Protocol Gases list.
Else
return result B.
else if the Protocol Gas Parameter is equal to "NOX", or the Protocol Gas Parameter contains "7E" but not "3A",
If the GasTypeCode is equal to "GMIS", "NTRM", "PRM", "RGM", "SRM" or "ZERO",
add "NOX" + GasLevelCode to the Protocol Gases list.
Else if "NO" or "N02" is a GasComponentCode in GasTypeCode,
add "NOX" + GasLevelCode to the Protocol Gases list.
Else
return result C.
else if the Protocol Gas Parameter contains both "7E" and "3A",
If the GasTypeCode is equal to "GMIS", "NTRM", "PRM", "RGM", "SRM" or "ZERO",
Environmental Protection Agency
Page 425 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
add "NOX" + GasLevelCode to the Protocol Gases list,
add "DIL" + GasLevelCode to the Protocol Gases list.
Else if GasTypeCode is equal to "AIR",
add "DIL" + GasLevelCode to the Protocol Gases list.
Else if "NO", "N02", "C02" or "02" is a GasComponentCode in GasTypeCode,
If "NO" or "N02" is a GasComponentCode in GasTypeCode,
add "NOX" + GasLevelCode to the Protocol Gases list.
If "C02" or "02" is a GasComponentCode in GasTypeCode,
add "DIL" + GasLevelCode to the Protocol Gases list.
Else
return result D.
else if the Protocol Gas Parameter contains "3A",
If the GasTypeCode is equal to "GMIS", "NTRM", "PRM", "RGM", "SRM" or "ZERO",
add "DIL" + GasLevelCode to the Protocol Gases list.
If GasTypeCode is equal to "AIR",
add "DIL" + GasLevelCode to the Protocol Gases list.
Else if "C02" or "02" is a GasComponentCode in GasTypeCode,
add "DIL" + GasLevelCode to the Protocol Gases list.
Else
return result E.
Results:
Result Response
A You reported an GasTypeCode
reference method for [key].
B You reported an GasTypeCode
reference method for [key].
C You reported an GasTypeCode
reference method for [key].
D You reported an GasTypeCode
reference method for [key].
E You reported an GasTypeCode
reference method for [key].
Usage:
1 Process/Category: QA Test Evaluation Report — Appendix E Protocol Gas Data
that is not appropriate for the component type or the test
that is not appropriate for the component type or the test
that is not appropriate for the component type or the test
that is not appropriate for the component type or the test
that is not appropriate for the component type or the test
2 Process/Category:
3 Process/Category:
4 Process/Category:
QA Test Evaluation Report —
QA Test Evaluation Report —
QA Test Evaluation Report —
Linearity Protocol Gas Data
RATA Protocol Gas Data
Unit Default Protocol Gas Data
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 426 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
PGVP-8
Check Name:
Protocol Gas Record Consistent with Test
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For a Protocol Gas record:
Set Protocol Gas Parameter to null.
If the TestTypeCode of the current test is equal to "RATA",
If the SystemTypeCode associated with the current test is equal to "FLOW",
return result A.
else
Set Protocol Gas Parameter to the SystemTypeCode.
else if the TestTypeCode of the current test is equal to "APPE" or "UNITDEF
Set Protocol Gas Parameter to "NOX".
Otherwise,
Set Protocol Gas Parameter to the associated ComponentTypeCode.
Results:
Result
A
Response
You incorrectly reported a Protocol Gas Record for [key]. You should not report a
Protocol Gas record for a RATA of a FLOW monitoring system.
Severity
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Protocol Gas Evaluation
Environmental Protection Agency
Page 427 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: PGVP-9
Check Name: Gas Type Code Valid
Related Former Checks:
Applicability: CEM Check
Description:
Validation Tables:
[Protocol Gas Parameter to Type] (Cross Check Table)
Gas Type Code (Lookup Table)
Specifications:
For a Protocal Gas record with a non-null Protocol Gas Parameter.
If GasTypeCode is null,
return result A.
Else if GasTypeCode is equal to "ZERO",
If TestTypeCode does not equal "RATA", "APPE" or "UNITDEF",
return result F.
Otherwise,
If the GasTypeCode is not equal to "GMIS", "PRM", "RGM", or "SRM",
If the GasTypeCode is not in the GasTypeCode lookup table.
return result B.
else if the GasTypeCode == "ZAM"
return result B.
else if the GasTypeCode == "APPVD"
return result C.
else if the Protocol Gas Parameter is equal to "S02", "C02", or "02",
Locate Protocol Gas Parameter To Type Cross Reference records where ProtocolGasParameter is equal
to Protocol Gas Parameter, and GasTypeList contains the GasTypeCode in the current Protocol Gas
record.
If not found,
return result D.
else if the (TestTypeCode is equal "LINE" and Protocol Gas Parameter == "NOX") or Protocol Gas Parameter
== "NOXC",
Locate Protocol Gas Parameter To Type Cross Reference records where ProtocolGasParameter is equal
to "NOX", and GasTypeList contains the GasTypeCode in the current Protocol Gas record.
If not found,
return result D.
else if the TestTypeCode == "RATA", "UNITDEF", or "APPE", AND the Protocol Gas Parameter == "NOX" or
"NOXP",
Locate Protocol Gas Parameter To Type Cross Reference records where ProtocolGasParameter is equal
to "NOX" or "DIL", and GasTypeList contains the GasTypeCode in the current Protocol Gas record.
Environmental Protection Agency
Page 428 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If not found,
return result D.
Results:
Result
A
B
C
D
E
F
Response
You did not provide [fieldname], which is required for [key].
You reported a [fieldname] that is not in the list of valid values.
You reported "APPVD" as the [fieldname] for [key]. This code indicates that you
received approval from EPA for a new type of Protocol Gas. If you have not received
approval from EPA, please contact ECMPS support. If you have already received
approval, you should log in to the ECMPS host, so that the ECMPS program can obtain
the necessary information to override this error.
You reported an GasTypeCode that is not appropriate for the component or system type
for this test.
You reported an [fieldname] of "AIR" for [key], which indicates the use of purified air
material, but this material can only be used for a high-level calibration.
You reported a GasTypeCode of "ZERO" which is only appropriate for the low level
calibration of a reference analyzer used in Reference Method 3A, 6C, or 7E testing.
Severity
Fatal
Fatal
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Protocol Gas Evaluation
Environmental Protection Agency
Page 429 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
PGVP-12
Check Name:
Gas Type Code Component List Valid
Related Former Checks: 2013 Q1 replacement for PGVP-9
Applicability:
CEM Check
Description:
Specifications:
For a Protocal Gas record with a non-null Protocol Gas Parameter.
If GasTypeCode is null,
set Protocol Gas Component List Valid = false,
set Protocol Gas Approval Requested = false,
return result A.
Else
set Protocol Gas Approval Requested = false,
set Protocol Gas Invalid Component List to null,
set Protocol Gas Exclusive Component List to null.
set Protocol Gas Balance Component List to null,
set Protocol Gas Duplicate Component List to null.
set Protocol Gas Component List to null.
set Protocol Gas Component Count to 0.
set Gas Type Contains Zero to false.
set Balance Component Count to 0.
For each GasComponentCode in GasTypeCode,
Locate a record in the GasComponentCodeLookupTable where GasComponentCode is equal to the
GasComponentCode in the GasTypeCode.
If not found,
add GasComponentCode to Protocol Gas Invalid Component List.
Else
If the located CanCombinelndicator is equal to 0,
add GasComponentCode to Protocol Gas Exclusive Component List.
If the located BalanceComponentlndicator is equal to 1,
add GasComponentCode to Protocol Gas Balance Component List.
increament Balance Component Count by 1.
If the GasComponentCode is equal to "APPVD",
set Protocol Gas Approval Requested = true.
Else if the GasComponentCode is equal to "ZERO",
set Gas Type Contains Zero to true.
If GasComponentCode is not in Protocol Gas Component List,
add GasComponentCode to Protocol Gas Component List.
Else if GasComponentCode is not in Protocol Gas Duplicate Component List,
add GasComponentCode to Protocol Gas Duplicate Component List.
increament Protocol Gas Component Count by 1.
If Protocol Gas Invalid Component List is not null,
Environmental Protection Agency
Page 430 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
set Protocol Gas Component List Valid = false,
return result B.
Else if Protocol Gas Duplicate Component List is not null,
set Protocol Gas Component List Valid = false,
return result H.
Else if Protocol Gas Exclusive Component List is not null, and Protocol Gas Component Count is greater than 1,
set Protocol Gas Component List Valid = false,
return result C.
Else if Gas Type Contains Zero is equal to true, and TestTypeCode does not equal "RATA", "APPE" or "UNITDEF",
set Protocol Gas Component List Valid = false,
return result D.
Else if Protocol Gas Approval Requested is equal to true,
set Protocol Gas Component List Valid = false,
return result E.
Else if Protocol Gas Exclusive Component List is null, and Balance Component Count is equal to 0,
set Protocol Gas Component List Valid = false,
return result F.
Else if Protocol Gas Exclusive Component List is null, and Balance Component Count is greater than 1,
set Protocol Gas Component List Valid = false,
return result G.
Else
set Protocol Gas Component List Valid = true.
Results:
Result
A
B
C
D
E
F
G
H
Response
You did not provide [fieldname], which is required for [key].
You reported the values ([invalidlist]), in the field [fieldname] for [key], which are not
in the list of valid values.
You reported multiple gas components in the field [fieldname] for [key] that include
values ([exclusivelist]) that you should report by themselves.
You reported a GasTypeCode of "ZERO" which is only appropriate for the low level
calibration of a reference analyzer used in Reference Method 3A, 6C, or 7E testing.
You reported "APPVD" as the [fieldname] for [key]. This code indicates that you
received approval from EPA for a new type of Protocol Gas. If you have not received
approval from EPA, please contact ECMPS support. If you have already received
approval, you should log in to the ECMPS host, so that the ECMPS program can obtain
the necessary information to override this error.
You did not report a required PGVP balance component. A single balance component
is required when reporting other individual gas components.
You reported multiple PGVP balance components ([balancelist]). A single balance
component is required when reporting other individual gas components.
You reported one or more duplicate GasTypeCode components.
Severity
Fatal
Fatal
Fatal
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Protocol Gas Evaluation
Environmental Protection Agency
Page 431 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
PGVP-13
Check Name:
Protocol Gas Parameter Consistent with Gas Component List
Related Former Checks: 2013 Q1 replacement for PGVP-9
Applicability:
CEM Check
Description:
Specifications:
For a Protocal Gas record with a non-null Protocol Gas Parameter.
If Protocol Gas Component List Valid is equal to true, and Protocol Gas Approval Requested is equal to false,
If the GasTypeCode is not equal to "GMIS", "NTRM", "PRM", "RGM", "SRM" or "ZERO",
If the Protocol Gas Parameter is equal to "S02" or "C02",
If Protocol Gas Parameter is not a GasComponentCode in GasTypeCode,
return result A.
else if the Protocol Gas Parameter is equal to "02",
If GasTypeCode is not equal to "AIR", and "02" is not a GasComponentCode in GasTypeCode,
return result B.
else if the (TestTypeCode is equal to "LINE" and Protocol Gas Parameter is equal to "NOX") or Protocol Gas
Parameter is equal to "NOXC",
If "NO" and "N02" are not a GasComponentCode in GasTypeCode,
return result C.
else if the TestTypeCode is equal to "RATA", "UNITDEF", or "APPE", AND the Protocol Gas Parameter is
equal to "NOX" or "NOXP",
If GasTypeCode is not equal to "AIR", and "C02", "NO", "N02" and "02" are not a GasComponentCode
in GasTypeCode,
return result D.
Results:
Result
A
Response
You reported an GasTypeCode that is not appropriate for the component or system type
for this test.
You reported an GasTypeCode that is not appropriate for the component or system type
for this test.
You reported an GasTypeCode that is not appropriate for the component or system type
for this test.
You reported an GasTypeCode that is not appropriate for the component or system type
for this test.
Severity
Critical Error Level 1
B
Critical Error Level 1
C
Critical Error Level 1
D
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Protocol Gas Evaluation
Environmental Protection Agency
Page 432 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
QA Certification Event
Environmental Protection Agency
Page 433 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: QACERT-1
Check Name: QA Cert Event Code Valid
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the QA Cert event:
If QACertEventCode is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation QA Certification Event Evaluation
Environmental Protection Agency
Page 434 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: QACERT-2
Check Name: QA Cert Event Date Valid
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the QA Cert event:
If QACertEventDate is null,
return result A.
else if QACertEventDate is before 01/01/1993 or after the current date,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
B You reported a [Fieldname] of [Date], which is outside the range of acceptable values Critical Error Level 1
for this date for [key].
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation QA Certification Event Evaluation
1 Process/Category: Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 435 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the QA Cert event:
If QACertEventHour is null,
return result A.
else if QACertEventHour is not between 0 and 23,
return result B.
else if QACertEventCode is equal to 800, and the month and day of the QACertEventDate is equal to May lor July 31,
if QACertEventHour is not equal to 0,
return result C.
QACERT-3
QA Cert Event Hour Valid
General Check
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You reported a [Fieldname] of [Hour], which is outside the range of acceptable values
for this hour for [key].
The QACertEventHour reported for [key] is not appropriate for this event. It must be
equal to 0.
Severity
Fatal
Critical Error Level 1
Critical Error Level 1
Process/Category: QA and Certification Data Entry Screen Evaluation QA Certification Event Evaluation
Process/Category: Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 436 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the QA Cert Event record:
Set QA Cert Event System Type to null.
If MonitoringSystemID and ComponentID are null,
If QAEventCode is not equal to 700 or 950,
return result A.
Otherwise,
If MonitoringSystemID is null,
If QA Cert Event Required ID Code is equal to "S" or "B",
return result B.
Otherwise,
Locate a Monitor System for the location where the MonitoringSystemID is equal to the MonitoringSystemld in the
event record.
Set QA Cert Event System Type to the SystemTypeCode in the retrieved record.
If the EventDate and EventHour are valid, and the EventCode isNOT equal to 20, 25, 30, 35, 40, 51, 100, 101,
125, 250,255, 300, 305, 400, 600, or 605,
If the BeginDate and BeginHour in the retrieved record is later than the EventDate and EventHour, or the
EndDate and EndHour in the retrieved record is not null and is prior to the EventDate and EventHour,
return result C.
QACERT-4
QA Cert Event System Valid
ARP-36
General Check
Results:
Result
A
B
Usage:
1
1
Response
You did not report a MonitoringSystemID or ComponentID for [key].
You did not report a MonitoringSystemID for [key]. You must provide a
MonitoringSystemID when the RequiredTestCode indicates that you must perform a
system-specific test.
Based on the EventDate and EventHour, the monitoring system reported in the event
record for [key] was not active.
Severity
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Process/Category: QA and Certification Data Entry Screen Evaluation QA Certification Event Evaluation
Process/Category: Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 437 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: QACERT-5
Check Name: QA Cert Event Component Valid
Related Former Checks: ARP-38A/B
Applicability: General Check
Description:
Specifications:
For the QA Cert Event record:
Set QA Cert Event Component Type to null.
If ComponentID is null,
If the QA Cert Event Required ID Code is equal to "C" or "B",
return result A.
Otherwise,
Locate a Component record for the location where the ComponentID is equal to the ComponentID in the event record:
Set QA Cert Event Component Type to the ComponentTypeCode in the retrieved record.
If the EventDate and EventHour are valid, and the EventCode is NOT equal to 20,25, 30, 35,40, 51, 100, 101, 125, 250,
255, 300, 305,400, or 600,
If the MonitoringSystemID is null,
Locate a SystemComponent record for the location where the ComponentID is equal to the ComponentID
in the event record, the BeginDate and BeginHour is on or before the EventDate and EventHour, and the
EndDate is null or the EndDate and EndHour is on or after the EventDate and EventHour.
If not found,
return result B.
Otherwise,
Locate a SystemComponent record for the location where the MonitoringSystemID and ComponentID are
equal to the corresponding values in the event record, the BeginDate and BeginHour is on or before the
EventDate and EventHour, and the EndDate is null or the EndDate and EndHour is on or after the
EventDate and EventHour.
If not found,
return result C.
Results:
Result
A
B
C
Response
You did not report a ComponentID for [key]. You must provide a ComponentID when
the RequiredTestCode indicates that you must perform a component-specific test.
Based on the EventDate and EventHour, the component reported in the event record for
[key] was not active.
According to the Monitoring System Component records in the monitoring plan, the
component was not active during the event reported in the event record for [key].
Severity
Critical Error Level 1
Non-Critical Error
Non-Critical Error
Environmental Protection Agency
Page 43 8 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation QA Certification Event Evaluation
1 Process/Category: Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 439 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the QA Cert Event:
If ConditionalBeginDate is null,
If QACertEventCode is equal to 800,
return result D.
If ConditionalBeginHour is not null,
return result A.
Otherwise,
If ConditionalBeginHour is null,
return result B.
If ConditionalBeginHour is not between 0 and 23,
return result C.
QACERT-6
QA Cert Event Conditional Begin Date and Hour Valid
General Check
Results:
Result
A
B
C
D
Response
You reported [hourfield2] but did not report [datefield2] for [key].
You reported [datefield2] but did not report an [hourfield2] for [key].
You reported a [Fieldname] of [Hour], which is outside the range of acceptable values
for this hour for [key].
You reported a QA Certification Event record for [key], indicating the use of conditional
data validation, but you have not reported a ConditionalBeginDate.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA and Certification Data Entry Screen Evaluation QA Certification Event Evaluation
1 Process/Category: Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 440 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the QA Certification Event:
If CompletionTestDate is null,
If CompletionTestHour is not null,
return result A.
Otherwise,
return result D.
Otherwise,
If CompletionTestHour is null,
return result B.
If CompletionTestHour is not between 0 and 23,
return result C.
QACERT-7
QA Cert Event Completion Test Date and Hour Valid
General Check
Results:
Result
A
B
C
D
Response
You reported [hourfield2] but did not report [datefield2] for [key].
You reported [datefield2] but did not report an [hourfield2] for [key].
You reported a [Fieldname] of [Hour], which is outside the range of acceptable values
for this hour for [key].
You did not report a TestCompletionDate for [key]. If you have not yet complete the
tests required for this QA Certification event, you should update the test completion date
and hour, and resubmit the record after all tests are completed.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Informational Message
Usage:
1
Process/Category:
QA and Certification Data Entry Screen Evaluation QA Certification Event Evaluation
1 Process/Category: Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 441 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: QACERT-8
Check Name: QA Cert Event Required Test Code Valid
Related Former Checks:
Applicability: General Check
Description:
Validation Tables:
Required Test Code to Required ID
Required Test Code to Required ID
Specifications:
For the QA Cert event:
Set QA Cert Event Valid System or Component Type and QA Cert Event Required ID Code to null.
If RequiredTestCode is null,
return result A.
Otherwise,
Locate the Required Test Code to Required ID to System or Component Type cross-check record where the
RequiredTestCode is equal to the RequiredTestCode in the event record.
If found,
Set QA Cert Event Valid System or Component Type to the SystemOrComponentType in the retrieved cross-check
record.
Set QA Cert Event Required ID Code to the RequiredlDCode in the retrieved cross-check record.
and System or Component Type (Cross Check Table)
and System or Component Type (Cross Check Table)
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation QA Certification Event Evaluation
1 Process/Category: Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 442 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
QACERT-9
Check Name:
QA Cert Event Conditional Begin Hour Consistent with Event Hour
Related Former Checks:
Applicability:
General Check
Description:
Specifications:
For the QA Cert Event with a valid QACertEventDate and QACertEventHour and a non-null and valid ConditionalBeginDate/Hour:
If the QACertEventDate and QACertEventHour is later than the ConditionalBeginDate and ConditionalBeginHour,
return result A.
else if QACertEventCode is equal to 800, and the month and day of the QACertEventDate is not equal to May lor July 31,
If the ConditionalBeginDate and ConditionalBeginHour is not equal to QACertEventDate, or QACertEventDate is not in
the month of April or July,
return result B.
Results:
Result
A
Response
You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and
[hourfieldl] for [key].
The QACertEventDate reported for [key] is not appropriate for this event. It must be
equal to the earlier of the ConditionalBeginDate or to the QA test deadline (May 1 or
July 31).
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation QA Certification Event Evaluation
1
Process/Category: Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 443 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: QACERT-10
Check Name: QA Cert Event Completion Test Hour Consistent with Event and Conditional Hour
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the QA Cert Event with a valid QACertEventDate and QACertEventHour and a non-null and valid CompletionTestDate/Hour:
If ConditionalBeginDate/Hour is non-null and valid,
If the ConditionalBeginDate and ConditionalBeginHour is later than the CompletionTestDate and CompletionTestHour,
return result A.
Otherwise,
If the QACertEventDate and QACertEventHour is later than the CompletionTestDate and CompletionTestHour,
return result B.
Results:
Result Response Severity
A You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and Critical Error Level 1
[hourfieldl] for [key],
B You reported [datefield2] and [hourfield2] which is prior to [datefield] and [hourfield] Critical Error Level 1
for [key].
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation QA Certification Event Evaluation
1 Process/Category: Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 444 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: QACERT-11
Check Name: Duplicate QA Cert Event
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the QA Cert Event with a non-null QACertEventDate, QACertEventHour, and QACertEventCode:
Locate another QA Cert Event record for the location with an QACertEventCode, QACertEventHour, QACertEventDate,
MonitoringSystemID, and ComponentID that are equal to the corresponding fields in the current record.
If found,
return result A.
Results:
Result Response Severity
A Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation QA Certification Event Evaluation
Environmental Protection Agency
Page 445 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
QACERT-12
Check Name:
QA Cert Event System/Component Type Consistent with Event Code
Related Former Checks: ARP-37, 38C
Applicability:
General Check
Description:
Validation Tables:
Event Code to System or Component Type (Cross Check Table)
Specifications:
For the QA Cert Event record:
Set QA Cert Event and Type Consistent to false.
If the EventCode is equal to 700 or 950,
If the MonitoringSystemID is not null or the ComponentID is not null,
Otherwise,
Locate the Event Code to System or Component Type cross-check record where EventCode 1 is equal to the EventCode in
the current event and EventCode2 is null, or EventCodel is less than or equal to the EventCode in the current event and
EventCode2 is greater than or equal to the EventCode in the current event.
If found,
If the SystemOrComponentType in the retrieved record is equal to "CONC",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "S02", "S02R", "NOXC", "NOX", "C02", "02",
"H20", or "H20M",
return result B.
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or
"C",
If QA Cert Event Component Type is not equal to "S02", "NOX", "C02", or "02",
else if the SystemOrComponentType in the retrieved record begins with "CEM",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "S02", "S02R", "NOXC", "NOX", "C02", "02",
"FLOW", "LOO", or "H20M",
return result B.
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or
"C",
If QA Cert Event Component Type is not equal to "S02", "NOX", "C02", "02", or "FLOW",
return result A.
return result B.
else if QA Cert Event System Type is equal to "NOXP",
If SystemOrComponentType does not contain "NOXP",
return result B.
Environmental Protection Agency
Page 446 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
return result B.
else if the SystemOrComponentType in the retrieved record is equal to "FFM",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "OILV", "OILM", "GAS", "LTOL", or "LTGS",
return result B.
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or
"C",
If QA Cert Event Component Type is not equal to "OFFM" or "GFFM",
return result B.
else if the SystemOrComponentType in the retrieved record is equal to "FLOW",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "FLOW",
return result B.
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or
"C",
If QA Cert Event Component Type is not equal to "FLOW",
return result B.
else if the SystemOrComponentType in the retrieved record is equal to "NOX",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "NOX" or "NOXC",
return result B.
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or
"C",
If QA Cert Event Component Type is not equal to "NOX",
return result B.
else if the SystemOrComponentType in the retrieved record is equal to "S02",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "S02" or "S02R",
return result B.
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or
"C",
If QA Cert Event Component Type is not equal to "S02",
return result B.
else if the SystemOrComponentType in the retrieved record is equal to "NOXE",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
Environmental Protection Agency
Page 447 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If QA Cert Event System Type is not equal to "NOXE",
return result B.
else if the SystemOrComponentType in the retrieved record is equal to "DAHS" or "H20",
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or
"C",
If QA Cert Event Component Type is not equal to the SystemOrComponentType in the retrieved
record,
return result B.
else if the SystemOrComponentType in the retrieved record is equal to "OP",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "OP" or "PM",
return result B.
else if the SystemOrComponentType in the retrieved record is equal to "HGK",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "HGK",
return result B.
//if no result
Set QA Cert Event and Type Consistent to true.
Results:
Result
A
B
Usage:
1
Response
You reported a MonitoringSystemID or ComponentID, but this is not appropriate for the
[fieldname] reported in the event record for [key].
The QACertEventCode is not appropriate for the system or component reported in the
event record for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category:
Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 448 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: QACERT-13
Check Name: QA Cert Event Required Test Code Consistent with System and Component
Related Former Checks: ARP-49
Applicability: General Check
Description:
Specifications:
For a QA Certification Event:
If RequiredTestCode is equal to 76 or 77,
If ComponentID is not null or MonitoringSystemID is not null,
return result A.
Otherwise,
If QA Cert Event Valid System Or Component is equal to "CONC",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "S02", "S02R", "NOXC", "NOX", "C02", "02", "H20",
or "H20M",
return result B.
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or "C",
If QA Cert Event Component Type is not equal to "S02", "NOX", "C02", or "02",
return result B.
If QA Cert Event Valid System Or Component is equal to "CEM",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "S02", "S02R", "NOXC", "NOX", "C02", "02", "FLOW",
"H20", or "H20M",
return result B.
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or "C",
If QA Cert Event Component Type is not equal to "S02", "NOX", "C02", "02", or "FLOW",
return result B.
If QA Cert Event Valid System Or Component is equal to "RATA",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "S02", "S02R", "NOXC", "NOX", "C02", "02", "FLOW",
"LOO", "LOOM", or "HGK",
return result B.
If QA Cert Event Valid System Or Component is equal to "FFM",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "OILV", "OILM", "GAS", "LTOL", or "LTGS",
return result B.
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or "C",
Environmental Protection Agency
Page 449 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If QA Cert Event Component Type is not equal to "OFFM" or "GFFM",
return result B.
If QA Cert Event Valid System Or Component is equal to "FLOW",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event System Type is not equal to "FLOW",
return result B.
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or "C",
If QA Cert Event Component Type is not equal to "FLOW",
return result B.
If QA Cert Event Valid System Or Component is equal to "NOXE" or "NOXP",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event Valid System Or Component is equal to "OP",
If QA Cert Event System Type is not null and QA Cert Event Required ID Code is equal to "B" or "S",
If QA Cert Event Valid System Or Component is equal to "DAHS",
If QA Cert Event Component Type is not null and QA Cert Event Required ID Code is equal to "B" or "C",
If QA Cert Event Component Type is not equal to "DAHS",
return result B.
If QA Cert Event System Type is not equal to the QA Cert Event Valid System or Component,
return result B.
If QA Cert Event System Type is not equal to "OP" or "PM",
return result B.
Results:
Result
A
Response
You reported a MonitoringSystemID or ComponentID, but this is not appropriate for the
[fieldname] reported in the event record for [key].
The RequiredTestCode is not appropriate for the system or component in the event
record reported for [key].
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1
Process/Category: Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 450 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: QACERT-14
Check Name: QA Cert Event Date Consistent with Other Data
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For a QA Certification Event with a valid date and hour:
If QACertEventCode is equal to 20,
Locate an Control record for the location where the ParameterCode is equal to "S02" and the InstallDate is not null and is
on or prior to the QACertEventDate.
If not found,
return result A.
else if QACertEventCode is equal to 25 or 26,
Locate an Control record for the location where the ParameterCode is equal to "NOX" and the InstallDate is not null and is
on or prior to the QACertEventDate.
If not found,
return result B.
else if QACertEventCode is equal to 30 and ComponentID is not null,
Locate an Analyzer Range record for the component where the AnalyzerRangeCode is equal to "A" or "L", and the
BeginDate and BeginHour is equal to the QACertEventDate and QACertEventHour.
If not found,
return result C.
else if QACertEventCode is equal to 35 and ComponentID is not null,
Locate an Analyzer Range record for the component where the AnalyzerRangeCode is equal to "A" or "H", and the
BeginDate and BeginHour is equal to the QACertEventDate and QACertEventHour.
If not found,
return result D.
else if QACertEventCode is equal to 50 or 51,
Locate an Operating Status record for the location where the OpStatusCode is equal to "LTCS", and the BeginDate is prior
to the QACertEventDate.
If not found,
return result E.
If found,
Locate an Operating Status record for the location where the OpStatusCode is equal to "OPR", and the BeginDate
is on or before the QACertEventDate and is after the BeginDate of the retrieved LTCS Operating Status record.
If not found,
return result E.
else if QACertEventCode is equal to 170, 171, or 172, and the QA Cert Event Component Type is equal to "S02", "NOX", "C02",
or "02",
Environmental Protection Agency
Page 451 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Locate an Analyzer Range record for the component where the BeginDate and BeginHour is on or before the
QACertEventDate and QACertEventHour, and the EndDate is null or the EndDate and EndHour is on or after the
QACertEventDate and QACertEventHour
If found,
If the AnalyzerRangeCode is equal to "A",
Locate a Span record for the location where the ComponentTypeCode is equal to the QA Cert Event
Component Type and the BeginDate and BeginHour is equal to the QACertEventDate and
QACertEventHour,
If not found,
return result F.
Otherwise,
Locate a Span record for the location where the ComponentTypeCode is equal to the QA Cert Event
Component Type, the SpanScaleCode is equal to the AnalyzerRangeCode in the retrieved Analyzer Range
record, and the BeginDate and BeginHour is equal to the QACertEventDate and QACertEventHour,
If not found,
return result F.
else if QACertEventCode is equal to 800,
Locate a Reporting Frequency record for the location where the ReportingFrequencyCode is equal to "Q", where the
BeginQuarter is on or before the QACertEventDate, and the EndQuarter is null or is on or after the QACertEventDate.
If found,
return result G.
Results:
Result
B
D
G
Response
You reported a QA Certification Event record for [key], indicating the installation of
add-on S02 controls, but you have not reported an applicable S02 control record in
your monitoring plan.
You reported a QA Certification Event record for [key], indicating the installation of
add-on NOx controls, but you have not reported an applicable NOX control record in
your monitoring plan.
You reported a QA Certification Event record for [key], indicating the addition of a
low-scale measurement range, but you have not reported an applicable Analyzer Range
record for the component in your monitoring plan.
You reported a QA Certification Event record for [key], indicating the addition of a
high-scale measurement range, but you have not reported an applicable Analyzer Range
record for the component in your monitoring plan.
You reported a QA Certification Event record for [key], which is intended to report the
recommencement of operation following a period of long-term cold storage or following
an outage that prevented the completion of monitoring system certification testing by the
compliance deadline. If this situation applies, please contact ECMPS technical support
for assistance with this matter.
You reported a QA Certification Event record for [key], indicating a change in span
value, but you have not reported an applicable Span record for this component type in
your monitoring plan.
You reported a QA Certification Event record for [key], indicating that this location is
an ozone-season-only reporter, but the Monitor Plan Reporting Frequency records
indicate that this location is an annual reporter.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 452 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
QACERT-15
Check Name:
QA Cert Event Code Consistent with Required Test Code
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Event Code to Test Type Codes (Cross Check Table)
Test Type to Required Test Code (Cross Check Table)
Specifications:
For a QA Certification Event where QA Cert Event and Type Consistent is true and RequiredTestCode is not null:
Set QA Cert Event Missing Test Types to null.
If the QA Cert Event System Type is equal to 'NOXP" and QA Cert Event Code is between 40 and 51 (inclusive),
Locate a Test Type to Required Test Code records where the Test Type Code is equal to "RATA" and the Required Test
Code is equal to the RequiredTestCode in QA Certification Event record.
If not found,
append "RATA" to QA Cert Event Missing Test Types.
else if the QACertEventCode is equal to "312",
Locate Test Type to Required Test Code records where TestTypeCode begins with "RATA" or is equal to "AF2LCHK",
and RequireTestCode is equal to the RequiredTestCode in QA Certification Event record.
If not found,
Set QA Cert Event Missing Test Types to "AF2LCHK or RATA".
else if (the QACertEventCode is less than 20, OR the QACertEventCode is greater than 26, OR (the QACertEventCode is equal to
20 and the QA Cert Event System Type begins with "S02") OR (the QACertEventCode is equal to 25 or 26, and the QA Cert Event
System Type begins with "NOX"),
Locate all Event Code to Test Type Codes cross-check records where EventCodel is equal to the EventCode in the current
event and EventCode2 is null, or EventCodel is less than or equal to the EventCode in the current event and EventCode2 is
greater than or equal to the EventCode in the current event.
If TestTypeCode in the retrieved cross-check record is equal to "LEAK",
If QA Cert Event System Type is equal to "FLOW" and QA Cert Event Acquisition Method is equal to
"DP",
Locate Test Type to Required Test Code records where the Test Type Code is equal to "LEAK"
and the Required Test Code is equal to the RequiredTestCode in the QA Certification Event
record.
If not found,
append "LEAK" to QA Cert Event Missing Test Types.
Else If (QA Cert Event System Type is not equal to "FLOW" or TestTypeCode in the retrieved cross-check record
is not equal to "LINE") AND (QA Cert Event System Type is not equal to "LOOM" OR TestTypeCode in the
retrieved cross-check record is equal to "RATA")
Locate a Test Type to Required Test Code records where the Test Type Code begins with the
For each cross-check record found,
Environmental Protection Agency
Page 453 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
TestTypeCode in the retrieved cross-check record and the Required Test Code is equal to the
RequiredTestCode in QA Certification Event record.
If not found,
If TestTypeCode in the retrieved cross-check record is equal to "7DAY",
Set SpanExemption = false.
If QACertEventCode is equal to 125, and QA Cert Event Component Type is equal to
"NOX" or "S02",
Locate an Analyzer Range record for the component where the BeginDate and
BeginHour is on or before the QACertEventDate and QACertEventHour, and the
EndDate is null or the EndDate and EndHour is on or after the QACertEventDate
and QACertEventHour
If the DualRangelndicator is equal to 0,
Locate a Span record for the location where the ComponentTypeCode is
equal to the QA Cert Event Component Type, the SpanScaleCode is
equal to the AnalyzerRangeCode in the retrieved Analyzer Range record,
and the BeginDate and BeginHour is on or before the QACertEventDate
and QACertEventHour, and the EndDate is null or the EndDate and
EndHour is on or after the QACertEventDate and QACertEventHour,
If found and the SpanValue is less than or equal to 50 ppm,
Set SpanExemption = true.
If SpanExemption is equal to false,
If the associated UnitStackPipelD begins with "CS" or "MS",
Locate all UnitStackConfiguration records where the stack/pipe location
is the current location, the BeginDate is on or before the EventDate, and
the EndDate is null or is on or after the EventDate.
For each UnitStackConfiguration record found,
Locate a MonitorQualification record where the unit is the unit
location in the UnitStackConfiguration record, the
QualificationTypeCode is equal to "PK" or "SK", the BeginDate
is on or before the EventDate and the EndDate is null or is on or
after the EventDate.
If not found,
append "7DAY" to QA Cert Event Missing Test Types.
Otherwise,
Locate a MonitorQualification record for the location where the
QualificationTypeCode is equal to "PK" or "SK", the BeginDate is on or
before the EventDate and the EndDate is null or is on or after the
EventDate.
If not found,
Environmental Protection Agency
Page 454 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
append "7DAY" to QA Cert Event Missing Test Types.
Otherwise,
append the TestTypeCode in the retrieved cross-check record to QA Cert Event Missing
Test Types.
Otherwise,
If QA Cert Event Code is equal to 800,
Set QA Cert Event Missing Test Types to null,
exit loop.
If QA Cert Event Missing Test Types is not null,
return result A.
Results:
Result Response Severity
A Based on the EventCode in the record for [key], the certification event requires the Critical Error Level 2
following test types: [testtypes]. However, you have reported a RequiredTestCode that
does not include these types of tests.
Usage:
1 Process/Category: Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 455 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the QA Certification Event:
Locate all Monitoring Plan Location records for the location where the SeverityLevelCd of the associated Monitoring Plan is equal
to "CRIT1" or "FATAL", and the End Quarter of the associated Monitoring Plan is null or is on or after the QACertEventDate of
the event.
QACERT-16
Monitor Plan Evaluation Check
General Check
If found,
return result A.
Otherwise,
Locate all Monitoring Plan Location records for the location where the MustSubmitFlag and NeedsEvalFlag of the
associated Monitoring Plan are equal to "Y", and the End Quarter of the associated Monitoring Plan is null or is on or after
the QACertEventDate of the event.
If found,
return result B.
Results:
Result
B
Response
A Monitoring Plan associated with this [entity] has critical errors. You must correct all
active and future Monitoring Plans containing the location in this [entity] in order to
submit this [entity] to be loaded on EPA's host system.
A Monitoring Plan associated with this [entity] has not been evaluated. You must
evaluate all active and future Monitoring Plans containing the location in this [entity] in
order to complete the evaluation of this [entity].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Other QA Evaluation Report QA Certification Event Evaluation
Environmental Protection Agency
Page 456 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
RATA
Environmental Protection Agency
Page 457 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the RATA:
Set Rounded Flow RATA Values to true.
Set RATA Zero Value to false.
Set Highest RATA CEM Value to null.
Set Ftighest RATA Run Number to 0.
If there are no runs associated with the RATA,
Set the RATA Begin Date, Begin Hour, Begin Minute, End Date, End Hour, and End Minute to null.
Set RATA Run Times Valid to false.
Otherwise,
set RATA Run Times Valid to true.
Proceed through the RATA run records for the test in Run Begin Date/Hour/Minute order.
Append the associated Operating Level Code for the run to the RATA Level List.
If RunNumber is greater than the Highest RATA Run Number,
set Highest RATA Run Number to RunNumber.
If RunStatusCode is equal to "RUNUSED",
If CEMValue is greater than Highest RATA CEM Value,
set Highest RATA CEM Value to CEMValue.
If CEMValue is equal to 0 or RATAReferenceValue is equal to 0,
set RATA Zero Value to true.
If associated SystemType is equal to "FLOW",
If CEMValue is greater than 0 and not rounded to 1000 or RATAReferenceValue is greater than 0
and not rounded to 1000,
set Rounded Flow RATA Values to false.
If any Run Begin Date, Hour, Minute or Run End Date, Hour, Minute is invalid,
Set RATA Run Times Valid to false, and Simultaneous RATA Runs to null.
Otherwise,
Set the RATA Begin Date, Begin Hour, and Begin Minute to the Run BeginDate, BeginHour, and
BeginMinute of the first run.
If the BeginDate, BeginHour, or BeginMinute of any run is earlier than the EndDate, EndHour, and
EndMinute of the previous run,
append the Operating Level and Run Number to Simultaneous RATA Runs.
Set the RATA End Date, End Hour, and End Minute to the latest EndDate, EndHour, and EndMinute of
any run.
RATA-1
Determine RATA Run Sequence
CEM Check
Environmental Protection Agency
Page 458 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
Usage:
1
1
Response
Process/Category:
Conditions:
Process/Category:
Severity
QA Test Evaluation Report RATA Evaluation (Pass 1)
RATA Aborted Equals false
QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
Environmental Protection Agency
Page 459 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-2
Check Name:
System Type Valid
Related Former Checks: RATA-1
Applicability:
CEM Check
Description:
Specifications:
For the RATA:
If the MonitoringSystemID is null,
set RATA System Valid to false, and return result A.
Otherwise,
If the SystemTypeCode of the associated system is equal to "S02", "NOX", "C02", "FLOW", "S02R", "02", "H20",
"H20M", "NOXC", "NOXP", "HG", "HCL", "HF", or "ST",
If RATA System is invalid, do not perform checks for all other RATA categories except RATA Evaluation (Pass 2). Set the
calculated values in all associated RATA Summary, RATA Run, Flow Run, and RATA Traverse records to null.
set RATA System Valid to true.
Otherwise,
set RATA System Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
According to the monitoring system record, the RATA was conducted for a [sys type]
system. This type of system does not require a RATA.
Severity
Fatal
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
Environmental Protection Agency
Page 460 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-3
Check Name:
Aborted RATA Not Evaluated
Related Former Checks: RATA-2
Applicability:
CEM Check
Description:
Specifications:
For the RATA:
If the TestResultCode is equal to "ABORTED",
Proceed through the RATA Summary records for the test.
Append the associated Operating Level Code for the run to the RATA Level List.
Set RATA Result to "ABORTED", RATA Aborted to true, and return result A.
Do not perform checks for all other RATA categories except RATA Evaluation (Pass 2).
Set the calculated values in all associated RATA Summary, RATA Run, Flow Run, and RATA Traverse records to null.
Otherwise,
set RATA Aborted to false.
Results:
Result
A
Response
The TestResultCode indicates that the test was aborted. [Children] records for this test
will not be evaluated. If the test was aborted for a reason not related to monitor
performance, you should not report the test.
Severity
Informational Message
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report RATA Evaluation (Pass 1)
RATA System Valid Equals true
Environmental Protection Agency
Page 461 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-4
Check Name: Test Reason Code Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the TestSummary record:
If TestReasonCode is null,
return result A.
If TestReasonCode is not in the TestReasonCode lookup table,
return result B.
Results:
Result Response
A You did not provide [fieldname], which is required for [key],
B You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Usage:
1 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
Conditions: RATA System Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 462 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the RATA:
If Simultaneous RATA Runs is not null,
return result A.
Results:
Result Response Severity
A The following runs had a begin and end time that overlapped another run in the RATA: Critical Error Level 1
[runs].
Usage:
1 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
Conditions: RATA Aborted Equals false
RATA-5
Simultaneous Runs
RATA-4
CEM Check
Environmental Protection Agency
Page 463 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-6
Check Name:
CEM Value Consistent with MPC/MPF/MER
Related Former Checks: RATA-56, 57
Applicability:
CEM Check
Description:
Specifications:
For a RATA with valid dates, an associated SystemTypeCode equal to "NOX", "NOXC", "S02", "FLOW", "FIG", "FtCL", or "HF", and
IFighest RATA CEM Value greater than 0:
If the associated SystemTypeCode is equal to "NOX",
Locate a MonitorDefault record for the location where the ParameterCode is equal to "NORX", the FuelCode is equal to
"NFS", OperatingConditionCode is equal to "U" or "A", the BeginDate/IFour is on or before the later of the Begin
Date/Hour of the associated system and the BeginDate/Hour of the test, and the EndDate is null or the EndDate/Hour is on
or after later of the Begin Date/IFour of the associated system and the EndDate/FFour of the test.
If one record is found,
If IFighest RATA CEM Value is greater than the DefaultValue in the retrieved record,
return result A.
If not found,
return result B.
If more than one record is found,
return result C.
If the associated SystemTypeCode is equal to "NOXC",
Locate a MonitorSpan record for the location where the ComponentTypeCode is equal to "NOX", the SpanScale is equal to
"IF", the BeginDate/IFour is on or before the later of the Begin Date/FFour of the associated system and the BeginDate/IFour
of the test, and the EndDate is null or the EndDate/IFour is on or after later of the Begin Date/IFour of the associated system
and the EndDate/IFour of the test.
If one record is found,
If IFighest RATA CEM Value is greater than the MPCValue in the retrieved record,
return result D.
If not found,
return result E.
If more than one record is found,
return result F.
If the associated SystemTypeCode is equal to "S02",
Locate a MonitorSpan record for the location where the ComponentTypeCode is equal to "S02", the SpanScale is equal to
"IF", the BeginDate/IFour is on or before the later of the Begin Date/FFour of the associated system and the BeginDate/IFour
of the test, and the EndDate is null or the EndDate/IFour is on or after later of the Begin Date/IFour of the associated system
and the EndDate/IFour of the test.
If one record is found,
If IFighest RATA CEM Value is greater than the MPCValue in the retrieved record,
return result D.
Environmental Protection Agency
Page 464 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If not found,
return result E.
If more than one record is found,
return result F.
If the associated SystemTypeCode is equal to "FLOW",
Locate a MonitorSpan record for the location where the ComponentTypeCode is equal to "FLOW", the BeginDate/Hour is
on or before the later of the Begin Date/Hour of the associated system and the BeginDate/Hour of the test, and the EndDate
is null or the EndDate/Hour is on or after later of the Begin Date/Hour of the associated system and the EndDate/Hour of
the test.
If one record is found,
If Highest RATA CEM Value is greater than the MPFValue in the retrieved record,
return result D.
If not found,
return result E.
If more than one record is found,
return result F.
If the associated SystemTypeCode is equal to "HG",
Locate a MonitorSpan record for the location where the ComponentTypeCode is equal to "HG", the SpanScale is equal to
"H", the BeginDate/Hour is on or before the later of the Begin Date/Hour of the associated system and the BeginDate/Hour
of the test, and the EndDate is null or the EndDate/Hour is on or after later of the Begin Date/Hour of the associated system
and the EndDate/Hour of the test.
If one record is found,
If Highest RATA CEM Value is greater than the MPCValue in the retrieved record,
return result D.
If not found,
return result E.
If more than one record is found,
return result F.
Results:
Result
B
C
D
F
G
H
I
Response
For one or more runs of this RATA the value from the NOX system being tested is
greater than the maximum emission rate defined in the NORX default record.
You have not reported a valid NORX default record that was active during the test.
You have reported more than one NORX default record that was active during the test.
For one or more runs of this RATA the value from the CEM system being tested is
greater than the MPC/MPF value defined in the span record.
You have not reported a valid monitoring plan span record that was active during the
test.
You reported more than one monitoring plan span record that was active during the test.
For one or more runs of this RATA the value from the system being tested is greater
than the maximum HG concentration defined in the HGX default record.
You have not reported a valid HG span or HGX default record that was active during
the test.
You have reported more than one HGX default record that was active during the test.
Severity
Non-Critical Error
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Non-Critical Error
Non-Critical Error
Environmental Protection Agency
Page 465 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
Conditions: RATA Aborted Equals false
Environmental Protection Agency
Page 466 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-7
Check Name: Flow Values Rounded
Related Former Checks: RATA-55
Applicability: CEM Check
Description:
Specifications:
For a RATA with an associated SystemTypeCode equal to "FLOW":
If Rounded Flow RATA Values is equal to false,
return result A.
Results:
Result Response Severity
A For one or more runs of this flow RATA the CEM Value and/or Reference Value was Non-Critical Error
not rounded to the nearest 1000 scfh.
Usage:
1 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
Conditions: RATA Aborted Equals false
Environmental Protection Agency
Page 467 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: RATA-8
Check Name: Test Claim Code Valid
Related Former Checks: SLF-1
Applicability: CEM Check
Description:
Specifications:
For the Test Qualification record:
Set RATA Claim Code Valid to false.
If the TestClaimCode is null,
return result A.
If the TestClaimCode is not equal to "SLC", "NLE", or "ORE",
return result B.
If the TestClaimCode is equal to "SLC",
If the associated SystemTypeCode is not equal to "FLOW",
return result C.
If RATA Level List contains more than one Operating Level Code,
return result D.
Otherwise,
Locate a Monitor Plan Reporting Frequency record for the location where the Begin Quarter is on or before the
quarter of the EndDate in the Test Summary record, and the EndQuarter is null or is on or after the quarter of the
EndDate in the Test Summary record.
If not found,
Locate the Monitor Plan Reporting Frequency record for the location with the earliest Begin Quarter where
the EndQuarter is null or is on or after the quarter of the EndDate in the Test Summary record.
If a Monitor Plan Reporting Frequency record is found above, and the ReportingFrequencyCode is equal to "Q",
set Test Claim Code Valid to true.
If RATA Claim Code is equal to "NLE",
set RATA Claim Code to "SLC", and return result E.
Otherwise,
set RATA Claim Code to "SLC".
Otherwise,
return result F.
If the TestClaimCode is equal to "NLE",
If RATA Level List contains more than one Operating Level Code,
return result D.
If RATA Claim Code is equal to "SLC",
return result E.
Otherwise,
Environmental Protection Agency
Page 468 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
set RATA Claim Code Valid to true, and RATA Claim Code to "NLE".
If the TestClaimCode is equal to "ORE",
If the associated SystemTypeCode is not equal to "FLOW",
return result C.
If RATA Level List contains less than two Operating Level Codes,
return result G.
Otherwise,
set RATA Claim Code Valid to true, and RATA Claim Code to "ORE".
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — RATA Claim
Results:
Result Response
A You did not provide [fieldname], which is required for [key],
B You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key],
C The Test Claim [value] for this RATA is invalid, because this claim only applies to a
FLOW monitoring system.
D The Test Claim [value] is invalid, because this claim only applies to a single-level
RATA.
E You have reported both an SLC and an NLE test claim for this single-level FLOW
RATA. You do not need to report a normal-load exemption claim if you are reporting a
single-load claim. The NLE claim will be ignored.
F The Test Claim [value] for this RATA is invalid, because this claim only applies to
year-round reporters, but the Monitoring Plan Reporting Frequency records do not
indicate that this location is a year-round reporter.
G The Test Claim [value] is invalid, because this claim only applies to a multi-level Flow
RATA.
Environmental Protection Agency
Page 469 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For a TestQualification record:
If TestClaimCode equal to "SLC":
If HighLoadPercentage is null,
return result A.
If HighLoadPercentage is less than 0 or greater than 100,
return result B.
If RATA Level List is equal to "H",
If HighLoadPercentage is less than 85,
return result C.
If RATA Level List is equal to "L",
If HighLoadPercentage + MidLoadPercentage + LowLoadPercentage is less than 99 or greater than 101,
return result D.
Otherwise,
If HighLoadPercentage is not null,
return result E.
RATA-9
Single-Level Claim High Load Percentage Valid
SLF-2, 3C
CEM Check
Results:
Result
A
B
C
D
E
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
You indicated that this unit/stack qualifies for a single load flow RATA at [level] level,
but [fieldname] is less than the minimum value of 85%.
The sum of the percentages provided for Low, Mid and High load levels does not
represent 100% of the range of operation.
You have reported [fieldname] for [key], but this value does not apply to this type of
claim.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
Critical Error Level 1
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report — RATA Claim
Conditions: RATA Claim Code Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Test Qualification Evaluation
Conditions: RATA Test Claim Code Valid Equals true
Environmental Protection Agency
Page 470 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
RATA-10
Single-Level Claim Mid Load Percentage Valid
SLF-2, 3B
CEM Check
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For a TestQualification record:
If TestClaimCode equal to "SLC":
If MidLoadPercentage is null,
return result A.
If MidLoadPercentage is less than 0 or greater than 100,
return result B.
If RATA Level List is equal to "M",
If MidLoadPercentage is less than 85,
return result C.
If RATA Level List is equal to "H",
If HighLoadPercentage + MidLoadPercentage + LowLoadPercentage is less than 99 or greater than 101,
return result D.
Otherwise,
If MidLoadPercentage is not null,
return result E.
Results:
Result
A
B
C
D
E
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
You indicated that this unit/stack qualifies for a single load flow RATA at [level] level,
but [fieldname] is less than the minimum value of 85%.
The sum of the percentages provided for Low, Mid and High load levels does not
represent 100% of the range of operation.
You have reported [fieldname] for [key], but this value does not apply to this type of
claim.
Process/Category: QA Test Evaluation Report — RATA Claim
Conditions: RATA Claim Code Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Test Qualification Evaluation
Conditions: RATA Test Claim Code Valid Equals true
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 471 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For a TestQualification record:
If TestClaimCode equal to "SLC":
If LowLoadPercentage is null,
return result A.
If LowLoadPercentage is less than 0 or greater than 100,
return result B.
If RATA Level List is equal to "L",
If LowLoadPercentage is less than 85,
return result C.
If RATA Level List is equal to "M",
If HighLoadPercentage + MidLoadPercentage + LowLoadPercentage is less than 99 or greater than 101,
return result D.
Otherwise,
If LowLoadPercentage is not null,
return result E.
RATA-11
Single-Level Claim Low Load Percentage Valid
SLF-2, 3A
CEM Check
Results:
Result
A
B
C
D
E
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
You indicated that this unit/stack qualifies for a single load flow RATA at [level] level,
but [fieldname] is less than the minimum value of 85%.
The sum of the percentages provided for Low, Mid and High load levels does not
represent 100% of the range of operation.
You have reported [fieldname] for [key], but this value does not apply to this type of
claim.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
Critical Error Level 1
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report — RATA Claim
Conditions: RATA Claim Code Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Test Qualification Evaluation
Conditions: RATA Test Claim Code Valid Equals true
Environmental Protection Agency
Page 472 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-12
Check Name: Single-Level Claim Begin Date Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a valid TestQualification record:
If TestClaimCode equal to "SLC":
Set SLC Collection Period to null.
If BeginDate is null,
return result A.
If BeginDate is earlier than 1/1/1993,
return result B.
If Test End Date Valid is true,
Locate the latest QASuppAttribute record for the location where the associated SystemTypeCode is equal to
"FLOW", the associated TestTypeCode is equal to "RATA", the associated TestResultCode is equal to "PASSED"
or "PASSAPS", the associated EndDate is less than the EndDate of the TestSummary record of this RATA, and
either the AttributeName is equal to "OP LEVEL CD LIST" and the AttributeValue contains more than one
level or the Attribute Name is equal to "TESTCLAIMCD" and the Attribute Value is equal to "SLC".
If found,
If the BeginDate in the TestQualification record is equal to the EndDate in the QASuppData record,
set SLC Collection Period to "Standard".
Otherwise,
If the BeginDate in the TestQualification record is equal to the first day of the quarter of the either
the BeginDate or the EndDate in the QASuppData record,
set SLC Collection Period to "Alternative".
Otherwise,
return result C.
Otherwise,
If BeginDate is not null,
return result D.
Results:
Result
A
B
D
Response
You did not provide [fieldname], which is required for [key].
You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
The BeginDate in the single-level claim for this RATA does not correspond to the
completion date of the last annual flow RATA for the system.
You have reported [fieldname] for [key], but this value does not apply to this type of
claim.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 473 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report — RATA Claim
Environmental Protection Agency
Page 474 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-13
Check Name: Single-Level Claim End Date Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a valid TestQualification record:
If TestClaimCode equal to "SLC":
If EndDate is null,
return result A.
If SLC Collection Period is equal to "Standard",
If the EndDate is more than 21 days prior to the BeginDate of the TestSummary record of this RATA,
return result B.
If SLC Collection Period is equal to "Alternative",
If the EndDate is not equal to the last day of the quarter prior to the BeginDate of the TestSummary record of this
RATA,
return result B.
Otherwise,
If EndDate is not null,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The EndDate in the single-level claim for this RATA is not within 21 days of the begin
date of this RATA.
You have reported [fieldname] for [key], but this value does not apply to this type of
claim.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report — RATA Claim
Environmental Protection Agency
Page 475 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-14
Check Name: Initialize RATA Summary Variables
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA summary record:
If Simultaneous RATA Runs is null,
Set RATA Level Valid to true.
Otherwise,
Set RATA Level Valid to false.
Set RATA Run Count, RATA Unused Run Count, RATA WAF Run Count, RATA Sum WAF, RATA Sum Differences, RATA
Sum Square Differences, RATA Sum Gross Unit Load, RATA Sum CEM Values, RATA Sum Reference Values, RATA Maximum
Traverse Point Count, RATA Maximum Traverse Point Count for All Runs, and Last RATA Run Number to 0.
Set RATA Minimum Traverse Point Count to 999.
Set Calculate Average Gross Unit Load and Flow RATA Level Valid to true.
Set RATA Stack Diameter Valid to true.
Set RATA Calc Stack Area, RATA Calc Level WAF, and RATA Invalid Probes to null.
Set RATA Stack Flow Array as a null decimal array with a dimension equal to Highest RATA Run Number + 1.
Results:
Result
Usage:
1
1
2
3
4
Response
Process/Category:
Process/Category:
Process/Category:
Process/Category:
Process/Category:
Severity
QA Test Evaluation Report — RATA Summary (Pass 1)
QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 476 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-15
Check Name: Operating Level Valid
Related Former Checks: RATA-10
Applicability: CEM Check
Description:
Validation Tables:
Operating Level Code (Lookup Table)
Specifications:
For the RATA Summary record:
If the OperatingLevelCode is null,
set RATA Level Valid to false, and return result A.
If the OperatingLevelCode is not in the OperatingLevelCode lookup table,
set RATA Level Valid to false, and return result B.
If Test Dates Consistent is equal to true, and the associated SystemTypeCode is not equal to "NOXP",
If the associated UnitStackPipelD begins with "CS" or "MS",
Locate all UnitStackConfiguration records where the stack/pipe location is the RATA location, the BeginDate is on
or before the Test BeginDate, and the EndDate is null or is on or after the Test EndDate.
For each UnitStackConfiguration record found,
Locate a MonitorQualification record where the unit is the unit location in the UnitStackConfiguration
record, the QualificationTypeCode is equal to "PK" or "SK", the BeginDate is on or before the Test
BeginDate and the EndDate is null or is on or after the Test EndDate.
If found for all units,
If the OperatingLevelCode is equal to "N",
set RATA Claim Code to "PEAK".
Otherwise,
return result D.
else if the OperatingLevelCode is equal to "N",
return result C.
Otherwise,
Locate a MonitorQualification record where the location is RATA location, the QualificationTypeCode is equal to
"PK" or "SK", the BeginDate is on or before the Test BeginDate and the EndDate is null or is on or after the Test
EndDate.
If not found, and the OperatingLevelCode is equal to "N",
return result C.
If found,
If the OperatingLevelCode is equal to "N",
set RATA Claim Code to "PEAK".
Otherwise,
return result D.
Environmental Protection Agency
Page 477 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
D
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
The OperatingLevelCode in the RATA Summary record should not be 'N'. Operating
levels should be identified as 'N' only for peaking units or for stacks associated only with
peaking units.
You reported a RATA for a peaking unit (or a stack associated only with peaking units),
but reported operating level code [value] in the RATA Summary record instead of "N"
for normal. For peaking unit (or stack) RATAs include an "N" rather than L, M, or H,
because the entire range of operation is considered normal.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Usage:
1
Process/Category:
QA Test Evaluation Report — RATA Summary (Pass 1)
Environmental Protection Agency
Page 478 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-16
Check Name:
Reference Method Code Valid
Related Former Checks: RATA-33B
Applicability:
CEM Check
Description:
Validation Tables:
Ref Method Code (Lookup Table)
Ref Method Code (Lookup Table)
Specifications:
For the RATA Summary record:
Set RATA Reference Method Valid to true.
If the associated SystemTypeCode of the RATA is not equal to "FLOW",
If the ReferenceMethodCode is null,
If the test EndDate is on or after ECMPS MP Begin Date,
return result A.
Otherwise,
return result D.
If the ReferenceMethodCode is not in the ReferenceMethodCode lookup table,
return result B.
If ReferenceMethodCode contains "20" and the test EndDate is on or after the ECMPS MP Begin Date,
return result E.
If the ParameterCode in the ReferenceMethodCode lookup table does not contain the associated SystemTypeCode,
If the test EndDate is on or after ECMPS MP Begin Date,
return result C.
Otherwise,
return result D.
Otherwise,
Set RATA Ref Method Code to the ReferenceMethodCode.
If the ReferenceMethodCode is null,
set RATA Level Valid and RATA Reference Method Valid to false, and return result A.
If the ReferenceMethodCode is not in the ReferenceMethodCode lookup table,
set RATA Level Valid and RATA Reference Method Valid to false, and return result B.
If the ParameterCode in the ReferenceMethodCode lookup table does not contain the associated SystemTypeCode,
set RATA Level Valid and RATA Reference Method Valid to false, and return result C.
If RATA Reference Method Valid is false, do not perform checks in RATA Run, Flow RATA Run (Pass 1 and 2 and
Method 2H), RATA Traverse, and RATA Summary (Method 2H) categories.
Otherwise,
Environmental Protection Agency
Page 479 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
C
D
E
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
The ReferenceMethodCode [value] in the RATA Summary Data record for [key] is not
appropriate for a RATA conducted for a [system type] system.
The ReferenceMethodCode in the RATA Summary Data record for [key] is null or is
not appropriate for a RATA conducted for a [system type] system.
You reported a reference method of "20" in the RATA Summary Data record for [key],
but this method is no longer acceptable.
Process/Category: QA Test Evaluation Report — RATA Summary (Pass 1)
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
Severity
Critical Error Level 1
Fatal
Critical Error Level 1
Non-Critical Error
Critical Error Level 1
Environmental Protection Agency
Page 480 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-17
Check Name: Mean CEM Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA summary record:
If MeanCEMValue is null,
return result A.
If MeanCEMValue is not greater than zero,
return result B.
Results:
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category:
1 Process/Category:
Result Response
A You did not provide [fieldname], which is required for [key],
B You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
QA Test Evaluation Report — RATA Summary (Pass 1)
QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
Environmental Protection Agency
Page 481 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-18
Check Name: Mean Reference Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA summary record:
If MeanRATAReferenceValue is null,
return result A.
If MeanRATAReferenceValue is not greater than zero,
return result B.
Results:
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category:
1 Process/Category:
Result Response
A You did not provide [fieldname], which is required for [key],
B You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
QA Test Evaluation Report — RATA Summary (Pass 1)
QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
Environmental Protection Agency
Page 482 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-19
Check Name:
Mean Difference Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the RATA summary record:
If MeanDifference is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — RATA Summary (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
Environmental Protection Agency
Page 483 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: RATA-20
Check Name: Standard Deviation Difference Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA summary record:
If StandardDeviationDifference is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — RATA Summary (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
Environmental Protection Agency
Page 484 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-21
Check Name:
Confidence Coefficient Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the RATA summary record:
If ConfidenceCoefficient is null,
return result A.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — RATA Summary (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
Environmental Protection Agency
Page 485 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: RATA-22
Check Name: T-Value Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA Summary record:
If TValue is null,
return result A.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — RATA Summary (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
Environmental Protection Agency
Page 486 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-23
Check Name: Average Gross Unit Load Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA summary record:
If AverageGrossUnitLoad in the RATA
return result A.
If AverageGrossUnitLoad in the RATA
return result B.
Results:
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category:
1 Process/Category:
Summary record is null,
Summary record is less than or equal to 0,
Result Response
A You did not provide [fieldname], which is required for [key],
B You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
QA Test Evaluation Report — RATA Summary (Pass 1)
QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
Environmental Protection Agency
Page 487 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-24
Check Name: Relative Accuracy Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a RATA summary record.
If RelativeAccuracy is null,
return result A.
If RelativeAccuracy is less than 0,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values. This value must be greater than or equal to zero.
Usage:
1 Process/Category: QA Test Evaluation Report — RATA Summary (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
Environmental Protection Agency
Page 488 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-25
Check Name:
Run Number Valid
Related Former Checks: RATA-8
Applicability:
CEM Check
Description:
Specifications:
For the RATA run:
If RunNumber is null,
set RATA Level Valid to false, and return result A.
If RunNumber is not greater than or equal to 1 and less than or equal to 99,
set RATA Level Valid to false, and return result B.
If Test Dates Consistent is equal to true and Last RATA Run Number is greater than or equal to 0,
If RunNumber is not one greater than the Last Run Number,
set Last RATA Run Number to -1, RATA Level Valid to false, and return result C.
Otherwise,
set Last RATA Run Number to RunNumber.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
There are duplicate, missing or non-sequential run numbers when the run records are
time ordered by run end date and time for operating level [level].
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report RATA Run
Environmental Protection Agency
Page 489 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-26
Check Name:
Gross Unit Load Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For a RATA run with a RunStatusCode equal to "RUNUSED":
If GrossUnitLoad is null,
set Calculate Average Gross Unit Load to false, and return result A.
If GrossUnitLoad is less than or equal to 0,
set Calculate Average Gross Unit Load to false, and return result B.
Otherwise,
add GrossUnitLoad to RATA Sum Gross Unit Load.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report RATA Run
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
Environmental Protection Agency
Page 490 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-27
Check Name:
CEM Value Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For a RATA run with a RunStatusCode equal to "RUNUSED":
If CEMValue is null,
set RATA Level Valid to false, and return result A.
If CEMValue is less than 0,
set RATA Level Valid to false, and return result B.
Otherwise,
add CEMValue to RATA Sum CEM Value.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report RATA Run
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
Environmental Protection Agency
Page 491 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the RATA run:
If the Flow RATA Run ID is not null.
Set Flow RATA Run Valid to true.
If the associated ReferenceMethodCode does not begin with "2F", "2G", or "M2H",
set Flow RATA Run Valid to false, and return result A.
Else if the RunStatusCode is equal to "NOTUSED",
set Flow RATA Run Valid to false.
If Flow RATA Run Valid is false, do not perform checks in Flow RATA Run (Pass 1 and Pass 2) and RATA Traverse
categories.
Otherwise,
Set Flow RATA Run Valid to false.
If the associated ReferenceMethodCode begins with "2F" or "2G", and the RunStatusCode is equal to "RUNUSED",
set RATA Level Valid to false, and return result C.
RATA-28
Flow Run Record Valid
RATA-33B, 34
CEM Check
Results:
Result
A
B
Response
You reported a Flow RATA Run record for [key], which is not appropriate for a RATA
conducted using ReferenceMethodCode [method].
You reported a Flow RATA Run record for [key], which is not appropriate for a run
with a RunStatusCode equal to "NOTUSED". You should only report Flow RATA
records for runs that are used in the calculation of relative accuracy.
You did not report a Flow Run record for [key]. When a RATA is performed using
method 2F or 2G, Flow Run record must be reported for each run used in the relative
accuracy calculation.
Severity
Critical Error Level 1
Non-Critical Error
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report RATA Run
Environmental Protection Agency
Page 492 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-29
Check Name: Run Status Code Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA run:
If the RunStatusCode is null,
set RATA Level Valid to false, and return result A.
If RunStatusCode is equal to "RUNUSED",
add 1 to RATA Used Run Count.
If RunStatusCode is equal to "NOTUSED",
add 1 to RATA Unused Run Count.
Otherwise,
set RATA Level Valid to false, and return result B.
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Process/Category: QA Test Evaluation Report RATA Run
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 493 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the RATA run:
If the RunBeginDate is null, or the RunBeginHour is null or not between 0 and 23, or the RunBeginMinute is null or not between 0
and 59.
set RATA Run Begin Time Valid to false, RATA Level Valid to false, and return result A.
Otherwise,
set RATA Run Begin Time Valid to true.
RATA-30
Run Begin Time Valid
CEM Check
Results:
Result Response Severity
A The BeginDate, BeginHour, and/or BeginMinute for [key] is invalid. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report RATA Run
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
Environmental Protection Agency
Page 494 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-31
Check Name:
Run End Time Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the RATA run:
Set RATA Run End Time Valid to true
If the RunEndDate is null, or the RunEndHour is null or not between 0 and 23, or the RunEndMinute is null or not between 0 and
59.
set RATA Run End Time Valid to false, RATA Level Valid to false, and return result A.
If RATA Run Begin Time Valid is true, and the Run BeginDate, Hour, and Minute is later than the Run EndDate, Hour, and Minute,
Set RATA Level Valid to false, and return result B.
Results:
Result
A
B
Response
The EndDate, EndHour, and/or EndMinute for [key] are invalid.
The run End Time is earlier than the run Begin Time for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report RATA Run
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
Environmental Protection Agency
Page 495 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-32
Check Name: Run Length Valid
Related Former Checks: RATA-11, 12
Applicability: CEM Check
Description:
Specifications:
For a RATA run with valid begin and end times and a RunStatusCode equal to "RUNUSED":
If the associated SystemTypeCode of the RATA is equal to "FLOW",
If the difference between the Run Begin Time and End Time is less than 4 minutes,
return result A.
If the associated SystemTypeCode of the RATA does not begin with "HG",
If the difference between the Run Begin Time and End Time is less than 20 minutes,
return result B.
Otherwise,
If the associated ReferenceMethodCode is equal to "30A",
If the difference between the Run Begin Time and End Time is less than 10 minutes,
return result D.
If the associated ReferenceMethodCode is equal to "30B",
If the difference between the Run Begin Time and End Time is less than 29 minutes,
return result C.
Results:
Result
A
B
C
D
Response
The run for [key] was less than five minutes. Each run must be at least five minutes in
duration.
The run for [key] was less than 21 minutes. Each run must be at least 21 minutes in
duration.
The run for [key] was less than 30 minutes. Each run must be at least 30 minutes in
duration.
The run for [key] was less than 10 minutes. Each run must be at least 10 minutes in
duration.
Severity
Critical Error Level 2
Critical Error Level 2
Critical Error Level 2
Critical Error Level 2
Usage:
1
Process/Category:
QA Test Evaluation Report RATA Run
Environmental Protection Agency
Page 496 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-33
Check Name:
Reference Value Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For a RATA run with a RunStatusCode equal to "RUNUSED":
If RATAReferenceValue is null,
set RATA Level Valid to false, and return result A.
If RATAReferenceValue is less than 0,
set RATA Level Valid to false, and return result B.
Otherwise,
If Flow RATA Run Valid is equal to false,
Add RATAReferenceValue to RATA Sum Reference Values.
If the CEMValue is greater than or equal to 0,
Add (RATAReferenceValue - CEMValue) to RATA Sum Differences.
Add the square of (RATAReferenceValue - CEMValue) to RATA Sum Square Differences.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report RATA Run
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
Environmental Protection Agency
Page 497 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-34
Check Name: Run Count Valid
Related Former Checks: RATA-6, 7
Applicability: CEM Check
Description:
Specifications:
For the operating level of a RATA:
Set Calculate RATA Level to RATA Level Valid.
If the RATA Used Run Count is less than 9,
set Calculate RATA Level to false.
If RATA Unused Run Count is greater than 3,
return result A.
Otherwise,
return result B.
Otherwise,
If the RATA Unused Run Count is greater than 3,
set Calculate RATA Level to false, and return result C.
Results:
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report — RATA Summary (Pass 2)
Result Response
A The RATA for [key] contains fewer than nine RATA run records with a run status of
"RUNUSED" and more than three RATA run records with a run status of "NOTUSED".
A minimum of nine runs are required for each complete operating level test; only three
runs may be excluded from a test at each operating level.
B The RATA for [key] contains fewer than nine RATA run records with a run status of
"RUNUSED". A minimum of nine runs are required for each complete operating level
test.
C There are more than three RATA run records for [key] with a run status of "NOTUSED"
which indicates runs excluded from the data analysis. Only three runs may be excluded
from a test at each operating level.
Environmental Protection Agency
Page 498 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-35
Check Name:
Calculate Relative Accuracy
Related Former Checks: RATA-13, 27
Applicability:
CEM Check
Description:
Validation Tables:
T-Values (Cross Check Table)
Test Tolerances (Cross Check Table)
Specifications:
For the RATA summary record:
If Calculate RATA Level is true,
If RATA Sum Reference Value is greater than 0 and RATA Summary Sum CEM Value is not equal to 0,
If the SystemTypeCode of the associated system is equal to "FLOW",
If OperatingLevelCode is equal to "H" or "N",
set High Sum Reference Value to RATA Sum Reference Value,
set High Run Count to RATA Used Run Count
If OperatingLevelCode is equal to "M",
set Mid Sum Reference Value to RATA Sum Reference Value,
set Mid Run Count to RATA Used Run Count
If OperatingLevelCode is equal to "L",
set Low Sum Reference Value to RATA Sum Reference Value,
set Low Run Count to RATA Used Run Count
Calculate RATA Summary Mean CEM Value = RATA Sum CEM Value / RATA Used Run Count.
Calculate RATA Summary Mean Reference Value = RATA Sum Reference Value / RATA Used Run Count.
Calculate RATA Summary Mean Difference = RATA Sum Differences / RATA Used Run Count.
Calculate Tempval = RATA Sum Square Differences - ((RATA Sum Differences ** 2) / RATA Used Run Count)
If Tempval = 0
set RATA Summary Standard Deviation = 0
Otherwise,
calculate RATA Summary Standard Deviation = SQRT(Tempval / (RATA Run Count - 1))
If RATA Used Run Count is greater than 31,
set RATA Summary TValue to 1.
Otherwise,
Locate TValues cross-check record where Number of Items is equal to RATA Used Run Count - 1.
Set RATA Summary TValue to the TValue in the cross-check record.
Calculate RATA Summary Confidence Coefficient = (RATA TValue * RATA Standard Deviation) / SQRT(RATA
Used Run Count).
Calculate Tempval = ((ABS(RATA Summary Mean Difference) + ABS(RATA Summary Confidence Coefficient))
/ RATA Summary Mean Reference Value * 10000.
Round Tempval to the nearest integer.
Calculate RATA Summary Relative Accuracy = min(Tempval / 100, 999.99).
If RATA Result is not equal to "INVALID",
Environmental Protection Agency
Page 499 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If Overall Relative Accuracy is null or is less than RATA Summary Relative Accuracy,
set Overall Relative Accuracy to RATA Summary Relative Accuracy.
If the Relative Accuracy in the RATA Summary record is greater than or equal to 0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RATA Summary Relative Accuracy and the Relative
Accuracy in the RATA Summary record is greater than the tolerance in the cross-check record,
return result A.
Otherwise,
Set Calculate RATA Level to false, RATA Result to "INVALID", RATA Summary Mean CEM Value, RATA
Summary Mean Reference Value, RATA Summary Mean Difference, RATA Summary Confidence Coefficient,
RATA Summary Standard Deviation, RATA Summary TValue, and RATA Summary Relative Accuracy, and
Overall Relative Accuracy to null, and return result C.
Set RATA Result to "INVALID", RATA Summary Mean CEM Value, RATA Summary Mean Reference Value, RATA
Summary Mean Difference, RATA Summary Confidence Coefficient, RATA Summary Standard Deviation, RATA
Summary TValue, and RATA Summary Relative Accuracy, and Overall Relative Accuracy to null, and return result B.
Otherwise,
Results:
Result
A
Response
The values reported for [fieldname] in the RATA summary record for [key] are
inconsistent with the values that have been recalculated from the run records.
The software could not evaluate the [test] calculations reported for [key], because of the
errors listed above.
The software could not evaluate the RATA calculations reported for [key], because the
sum of the reference values is less than or equal to 0 or the sum of the CEM values is
equal to 0.
Severity
Critical Error Level 1
B
Informational Message
C
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — RATA Summary (Pass 2)
Environmental Protection Agency
Page 500 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-36
Check Name:
Calculate Average Gross Unit Load
Related Former Checks: RATA-25
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the RATA summary record:
If Calculate RATA Level is true and Calculate Average Gross Unit Load is equal to true:
If the SystemTypeCode of the associated system is equal to "FLOW",
If OperatingLevelCode is equal to "H" or "N",
set High Sum Gross Unit Load to RATA Sum Gross Unit Load.
If OperatingLevelCode is equal to "M",
set Mid Sum Gross Unit Load to RATA Sum Gross Unit Load.
If OperatingLevelCode is equal to "L",
set Low Sum Gross Unit Load to RATA Sum Gross Unit Load.
Calculate RATA Summary Average Gross Unit Load = RATA Sum Gross Unit Load / RATA Used Run Count.
Round RATA Summary Average Gross Unit Load to the nearest integer.
If OperatingLevelCode is equal to "H",
set High Average Gross Unit Load to RATA Summary Average Gross Unit Load.
If OperatingLevelCode is equal to "M",
set Mid Average Gross Unit Load to RATA Summary Average Gross Unit Load.
If OperatingLevelCode is equal to "L",
set Low Average Gross Unit Load to RATA Summary Average Gross Unit Load.
If the the AverageGrossUnitLoad in the RATA Summary record is greater than 0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "AverageGrossUnitLoad".
If the absolute value of the difference between the RATA Summary Average Gross Unit Load and the
AverageGrossUnitLoad in the RATA Summary record is greater than the tolerance in the cross-check record,
return result A.
Otherwise,
If RATA Summary Average Gross Unit Load is not equal to the AverageGrossUnitLoad in the RATA
Summary record,
If OperatingLevelCode is equal to "H",
set High Average Gross Unit Load to the AverageGrossUnitLoad in the RATA Summary
record.
If OperatingLevelCode is equal to "M",
set Mid Average Gross Unit Load to the AverageGrossUnitLoad in the RATA Summary
record
Environmental Protection Agency
Page 501 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If OperatingLevelCode is equal to "L",
set Low Average Gross Unit Load to the AverageGrossUnitLoad in the RATA Summary
record.
Otherwise,
set RATA Summary Average Gross Unit Load to null.
Results:
Result Response Severity
A The RATA summary record for [key] contains an average gross unit load which is Non-Critical Error
inconsistent with the average gross unit load recalculated from the run records used in
the calculation of results.
Usage:
1 Process/Category: QA Test Evaluation Report — RATA Summary (Pass 2)
Environmental Protection Agency
Page 502 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-37
Check Name:
Determine Operating Level Results
Related Former Checks: RATA-14, 26
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the RATA summary record:
If Calculate RATA Level is true,
If the associated SystemTypeCode is equal to "S02" or "NOXC",
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If the RATA Summary Mean Reference Value (rounded to 1 decimal) is less than or equal to 250.0 and the
absolute value of the RATA Summary Mean Difference (rounded to 1 decimal) is less than or equal to 8.0,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the RATA Summary Mean Reference Value (rounded to 1 decimal) is less than or equal to 250.0 and the
absolute value of the RATA Summary Mean Difference (rounded to 1 decimal) is less than or equal to 12.0 and the
associated TestEndDate is on or after 6/25/1999,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 10.0,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If the RATA Summary Mean Reference Value (rounded to 1 decimal) is less than or equal to 250.0 and the
absolute value of the RATA Summary Mean Difference (rounded to 1 decimal) is less than or equal to 15.0,
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
Otherwise,
set tempresult to "FAILED" and tempfrequency to null.
If tempfrequency is equal to "2QTRS",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the RATA
Summary Record is greater than or equal to 0 and less than or equal to 7.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA Summary
Relative Accuracy (rounded to 2 decimal places) is less than or equal to the tolerance in the
cross-check record,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the RATA Summary Mean Reference
Value (rounded to 1 decimal) is less than or equal to 250.0, and the MeanDifference in the RATA
Summary record is greater than or equal to 0 and less than or equal to 12.0,
If the MeanDifference in the RATA Summary record is less than or equal to 8.0 or the associated
TestEndDate is on or after 6/25/1999,
Environmental Protection Agency
Page 503 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"RATA" and the FieldDescription is equal to "MeanDifferencePPM".
If the absolute value of the difference between the MeanDifference and the RATA
Summary Mean Difference (rounded to one decimal) is less than or equal to the tolerance
in the cross-check record,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
else if tempresult is equal to "FAILED",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the RATA
Summary Record is greater than or equal to 0 and less than or equal to 10.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA Summary
Relative Accuracy (rounded to 2 decimal places) is less than or equal to the tolerance in the
cross-check record,
If the RelativeAccuracy in the RATA Summary Record is less than or equal to 7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
Otherwise,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the RATA Summary Mean Reference
Value (rounded to 1 decimal) is less than or equal to 250.0, and the MeanDifference in the RATA
Summary record is greater than or equal to 0 and less than or equal to 15.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "MeanDifferencePPM".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to one decimal) is less than or equal to the tolerance in the cross-check
record,
If the MeanDifference in the RATA Summary record is less than or equal to 8.0,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the MeanDifference in the RATA Summary record is less than or equal to 12.0, and the
associated TestEndDate is on or after 6/25/1999,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
Otherwise,
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
If the associated SystemTypeCode is equal to "NOX" or "NOXP",
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If the RATA Summary Mean Reference Value (rounded to 3 decimal) is less than or equal to 0.200 and the
absolute value of the RATA Summary Mean Difference (rounded to 2 decimal) is less than or equal to 0.01,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the RATA Summary Mean Reference Value (rounded to 3 decimal) is less than or equal to 0.200 and the
absolute value of the RATA Summary Mean Difference (rounded to 3 decimal) is less than or equal to 0.015 and
Environmental Protection Agency
Page 504 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
the associated TestEndDate is on or after 6/25/1999,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 10.0,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If the RATA Summary Mean Reference Value (rounded to 3 decimal) is less than or equal to 0.200 and the
absolute value of the RATA Summary Mean Difference (rounded to 2 decimal) is less than or equal to 0.02,
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
Otherwise,
set tempresult to "FAILED" and tempfrequency to null.
If tempfrequency is equal to "2QTRS",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the RATA
Summary Record is greater than or equal to 0 and less than or equal to 7.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA Summary
Relative Accuracy (rounded to 2 decimal places) is less than or equal to the tolerance in the
cross-check record,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the RATA Summary Mean Reference
Value (rounded to 3 decimal) is less than or equal to 0.200, and the MeanDifference in the RATA
Summary record is greater than or equal to 0 and less than or equal to 0.015,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "MeanDifferenceRATE".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to two decimal places) is less than or equal to the tolerance in the cross-check
record, and the MeanDifference in the RATA Summary record is less than or equal to 0.01,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to three decimal places) is less than or equal to the tolerance in the
cross-check record, and the MeanDifference in the RATA Summary record is less than or equal to
0.015, and the associated TestEndDate is on or after 6/25/1999,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
else if tempresult is equal to "FAILED",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the RATA
Summary Record is greater than or equal to 0 and less than or equal to 10.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA Summary
Relative Accuracy (rounded to 2 decimal places) is less than or equal to the tolerance in the
cross-check record,
If the RelativeAccuracy in the RATA Summary Record is less than or equal to 7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
Environmental Protection Agency
Page 505 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the RATA Summary Mean Reference
Value (rounded to 3 decimal) is less than or equal to 0.200, and the MeanDifference in the RATA
Summary record is greater than or equal to 0 and less than or equal to 0.02,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "MeanDifferenceRATE".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to two decimal places) is less than or equal to the tolerance in the cross-check
record, and the MeanDifference in the RATA Summary record is less than or equal to 0.01,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to three decimal places) is less than or equal to the tolerance in the
cross-check record, and the MeanDifference in the RATA Summary record is less than or equal to
0.015, and the associated TestEndDate is on or after 6/25/1999,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to two decimal places) is less than or equal to the tolerance in the cross-check
record,
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
If the associated SystemTypeCode is equal to "C02" or "02",
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If the absolute value of the RATA Summary Mean Difference (rounded to 1 decimal) is less than or equal to 0.7,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 10.0,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If the absolute value of the RATA Summary Mean Difference (rounded to 1 decimal) is less than or equal to 1.0,
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
Otherwise,
set tempresult to "FAILED" and tempfrequency to null.
If tempfrequency is equal to "2QTRS",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the RATA
Summary Record is greater than or equal to 0 and less than or equal to 7.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA Summary
Relative Accuracy (rounded to 2 decimal places) is less than or equal to the tolerance in the
cross-check record,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the MeanDifference in the RATA
Environmental Protection Agency
Page 506 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Summary record is greater than or equal to 0 and less than or equal to 0.7,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "MeanDifferencePCT".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to one decimal) is less than or equal to the tolerance in the cross-check
record,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
else if tempresult is equal to "FAILED",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the RATA
Summary Record is greater than or equal to 0 and less than or equal to 10.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA Summary
Relative Accuracy (rounded to 2 decimal places) is less than or equal to the tolerance in the
cross-check record,
If the RelativeAccuracy in the RATA Summary Record is less than or equal to 7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
Otherwise,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the MeanDifference in the RATA
Summary record is greater than or equal to 0 and less than or equal to 1.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "MeanDifferencePCT".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to one decimal) is less than or equal to the tolerance in the cross-check
record,
If the MeanDifference in the RATA Summary record is less than or equal to 0.7,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
Otherwise,
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
If the associated SystemTypeCode is equal to "S02R",
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If the RATA Summary Mean Reference Value (rounded to 2 decimal) is less than or equal to 0.50 and the absolute
value of the RATA Summary Mean Difference (rounded to 3 decimal) is less than or equal to 0.016,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 10.0,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If the RATA Summary Mean Reference Value (rounded to 2 decimal) is less than or equal to 0.50 and the absolute
value of the RATA Summary Mean Difference (rounded to 2 decimal) is less than or equal to 0.03,
Environmental Protection Agency
Page 507 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
Otherwise,
set tempresult to "FAILED" and tempfrequency to null.
If tempfrequency is equal to "2QTRS",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the RATA
Summary Record is greater than or equal to 0 and less than or equal to 7.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA Summary
Relative Accuracy (rounded to 2 decimal places) is less than or equal to the tolerance in the
cross-check record,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the RATA Summary Mean Reference
Value (rounded to 2 decimal) is less than or equal to 0.50, and the MeanDifference in the RATA Summary
record is greater than or equal to 0 and less than or equal to 0.016,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "MeanDifferenceRATE".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to three decimal) is less than or equal to the tolerance in the cross-check
record,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
else if tempresult is equal to "FAILED",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the RATA
Summary Record is greater than or equal to 0 and less than or equal to 10.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA Summary
Relative Accuracy (rounded to 2 decimal places) is less than or equal to the tolerance in the
cross-check record,
If the RelativeAccuracy in the RATA Summary Record is less than or equal to 7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
Otherwise,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the RATA Summary Mean Reference
Value (rounded to 2 decimal) is less than or equal to 0.50, and the MeanDifference in the RATA Summary
record is greater than or equal to 0 and less than or equal to 0.03,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "MeanDifferenceRATE".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to three decimal) is less than or equal to the tolerance in the cross-check
record, and the MeanDifference in the RATA Summary record is less than or equal to 0.016,
Environmental Protection Agency
Page 508 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to two decimal) is less than or equal to the tolerance in the cross-check
record,
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
If the associated SystemTypeCode begins with "H20",
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If the absolute value of the RATA Summary Mean Difference (rounded to 1 decimal) is less than or equal to 1.0,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 10.0,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If the absolute value of the RATA Summary Mean Difference (rounded to 1 decimal) is less than or equal to 1.5,
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
Otherwise,
set tempresult to "FAILED" and tempfrequency to null.
If tempfrequency is equal to "2QTRS",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the RATA
Summary Record is greater than or equal to 0 and less than or equal to 7.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA Summary
Relative Accuracy (rounded to 2 decimal places) is less than or equal to the tolerance in the
cross-check record,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the MeanDifference in the RATA
Summary record is greater than or equal to 0 and less than or equal to 1.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "MeanDifferencePCT".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to one decimal) is less than or equal to the tolerance in the cross-check
record,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
else if tempresult is equal to "FAILED",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the RATA
Summary Record is greater than or equal to 0 and less than or equal to 10.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA Summary
Relative Accuracy (rounded to 2 decimal places) is less than or equal to the tolerance in the
Environmental Protection Agency
Page 509 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
cross-check record,
If the RelativeAccuracy in the RATA Summary Record is less than or equal to 7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
Otherwise,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the MeanDifference in the RATA
Summary record is greater than or equal to 0 and less than or equal to 1.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "MeanDifferencePCT".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to one decimal) is less than or equal to the tolerance in the cross-check
record,
If the MeanDifference in the RATA Summary record is Mess than or equal to 1.0,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
Otherwise,
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
If the associated SystemTypeCode is equal to "FLOW",
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If the associated Test EndDate is on or after 1/1/2000,
Set adjustedmeanref to 99999 and adjustedmeandiff to 99999.
Set adjustedreportedmeandiff to 99999.
If Test Dates Consistent is true,
Locate the Monitor Location Attribute record for the location where the BeginDate is on or before
the associated Test BeginDate and the EndDate is null or is on or after the associated Test
EndDate.
If one record is found, and the StackAreaAtFlowMonitor is greater than 0,
Calculate adjustedmeanref = RATA Summary Mean Reference Value / 3600 /
StackAreaAtFlowMonitor.
Calculate adjustedmeandiff = abs(RATA Summary Mean Difference / 3600 /
StackAreaAtFlowMonitor.
Round adjustedmeanref and adjustedmeandiff to 1 decimal.
If MeanDifference in the RATA Summary record is greater than or equal to 0,
Calculate adjustedreportedmeandiff = abs(MeanDifference / 3600 /
StackAreaAtFlowMonitor, and round the result to 1 decimal.
If adjustedmeanref is less than or equal to 10.0 and adjustedmeandiff is less than or equal to 1.5,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
Environmental Protection Agency
Page 510 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 10.0,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If adjustedmeanref is less than or equal to 10.0 and adjustedmeandiff is less than or equal to 2.0,
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
Otherwise,
set tempresult to "FAILED" and tempfrequency to null.
If tempfrequency is equal to "2QTRS",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the
RATA Summary Record is greater than or equal to 0 and less than or equal to 7.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"RATA" and the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA
Summary Relative Accuracy (rounded to 2 decimal places) is less than or equal to the
tolerance in the cross-check record,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the adjustedmeanref is less than
or equal to 10.0, and the adjustedreportedmeandiff is less than or equal to 1.5,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"RATA" and the FieldDescription is equal to "MeanDifferenceSCFH".
If the absolute value of the difference between the MeanDifference and the RATA
Summary Mean Difference (rounded to the nearest 1000) is less than or equal to the
tolerance in the cross-check record,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
else if tempresult is equal to "FAILED",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the
RATA Summary Record is greater than or equal to 0 and less than or equal to 10.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"RATA" and the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA
Summary Relative Accuracy (rounded to 2 decimal places) is less than or equal to the
tolerance in the cross-check record,
If the RelativeAccuracy in the RATA Summary Record is less than or equal to
7.5,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
Otherwise,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If APSIndicator in the RATA Summary record is equal to 1, and the adjustedmeanref is less than
or equal to 10.0, and the adjustedreportedmeandiff is less than or equal to 2.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"RATA" and the FieldDescription is equal to "MeanDifferenceSCFH".
Environmental Protection Agency
Page 511 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If the absolute value of the difference between the MeanDifference and the RATA
Summary Mean Difference (rounded to the nearest 1000) is less than or equal to the
tolerance in the cross-check record,
If the adjustedreportedmeandiff less than or equal to 1.5,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
Otherwise,
set tempresult to "PASSAPS" and tempfrequency to "2QTRS".
Otherwise,
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 10.0,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 15.0,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
Otherwise,
set tempresult to "FAILED" and tempfrequency to null.
If tempfrequency is equal to "2QTRS",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the
RATA Summary Record is greater than or equal to 0 and less than or equal to 10.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"RATA" and the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA
Summary Relative Accuracy (rounded to 2 decimal places) is less than or equal to the
tolerance in the cross-check record,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
else if tempresult is equal to "FAILED",
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the
RATA Summary Record is greater than or equal to 0 and less than or equal to 15.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"RATA" and the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA
Summary Relative Accuracy (rounded to 2 decimal places) is less than or equal to the
tolerance in the cross-check record,
If the RelativeAccuracy in the RATA Summary Record is less than or equal to
10.0,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
Otherwise,
set tempresult to "PASSED" and tempfrequency to "2QTRS".
If the associated SystemTypeCode is equal to "HG", "HCL", "HF", or "ST",
If the RATA Summary Relative Accuracy (rounded to 1 decimal) is less than or equal to 20.0,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
Environmental Protection Agency
Page 512 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If the RATA Summary Mean Reference Value (rounded to 1 decimal) is less than or equal to 5.0 and the absolute
value of the RATA Summary Mean Difference (rounded to 1 decimal) is less than or equal to 1.0,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
Otherwise,
set tempresult to "FAILED" and tempfrequency to null.
If APSIndicator in the RATA Summary record is NOT equal to 1, the RelativeAccuracy in the RATA
Summary Record is greater than or equal to 0 and less than or equal to 20.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the RelativeAccuracy and the RATA Summary
Relative Accuracy (rounded to 2 decimal places) is less than or equal to the tolerance in the
cross-check record,
set tempresult to "PASSED" and tempfrequency to "4QTRS".
If APSIndicator in the RATA Summary record is equal to 1, the RATA Summary Mean Reference Value
(rounded to 1 decimal) is less than or equal to 5.0, and the MeanDifference in the RATA Summary record
is greater than or equal to 0 and less than or equal to 1.0,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "MeanDifferencePCT".
If the absolute value of the difference between the MeanDifference and the RATA Summary Mean
Difference (rounded to one decimal) is less than or equal to the tolerance in the cross-check
record,
set tempresult to "PASSAPS" and tempfrequency to "4QTRS".
If RATA Result is not equal to "INVALID",
If RATA Result is equal to "FAILED" or tempresult is equal to "FAILED"
set RATA Result to "FAILED".
If RATA Result is equal to "PASSAPS" or tempresult is equal to "PASSAPS"
set RATA Result to "PASSAPS".
Otherwise,
set RATA Result to "PASSED".
If RATA Result is equal to "PASSED" or "PASSAPS",
If RATA Frequency is equal to "2QTRS" or tempfrequency is equal to "2QTRS"
set RATA Frequency to "2QTRS".
Otherwise,
set RATA Frequency to "4QTRS".
Otherwise,
set RATA Frequency to null.
If tempresult is equal to "PASSAPS",
set RATA Summary APS Indicator to 1.
If tempresult is equal to "PASSED",
set RATA Summary APS Indicator to 0.
Environmental Protection Agency
Page 513 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
set RATA Summary APS Indicator to null.
If APS Indicator in the RATA Summary record is equal to null,
return result A.
If RATA Summary APS Indicator is equal to 1 and the APS Indicator in the RATA Summary record is equal to 0,
return result B.
Otherwise,
set RATA Result to "INVALID".
set RATA APS Indicator and RATA Frequency to null.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B For [key] you did not report an APS flag of" 1" although EPA applied the alternative Critical Error Level 1
performance specification to determine that the test passed the applicable performance
specification.
Usage:
1 Process/Category: QA Test Evaluation Report — RATA Summary (Pass 2)
Environmental Protection Agency
Page 514 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-38
Check Name: Average Gross Unit Load Consistent with Range of Operation
Related Former Checks: RATA-31
Applicability: CEM Check
Description:
Specifications:
For a RATA summary record with an OperatingLevelCode equal to "L", "H", or "M":
If Calculate RATA Level is equal to true, Test Dates Consistent is equal to true, and RATA Claim Code is not equal to "ORE",
Locate a MonitorLoad record for the location where the BeginDate and BeginHour is on or before the associated Test
EndDate and EndHour and the EndDate is null or is on or after the Test BeginDate and BeginHour.
If one record is found, and the LowerOperationBoundary is greater than 0 and the UpperOperationBoundary is greater than
the LowerOperationBoundary,
If OperatingLevelCode is equal to "L",
If the RATA Summary Average Gross Unit Load is less than the LowerOperationBoundary or is greater
than LowerOperationBoundary + ((UpperOperationBoundary - LowerOperationBoundary) * .3) rounded
to an integer,
return result A.
If OperatingLevelCode is equal to "M",
set Load Upper Boundary to UpperOperationBoundary.
set Load Lower Boundary to LowerOperationBoundary.
If the RATA Summary Average Gross Unit Load is less than or equal to LowerOperationBoundary +
((UpperOperationBoundary - LowerOperationBoundary) * .3) rounded to an integer, or is greater than
LowerOperationBoundary + ((UpperOperationBoundary - LowerOperationBoundary) * .6) rounded to an
integer,
return result B.
If OperatingLevelCode is equal to "H",
If the RATA Summary Average Gross Unit Load is less than or equal to LowerOperationBoundary +
((UpperOperationBoundary - LowerOperationBoundary) * .6) rounded to an integer, or is greater than the
UpperOperationBoundary,
return result C.
Otherwise,
return result D.
Results:
Result Response
A The average gross unit load recalculated from the values in the run records for [key] is
not within the low level operating range defined in the load record.
B The average gross unit load recalculated from the values in the run records for [key] is
not within the mid level operating range defined in the load record.
C The average gross unit load recalculated from the values in the run records for [key] is
not within the high level operating ranges defined in the load record.
D You did not have one and only one valid Monitor Load record that was active during the
test.
Severity
Critical Error Level 2
Critical Error Level 2
Critical Error Level 2
Critical Error Level 1
Environmental Protection Agency
Page 515 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report — RATA Summary (Pass 2)
Environmental Protection Agency
Page 516 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-39
Check Name:
Calculate BAF
Related Former Checks: RATA-15, 19E, 28
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the RATA summary record:
If RATA Summary APS Indicator is not null,
If the associated SystemTypeCode is equal to "C02" or "02" or begins with "H20",
set RATA Summary BAF to 1.
If OperatingLevelCode is equal to "H" or "N",
set High BAF to 1.
If OperatingLevelCode is equal to "M",
set Mid BAF to 1.
If OperatingLevelCode is equal to "L",
set Low BAF to 1.
Otherwise,
If the RATA Summary Mean Difference is greater than the absolute value of the RATA Summary Confidence
Coefficient,
Calculate tempval = (1.0+ ABS( RATA Summary Mean Difference) / RATA Summary Mean CEM
Value) * 1000.
Round tempval to the nearest integer.
Calculate RATA Summary BAF = tempval / 1000.
Otherwise,
set RATA Summary BAF to 1.
If the associated SystemTypeCode is equal to "HG", "HCL", "HF" or "ST",
set RATA Summary BAF to 1.
If the RATA Summary BAF is greater than 1.111 and the BiasAdjustmentFactor in the RATA Summary is
equal to 1.111,
If the associated SystemTypeCode is equal to "S02" or "NOXC", and the RATA Summary Mean
Reference Value (rounded to 1 decimal) is less than or equal to 250.0,
set RATA Summary BAF to 1.111.
If the associated SystemTypeCode is equal to "NOX", "NOXP", or "S02R", and the RATA
Summary Mean Reference Value (rounded to 3 decimal) is less than or equal to 0.200,
set RATA Summary BAF to 1.111.
If OperatingLevelCode is equal to "H" or "N",
set High BAF to RATA Summary BAF.
Otherwise,
Environmental Protection Agency
Page 517 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If OperatingLevelCode is equal to "M",
set Mid BAF to RATA Summary BAF.
If OperatingLevelCode is equal to "L",
set Low BAF to RATA Summary BAF.
If the BiasAdjustmentFactor in the RATA Summary record is null,
return result A.
If the BiasAdjustmentFactor in the RATA Summary record is less than 1,
return result B.
If the associated SystemTypeCode is equal to "C02", "LOO", "H20M", "02", "HG", "HCL", "HF", or "ST",
If the BiasAdjustmentFactor in the RATA Summary record is not equal to 1,
return result C.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "BAF".
If the absolute value of the difference between the BiasAdjustmentFactor in the RATA Summary record and the
RATA Summary BAF is greater than the tolerance in the cross-check record,
return result D.
Otherwise,
set RATA Summary BAF to null.
Results:
Result
A
B
D
Response
You did not provide [fieldname], which is required for [key].
The [fieldname] for [key] is not within the range of valid values. This value must be
equal to or greater than 1.000.
The BiasAdjustmentFactor in the RATA summary record for [key] was not equal to
1.000. For all C02, 02, LOO, HG, HCL, HF or ST RATAs there is no bias adjustment
factor calculated and the default of 1.000 is used.
The RATA summary record for [key] contains a bias adjustment factor (BAF) which is
inconsistent with the BAF recalculated from the run records used in the test (as
applicable).
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report — RATA Summary (Pass 2)
Environmental Protection Agency
Page 518 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-40
Check Name:
Reported RATA Summary Values Consistent with Calculated Values
Related Former Checks: RATA-27
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the RATA Summary record:
Set Inconsistent RATA Fields to null.
If RATA Calc Stack Area is not null,
Calculate RATA Calc Stack Area = min(Calculate RATA Stack Area, 99999.9), rounded to one decimal place.
If Calculate RATA Level is true,
Round RATA Summary Mean CEM Value, RATA Summary Mean Reference Value, RATA Summary Mean Difference,
RATA Summary Confidence Coefficient, and RATA Summary Standard Deviation to 3 decimal places.
If the SystemTypeCode associated with the RATA is equal to "S02" or "NOXC",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "MeanDifferencePPM".
If the SystemTypeCode associated with the RATA is equal to "FLOW",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "MeanDifferenceSCFH".
If the SystemTypeCode associated with the RATA is equal to "NOX", "NOXP", or "S02R",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "MeanDifferenceRATE".
If the SystemTypeCode associated with the RATA is equal to "HG",
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "MeanDifferenceUGSCM".
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "MeanDifferencePCT".
If the MeanDifference in the RATA Summary record is not null, and the absolute value of the difference between the
MeanDifference and the RATA Summary Mean Difference is greater than the tolerance in the cross-check record,
add "MeanDifference" to Inconsistent RATA Fields.
If the MeanCEMValue in the RATA Summary record is not null, and the absolute value of the difference between the
MeanCEMValue and the RATA Summary Mean CEM Value is greater than the tolerance in the cross-check record,
add "MeanCEMValue" to Inconsistent RATA Fields.
If the MeanRATAReferenceValue in the RATA Summary record is not null, and the absolute value of the difference
Environmental Protection Agency
Page 519 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
between the MeanRATAReferenceValue and the RATA Summary Mean Reference Value is greater than the tolerance in
the cross-check record,
add "MeanRATAReferenceValue" to Inconsistent RATA Fields.
If Inconsistent RATA Fields is not null,
return result A.
In the QA Evaluation Process, the RATA Summary Mean Reference Value, RATA Summary Mean Measured Value, RATA
Summary Relative Accuracy, RATA Summary APS Indicator, RATA Summary BAF, RATA Summary Mean Difference, RATA
Summary TValue, RATA Summary Standard Deviation, RATA Summary Confidence Coefficient, RATA Summary Average Gross
Unit Load, and RATA Calc Stack Area will be stored in the RATA Summary record for the operating level.
Results:
Result
A
Response
The values reported for [fieldname] in the RATA summary record for [key] are
inconsistent with the values that have been recalculated from the run records.
Severity
Non-Critical Error
Usage:
1
Process/Category: QA Test Evaluation Report — RATA Summary (Pass 2)
Environmental Protection Agency
Page 520 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-41
Check Name:
Number of Operating Levels Valid
Related Former Checks: RATA-16, 17
Applicability:
CEM Check
Description:
Specifications:
For the RATA:
Set RATA Number of Load Levels to the number of items in the RATA Level List.
If RATA Result is not equal to "ABORTED", and RATA System Valid is true,
If RATA Number of Load Levels is equal to 0,
return result A.
Otherwise,
If the associated SystemTypeCode is equal to "FLOW",
If RATA Number of Load Levels is greater than 3,
return result B.
If RATA Number of Load Levels is less than 3, TestReasonCode is equal to "INITIAL", and RATA Claim
Code is not equal to "PEAK",
Locate a LocationAttribute record for the location where the Bypasslndicator is equal to 1, the
BeginDate is on or before the Test BeginDate and the EndDate is null or is on or after the Test
EndDate.
If not found,
Locate a MonitorQualification record where the location is the location in the RATA
record, the QualificationTypeCode is equal to "PRATA1", the BeginDate is on or before
the Test BeginDate and the EndDate is null or is on or after the Test EndDate.
If not found,
If RATA Number of Load Levels is equal to 2,
Locate a MonitorQualifi cation record where the location is the location
in the RATA record, the QualificationTypeCode is equal to "PRATA2",
the BeginDate is on or before the Test BeginDate and the EndDate is null
or is on or after the Test EndDate.
If not found,
return result G.
Otherwise,
return result G.
Otherwise,
If RATA Number of Load Levels is greater than 1,
return result C.
If NumberOfLoadLevels in the RATA record is null,
return result D.
Environmental Protection Agency
Page 521 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If NumberOfLoadLevels in the RATA record is less than or equal to 0,
return result E.
Otherwise,
If NumberOfLoadLevels in the RATA record does not equal RATA Number of Load Levels,
return result F.
Results:
Result
A
B
D
E
F
G
Response
You did not report any operating level data for this test.
There are more than three operating levels in the test. A maximum of three operating
levels can be included in a multi-load RATA. The multi-load relative accuracy for this
RATA was not calculated.
There is more than one operating level in the test. Only one operating level is tested in a
RATA for this type of system.
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than zero.
You reported a NumberOfLoadLevels that is not equal to the number of operating levels
in the RATA for which a run was conducted.
You reported a TestReasonCode of "INITIAL" indicating that this is an initial
certification test, but you did not perform this RATA at minimally acceptable number of
operating levels.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
Usage:
1
Process/Category:
QA Test Evaluation Report RATA (Pass 2)
Environmental Protection Agency
Page 522 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
RATA-42
Low Level Gross Unit Load Consistent with Higher Level Gross Unit Load
RATA-32A
CEM Check
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For a RATA where the Low Average Gross Unit Load is not null and either the High Average Gross Unit Load or the Mid Average Gross
Unit Load is not null:
If Mid Average Gross Unit Load is null,
If High Average Gross Unit Load is less than or equal to Low Average Gross Unit Load,
set RATA Higher Level to "H", and return result A.
Otherwise,
Results:
Result
B
Usage:
1
If Mid Average Gross Unit Load is less than or equal to Low Average Gross Unit Load,
set RATA Higher Level to "M", and return result A.
If RATA Claim Code is not equal to "ORE", Load Lower Boundary is not null, and Load Upper Boundary is not null.
If Low Average Gross Unit Load is greater than Load Lower Boundary,
If (Mid Average Gross Unit Load - Low Average Gross Unit Load) / (Load Upper Boundary - Load Lower
Boundary) < .24,
return result B.
Response
According to the run records of this RATA, the average gross unit load of Operating
Level [level 1] is greater than or equal to the average gross unit load of Operating Level
[level2].
The separation of the low and mid operating levels for this test does not represent at
least 25% of the operating range of the unit or stack.
Process/Category: QA Test Evaluation Report RATA (Pass 2)
Conditions: RATA Aborted Equals false
Severity
Critical Error Level 1
Non-Critical Error
Environmental Protection Agency
Page 523 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
RATA-43
High Level Gross Unit Load Consistent with Mid Level Gross Unit Load
RATA-32B
CEM Check
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For a RATA where the High Average Gross Unit Load and Mid Average Gross Unit Load are not null:
If High Average Gross Unit Load is less than or equal to Mid Average Gross Unit Load,
return result A.
If RATA Claim Code is not equal to "ORE", Load Lower Boundary is not null, and Load Upper Boundary is not null.
If Mid Average Gross Unit Load is greater than Load Lower Boundary,
If (High Average Gross Unit Load - Mid Average Gross Unit Load) / (Load Upper Boundary - Load Lower
Boundary) < .24,
return result B.
Results:
Result
B
Usage:
1
Response
According to the run records of this RATA, the average gross unit load of Operating
Level [level 1] is greater than or equal to the average gross unit load of Operating Level
[level2].
The separation of the mid and high operating levels for this test does not represent at
least 25% of the operating range of the unit or stack.
Process/Category: QA Test Evaluation Report RATA (Pass 2)
Conditions: RATA Aborted Equals false
Severity
Critical Error Level 1
Non-Critical Error
Environmental Protection Agency
Page 524 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-44
Check Name: RATA Begin Time Consistent with Runs
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA with valid begin time and valid run times:
If BeginDate, BeginHour, and BeginMinute do not equal the BeginDate, BeginHour, and BeginMinute of the earliest run of the
RATA,
return result A.
Results:
Result Response Severity
A You reported a test Begin Date, Hour, and Minute that is not the same as the BeginDate, Critical Error Level 1
BeginHour, and BeginMinute of the first run in the RATA.
Usage:
1 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
Conditions: RATA Aborted Equals false
Environmental Protection Agency
Page 525 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-45
Check Name: RATA End Time Consistent with Runs
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA with valid end time and run times:
If EndDate, EndHour, and EndMinute do not equal the EndDate, EndHour, and EndMinute of the latest run of the RATA,
return result A.
Results:
Result Response Severity
A You reported a test EndDate, Hour, and Minute that is not the same as the EndDate, Critical Error Level 1
Hour, and Minute of the last run in the RATA test.
Usage:
1 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
Conditions: RATA Aborted Equals false
Environmental Protection Agency
Page 526 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-46
Check Name: RATA Duration Valid
Related Former Checks: RATA-9
Applicability: CEM Check
Description:
Specifications:
For the RATA with valid begin and end times:
If Number of Load Levels is equal to 1,
If the associated SystemTypeCode is equal to "HG" or "ST",
Locate a RATA Summary record for the test.
If one record is found, and the ReferenceMethodCode is equal to "29" or "OH",
If the difference between the Begin Date, Hour, and Minute and the End Date, Hour, and Minute of the test
is greater than 336 hours,
return result C.
Otherwise,
If the difference between the Begin Date, Hour, and Minute and the End Date, Hour, and Minute of the test is
greater than 168 hours,
return result A.
If Number of Load Levels is greater than 1,
If the difference between the Begin Date, Hour, and Minute and the End Date, Hour, and Minute of the test is greater than
720 hours,
return result B.
Results:
Result
B
Response
The test period for this RATA extended for more than 168 clock hours. This test may
not meet the requirement that the test period for each single-load RATA be completed
within 168 unit or stack operating hours.
The test period for this RATA extended for more than 720 clock hours. This test may
not meet the requirement that the test period for a multi-load flow RATA be completed
within 720 unit or stack operating hours.
The test period for this RATA extended for more than 336 clock hours. This test may
not meet the requirement that the test period for each Hg RATA be completed within
336 unit or stack operating hours.
Severity
Non-Critical Error
Non-Critical Error
Non-Critical Error
Usage:
1
Process/Category: QA Test Evaluation Report RATA (Pass 2)
Conditions: RATA Aborted Equals false
Environmental Protection Agency
Page 527 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-47
Check Name:
Operating Levels Consistent with Normal Operating Levels
Related Former Checks: RATA-21C-J, 22C, D
Applicability:
CEM Check
Description:
Specifications:
For a RATA where the RATA Level List is not null and is not equal to "N" and the RATA Claim Code is not equal to "NLE":
Set Normal RATA Operating Levels to null.
Set RATA Frequently Used Levels to null.
Locate a Monitor Load record for the location where the BeginDate and BeginHour are on or before the Test EndDate and EndHour
and the EndDate is null or the EndDate and EndHour are on or after the Test BeginDate and BeginHour.
If not found, or if more than one record is found, and the NormalLevelCode, SecondLevelCode, or SecondNormallndicator are not
the same in each Load record,
return result A.
If the NormalLevelCode is null,
return result B.
If the associated SystemTypeCode is equal to "FLOW" and the RATA Number of Load Levels is greater than 1,
If SecondLevelCode is in the RATA Level List,
Append NormalLevelCode and SecondLevelCode to RATA Frequently Used Levels.
If SecondNormallndicator is equal to 1,
append NormalLevelCode and SecondLevelCode to Normal RATA Operating Levels.
Otherwise,
set Normal RATA Operating Levels to NormalLevelCode.
If SecondNormallndicator is equal to 1, the NormalLevelCode is equal to "H", and the High BAF is greater than 1,
return result C.
If SecondNormallndicator is equal to 1, the NormalLevelCode is equal to "L", and the Low BAF is greater than 1,
return result C.
If SecondNormallndicator is equal to 1, the NormalLevelCode is equal to "M", and the Mid BAF is greater than 1,
return result C.
Otherwise,
set Normal RATA Operating Levels to NormalLevelCode, and return result D.
If the SecondLevelCode is null,
return result B.
If the NormalLevelCode is not in the RATA Level List,
return result C.
Otherwise,
Otherwise,
If the NormalLevelCode is not in the RATA Level List,
Environmental Protection Agency
Page 528 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
If SecondNormallndicator is equal to 1,
If the SecondLevelCode is null,
return result B.
else if the SecondLevelCode in not in the RATA Level List,
return result E.
else
return result E.
Results:
Result
B
D
Response
You have not reported consistent operating level information in active load records.
The program cannot determine if the RATA was performed at the normal operating
level(s).
In the active load record for this unit or stack and test you did not designate the normal
load levels properly. The correct BAF cannot be determined for this multi-load flow
test.
You did not perform the test for one or both of the operating levels that were designated
as normal in the active load record. The correct BAF cannot be determined for this
multi-load flow test.
You did not perform this multi-load RATA at one of the operating levels that were
designated as the two most frequently used operating levels for this unit or stack in the
load record.
The load level for this RATA was not designated as a normal load level in the active
load record.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
Critical Error Level 2
Usage:
1
Process/Category: QA Test Evaluation Report RATA (Pass 2)
Conditions: RATA Aborted Equals false
Environmental Protection Agency
Page 529 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-48
Check Name:
Overall Relative Accuracy Consistent with Calculated Value
Related Former Checks: RATA-20
Applicability:
CEM Check
Description:
Specifications:
For the RATA:
If RATA Result is equal to "INVALID",
set RATA Result to null and Overall Relative Accuracy to null.
If RATA Result is equal to "ABORTED" or is equal to null,
set Overall Relative Accuracy to null.
Otherwise,
If OverallRelativeAccuracy in the RATA record is null,
return result A.
If OverallRelativeAccuracy in the RATA record is less than 0,
return result B.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "RelativeAccuracy".
If the absolute value of the difference between the Overall Relative Accuracy and the Relative Accuracy in the
RATA record is greater than the tolerance in the cross-check record,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
The OverallRelativeAccuracy reported in the RATA record is not equal to the highest
relative accuracy recalculated from the run records for each operating level.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report RATA (Pass 2)
Environmental Protection Agency
Page 530 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-49
Check Name: Identification of Previously Reported Test or Test Number for RATA
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA with valid end time and a non-null MonitoringSystemID:
set RATA Supp Data ID to null, and Extra RATA to false.
Locate another RATA for the system where End Date, End Hour, and End Min are equal to the End Date, End Hour, and End Min
of the current TestSummary record.
If found,
set Extra RATA to true, and return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestType Code is equal to "RATA", and the Monitoring
System ID, End Date, End Hour, and End Min is equal to Monitoring System ID, End Date, End Hour, and End Min of the
current TestSummary record, and the TestNum is not equal to the TestNumber in the current TestSummary record,
If found,
set Extra RATA to true, and return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "RATA" and the TestNum equal to
the TestNumber in the current TestSummary record.
If found,
Set RATA Supp Data ID to the QA Supp Data ID in the QASupp record.
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the Monitoring System ID, End Date, End Hour,
and End Min in the QASupp record is not equal to Monitoring System ID, End Date, End Hour, or
End Min of the current TestSummary record,
return result B.
Otherwise,
return result C.
Results:
Result
B
Response
Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 531 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
Conditions: Duplicate RATA Equals false
Environmental Protection Agency
Page 532 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-50
Check Name:
Concurrent RATAs
Related Former Checks: RATA-5
Applicability:
CEM Check
Description:
Specifications:
For a RATA with valid dates and associated SystemTypeCode not equal to "FLOW":
Locate another RATA for the system where the BeginDate, BeginHour, and BeginMinute is before the EndDate, EndHour, and
EndMinute of the current test, and the EndDate, EndHour, and EndMinute is after the BeginDate, BeginHour, and BeginMinute of
the current test.
If found,
return result A.
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "RATA"; the
MonitoringSystemID is equal to MonitoringSystemID of the current test; the BeginDate, BeginHour, and BeginMinute is
before the EndDate, EndHour, and EndMinute of the current test, and the EndDate, EndHour, and EndMinute is after the
BeginDate, BeginHour, and BeginMinute of the current test; and the TestNum is not equal to the TestNumber in the current
test.
If not found,
If found,
return result A.
Results:
Result
A
Response
This RATA was conducted at the same time as another RATA for the same UnitStackID
and MonitoringSystemID.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report RATA Evaluation (Pass 1)
Extra RATA Equals false
And RATA System Valid Equals true
Environmental Protection Agency
Page 533 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-51
Check Name:
Determine Overall BAF
Related Former Checks: RATA-23, 29
Applicability:
CEM Check
Description:
Specifications:
For the RATA:
If RATA Result is equal to "PASSED" or "PASSAPS",
If the associated SystemTypeCode is equal to "FLOW" and RATA Number of Load Levels is greater than 1,
Set Overall BAF to 1 and Bias Passed to true.
For any item in Normal RATA Operating Levels:
If item is equal to "H" and High BAF is greater than 1, or item is equal to "M" and Mid BAF is greater
than 1, or item is equal to "L" and Low BAF is greater than 1,
set Bias Passed to false.
If Bias Passed is equal to false,
For each item in RATA Frequently Used Levels:
If item is equal to "H" and High BAF is greater than Overall BAF,
set Overall BAF to High BAF.
If item is equal to "M" and Mid BAF is greater than Overall BAF,
set Overall BAF to Mid BAF.
If item is equal to "L" and Low BAF is greater than Overall BAF,
set Overall BAF to Low BAF.
If RATA Level List is equal to "H" or "N",
set Overall BAF to High BAF.
If RATA Level List is equal to "M",
set Overall BAF to Mid BAF.
If RATA Level List is equal to "L",
set Overall BAF to Low BAF.
If OverallBiasAdjustmentFactor is null,
return result A.
If OverallBiasAdjustmentFactor is less than 1,
return result B.
If Overall BAF is not equal to OverallBiasAdjustmentFactor,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "BAF".
If the absolute value of the difference between the Overall BAF and the OverallBiasAdjustmentFactor in the RATA
record is greater than the tolerance in the cross-check record,
Otherwise,
Environmental Protection Agency
Page 534 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
return result C.
Otherwise,
set Overall BAF to null.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The [fieldname] for [key] is not within the range of valid values. This value must be
equal to or greater than 1.000.
The reported OverallBiasAdjustmentFactor is inconsistent with the BAF recalculated by
EPA.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report RATA (Pass 2)
Environmental Protection Agency
Page 535 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-52
Check Name:
RATA Frequency Consistent with Calculated Value
Related Former Checks: RATA-14
Applicability:
CEM Check
Description:
Validation Tables:
Rata Frequency Code (Lookup Table)
Specifications:
For the RATA:
If RATA Result is equal to "PASSED" or "PASSAPS",
If RATA Frequency is equal to "2QTRS",
Set CheckDate to the end date of the quarter two quarters after the EndDate of the test.
else
Set CheckDate to the end date of the quarter four quarters after the EndDate of the test.
Locate the Reporting Frequency record for the location with the latest BeginReportingPeriod where the
BeginReportingPeriod is on or before the CheckDate and the EndReportingPeriod is null or is on or after the CheckDate.
If found,
If the ReportingFrequencyCode is equal to "OS",
set RATA Frequency to "OS".
If not found,
Locate the earliest Reporting Frequency record for the location where the BeginReportingPeriod is after the
CheckDate.
If found, and the ReportingFrequencyCode is equal to "OS",
set RATA Frequency to "OS".
If RATA Frequency is not equal to "OS",
If the associated SystemTypeCode is equal to "FLOW", RATA Number of Load Levels is equal to 1, and RATA
Claim Code is not equal to "SLC" or "PEAK".
Locate a LocationAttribute record for the location where the Bypasslndicator is equal to 1, the BeginDate
is on or before the BeginDate of the test and the EndDate is null or is on or after the EndDate of the test.
If RATAFrequencyCode is equal to "8QTRS", RATA Frequency is not equal to "ALTSL", the associated
SystemDesignationCode is equal to "B", and the associated SystemTypeCode does not equal "HG" or "ST",
set RATA Frequency to "8QTRS".
If the RATAFrequencyCode is null,
If the TestEndDate is on or after ECMPS MP Begin Date,
return result A.
If not found,
Locate a MonitorQualification record where the location is the location in the RATA record, the
QualificationTypeCode is equal to "PRATA1", the BeginDate is on or before the BeginDate of the
test and the EndDate is null or is on or after the EndDate of the test.
If not found,
set RATA Frequency to "ALTSL".
Environmental Protection Agency
Page 536 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
return result B.
If the RATAFrequencyCode is not in the RATAFrequencyCode lookup table,
return result C.
If RATA Frequency is not equal to the RATAFrequencyCode,
return result D.
Otherwise,
set RATA Frequency to null.
Results:
Result
A
B
D
Response
You did not provide [fieldname], which is required for [key].
You did not provide [fieldname] for [key]. This information will be required for
ECMPS submissions.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported a RATAFrequencyCode that is different from the value which was
calculated from the runs of the RATA.
Severity
Critical Error Level 1
Non-Critical Error
Critical Error Level 1
Non-Critical Error
Usage:
1
Process/Category:
QA Test Evaluation Report RATA (Pass 2)
Environmental Protection Agency
Page 537 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-53
Check Name:
RATA Results Valid
Related Former Checks: RATA-14, 30
Applicability:
CEM Check
Description:
Validation Tables:
Test Result Code (Lookup Table)
Specifications:
For the TestSummary record:
If TestResultCode is null,
return result A.
If TestResultCode is not equal to "PASSED", "PASSAPS", "FAILED", or "ABORTED",
Locate the TestResultCode in the Test Result Code Lookup table,
If not found,
return result B.
If found,
return result C.
If RATA Result is equal to "FAILED",
If TestResultCode is equal to "PASSED" or "PASSAPS",
return result D.
Otherwise,
return result E.
If RATA Result is equal to "PASSED" or "PASSAPS", and the TestResultCode is equal to "FAILED",
return result F.
In the QA Evaluation Process, the RATA Result, RATA Frequency, RATA Number of Load Levels, Overall Relative Accuracy, and
Overall BAF will be stored as calculated values in the Test Summary and RATA records for the test, and (for tests that have not yet
been submitted or have been approved for resubmission) the appropriate values will be stored in the QA Supp Data and QA Supp
Attribute records for the test.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
The TestResultCode indicates a passing test, but the relative accuracy recalculated from
the run records indicates a failing test.
You reported a failed RATA. Please check to see that the test was repeated and passed.
You reported a TestResultCode of "FAILED", but the results recalculated or determined
from the other reported values indicate that the test passed.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
D
Critical Error Level 1
E
F
Informational Message
Critical Error Level 1
Environmental Protection Agency
Page 538 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report RATA (Pass 2)
Environmental Protection Agency
Page 539 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-54
Check Name: Initialize RATA Variables
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA:
Set RATA Result, RATA Level List, RATA Frequency, RATA Claim Code, and Simultaneous RATA Runs to null.
Set Overall Relative Accuracy, High BAF, Mid BAF, Low BAF, High Average Gross Unit Load, Mid Average Gross Unit Load,
and Low Average Gross Unit Load to null.
Set Highest RATA Run Number, High Run Count, High Sum Gross Unit Load, High Sum Reference Value, Mid Run Count, Mid
Sum Gross Unit Load, Mid Sum Reference Value, Low Run Count, Low Sum Gross Unit Load, Low Sum Reference Value, Load
Lower Boundary, and Load Upper Boundary to null.
Set RATA Ref Method Code to null.
Results:
Result Response Severity
Usage:
1 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
3 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
4 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
5 Process/Category: QA and Certification Data Entry Screen Evaluation Test Qualification Evaluation
Environmental Protection Agency
Page 540 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-55
Check Name: C02/02 Reference Method Code Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a RATA Summary record with a valid Reference Method:
If ReferenceMethodCode begins with "2F", "2G" or "M2H",
If the C020r02ReferenceMethodCode is null,
return result A.
If the C020r02ReferenceMethodCode is not equal to "3" or "3A",
return result B.
Otherwise,
If the C020r02ReferenceMethodCode is not null,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
Severity
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Usage:
1
Process/Category:
QA Test Evaluation Report — RATA Summary (Pass 1)
Environmental Protection Agency
Page 541 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-56
Check Name: Stack Diameter Valid
Related Former Checks: RATA-35A
Applicability: CEM Check
Description:
Specifications:
For a RATA Summary record with a valid Reference Method:
If ReferenceMethodCode begins with "2F", "2G" or "M2H",
Set RATA Stack Diameter Valid to true.
If StackDiameter is null,
set RATA Stack Diameter Valid to false, and return result A.
If StackDiameter is less than or equal to 0,
set RATA Stack Diameter Valid to false, and return result B.
If ReferenceMethodCode is equal to "2FH", "2GH", or "M2H" and StackDiameter is less than 3.3,
set RATA Stack Diameter Valid to false, and return result C.
Otherwise,
If StackDiameter is not null,
return result D.
Results:
Result
A
B
D
Usage:
1
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The StackDiameter reported for [key] is less than 3.3 feet. A minimum stack or duct
diameter of 3.3 feet is required when Method 2H is used for a flow RATA.
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Process/Category:
QA Test Evaluation Report — RATA Summary (Pass 1)
Environmental Protection Agency
Page 542 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-57
Check Name:
Stack Area Valid
Related Former Checks: RATA-35B
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For a RATA Summary record with a valid Reference Method:
If ReferenceMethodCode begins with "2F", "2G" or "M2H",
If StackDiameter is greater than 0,
Calculate RATA Calc Stack Area = (StackDiameter ** 2) * PI / 4.
If StackArea is null,
return result A.
If StackArea is less than or equal to 0,
return result B.
Otherwise,
If the RATA Calc Stack Area is not null,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "StackArea".
If found, and the absolute value of the difference between the RATA Calc Stack Area (rounded to 1
decimal place) and the StackArea is greater than the Tolerance in the cross-check record,
return result C.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "StackArea (PCT)".
If found, and the absolute value of the percentage difference between the RATA Calc Stack Area
(rounded to 1 decimal place) and the StackArea is greater than the Tolerance in the cross-check
record,
return result C.
Otherwise,
If StackArea is not null,
return result D.
Environmental Protection Agency
Page 543 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
C
D
Usage:
1
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The StackArea reported for [key] is inconsistent with the recalculated area based on the
StackDiameter.
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Process/Category:
QA Test Evaluation Report — RATA Summary (Pass 1)
Environmental Protection Agency
Page 544 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-58
Check Name: Calculated WAF Valid
Related Former Checks: RATA-36, 37B, D, E, 59D, F, 60C
Applicability: CEM Check
Description:
Specifications:
For a RATA Summary record with a valid Reference Method:
If CalculatedWAF is null,
If ReferenceMethodCode is equal to "M2H",
set Flow RATA Level Valid to false, and return result A.
If ReferenceMethodCode is equal to "2J", "2FJ", or "2GJ"
set Flow RATA Level Valid to false, and return result B.
If DefaultWAF is null, and ReferenceMethodCode is equal to "2FH" or "2GH",
set Flow RATA Level Valid to false, and return result C.
Otherwise,
If ReferenceMethodCode is equal to "2", "2F", "2G", or "D2H",
set Flow RATA Level Valid to false, and return result D.
If DefaultWAF is not null,
set Flow RATA Level Valid to false, and return result E.
If CalculatedWAF is less than or equal to 0 or greater than 1,
return result F.
If RATA Rectangular Duct WAF is not null, and CalculatedWAF is not equal to RATA Rectangular Duct WAF,
return result G.
Results:
Result
A
B
C
D
E
F
G
Usage:
1
Response
You did not provide a CalculatedWAF for [key]. You must provide a CalculatedWAF
for flow reference method code M2H.
You did not report a value in the [fieldname] field for [key]. This value must be
provided for a flow RATA using conditional method CTM-041.
You did not provide a CalculatedWAF or a DefaultWAF for [key]. Either a
CalculatedWAF or a DefaultWAF must be provided for a flow RATA using method 2H.
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
You provided both a CalculatedWAF and a DefaultWAF for [key], A CalculatedWAF
and a DefaultWAF cannot both be applied to the same RATA.
You reported an invalid value in the CalculatedWAF field for [key], A WAF must be
greater than 0 and less than or equal to 1.
The value reported in the [fieldname] field for [key] is not equal to the [fieldname2] in
the active RectangularDuctWAF record for the location.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA Test Evaluation Report — RATA Summary (Pass 1)
Environmental Protection Agency
Page 545 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-59
Check Name:
Default WAF Valid
Related Former Checks: RATA-37A, 37C, 54
Applicability:
CEM Check
Description:
Specifications:
For a RATA Summary record with a valid Reference Method:
IF Default WAF is null,
If ReferenceMethodCode is equal to "D2H",
set Flow RATA Level Valid to false, and return result A.
Otherwise,
If ReferenceMethodCode is not equal to "2FH", "2GH", or "D2H",
set Flow RATA Level Valid to false, and return result B.
Otherwise,
If the EndDate of the test is valid,
Locate all LocationAttribute records for the location where the BeginDate is on or before the TestEndDate
and the EndDate is null or is on or after the TestEndDate.
If found, and all the MaterialCodes in the retrieved records are all equal to "BRICK" or all equal to
"OTHER",
If the MaterialCode is equal to "BRICK",
Otherwise,
If the EndDate of the test is on or after ECMPS MP Begin Date,
set Flow RATA Level Valid to false, and return result E.
Otherwise,
If the DefaultWAF is not equal to 0.9900 or .9950,
set Flow RATA Level Valid to false, and return result F.
If the DefaultWAF is not equal to 0.9900,
set Flow RATA Level Valid to false, and return result C.
Otherwise,
If the DefaultWAF is not equal to 0.9950,
set Flow RATA Level Valid to false, and return result D.
Environmental Protection Agency
Page 546 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
C
D
E
Usage:
1
Response
You did not provide a DefaultWAF for [key]. You must provide a DefaultWAF for
flow reference method code D2H.
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
You reported a DefaultWAF that was not equal to 0.9900 for [key], A DefaultWAF of
.9900 is the only allowable value for brick and mortar stacks.
You reported a DefaultWAF that was not equal to 0.9950 for [key], A DefaultWAF of
.9950 is the only allowable value for non-brick-and-mortar stacks.
The software cannot determine the MaterialCode for the stack in an active Location
Attribute record. The software cannot determine if you reported a valid DefaultWAF
for [key].
You reported a DefaultWAF that was not equal to 0.9900 or 0.9950 for [key], A
DefaultWAF of .9900 or .9950 are the only allowable values.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA Test Evaluation Report — RATA Summary (Pass 1)
Environmental Protection Agency
Page 547 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-60
Check Name:
Reference Method Consistent with Rectangular Duct WAF Reporting
Related Former Checks: RATA-59A, B, 60A
Applicability:
CEM Check
Description:
Specifications:
For a RATA Summary record:
Set RATA WAF Test Traverse Point Count to null and RATA Rectangular Duct WAF to null.
If Reference Method and TestEndDate are valid AND the associated SystemTypeCode is equal to "FLOW":
Locate a RectangularDuctWAF record for the location where the WAFEffectiveDate is on or before the TestEndDate and
the EndDate is null or is on or after the TestEndDate.
If the ReferenceMethodCode is not equal to "2J", "2FJ", or "2GJ",
return result A.
If WAF Value in the retrieved record is greater than 0 and less than or equal to 1,
set RATA Rectangular Duct WAF to WAFValue.
If NumberofTraversePointsWAF in the retrieved record is between 12 and 99,
set RATA WAF Test Traverse Point Count to NumberOfTraversePointsWAF.
Otherwise,
If the ReferenceMethodCode is equal to "2J", "2FJ", or "2GJ",
return result B.
If found,
Results:
Result
A
Response
You have reported a ReferenceMethodCode for [key] that does not indicate the use of a
rectangular duct WAF, but you have reported a RectangularDuctWAF record for the
location. If you use a rectangular duct WAF, you must report a reference method of 2J,
2FJ, or 2GJ.
You have reported a ReferenceMethodCode for [key] that indicates the use of a
rectangular duct WAF, but you have not reported an active RectangularDuctWAF
record for the location.
Severity
Informational Message
B
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — RATA Summary (Pass 1)
Environmental Protection Agency
Page 548 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
RATA-61
Number of Traverse Points Valid
RATA-59E, 60B
CEM Check
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For a RATA Summary record with a valid Reference Method:
If NumberOfTraversePoints is null,
If ReferenceMethodCode is equal to "2FJ", "2GJ", or "2J"
return result A.
Otherwise,
If ReferenceMethodCode is not equal to "2FJ", "2GJ", or "2J"
return result B.
If NumberOfTraversePoints is not between 12 and 99,
return result C.
If RATA WAF Test Traverse Point Count is not null, and is not equal to the NumberOfTraversePoints,
return result D.
Results:
Result
A
B
C
D
Usage:
1
Response
You did not report a value in the [fieldname] field for [key]. This value must be
provided for a flow RATA using conditional method CTM-041.
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
The value reported in the [fieldname] field for [key] is not equal to the [fieldname2] in
the active RectangularDuctWAF record for the location.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA Test Evaluation Report — RATA Summary (Pass 1)
Environmental Protection Agency
Page 549 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-62
Check Name:
Initialize Flow Run Variables
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For a Flow RATA run:
Set Last RATA Traverse Point ID and RATA Probe Types to null.
Set RATA Sum Velocity, RATA Sum Adjusted Velocity, RATA Sum Temperature, RATA Traverse Point Count, RATA
Replacement Point Count, and RATA Minimum Wall Points to 0.
Set RATA Traverse Point ID Valid, RATA Calculated WAF Valid, and RATA Wall Points Consistent to true.
Results:
Result
Response
Severity
Usage:
1
Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
2
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 550 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-63
Check Name:
Barometric Pressure Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the Flow RATA Run:
If BarometricPressure is null,
set Flow RATA Run Valid to false, and return result A.
If BarometricPressure less than 20 or greater than 35,
set Flow RATA Run Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 551 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-64
Check Name:
Static Stack Pressure Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the Flow RATA Run record:
Set RATA Calc Stack Pressure to null.
If StackStaticPressure is null,
set Flow RATA Run Valid to false, and return result A.
If StaticStackPressure is less than -30 or greater than 30,
set Flow RATA Run Valid to false, and return result B.
Otherwise,
If BarometricPressure is greater than or equal to 20 and is less than or equal to 35,
Calculate RATA Calc Stack Pressure = BarometricPressure + (StackStaticPressure / 13.6).
If StaticStackPressure is less than -10 or greater than 10,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
The value [value] in the StackStaticPressure for [key] is outside the range of normally
expected values. Please correct this value if it has been reported in error.
Severity
Critical Error Level 1
Critical Error Level 1
C
Informational Message
Usage:
1
Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 552 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-65
Check Name:
Percent C02 Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the Flow RATA Run record:
Set RATA Percent C02 Valid to true.
If PercentC02 is null,
set RATA Percent C02 Valid and Flow RATA Run Valid to false, and return result A.
If PercentC02 is less than or equal to 0 or greater than 20.0,
set RATA Percent C02 Valid and Flow RATA Run Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 553 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-66
Check Name:
Percent 02 Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the Flow RATA Run record:
Set RATA Percent 02 Valid to true.
If Percent02 is null,
set RATA Percent 02 Valid and Flow RATA Run Valid to false, and return result A.
If Percent02 is less than or equal to 0 or greater than 22.0,
set RATA Percent 02 Valid and Flow RATA Run Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 554 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-67
Check Name:
Percent Moisture Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the Flow RATA Run record:
Set RATA Percent Moisture Valid to true.
If PercentMoisture is null,
set RATA Percent Moisture Valid and Flow RATA Run Valid to false, and return result A.
If PercentMoisture is less than or equal to 0 or greater than 75.0,
set RATA Percent Moisture Valid and Flow RATA Run Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 555 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-68
Check Name:
Dry Molecular Weight Valid
Related Former Checks: RATA-38A
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Test Tolerances (Cross Check Table)
Specifications:
For the Flow RATA Run record:
Set RATA Calc Dry Molecular Weight to null.
If RATA Percent C02 and RATA Percent 02 are valid,
Calculate RATA Calc Dry Molecular Weight = (.44 * PercentC02) + (.32 * Percent02) + (.28 * (100 - PercentC02 -
Percent02)).
If DryMolecularWeight is null,
return result A.
If DryMolecularWeight is less than 25 or greater than 35,
return result B.
If RATA Calc Dry Molecular Weight is not null,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the FieldDescription is
equal to "MolecularWeight".
If the absolute value of the difference between the DryMolecularWeight and the RATA Calc Dry Molecular Weight
(rounded to two decimal places) is greater than the tolerance in the cross-check record,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
The DryMolecularWeight is inconsistent with the value recalculated from the data
reported for [key].
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 556 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-69
Check Name:
Wet Molecular Weight Valid
Related Former Checks: RATA-38B
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Test Tolerances (Cross Check Table)
Specifications:
For the Flow RATA Run record:
Set RATA Calc Wet Molecular Weight to null.
If RATA Percent C02 Valid, RATA Percent 02 Valid, and RATA Percent Moisture Valid are true,
Calculate RATA Calc Wet Molecular Weight = (RATA Calc Dry Molecular Weight * (1 - (PercentMoisture / 100))) + (18
* (PercentMoisture /100)).
If WetMolecularWeight is null,
return result A.
If WetMolecularWeight is less than 25 or greater than 35,
return result B.
If RATA Calc Wet Molecular Weight is not null,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the FieldDescription is
equal to "MolecularWeight".
If the absolute value of the difference between the WetMolecularWeight and the RATA Calc Wet Molecular Weight
(rounded to two decimal places) is greater than the tolerance in the cross-check record,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
The WetMolecularWeight is inconsistent with the value recalculated from the data
reported for [key].
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 1)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 557 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-70
Check Name: Method Traverse Point ID Valid
Related Former Checks: RATA-40
Applicability: CEM Check
Description:
Specifications:
For the RATA Traverse record:
Add 1 to RATA Traverse Point Count.
If the MethodTraversePointID is null,
return result A.
If the MethodTraversePointID is equal to the Last RATA Traverse Point ID,
return result B.
Otherwise,
set Last RATA Traverse Point ID to the MethodTraversePointID.
If RATA Traverse Point ID Valid is equal to true, and the MethodTraversePointID is less than 3 characters or contains
non-alphanumeric characters other than
set RATA Traverse Point ID Valid to false, and return result C.
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
The RATA Traverse record for [key] contains the same TraversePointID as another
record in the run.
The RATA Traverse record for this run contains invalid Traverse Point IDs. All
Traverse Point IDs must consist of three alpha-numeric characters. See [key].
Process/Category: QA Test Evaluation Report RATA Traverse Point
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Severity
Fatal
Critical Error Level 1
Non-Critical Error
Environmental Protection Agency
Page 558 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the RATA Traverse record:
If ProbelD is null,
return result A.
Results:
Severity
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report RATA Traverse Point
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
RATA-71
Probe ID Valid
CEM Check
Result Response
A You did not provide [fieldname], which is required for [key].
Environmental Protection Agency
Page 559 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-72
Check Name: Probe Type Valid
Related Former Checks: RATA-41B, C, D
Applicability: CEM Check
Description:
Specifications:
For the RATA Traverse record:
Set RATA Traverse Valid to true.
If ProbeTypeCode is null,
set RATA Traverse Valid to false, and return result A.
Otherwise,
Append ProbeTypeCode to RATA Probe Types.
If ProbeTypeCode is an item in the list of RATA Invalid Probes,
set RATA Traverse Valid to false.
Otherwise,
If ReferenceMethodCode begins with "2F",
If ProbeTypeCode is not equal to "PRISM", "PRISM-T", or "SPHERE",
append ProbeTypeCode to RATA Invalid Probes, set RATA Traverse Valid to false, and return
result B.
If ReferenceMethodCode begins with "2G",
If ProbeTypeCode is equal to "PRANDT1",
append ProbeTypeCode to RATA Invalid Probes, set RATA Traverse Valid to false, and return
result B.
If ReferenceMethodCode is equal to "M2H",
If ProbeTypeCode is not equal to "TYPE-SA", "TYPE-SM" or "PRANDT1",
append ProbeTypeCode to RATA Invalid Probes, set RATA Traverse Valid to false, and return
result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The ProbeTypeCode [value] in the RATA Traverse record for [key] is not appropriate Critical Error Level 1
for a RATA using reference method [method].
Usage:
1 Process/Category: QA Test Evaluation Report RATA Traverse Point
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 560 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-73
Check Name:
Pressure Measure Code Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Pressure Measure Code (Lookup Table)
Pressure Measure Code (Lookup Table)
Specifications:
For the RATA Traverse record:
If the PressureMeasureCode is null,
If the PressureMeasureCode is not in the PressureMeasureCode lookup table,
return result B.
return result A.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report
RATA Traverse Point
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 561 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-74
Check Name:
Velocity Calibration Coefficient Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the RATATraverse record:
If VelocityCalibrationCoefficient is null,
set RATA Traverse Valid to false, and return result A.
If VelocityCalibrationCoefficient is less than 0.5 or greater than 1.5,
set RATA Traverse Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report
RATA Traverse Point
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 562 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the RATA Traverse record:
If LastProbeDate is null,
return result A.
If the Begin Date of the associated RATA run is not null,
If LastProbeDate is after the BeginDate of the associated run,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The LastProbeDate for [key] does not precede the BeginDate of the run. Critical Error Level 1
RATA-75
Last Probe Calibration Date Valid
RATA-42
CEM Check
Usage:
1 Process/Category: QA Test Evaluation Report RATA Traverse Point
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 563 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-76
Check Name:
Velocity Differential Pressure Valid
Related Former Checks: RATA-43
Applicability:
CEM Check
Description:
Specifications:
For each RATA Traverse record:
If AvgVelDiffPressure and AvgSquareVelDiffPressure are both null,
set RATA Traverse Valid to false, and return result A.
If AvgVelDiffPressure and AvgSquareVelDiffPressure are both not null,
set RATA Traverse Valid to false, and return result B.
Results:
Result
A
Response
You did not provide either an AvgVelDiffPressure or AvgSquareVelDiffPressure for
[key].
You provided both an AvgVelDiffPressure and AvgSquareVelDiffPressure for [key].
Report only one of these two values for each traverse point.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report
RATA Traverse Point
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 564 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-77
Check Name:
Stack Temperature Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the RATA Traverse record:
If TStackTemperature is null,
set RATA Traverse Valid to false, and return result A.
If TStackTemperature is less than 0 or greater than 1000,
set RATA Traverse Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report
RATA Traverse Point
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 565 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-78
Check Name:
Yaw Angle Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the RATA Traverse record:
If the associated ReferenceMethodCode for the run begins with "2F" or "2G",
If YawAngle is null,
set RATA Traverse Valid to false, and return result A.
If YawAngle is less than -90 or greater than 90,
set RATA Traverse Valid to false, and return result B.
If the associated ReferenceMethodCode for the run is not null,
If YawAngle is not null,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
Severity
Critical Error Level 1
Critical Error Level 1
C
Non-Critical Error
Usage:
1
Process/Category: QA Test Evaluation Report
RATA Traverse Point
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 566 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the RATA Traverse record:
Set RATA Traverse Validity Determined to true.
If the associated ReferenceMethodCode for the run begins with "2F",
If PitchAngle is null,
set RATA Traverse Valid to false, and return result A.
If PitchAngle is less than -90 or greater than 90,
set RATA Traverse Valid to false, and return result B.
If the associated ReferenceMethodCode for the run is not null,
If PitchAngle is not null,
return result C.
RATA-79
Pitch Angle Valid
CEM Check
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
Process/Category: QA Test Evaluation Report RATA Traverse Point
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Environmental Protection Agency
Page 567 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the RATA Traverse record.
Set RATA Traverse Calc Velocity to null.
If either the RATA Calc Stack Pressure or the RATA Calc Wet Molecular Weight is null,
If RATA Sum Velocity is not null,
set RATA Sum Velocity to null, and return result A.
Otherwise,
If RATA Traverse Valid is equal to false,
set RATA Sum Velocity to null, set Flow RATA Run Valid to false, and return result B.
Otherwise,
If AvgVelDiffPressure is not null,
If the associated ReferenceMethodCode begins with "2F",
Calculate RATA Traverse Calc Velocity = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / RATA Calc Stack Pressure / RATA Calc
Wet Molecular Weight) * cos(YawAngle) * cos(PitchAngle).
If the associated ReferenceMethodCode begins with "2G",
RATA-80
Calculate Traverse Point Velocity Without Wall Effects
RATA-45A/B
CEM Check
Calculate RATA Traverse Calc Velocity = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / RATA Calc Stack Pressure / RATA Calc
Wet Molecular Weight) * cos(YawAngle) .
Otherwise,
Calculate RATA Traverse Calc Velocity = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / RATA Calc Stack Pressure / RATA Calc
Wet Molecular Weight).
Otherwise
If the associated ReferenceMethodCode begins with "2F",
Calculate RATA Traverse Calc Velocity = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) / RATA Calc Stack Pressure /
RATA Calc Wet Molecular Weight) * cos(YawAngle) * cos(PitchAngle).
If the associated ReferenceMethodCode begins with "2G",
Calculate RATA Traverse Calc Velocity = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) / RATA Calc Stack Pressure /
RATA Calc Wet Molecular Weight) * cos(YawAngle).
Otherwise,
Environmental Protection Agency
Page 568 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Calculate RATA Traverse Calc Velocity = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) / RATA Calc Stack Pressure /
RATA Calc Wet Molecular Weight).
Add RATA Traverse Calc Velocity to RATA Sum Velocity.
Add TStackTemperature to RATA Sum Temperature.
If the associated ReferenceMethodCode for the run is equal to "2FH", "2GH", or "M2H", and the
PointUsedlndicator is not equal to 1,
add RATA Traverse Calc Velocity to RATA Sum Adjusted Velocity.
Results:
Result
A
Response
Recalculation of the CalculatedVelocity for all traverse points for operating level [level],
run number [number] was not performed because of the errors listed above.
Recalculation of the CalculatedVelocity for [key] was not performed because of the
errors listed above.
Severity
Informational Message
B
Informational Message
Usage:
1
Process/Category: QA Test Evaluation Report
RATA Traverse Point
Environmental Protection Agency
Page 569 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-81
Check Name: Exterior Method 1 Traverse Point Identifier Valid
Related Former Checks: RATA-44A, B, C
Applicability: CEM Check
Description:
Specifications:
For the RATATraverse record:
If PointUsedlndicator is equal to 1,
If associated ReferenceMethodCode for the run is equal to "2FH", "2GH", or "M2H",
If ReplacementVelocity is null,
If the associated ReferenceMethodCode is equal to "M2H", or the associated DefaultWAF is null,
set RATA Calculated WAF Valid to false, and return result A.
Otherwise,
return result B.
Results:
Result
B
C
Usage:
1
1
Otherwise,
add 1 to RATA Replacement Point Count.
If associated ReferenceMethodCode for the run is not equal to null,
return result C.
Response
You reported a value of 1 as the PointUsedlndicator for [key], but did not provide the
ReplacementVelocity. The software cannot determine if this traverse point should be
used to recalculate a wall effects adjustment factor for this run.
You reported a value of 1 as the PointUsedlndicator for [key], but did not provide the
ReplacementVelocity.
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
Process/Category: QA Test Evaluation Report RATA Traverse Point
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Severity
Critical Error Level 1
Non-Critical Error
Non-Critical Error
Environmental Protection Agency
Page 570 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-82
Check Name:
Number of Wall Effects Points Valid
Related Former Checks: RATA-44D, E
Applicability:
CEM Check
Description:
Specifications:
For the RATATraverse record:
If the associated ReferenceMethodCode for the run is equal to "2FH", "2GH", or "M2H",
If PointUsedlndicator is equal to 1,
IfNumberWallEffectsPoints is null or is less than 2,
If the associated ReferenceMethodCode for the run is equal to "M2H" or the associated DefaultWAF is
null,
set RATA Calculated WAF Valid to false, and return result A.
Otherwise,
return result B.
Otherwise,
If RATA Minimum Wall Points is equal to 0 or is equal to NumberWallEffectsPoints,
set RATA Minimum Wall Points to NumberWallEffectsPoints.
Otherwise,
set RATA Wall Points Consistent to false.
If RATA Minimum Wall Points is greater than Number Wall Effects Points,
set RATA Minimum Wall Points to NumberWallEffectsPoints.
Otherwise,
IfNumberWallEffectsPoints is not null,
return result C.
If the associated ReferenceMethodCode for the run is not null,
IfNumberWallEffectsPoints is not null,
return result D.
Environmental Protection Agency
Page 571 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
B
D
Usage:
1
1
Response
You reported a value of 1 as the PointUsedlndicator for [key], but you did not report a
valid value as the NumberWallEffectsPoints. Measurements at two or more wall effects
points are required to determine a replacement velocity for an exterior method 1 traverse
point. The software cannot determine if this traverse point should be used to recalculate
a wall effects adjustment factor for this run.
You reported a value of 1 as the PointUsedlndicator for [key], but you did not report a
valid value as the NumberWallEffectsPoints. Measurements at two or more wall effects
points are required to determine a replacement velocity for an exterior method 1 traverse
point.
You reported a value in the NumberWallEffectsPoints for [key], A value should only be
reported in this field if the PointUsedlndicator indicates that this is an exterior Methodl
traverse point used to calculate a replacement velocity.
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
Process/Category: QA Test Evaluation Report RATA Traverse Point
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Severity
Critical Error Level 1
Non-Critical Error
Non-Critical Error
Non-Critical Error
Environmental Protection Agency
Page 572 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the RATATraverse record:
Set RATA Adjusted Velocity Determined to true.
If the associated ReferenceMethodCode for the run is equal to "2FH", "2GH", or "M2H",
If the PointUsedlndicator is equal to 1,
If the ReplacementVelocity is null,
set RATA Calculated WAF Valid to false, and return result A.
If the ReplacementVelocity is less than or equal to 0,
set RATA Calculated WAF Valid to false, and return result B.
Otherwise,
add ReplacementVelocity to RATA Sum Adjusted Velocity.
Otherwise,
If the ReplacementVelocity is not null,
If the associated ReferenceMethodCode for the run is equal to "M2H" or the associated DefaultWAF is
null,
set RATA Calculated WAF Valid to false, and return result C.
Otherwise,
return result D.
If the associated ReferenceMethodCode for the run is not null,
If the ReplacementVelocity is not null,
return result E.
RATA-83
Replacement Velocity Valid
RATA-46
CEM Check
Results:
Result
A
B
D
E
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
You reported a ReplacementVelocity for [key], but did not identify this traverse point as
an exterior method 1 traverse point. The software cannot determine if this traverse point
should be used to recalculate a wall effects adjustment factor for this run.
You reported a ReplacementVelocity for [key], but did not identify this traverse point as
an exterior method 1 traverse point.
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Non-Critical Error
Environmental Protection Agency
Page 573 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report RATA Traverse Point
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 574 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-84
Check Name: Calculated Velocity Valid
Related Former Checks: RATA-45C
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the RATA Traverse record:
If CalculatedVelocity is null,
return result A.
If CalculatedVelocity is less than or equal to 0,
return result B.
If RATA Traverse Calc Velocity is not null,
Calculate RATA Traverse Calc Velocity = min(RATA Traverse Calc Velocity, 9999.99), rounded to 2 decimal places. (In
QA Evaluation process, store this value in the RATA Traverse record.)
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the FieldDescription is
equal to "Velocity".
If found, and the absolute value of the difference between the RATA Traverse Calc Velocity and the CalculatedVelocity is
greater than the Tolerance in the cross-check record,
return result C.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "Velocity (PCT)".
If found, and the absolute value of the percentage difference between the RATA Traverse Calc Velocity and the
CalculatedVelocity is greater than the Tolerance in the cross-check record,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The [fieldname] for [key] reported is not within 0.5% of the value calculated from run
and point data reported in Flow RATA Run and RATA Traverse records.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report RATA Traverse Point
Conditions: RATA Adjusted Velocity Determined Equals true
Environmental Protection Agency
Page 575 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Flow RATA Run:
If RATA Stack Diameter Valid is equal to false,
set Flow RATA Run Valid to false.
Set Calculate Run Velocity to Flow RATA Run Valid.
If NumberOfTraversePoints is null,
set Calculate Run Velocity and Flow RATA Level Valid to false, and return result A.
If NumberOfTraversePoints is less than 12,
set Calculate Run Velocity and Flow RATA Level Valid to false, and return result B.
If the associated ReferenceMethodCode for the run is equal to "2FH", "2GH", or "M2H", and the RATA Replacement Point Count
is greater than 0, and NumberOfTraversePoints is less than 16,
set Calculate Run Velocity and Flow RATA Run Valid to false, and return result C.
If RATA Traverse Point Count is greater than or equal to 0,
If NumberOfTraversePoints is not equal to RATA Traverse Point Count,
set Calculate Run Velocity and Flow RATA Run Valid to false, and return result D.
RATA-85
Number of Traverse Points Valid
RATA-39, 47
CEM Check
Results:
Result
A
B
C
D
Response
You did not provide [fieldname], which is required for [key].
The NumberOfTraversePoints reported for [key] is less than the minimum value of 12.
The NumberOfTraversePoints reported for [key] is less than 16. A minimum of 16
traverse points is required for a flow RATA run in which method 2H is used to calculate
a wall effects adjustment factor.
The NumberOfTraversePoints reported for [key] does not correspond to the number of
traverse points identified in RATA Traverse records.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 2)
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 576 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-87
Check Name: Calculate Average Run Velocity Without Wall Effects
Related Former Checks: RATA-48
Applicability: CEM Check
Description:
Specifications:
For the Flow RATA Run:
If Calculate Run Velocity is equal to false,
If RATA Calculated WAF Valid is equal to true,
return result A.
Otherwise
return result B.
Otherwise,
Calculate RATA Calc Average Velocity = RATA Sum Velocity / NumberOfTraversePoints.
If the associated ReferenceMethodCode begins with "2F", and the RATA Calc Average Velocity (rounded to 2 decimal
places) is less than 20,
set Flow RATA Run Valid to false, and return result C.
Results:
Result
A
B
Response
Recalculation of the AvgVelocityWithoutWallEffects and AverageStackFlowRate for
[key] was not performed because of the errors listed above.
Recalculation of the AvgVelocityWithoutWallEffects,
AverageVelocityWithWallEffects, CalculatedWAF, and AverageStackFlowRate for
[key] was not performed because of the errors listed above.
The average velocity for [key] recalculated from the values in Flow RATA Run and
RATA Traverse records is less than 20 ft/sec. A minimum average velocity of 20.0
ft/sec is required to use Method 2F for a flow RATA. Recalculation of the average stack
flow for this run was not performed.
Severity
Informational Message
Informational Message
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report Flow RATA Run (Pass 2)
Environmental Protection Agency
Page 577 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For a Flow RATA Run record:
Set RATA Calc Calculated WAF and RATA Calc Average Adjusted Velocity to null.
If the associated reference method code is equal to "2FH", "2GH", or "M2H", the associated DefaultWAF is null, and the RATA
Replacement Point Count is greater than 0,
If Calculate Run Velocity is equal to false,
set RATA Calculated WAF Valid to false.
Otherwise,
If RATA Calculated WAF Valid is equal to false,
return result A.
If the RATA Replacement Point Count is not equal to 4,
set RATA Calculated WAF Valid to false, and return result B.
Otherwise,
Calculate RATA Calc Average Adjusted Velocity = RATA Sum Adjusted Velocity
NumberOfT raversePoints.
Calculate RATA Calc Calculated WAF = RATA Calc Average Adjusted Velocity /
Velocity.
RATA-88
Calculate Average Run Velocity With Wall Effects and Calculated WAF
RATA-50A/B
CEM Check
/
RATA Calc Average
Results:
Result
A
B
Usage:
1
Response
Recalculation of the AverageVelocityWithWallEffects and the CalculatedWAF for [key]
was not performed because of the errors listed above.
You identified [key] as a run to be used in the calculation of a wall effects adjustment
factor, but you did not identify the correct number of exterior method 1 traverse points
for this run. Four exterior method 1 traverse points are required to calculate a wall
effects adjustment factor. Recalculation of the AverageVelocityWithWallEffects and
CalculatedWAF was not performed.
Severity
Informational Message
Critical Error Level 1
Process/Category:
QA Test Evaluation Report Flow RATA Run (Pass 2)
Environmental Protection Agency
Page 578 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-89
Check Name: Average Run Velocity with Wall Effects Valid
Related Former Checks: RATA-49, 50 C/D
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the Flow RATA Run record:
If the associated ReferenceMethodCode is equal to "2FH", "2GH", or "M2H",
If RATA Calc Average Adjusted Velocity is not null,
Calculate RATA Calc Average Adjusted Velocity = min(RATA Calc Average Velocity, 9999,99), rounded to 2
decimal places.
If the AverageVelocityWithWallEffects is null,
If the RATA Replacement Point Count is greater than 0,
return result A.
Otherwise,
If the RATA Replacement Point Count is equal to 0,
return result B.
Otherwise,
If RATA Calc Average Adjusted Velocity is not null,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "Velocity".
If found, and the absolute value of the difference between the RATA Calc Average Adjusted
Velocity and the AverageVelocityWithWallEffects is greater than the Tolerance in the cross-check
record,
return result C.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to
"RATA" and the FieldDescription is equal to "Velocity (PCT)".
If found, and the absolute value of the percentage difference between the RATA Calc
Average Adjusted Velocity and the AverageVelocityWithWallEffects is greater than the
Tolerance in the cross-check record,
return result C.
Otherwise,
If the AverageVelocityWithWallEffects is not null,
return result D.
Environmental Protection Agency
Page 579 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
C
D
Usage:
1
Response
You identified [key] as a run to be used in the calculation of a wall effects adjustment
factor, but you did not report a [fieldname].
You reported [fieldname] for [key], but you did not identify any exterior method 1
traverse points for this run. Four exterior method 1 traverse points are required to
calculate a [fieldname].
The [fieldname] for [key] reported is not within 0.5% of the value calculated from run
and point data reported in Flow RATA Run and RATA Traverse records.
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
Severity
Critical Error Level 1
Non-Critical Error
Critical Error Level 1
Non-Critical Error
Process/Category:
QA Test Evaluation Report Flow RATA Run (Pass 2)
Environmental Protection Agency
Page 580 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-90
Check Name:
Average Velocity Without Wall Effects Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the Flow RATA Run record:
If RATA Calc Dry Molecular Weight is not null,
Calculate RATA Calc Dry Molecular Weight = min(RATA Calc Dry Molecular Weight, 999.99), rounded to 2 decimal
places.
If RATA Calc Wet Molecular Weight is not null,
Calculate RATA Calc Wet Molecular Weight = min(RATA Calc Wet Molecular Weight, 999.99), rounded to 2 decimal
places.
If RATA Calc Average Velocity is not null,
Calculate RATA Calc Average Velocity = min(RATA Calc Average Velocity, 9999.99), rounded to 2 decimal places.
If AvgVelocityWithoutWallEffects is null,
If AvgVelocityWithoutWallEffects is less than or equal to 0,
return result B.
If Calculate Run Velocity is equal to true,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the FieldDescription is
equal to "Velocity".
If found, and the absolute value of the difference between the RATA Calc Average Velocity and the
AvgVelocityWithoutWallEffects is greater than the Tolerance in the cross-check record,
return result C.
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "Velocity (PCT)".
If found, and the absolute value of the percentage difference between the RATA Calc Average Velocity and the
AvgVelocityWithoutWallEffects is greater than the Tolerance in the cross-check record,
return result C.
return result A.
Otherwise,
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The [fieldname] for [key] reported is not within 0.5% of the value calculated from run
and point data reported in Flow RATA Run and RATA Traverse records.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Environmental Protection Agency
Page 581 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 2)
Environmental Protection Agency
Page 582 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-91
Check Name:
Calculate Adjusted WAF for the Run
Related Former Checks: RATA-50G
Applicability:
CEM Check
Description:
Specifications:
For a Flow RATA Run:
Set RATA Adjusted WAF Determined to true.
If Flow RATA Level Valid is true,
If the RATA Calculated WAF Valid is false,
set Flow RATA Level Valid to false.
Otherwise,
If NumberOfTraversePoints is greater than the RATA Maximum Traverse Point Count for All Runs,
set RATA Maximum Traverse Point Count for All Runs to NumberOfTraversePoints.
If RATA Calc Calculated WAF is not null,
Add 1 to RATA WAF Run Count.
If NumberOfTraversePoints is less than the RATA Minimum Traverse Point Count,
set RATA Minimum Traverse Point Count to NumberOfTraversePoints.
If NumberOfTraversePoints is greater than the RATA Maximum Traverse Point Count,
set RATA Maximum Traverse Point Count to NumberOfTraversePoints.
If RATA Calc Calculated WAF is greater than .9800,
add RATA Calc Calculated WAF to RATA Sum WAF.
If RATA Stack Diameter Valid is true,
Calculate wallpoints = min(int (6 * StackDiameter * (1 - sqrt(l - (4 /
NumberOfTraversePoints)))), 12)
If StackDiameter >= 16.5,
add 1 to wallpoints.
If wallpoints <= RATA Minimum Wall Points,
If RATA Calc Calculated WAF is greater than .9700,
add RATA Calc Calculated WAF to RATA Sum WAF.
Otherwise,
add .9700 to RATA Sum WAF.
Otherwise,
add .9800 to RATA Sum WAF.
If RATA Wall Points Consistent is equal to false,
return result A.
Otherwise,
Environmental Protection Agency
Page 583 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result Response Severity
A The NumberWallEffectsPoints reported in the RATA Traverse records for [key] are Informational Message
inconsistent. Therefore, it is assumed that a partial wall effects traverse was performed.
Usage:
1 Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 2)
Environmental Protection Agency
Page 584 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-92
Check Name: Calculated WAF for the Run Valid
Related Former Checks: RATA-50E, F
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the Flow RATA Run record:
If the associated ReferenceMethodCode is not equal to "2FH", "2GH", or "M2H",
If the CalculatedWAF is not null,
return result A.
Otherwise,
If RATA Calc Sum WAF is not null,
Calculate RATA Calc Calculated WAF = min(RATA Sum WAF, 99.9999), rounded to 4 decimal places.
If the CalculatedWAF is null,
If the RATA Replacement Point Count is greater than 0,
return result B.
Otherwise,
If the RATA Replacement Point Count is equal to 0,
return result C.
Otherwise,
If RATA Sum WAF is not null,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "WAF".
If found, and the absolute value of the difference between the RATA Sum WAF and the
CalculatedWAF is greater than the Tolerance in the cross-check record,
return result D.
Results:
Result
A
B
C
D
Response
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
You identified [key] as a run to be used in the calculation of a wall effects adjustment
factor, but you did not report a [fieldname].
You reported [fieldname] for [key], but you did not identify any exterior method 1
traverse points for this run. Four exterior method 1 traverse points are required to
calculate a [fieldname].
The reported CalculatedWAF for [key] is inconsistent with the value recalculated from
the velocity values.
Severity
Non-Critical Error
Critical Error Level 1
Non-Critical Error
Critical Error Level 1
Environmental Protection Agency
Page 585 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 2)
Conditions: RATA Adjusted WAF Determined Equals true
Environmental Protection Agency
Page 586 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-93
Check Name:
Calculate Average Wet Stack Flow
Related Former Checks: RATA-52C
Applicability:
CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the Flow RATA Run record:
Set RATA Calc Average Stack Flow to null.
If Calculate Run Velocity is equal to false,
set RATA Level Valid to false.
If Flow RATA Level Valid is equal to false, RATA Calc Stack Area is null, or RATA Calc Stack Pressure is null,
set RATA Level Valid to false, and return result A.
Otherwise,
Calculate RATA Calc Average Stack Flow = 3600 * RATA Calc Average Velocity * RATA Calc Stack Area * 528 /
((RATA Sum Temperature /NumberOfTraversePoints) + 460) * RATA Calc Stack Pressure / 29.92.
If the associated ReferenceMethodCode is equal to "2FJ" or "2GJ",
Calculate RATA Calc Average Stack Flow = RATA Calc Average Stack Flow * CalculatedWAF (in the RATA
Summary record).
If the associated ReferenceMethodCode is equal to "2F", "2FJ", "2G", or "2GJ",
Calculate RATA Calc Average Stack Flow = min(RATA Calc Average Stack Flow, 9999999999.999), rounded to
the nearest 1000.
If AverageStackFlowRate is not null and is greater than 0, and AverageStackFlowRate is not equal to RATA Calc
Average Stack Flow,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "StackFlow".
If found, and the absolute value of the difference between the RATA Calc Average Stack Flow and the
AverageStackFlowRate is greater than the Tolerance in the cross-check record,
If the associated CEMValue is greater than or equal to 0,
Add (RATA Calc Average Stack Flow - CEMValue) to RATA Sum Differences.
Add the square of (RATA Calc Average Stack Flow - CEMValue) to RATA Sum Square
Differences.
Add RATA Calc Average Stack Flow to RATA Sum Reference Values, and return result B.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "Stack Flow (PCT)".
If found, and the absolute value of the percentage difference between the RATA Calc Average
Stack Flow and the AverageStackFlowRate is greater than the Tolerance in the cross-check
Environmental Protection Agency
Page 587 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
record,
If the associated CEMValue is greater than or equal to 0,
Add (RATA Calc Average Stack Flow - CEMValue) to RATA Sum Differences.
Add the square of (RATA Calc Average Stack Flow - CEMValue) to RATA
Sum Square Differences.
Add RATA Calc Average Stack Flow to RATA Sum Reference Values, and return result
B.
Add AverageStackFlowRate to RATA Sum Reference Values.
If the associated CEMValue is greater than or equal to 0,
Add (AverageStackFlowRate - CEMValue) to RATA Sum Differences.
Add the square of (AverageStackFlowRate - CEMValue) to RATA Sum Square
Differences.
Otherwise,
Otherwise,
Add RATA Calc Average Stack Flow to RATA Sum Reference Values.
If the associated CEMValue is greater than or equal to 0,
Add (RATA Calc Average Stack Flow - CEMValue) to RATA Sum Differences.
Add the square of (RATA Calc Average Stack Flow - CEMValue) to RATA Sum Square
Differences.
In the QA Evaluation process, store the calculated values for the run in the Flow RATA Run and RATA Run
records.
Otherwise,
store RATA Calc Average Stack Flow in the associated RunNumber element of RATA Stack Flow Array.
Results:
Result
A
Response
Recalculation of the AverageStackFlowRate for [key] was not performed because of the
errors listed above.
The AverageStackFlowRate reported for [key] is inconsistent with the value recalculated
from the Flow Rata Run and RATA Traverse records.
Severity
Informational Message
B
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 2)
Environmental Protection Agency
Page 588 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-94
Check Name:
Average Wet Stack Flow Rate Valid
Related Former Checks: RATA-53
Applicability:
CEM Check
Description:
Specifications:
For the Flow RATA Run:
If AverageStackFlowRate is null,
return result A.
If AverageStackFlowRate is less than or equal to 0,
return result B.
If the associated RATAReferenceValue for the run is not null, and the AverageStackFlowRate is not equal to the associated
RATAReferenceValue for the run,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
The AverageStackFlowRate reported for [key] does not equal the RATAReferenceValue
for the run.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Flow RATA Run (Pass 2)
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 589 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-95
Check Name: Calculate WAF for Operating Level
Related Former Checks: RATA-33F, 51B, C, D, E, H
Applicability: CEM Check
Description:
Specifications:
For the RATA Summary record:
Set RATA WAF Calculated to true.
If Flow RATA Level Valid is equal to true:
If RATA WAF Run Count is equal to 0,
If the associated ReferenceMethodCode is equal to "M2H",
set Flow RATA Level Valid to false, and return result A.
If the DefaultWAF is null,
set Flow RATA Level Valid to false, and return result B.
Otherwise,
If DefaultWAF is null,
If RATA Maximum Traverse Point Count - RATA Minimum Traverse Point Count is greater than 3,
set RATA Level Valid to false, and return result C.
Otherwise,
Calculate RATA Calc Level WAF = RATA Sum WAF / RATA WAF Count.
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "WAF".
If found, and the absolute value of the difference between the RATA Calc Level WAF (rounded to
4 decimal places) and the CalculatedWAF is greater than the Tolerance in the cross-check record,
return result D.
If DefaultWAF is not null, and RATA Maximum Traverse Point Count for All Runs is greater than 16,
set Flow RATA Level Valid to false, and return result E.
Note: This category and Flow RATA Run (Method 2H) are only performed when reference method is equal to "2FH", "M2H", "2GH", or
"D2H".
Environmental Protection Agency
Page 590 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
B
D
E
Usage:
1
Response
You reported that a flow RATA was performed using method M2H for [key], but you
did not identify runs for the purpose of calculating a wall effects adjustment factor.
When using these methods, you must identify at least one run for the purpose of
calculating a WAF.
You reported that a flow RATA was performed using method [method] for [key], but
you did not identify any runs for the purpose of calculating a wall effects adjustment
factor (WAF). When using methods 2FF[ or 2GF[, you must report a default WAF or
identify at least one run for the purpose of calculating a WAF.
The number of traverse points for the runs used to calculate the wall effects adjustment
factor for [key] varies by more than 3. This suggests that the wall sector areas for these
runs are not equal. The wall sector areas for each run used to calculate a WAF should
be equal.
The reported CalculatedWAF for [key] is inconsistent with the value recalculated from
the velocity values.
You reported the use of a default wall effects adjustment factor for [key], However, at
least one of the runs of this RATA had more than 16 traverse points. You cannot use a
default WAF if there are more than 16 traverse points.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA Test Evaluation Report — RATA Summary (Method 2H)
Environmental Protection Agency
Page 591 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-96
Check Name: Calculated WAF for Operating Level Reasonable
Related Former Checks: RATA-51 F, G
Applicability: CEM Check
Description:
Specifications:
For the RATA Summary record where Flow RATA Level Valid is equal to true, DefaultWAF is null, RATA Maximum Traverse Point
Count for All Runs is less than or equal to 16, and RATA Calc Level WAF is greater than .9900,
If RATA Calc Level WAF is greater than .9950,
return result A.
Otherwise,
If the TestEndDate is valid,
Locate a LocationAttribute record for the location where the BeginDate is on or before the TestEndDate and the
EndDate is null or is on or after the TestEndDate.
If found, and MaterialCode is equal to "BRICK",
return result B.
Results:
Result
A
B
Response
You have indicated the use of calculated wall effects adjustment factor for [key], but the
WAF calculated from the data in the Flow RATA Run and RATA Traverse records is
greater than .9950. It may be advantageous for you to use a default WAF in your RATA
calculations.
You have indicated the use of calculated wall effects adjustment factor for [key], but the
WAF calculated from the data in the Flow RATA Run and RATA Traverse records is
greater than .9900. It may be advantageous for you to use a default WAF in your RATA
calculations.
Severity
Informational Message
Informational Message
Usage:
1
Process/Category:
QA Test Evaluation Report — RATA Summary (Method 2H)
Environmental Protection Agency
Page 592 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-97
Check Name: Determine WAF Applicability
Related Former Checks: RATA-52B
Applicability: CEM Check
Description:
Specifications:
For a RATA Run:
Set RATA Applicable WAF to null.
If Flow RATA Level Valid is equal to true and the stack flow value in the RATA Stack Flow Array for the run is not zero:
If the DefaultWAF is not null,
set RATA Applicable WAF to the Default WAF.
Otherwise,
If NumberOfTraversePoints - RATA Maximum Traverse Point Count is greater than 3,
set RATA Applicable WAF to 1, and return result A.
Otherwise,
set RATA Applicable WAF to RATA Calc Level WAF.
Results:
Result Response Severity
A The NumberOfTraversePoints reported for [key] is more than 3 greater than the number Non-Critical Error
of traverse points in the run(s) used to calculate the wall effects adjustment factor. This
suggests that the wall sector area for this run is less than the wall sector area in the run(s)
used to calculate the WAF. A calculated WAF cannot be applied to a run whose wall
sector area is less than the wall sector area in the run(s) used to calculate the WAF.
Usage:
1 Process/Category: QA Test Evaluation Report RATA Run (Method 2H)
Environmental Protection Agency
Page 593 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-98
Check Name: Calculate Average Wet Stack Flow for Method 2H
Related Former Checks: RATA-52C
Applicability: CEM Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the RATA Run:
Set RATA Calc Average Stack Flow 2H to null.
If Flow RATA Level Valid is equal to false,
set RATA Level Valid to false.
Otherwise,
If the stack flow value in the RATA Stack Flow Array for the run is not zero,
Calculate RATA Calc Average Stack Flow 2H = min(RATA Stack Flow Array [RunNumber] * RATA Applicable
WAF, 9999999999.999), rounded to the nearest 1000.
Round the RATA Applicable WAF to 4 decimal places.
If AverageStackFlowRate is null, is less than or equal to 0, or the AverageStackFlowRate is equal to RATA Calc
Average Stack Flow 2H ,
If the associated CEMValue is greater than or equal to 0,
Add (RATA Calc Average Stack Flow 2H - CEMValue) to RATA Sum Differences.
Add the square of (RATA Calc Average Stack Flow 2H - CEMValue) to RATA Sum Square
Differences.
Add RATA Calc Average Stack Flow 2H to RATA Sum Reference Values.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and the
FieldDescription is equal to "StackFlow".
If found, and the absolute value of the difference between the RATA Calc Average Stack Flow 2H and the
AverageStackFlowRate is greater than the Tolerance in the cross-check record,
If the associated CEMValue is greater than or equal to 0,
Add (RATA Calc Average Stack Flow 2H - CEMValue) to RATA Sum Differences.
Add the square of (RATA Calc Average Stack Flow 2H - CEMValue) to RATA Sum
Square Differences.
Add RATA Calc Average Stack Flow 2H to RATA Sum Reference Values, and return result A.
Otherwise,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "RATA" and
the FieldDescription is equal to "Stack Flow (PCT)".
Environmental Protection Agency
Page 594 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If found, and the absolute value of the percentage difference between the RATA Calc Average
Stack Flow 2H and the AverageStackFlowRate is greater than the Tolerance in the cross-check
record,
If the associated CEMValue is greater than or equal to 0,
Add (RATA Calc Average Stack Flow 2H - CEMValue) to RATA Sum
Differences.
Add the square of (RATA Calc Average Stack Flow 2H - CEMValue) to RATA
Sum Square Differences.
Add RATA Calc Average Stack Flow 2H to RATA Sum Reference Values, and return
result A.
Otherwise,
If the associated CEMValue is greater than or equal to 0,
Add (AverageStackFlowRate - CEMValue) to RATA Sum Differences.
Add the square of (AverageStackFlowRate - CEMValue) to RATA Sum Square
Differences.
Add AverageStackFlowRate to RATA Sum Reference Values.
In the QA Evaluation process, store the calculated values for the run in the Flow RATA Run and RATA Run records.
Results:
Result Response Severity
A The AverageStackFlowRate reported for [key] is inconsistent with the value recalculated Critical Error Level 1
from the Flow Rata Run and RATA Traverse records.
Usage:
1 Process/Category: QA Test Evaluation Report RATA Run (Method 2H)
Environmental Protection Agency
Page 595 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For a RATA:
If RATA Zero Value is equal to true,
return result A.
Results:
Result Response Severity
A For one or more runs of this RATA the CEM Value and/or Reference Value was equal Informational Message
to zero.
Usage:
1 Process/Category: QA Test Evaluation Report RATA Evaluation (Pass 1)
Conditions: RATA Aborted Equals false
RATA-122
Zero Value Reported
CEM Check
Environmental Protection Agency
Page 596 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-100
Check Name:
Test Result Code Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Test Result Code (Lookup Table)
Specifications:
For the TestSummary record:
If TestResultCode is null,
return result A.
If TestResultCode is not equal to "PASSED", "PASSAPS", "FAILED", or "ABORTED",
Locate the TestResultCode is not in the Test Result Code Lookup table,
If not found,
return result B.
If found,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Severity
Critical Error Level 1
Fatal
C
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
Environmental Protection Agency
Page 597 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks:
Applicability:
Description:
Specifications:
For the RATA Run with a RunStatusCode equal to "RUNUSED":
RATA-101
RATA Run Values Valid
CEM Check
If associated SystemTypeCode of the RATA is equal to "FLOW", and either the CEMValue is greater than 0 and not rounded to
1000 or the RATAReferenceValue is greater than 0 and not rounded to 1000,
return result A.
If either the CEMValue is equal to 0 or the RATAReferenceValue is equal to 0,
return result B.
Results:
Result
A
B
Usage:
1
Response
The CEM Value and/or Reference Value for [key] was not rounded to the nearest 1000
scfh.
The CEM Value and/or Reference Value for [key] is equal to zero.
Process/Category:
Severity
Non-Critical Error
Informational Message
QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
Environmental Protection Agency
Page 598 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-102
Check Name: Number of Load Levels Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA:
If the NumberOfLoadLevels is null,
return result A.
If the SystemTypeCode of the associated system is equal to "FLOW",
If the NumberOfLoadLevels is not between 1 and 3,
return result B.
Otherwise,
If the NumberOfLoadLevels is not equal to 1,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA and Certification Data Entry Screen Evaluation RATA Evaluation
Environmental Protection Agency
Page 599 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-103
Check Name:
Overall Relative Accuracy Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the RATA:
If the TestResultCode is equal to "ABORTED",
If the RelativeAccuracy is not equal to null,
return result A.
If the TestResultCode is equal to "PASSED", "PASSAPS", or "FAILED",
If the RelativeAccuracy is null,
return result B.
If the RelativeAccuracy is less than 0,
return result C.
Results:
Result
Response
You reported [fieldname], which is not appropriate for [testtype].
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
A
B
C
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
Environmental Protection Agency
Page 600 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-104
Check Name:
Overall BAF Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the RATA:
If the TestResultCode is equal to "FAILED" or "ABORTED",
If the OverallBiasAdjustmentFactor is not equal to null,
return result A.
If the TestResultCode is equal to "PASSED" or "PASSAPS",
If the OverallBiasAdjustmentFactor is null,
return result B.
If the OverallBiasAdjustmentFactor is less than 1,
return result C.
Results:
Result
Response
You reported [fieldname], which is not appropriate for [testtype].
You did not provide [fieldname], which is required for [key].
The [fieldname] for [key] is not within the range of valid values. This value must be
equal to or greater than 1.000.
Severity
A
B
C
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
Environmental Protection Agency
Page 601 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-105
Check Name:
RATA Frequency Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Rata Frequency Code (Lookup Table)
Specifications:
For the RATA:
If the TestResultCode is equal to "FAILED" or "ABORTED",
If the RATAFrequencyCode is not equal to null,
return result A.
If the TestResultCode is equal to "PASSED" or "PASSAPS",
If the RATAFrequencyCode is null,
return result B.
If the RATAFrequencyCode is not in the RATAFrequencyCode lookup table,
return result C.
If RATAFrequencyCode is equal to "8QTRS",
If the SystemDesignationCode of the associated system is not equal to "B",
return result C.
If RATAFrequencyCode is equal to "ALTSL",
If the SystemTypeCode of the associated system is not equal to "FLOW",
return result C.
Results:
Result
Response
You reported [fieldname], which is not appropriate for [testtype].
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
A
B
C
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
Environmental Protection Agency
Page 602 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-106
Check Name: Duplicate RATA
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode = "RATA" and the TestNumber is equal to the
TestNumber in the current record.
If found,
return result A.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "RATA" and the TestNumber
is equal to the TestNumber in the current record.
If found,
return result B.
Results:
Result
A
B
Usage:
1
Response
Another [testtype] with this test number already exists. You must assign a different test
number.
You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
Conditions: Test Number Valid Equals true
Severity
Fatal
Fatal
Environmental Protection Agency
Page 603 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-107
Check Name: Duplicate RATA Summary
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA Summary record with a valid OperatingLevelCode:
Locate another RATA Summary record for the test where the OperatingLevelCode is equal to the OperatingLevelCode in the current
record.
If found,
return result A.
Results:
Result Response Severity
A Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
Environmental Protection Agency
Page 604 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-108
Check Name: Duplicate RATA Run
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA Run record with a valid OperatingLevelCode and RunNumber:
Locate another RATA Run record for the test where the associated OperatingLevelCode is equal to the associated
OperatingLevelCode in the current record and the Run Number is equal to the Run Number in the current record.
If found,
return result A.
Results:
Severity
Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
Result Response
A Another [recordtype] record already exists with the same [fieldnames].
Environmental Protection Agency
Page 605 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-109
Check Name:
Duplicate Flow RATA Run
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the Flow RATA Run record with a valid OperatingLevelCode and RunNumber:
Locate another Flow RATA Run record for the test where the associated OperatingLevelCode is equal to the associated
OperatingLevelCode in the current record and the associated RunNumber is equal to the associated RunNumber in the current
record.
If found,
return result A.
Results:
Result
A
Response
Another [recordtype] record already exists with the same [fieldnames].
Severity
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 606 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-110
Check Name:
Duplicate RATA Traverse
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the RATA Traverse record with a valid OperatingLevelCode, RunNumber, and a non-null MethodTraversePointID:
Locate another RATA Traverse record for the test where the associated OperatingLevelCode is equal to the associated
OperatingLevelCode in the current record, the Run Number is equal to the Run Number in the current record, and the
MethodTraversePointID is equal to the MethodTraversePointID in the current record.
If found,
return result A.
Results:
Result
A
Response
Another [recordtype] record already exists with the same [fieldnames].
Severity
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 607 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-111
Check Name: Reported Calculated Velocity Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA Traverse record:
If CalculatedVelocity is null,
return result A.
If CalculatedVelocity is less than or equal to 0,
return result B.
Results:
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Result Response
A You did not provide [fieldname], which is required for [key],
B You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
Environmental Protection Agency
Page 608 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-112
Check Name: Reported Operating Level Valid
Related Former Checks:
Applicability: CEM Check
Description:
Validation Tables:
Operating Level Code (Lookup Table)
Specifications:
For the current record:
If the OperatingLevelCode is null,
return result A.
If the OperatingLevelCode is not in the OperatingLevelCode lookup table,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
B You reported a [fieldname] that is not in the list of valid values. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
3 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
4 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 609 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-113
Check Name: Reported Run Number Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the current RATA:
If RunNumber is null,
return result A.
If RunNumber is not greater than or equal to 1 and less than or equal to 99,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
B The value [value] in the field [fieldname] for [key] is not within the range of valid Fatal
values from [minvalue] to [maxvalue].
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
3 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Environmental Protection Agency
Page 610 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-114
Check Name:
Reported Average Velocity With Wall Effects Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the Flow RATA Run record:
Set RATA Traverse Point Count to -1.
If the AverageVelocityWithWallEffects is not null,
If the associated ReferenceMethodCode for the run is equal to "2F", "2G", "2FJ", or "2GJ",
return result A.
If the AverageVelocityWithWallEffects is less than or equal to 0,
return result B.
If the associated ReferenceMethodCode for the run is equal to "M2H", or the CalculatedWAF is not null,
return result C.
Otherwise,
Results:
Result
A
Response
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
You identified [key] as a run to be used in the calculation of a wall effects adjustment
factor, but you did not report a [fieldname].
Severity
Non-Critical Error
B
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 611 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-115
Check Name: Reported Average Velocity Without Wall Effects Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the Flow RATA Run record:
If AvgVelocityWithoutWallEffects is null,
return result A.
If AvgVelocityWithoutWallEffects is less than or equal to 0,
return result B.
Results:
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Result Response
A You did not provide [fieldname], which is required for [key],
B You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
Environmental Protection Agency
Page 612 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-116
Check Name: Reported WAF for the Run Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the Flow RATA Run record:
If the CalculatedWAF is not null,
If the associated ReferenceMethodCode is equal to "2F", "2G", "2FJ" or "2GJ",
return result A.
If the CalculatedWAF is less than 0 or is greater than 1,
return result B.
Otherwise,
If the associated ReferenceMethodCode for the run is equal to "M2H", or the AverageVelocityWithWallEffects is not null,
return result C.
Results:
Result
A
B
C
Usage:
1
Response
You have provided a value for [fieldname] for [key], which is not appropriate for a test
using this reference method.
You reported an invalid value in the CalculatedWAF field for [key], A WAF must be
greater than 0 and less than or equal to 1.
You identified [key] as a run to be used in the calculation of a wall effects adjustment
factor, but you did not report a [fieldname].
Severity
Non-Critical Error
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Environmental Protection Agency
Page 613 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the RATA:
If the MonitoringSystemID is null,
return result A.
Results:
Severity
Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Evaluation
RATA-117
System ID Valid
CEM Check
Result Response
A You did not provide [fieldname], which is required for [key].
Environmental Protection Agency
Page 614 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-118
Check Name:
Test Claim Code Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the Test Qualification record:
If the TestClaimCode is null,
set RATA Test Claim Code Valid to false, and return result A.
If the TestClaimCode is not equal to "SLC", "NLE", or "ORE",
set RATA Test Claim Code Valid to false, and return result B.
Otherwise,
set RATA Test Claim Code Valid to true.
If the TestClaimCode is equal to "SLC",
If the associated SystemTypeCode for the RATA is not equal to "FLOW",
return result C.
If the associated NumberOfLoadLevels for the RATA is greater than 1,
return result D.
If the TestClaimCode is equal to "ORE",
If the associated SystemTypeCode for the RATA is not equal to "FLOW",
return result C.
If the associated NumberOfLoadLevels for the RATA is less than 2,
return result E.
If the TestClaimCode is equal to "NLE",
If the associated NumberOfLoadLevels for the RATA is greater than 1,
return result D.
Results:
Result
Response
You did not provide [fieldname], which is required for [key].
You reported a [fieldname] that is not in the list of valid values.
The Test Claim [value] for this RATA is invalid, because this claim only applies to a
FLOW monitoring system.
The Test Claim [value] is invalid, because this claim only applies to a single-level
RATA.
The Test Claim [value] is invalid, because this claim only applies to a multi-level Flow
RATA.
Severity
Fatal
Critical Error Level 1
Critical Error Level 1
A
B
C
D
Critical Error Level 1
E
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Test Qualification Evaluation
Environmental Protection Agency
Page 615 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-119
Check Name: Single-Level Claim Begin Date Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a valid TestQualification record with a TestClaimCode equal to "SLC":
If BeginDate is null,
return result A.
If BeginDate is earlier than 1/1/1993,
return result B.
Results:
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Test Qualification Evaluation
Result Response
A You did not provide [fieldname], which is required for [key],
B You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
Environmental Protection Agency
Page 616 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-120
Check Name:
Single-Level Claim End Date Valid
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For a valid TestQualification record with a TestClaimCode equal to "SLC":
If EndDate is null,
return result A.
If the EndDate is later than the BeginDate of the TestSummary record of this RATA,
return result B.
If the BeginDate is not null and the EndDate is on or before the BeginDate,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The EndDate in the single-level claim for this RATA is not prior to the begin date of this
RATA.
You reported [datefield2] which is prior to [datefieldl] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Test Qualification Evaluation
Environmental Protection Agency
Page 617 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-121
Check Name: Duplicate Test Claim
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the Test Qualification record with a valid Test
Locate another Test Qualification record
If found,
return result A.
Results:
Result Response Severity
A Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Test Qualification Evaluation
Claim Code:
for the test where the TestClaimCode is equal to the TestClaimCode in the current record.
Environmental Protection Agency
Page 618 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-123
Check Name: APS Indicator Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the RATA summary record:
If APSIndicator is null,
return result A.
Results:
Severity
Critical Error Level 1
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation RATA Summary Evaluation
Result Response
A You did not provide [fieldname], which is required for [key].
Environmental Protection Agency
Page 619 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-124
Check Name: Flow RATA Record Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For the record:
If the associated ReferenceMethodCode is not null and does not begin with "2F","2G", or "M2H",
set Flow RATA Record Valid to false, and return result A.
Otherwise,
set Flow RATA Record Valid to true.
Results:
Result
A
B
Usage:
1
If the RunStatusCode is equal to "NOTUSED",
return result B.
Response
This record is not appropriate for a RATA conducted using this reference method.
This record should not be reported, because the RunStatusCode is equal to
"NOTUSED". You should only report Flow RATA Run and RATA Traverse records
for runs that are used in the calculation of relative accuracy.
Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Evaluation
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Evaluation
Severity
Critical Error Level 1
Non-Critical Error
Environmental Protection Agency
Page 620 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-125
Check Name:
Calculate RATA Summary Values
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Ref Method Code (Lookup Table)
T-Values (Cross Check Table)
Specifications:
For the RATA summary record:
Set RATA Calc Mean CEM, RATA Calc Mean RV, RATA Calc Mean Diff, RATA Calc SD, RATA Calc CC, RATA Calc TValue,
RATA Calc Average GUL, RATA Calc RA, RATA Calc BAF, RATA Calc APS, and RATA Calc Area to null.
If the OperatingLevelCode is not equal to "Ft", "L", "M", or "N",
return result A.
Otherwise,
Set TotalRV, TotalCEM, TotalGUL, SumDiff, SumSqDiff, UsedCt, and NotUsedCt to 0.
Sort the RATA Run records for the OperatingLevelCode in EndDate, EndHour, and EndMinute order.
For each RATA run record:
If the Begin Date is null, the Begin Hour is null or not between 0 and 23, the Begin Minute is null or not between 0
and 59, the End Date is null, the End Hour is null or not between 0 and 23, the End Minute is null or not between 0
and 59, or the BeginDate/BeginHour/BeginMinute is on or after the EndDate/EndHour/EndMinute.
If the BeginDate/BeginHour/BeginMinute is before the EndDate/EndHour/EndMinute of the previous run,
return result A.
If RunStatusCode is equal to "NOTUSED",
add 1 to NotUsedCt.
If NotUsedCt is greater than 3,
return result B.
If RunStatusCode is equal to "RUNUSED",
add 1 to UsedCt.
If CEMValue is null or less than 0, RATAReferenceValue is null or less than 0, or
GrossUnitLoad is null or less than 0,
return result A.
return result A.
Otherwise,
Otherwise,
Otherwise,
Add CEMValue to TotalCEM.
Add RATAReferenceValue to TotalRV.
Add GrossUnitLoad to TotalGUL.
Add (RATAReferenceValue - CEMValue) to SumDiff.
Environmental Protection Agency
Page 621 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Add the square of (RATAReferenceValue - CEMValue) to SumSqDiff.
If RunStatusCode is not equal to "RUNUSED" or "NOTUSED",
return result A.
Otherwise,
If RunNumber is not equal to UsedCt + NotUsedCt,
return result C.
If the associated SystemTypeCode of the RATA is equal to "FLOW", and the ReferenceMethodCode is null, or the
ReferenceMethodCode is not in the ReferenceMethodCode lookup table, or the ParameterCode in the
ReferenceMethodCode lookup table is not equal to "FLOW",
return result A.
If the associated SystemTypeCode of the RATA is equal to "FLOW", the ReferenceMethodCode begins with "2F" or "2G"
or is equal to "M2H", and the StackDiameter is null or is less than 0,
return result A.
If UsedCt is less than 9,
return result D.
Else If TotalRV is less than or equal to 0 or TotalCEM is equal to 0,
return result E.
Otherwise,
Calculate RATA Calc Average GUL = TotalGUL / UsedCt, and round the result to the nearest integer.
Calculate RATA Calc Mean CEM = TotalCEM / UsedCt.
Calculate RATA Calc Mean RV = TotalRV / UsedCt.
Calculate RATA Calc Mean Diff = SumDiff / UsedCt.
Calculate Tempval = SumSqDiff - ((SumDiff ** 2) / UsedCt).
If Tempval = 0
set RATA Calc SD = 0
Otherwise,
calculate RATA Calc SD = SQRT(Tempval / (UsedCt - 1))
If UsedCt is greater than 31,
set RATA Calc TValue to 1.
Otherwise,
Locate TValues cross-check record where Number of Items is equal to UsedCt - 1.
Set RATA Calc TValue to the TValue in the cross-check record.
If the associated SystemTypeCode is equal to "FLOW", AND ReferenceMethodCode begins with "2F", "2G" or
"M2H",
Calculate RATA Calc Area = (StackDiameter ** 2) * PI / 4, and round the result to 1 decimal place.
Calculate RATA Calc CC = (RATA Calc TValue * RATA Calc SD) / SQRT(UsedCt).
Calculate Tempval = ((ABS(RATA Calc Mean Diff) + ABS(RATA Calc CC)) / RATA Calc Mean RV * 10000.
Round Tempval to the nearest integer.
Calculate RATA Calc RA = min(Tempval / 100, 999.99).
If the RATA Calc RA (rounded to 1 decimal) is less than or equal to 7.5,
Set RATA Calc APS to 0.
Environmental Protection Agency
Page 622 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
If the associated SystemTypeCode is equal to "S02" or "NOXC",
If the RATA Calc Mean RV (rounded to 1 decimal) is less than or equal to 250.0 and the absolute
value of the RATA Calc Mean Diff (rounded to 1 decimal) is less than or equal to 8.0,
Set RATA Calc APS to 1.
else if the RATA Calc Mean RV (rounded to 1 decimal) is less than or equal to 250.0 and the
absolute value of the RATA Calc Mean Diff (rounded to 1 decimal) is less than or equal to 12.0,
and the associated TestEndDate is on or after 6/25/1999,
Set RATA Calc APS to 1.
else if the RATA Calc RA (rounded to 1 decimal) is less than or equal to 10.0,
Set RATA Calc APS to 0.
else if the RATA Calc Mean RV (rounded to 1 decimal) is less than or equal to 250.0 and the
absolute value of the RATA Calc Mean Diff (rounded to 1 decimal) is less than or equal to 15.0,
Set RATA Calc APS to 1.
If the associated SystemTypeCode is equal to "NOX" or "NOXP",
If the RATA Calc Mean RV (rounded to 3 decimals) is less than or equal to 0.200 and the absolute
value of the RATA Calc Mean Diff (rounded to 2 decimals) is less than or equal to 0.01,
Set RATA Calc APS to 1.
else if the RATA Calc Mean RV (rounded to 3 decimals) is less than or equal to 0.200 and the
absolute value of the RATA Calc Mean Diff (rounded to 3 decimals) is less than or equal to 0.015,
and the associated TestEndDate is on or after 6/25/1999,
Set RATA Calc APS to 1.
else if the RATA Calc RA (rounded to 1 decimal) is less than or equal to 10.0,
Set RATA Calc APS to 0.
else if the RATA Calc Mean RV (rounded to 3 decimal) is less than or equal to 0.200 and the
absolute value of the RATA Calc Mean Diff (rounded to 2 decimal) is less than or equal to 0.02,
Set RATA Calc APS to 1.
If the associated SystemTypeCode is equal to "C02" or "02",
If the absolute value of the RATA Calc Mean Diff (rounded to 1 decimal) is less than or equal to
0.7,
Set RATA Calc APS to 1.
else if the RATA Calc RA (rounded to 1 decimal) is less than or equal to 10.0,
Set RATA Calc APS to 0.
else if the absolute value of the RATA Calc Mean Diff (rounded to 1 decimal) is less than or equal
to 1.0,
Set RATA Calc APS to 1.
If the associated SystemTypeCode is equal to "S02R",
If the RATA Calc Mean RV (rounded to 2 decimals) is less than or equal to 0.50 and the absolute
value of the RATA Calc Mean Diff (rounded to 3 decimals) is less than or equal to 0.016,
Set RATA Calc APS to 1.
Environmental Protection Agency
Page 623 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
else if the RATA Calc RA (rounded to 1 decimal) is less than or equal to 10.0,
Set RATA Calc APS to 0.
else if the RATA Calc Mean RV (rounded to 2 decimal) is less than or equal to 0.50 and the
absolute value of the RATA Calc Mean Diff (rounded to 2 decimal) is less than or equal to 0.03,
Set RATA Calc APS to 1.
If the associated SystemTypeCode begins with "H20",
If the absolute value of the RATA Calc Mean Diff (rounded to 1 decimal) is less than or equal to
1.0,
Set RATA Calc APS to 1.
else if the RATA Calc RA (rounded to 1 decimal) is less than or equal to 10.0,
Set RATA Calc APS to 0.
else if the absolute value of the RATA Calc Mean Diff (rounded to 1 decimal) is less than or equal
to 1.5,
Set RATA Calc APS to 1.
If the associated SystemTypeCode is equal to "FLOW",
If the associated Test EndDate is on or after 1/1/2000,
Set adjustedmeanref to 99999 and adjustedmeandiff to 99999.
If EndDate of the test is on or after the BeginDate of the test,
Locate the Monitor Location Attribute record for the location where the
BeginDate is on or before the associated Test BeginDate and the EndDate is null
or is on or after the associated Test EndDate.
If one record is found, and the StackAreaAtFlowMonitor is greater than 0,
Calculate adjustedmeanref = RATA Calc Mean RV / 3600 /
StackAreaAtFlowMonitor.
Calculate adjustedmeandiff = abs(RATA Calc Mean Diff / 3600 /
StackAreaAtFlowMonitor.
Round adjustedmeanref and adjustedmeandiff to 1 decimal.
If adjustedmeanref is less than or equal to 10.0 and adjustedmeandiff is less than or equal
to 1.5,
set RATA Calc APS to 1.
else if the RATA Calc RA (rounded to 1 decimal) is less than or equal to 10.0,
set RATA Calc APS to 0.
else if adjustedmeanref is less than or equal to 10.0 and adjustedmeandiff is less than or
equal to 2.0,
set RATA Calc APS to 1.
Otherwise,
If the RATA Calc RA (rounded to 1 decimal) is less than or equal to 15.0,
set RATA Calc APS to 0.
If the associated SystemTypeCode is equal to "HG"or "ST",
Environmental Protection Agency
Page 624 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If the RATA Calc RA (rounded to 1 decimal) is less than or equal to 20.0,
set RATA Calc APS to 0.
else if the RATA Calc Mean RV (rounded to 1 decimal) is less than or equal to 5.0 and the
absolute value of the RATA Calc Mean Diff (rounded to 1 decimal) is less than or equal to 1.0,
Set RATA Calc APS to 1.
If RATA Calc APS is null,
set RATA Calc APS to 0.
Otherwise,
If the associated SystemTypeCode is equal to "C02" or "02" or begins with "H20",
set RATA Calc BAF to 1.
Otherwise,
If the RATA Calc Mean Diff is greater than the absolute value of the RATA Calc CC,
Calculate tempval = (1.0 + ABS( RATA Calc Mean Diff) / RATA Calc Mean CEM) *
1000.
Round tempval to the nearest integer.
Calculate RATA Calc BAF = tempval / 1000.
If the associated SystemTypeCode is equal to "HG" or "ST",
set RATA Calc BAF to 1.
Otherwise,
If the RATA Calc BAF is greater than 1.111,
If the associated SystemTypeCode is equal to "S02" or "NOXC", and
the RATA Calc Mean RV (rounded to 1 decimal) is less than or equal to
250.0,
set RATA Calc BAF to 1.111.
If the associated SystemTypeCode is equal to "NOX", "NOXP", or
"S02R", and the RATA Calc Mean RV (rounded to 2 decimal) is less
than or equal to 0.20,
set RATA Calc BAF to 1.111.
Otherwise,
set RATA Calc BAF to 1.
Round RATA Calc Mean CEM, RATA Calc Mean RV, RATA Calc Mean Diff, RATA Calc CC, and RATA Calc
SD to 3 decimal places.
Environmental Protection Agency
Page 625 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
C
D
Usage:
1
Response
The values in this record could not be calculated because of invalid data.
There are more than three RATA run records for [key] with a run status of "NOTUSED"
which indicates runs excluded from the data analysis. Only three runs may be excluded
from a test at each operating level.
There are duplicate, missing or non-sequential run numbers when the run records are
time ordered by run end date and time for operating level [level].
The RATA for [key] contains fewer than nine RATA run records with a run status of
"RUNUSED". A minimum of nine runs are required for each complete operating level
test.
The software could not evaluate the RATA calculations reported for [key], because the
sum of the reference values is less than or equal to 0 or the sum of the CEM values is
equal to 0.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA and Certification Data Entry Screen Evaluation RATA Summary Calculations
Environmental Protection Agency
Page 626 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the RATA:
Set RATA Calc Overall RATA and RATA Calc Overall BAF to null.
If the TestResultCode is not equal to "ABORTED",
If the MonitoringSystemID is null, or the TestResultCode is not equal to "PASSED", "PASSAPS", or "FAILED",
return result A.
If the BeginDate is null or is before 1/1/1993, or the BeginHour is not between 0 and 23, or the EndDate is null or is after
the current date, or the EndHour is not between 0 and 23, or the BeginDate and BeginHour is after the EndDate and
EndHour,
return result A.
If the SystemTypeCode of the associated system is equal to "FLOW" and NumberOfLoadLevels is not between 1 and 3; or
the SystemTypeCode is not equal to "FLOW" and NumberOfLoadLevels is not equal to 1,
return result A.
Otherwise,
set levelCt, maxRA, and maxBAF to 0.
set levelList to null.
For each RATA Summary record in the test:
Add OperatingLevelCode to levelList.
Add 1 to levelCt.
If RelativeAccuracy in the RATA Summary record is null or is less than 0,
return result A.
Otherwise,
If RelativeAccuracy in the RATA Summary record is greater than maxRA,
set maxRA to RelativeAccuracy.
If TestResultCode of the test is equal to "PASSED" or "PASSAPS",
If BiasAdjustmentFactor is null or is less than 1,
return result A.
Otherwise,
If BiasAdjustmentFactor is greater than maxBAF,
set maxBAF to BiasAdjustmentFactor.
If OperatingLevelCode is equal to "H",
set highBAF to BiasAdjustmentFactor.
If OperatingLevelCode is equal to "M",
set midBAF to BiasAdjustmentFactor.
RATA-126
Calculate Overall RATA Values
CEM Check
Environmental Protection Agency
Page 627 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If OperatingLevelCode is equal to "L",
set lowBAF to BiasAdjustmentFactor.
If levelCt is not equal to NumberOfLoadLevels,
return result A.
IfNumberOfLoadLevels is greater than 1, TestResultCode is equal to "PASSED" or "PASSAPS", and maxBAF is
greater than 1,
Locate a Monitor Load record for the location where the BeginDate and BeginHour are on or before the
test EndDate and EndHour and the EndDate is null or the EndDate and EndHour are on or after the test
BeginDate and BeginHour.
If not found, or if more than one record is found, and the NormalLevelCode, SecondLevelCode, or
SecondNormallndicator are not the same in each Load record,
return result B.
If the NormalLevelCode is null, or is not equal to "H", "L", or "M",
return result B.
If the SecondLevelCode is null, or is not equal to "H", "L", or "M",
return result B.
If the NormalLevelCode is not in the levelList,or the SecondLevelCode is not in the levelList,
return result C.
Otherwise,
set BiasPassed to true.
set RATA Calc Overall RA to maxRA.
set maxBAF to 1.
If NormalLevelCode is equal to "H" or SecondLevelCode is equal to "H",
If highBAF is greater than 1,
If NormalLevelCode is equal to "H" or SecondLevellndicator is equal to 1,
set BiasPassed to false.
If highBAF is greater than maxBAF,
set maxBAF to highBAF.
If NormalLevelCode is equal to "M" or SecondLevelCode is equal to "M",
If midBAF is greater than 1,
If NormalLevelCode is equal to "M" or SecondLevellndicator is equal to 1,
set BiasPassed to false.
If midBAF is greater than maxBAF,
set maxBAF to midBAF.
If NormalLevelCode is equal to "L" or SecondLevelCode is equal to "L",
If lowBAF is greater than 1,
If NormalLevelCode is equal to "L" or SecondLevellndicator is equal to 1,
set BiasPassed to false.
Environmental Protection Agency
Page 628 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If lowBAF is greater than maxBAF,
set maxBAF to lowBAF.
If BiasPassed is equal to true,
set RATA Calc Overall BAF to 1.
Otherwise,
set RATA Calc Overall BAF to maxBAF.
Otherwise,
set RATA Calc Overall RATA to maxRA.
if TestResultCode is equal to "PASSED" or "PASSAPS",
set RATA Calc Overall BAF to maxBAF.
Results:
Result
A
B
Response
The values in this record could not be calculated because of invalid data.
In the active load record for this unit or stack and test you did not designate the normal
load levels properly. The correct BAF cannot be determined for this multi-load flow
test.
You did not perform the test for one or both of the operating levels that were designated
as normal in the active load record. The correct BAF cannot be determined for this
multi-load flow test.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Overall RATA Calculations
Environmental Protection Agency
Page 629 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-127
Check Name:
Calculate Flow RATA Run Values
Related Former Checks:
Applicability:
CEM Check
Description:
Validation Tables:
Ref Method Code (Lookup Table)
Specifications:
For the Flow RATA Run record:
Set RATA Calc Dry MW, RATA Calc Wet MW, RATA Calc Run Velocity, RATA Calc Adjusted Run Velocity, RATA Calc Run
WAF, and RATA Calc Run RV to null.
Set RATA Check WAF to false.
If the associated RATA Run ID is null,
If the associated ReferenceMethodCode is null or is not in the ReferenceMethodCode lookup table, or does not begin with "2F",
"2G", or "M2H",
return result B.
If PercentC02 is null, is less than or equal to 0, or is greater than 20.0; or Percent02 is null, is less than or equal to 0, or is greater
than 22.0; or PercentMoisture is null, is less than or equal to 0, or is greater than 75.0,
return result C.
Set TravCt to the number of RATA Traverse records for the run.
Calculate RATA Calc Dry MW = (.44 * PercentC02) + (.32 * Percent02) + (.28 * (100 - PercentC02 - Percent02)).
Calculate RATA Calc Wet MW = (RATA Calc Dry MW * (1 - (PercentMoisture / 100))) + (18 * (PercentMoisture /100)).
Calculate RATA Calc Dry MW = min(RATA Calc Dry MW, 999.99), rounded to 2 decimal places.
If TravCt < 12 or (TravCt < NumberOfTraversePoints and NumberOfTraversePoints is greater than or equal to 12),
Calculate RATA Calc Wet MW = min(RATA Calc Wet MW, 999.99), rounded to 2 decimal places.
If the associated StackDiameter is null or is less than or equal to 0; or the BarometricPressure is null, is less than
20, or is greater than 35; or the StackStaticPressure is null, is less than -30, or is greater than 30; or the
NumberOfTraversePoints is null or is less than 12; or the RATA Calc Wet MW (rounded to two decimal places) is
null, is less than 25, or is greater than 35,
return result C.
If the associated ReferenceMethodCode for the run is equal to "M2H",
If the StackDiameter is null or is less than 3.3,
return result C.
If the DefaultWAF is not null,
return result D.
If the associated ReferenceMethodCode for the run is equal to "2FJ", or "2GJ",
return result A.
Otherwise,
Otherwise,
Environmental Protection Agency
Page 630 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If the associated CalculatedWAF for the operating level is null, or the DefaultWAF is null, is greater than
1, or is less than 0.9400,
return result D.
If the associated ReferenceMethodCode for the run is equal to "2FH" or "2GH",
If the StackDiameter is null or is less than 3.3,
return result C.
If the associated CalculatedWAF for the operating level and DefaultWAF are both not null,
return result D.
If the DefaultWAF is not null and is not equal to 0.9900 or 0.9950,
return result D.
Otherwise,
If either the associated CalculatedWAF for the operating level or the DefaultWAF is not null,
return result D.
set RepCt, TotalVel, TotalRepVel, and TotalTemp to 0.
set minPoints to 99.
calculate tempPressure = BarometricPressure + (StackStaticPressure / 13.6).
For each RATA Traverse record for the run:
If TStackTemperature is null, is less than 0, or is greater than 1000; or the NumberOfWallEffectsPoints is
not null and is less than 2; or the ReplacementVelocity is not null and is less than or equal to 0; or the
VelocityCalibrationCoefficient is null, is less than 0.5, or is greater than 1.5,
return result C.
If AvgVelDiffPressure and AvgSquareVelDiffPressure are both null or are both not null,
return result C.
Otherwise,
If ReferenceMethodCode begins with "2F",
If YawAngle is null, or is less than -90 or is greater than 90,
return result C.
If PitchAngle is null, or is less than -90 or is greater than 90,
return result C.
Otherwise,
If AvgVelDiffPressure is not null,
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / tempPressure /
RATA Calc Wet MW) * cos(YawAngle) * cos(PitchAngle).
Otherwise,
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) /
tempPressure / RATA Calc Wet MW) * cos(YawAngle) *
cos(PitchAngle).
Environmental Protection Agency
Page 631 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If ReferenceMethodCode begins with "2G",
If YawAngle is null, or is less than -90 or is greater than 90,
return result C.
If PitchAngle is not null,
return result C.
Otherwise,
If AvgVelDiffPressure is not null,
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / tempPressure /
RATA Calc Wet MW) * cos(YawAngle).
Otherwise,
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) /
tempPressure / RATA Calc Wet MW) * cos(YawAngle).
If ReferenceMethodCode is equal to "M2H",
If YawAngle is not null, or PitchAngle is not null,
return result C.
Otherwise,
If AvgVelDiffPressure is not null,
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / tempPressure /
RATA Calc Wet MW).
Otherwise,
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) /
tempPressure / RATA Calc Wet MW).
If PointUsedlndicator is equal to 1, the NumberOfWallEffectsPoints is not null, or the
ReplacementVelocity is not null,
If the associated ReferenceMethodCode for the run is not equal to "2FH", "2GH", or "M2H",
return result C.
Otherwise,
If PointUsedlndicator is equal to 1,
If the NumberOfWallEffectsPoints is null or the ReplacementVelocity is null,
return result C.
Otherwise,
If the NumberOfWallEffectsPoints is not null or the ReplacementVelocity is not
null,
return result C.
Environmental Protection Agency
Page 632 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Add TStackTemperature to TotalTemp.
Add TempPointVel to TotalVel.
If the associated ReferenceMethodCode for the run is equal to "2FH", "2GH", or "M2H",
If ReplacementVelocity is not null,
add 1 to RepCt.
add ReplacementVelocity to TotalRepVel.
If NumberOfWallEffectsPoint is less than minPoints,
set minPoints to the NumberOfWallEffectsPoints.
Otherwise,
add TempPointVel to TotalRepVel.
If TravCt is not equal to NumberOfTraversePoints,
return result C.
If RepCt is equal to 4, and TotalVel is less than TotalRepVel,
return result C.
If RepCt is not equal to 0 or 4,
return result E.
If RepCt is equal to 4, and TravCt is less than 16,
return result F.
Otherwise,
Calculate tempVel = TotalVel / TravCt.
If the associated ReferenceMethodCode begins with "2F", and tempVel (rounded to 2 decimal places) is
less than 20,
return result G.
Otherwise,
Calculate RATA Calc Wet MW = min(RATA Calc Wet MW, 999.99), rounded to 2 decimal
places.
Calculate RATA Calc Run Velocity = min(tempVel, 9999.99), rounded to 2 decimal places.
Calculate tempFlow = 3600 * tempVel * (StackDiameter ** 2) * PI / 4 * 528 / ((TotalTemp /
TravCt) + 460) * tempPressure / 29.92.
If the associated ReferenceMethodCode for the run is equal to "2FH", "2GH", or "M2H",
Set RATA Check WAF to true.
Set RATA Calc Run RV to tempFlow.
Otherwise,
If the associated DefaultWAF is not null,
Calculate RATA Calc Run RV = min(tempFlow * DefaultWAF,
9999999999 999), rounc[ec[ to the nearest 1000.
Otherwise,
Calculate RATA Calc Run RV = min(tempFlow, 9999999999.999), rounded to
the nearest 1000.
Environmental Protection Agency
Page 633 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If RepCt is equal to 4,
Calculate tempRepVel = TotalRepVel / TravCt.
Calculate RATA Calc Adjusted Run Velocity = min(tempRepVel, 9999.99), rounded to 2
decimal places.
Calculate RATA Calc Run WAF = tempRepVel / tempVel, and round the result to 4
decimal places.
Results:
Result Response
A The values in this record could not be calculated because this record has not yet been
saved. You will also need to enter a ReferenceMethodCode in the RATA Summary
record before these values can be calculated.
B You reported a Flow RATA Run record for [key], which is not appropriate for a RATA
conducted using ReferenceMethodCode [method].
C The values in this record could not be calculated because of invalid data.
D The values in this record could not be calculated because the calculated and default
WAFs reported in the associated RATA Summary record were not valid.
E You identified [key] as a run to be used in the calculation of a wall effects adjustment
factor, but you did not identify the correct number of exterior method 1 traverse points
for this run. Four exterior method 1 traverse points are required to calculate a wall
effects adjustment factor. Recalculation of the AverageVelocityWithWallEffects and
CalculatedWAF was not performed.
F The NumberOfTraversePoints reported for [key] is less than 16. A minimum of 16
traverse points is required for a flow RATA run in which method 2H is used to calculate
a wall effects adjustment factor.
G The average velocity for [key] recalculated from the values in Flow RATA Run and Critical Error Level 1
RATA Traverse records is less than 20 ft/sec. A minimum average velocity of 20.0
ft/sec is required to use Method 2F for a flow RATA. Recalculation of the average stack
flow for this run was not performed.
Ft The AverageStackFlowRate will not be recalculated, because the use of a calculated Informational Message
WAF requires the presence of data from all the runs in the RATA. To determine the
AverageStackFlowRate, you should enter all the run data and evaluate the RATA.
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Flow RATA Run Calculations
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 634 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: RATA-128
Check Name: Calculate RATA Traverse Point Values
Related Former Checks:
Applicability: CEM Check
Description:
Validation Tables:
Ref Method Code (Lookup Table)
Specifications:
For the RATA Traverse record:
Set RATA Calc Point Velocity to null.
If the associated Flow RATA Run ID is null,
return result A.
If the associated ReferenceMethodCode is null or is not in the ReferenceMethodCode lookup table, or does not begin with "2F",
"2G", or "M2H",
return result B.
Otherwise,
If PercentC02 is null, is less than or equal to 0, or is greater than 20.0; or Percent02 is null, is less than or equal to 0, or is
greater than 22.0; or PercentMoisture is null, is less than or equal to 0, or is greater than 75.0; the BarometricPressure is
null, is less than 20, or is greater than 35; or the StackStaticPressure is null, is less than -30, or is greater than 30; or the
VelocityCalibrationCoefficient is null, is less than 0.5, or is greater than 1.5; or the TStackTemperature is null, is less than
0, or is greater than 1000,
return result C.
If AvgVelDiffPressure and AvgSquareVelDiffPressure are both null or are both not null,
return result C.
Otherwise,
Calculate tempDryMW = (.44 * PercentC02) + (.32 * Percent02) + (.28 * (100 - PercentC02 - Percent02)).
Calculate tempWetMW = (tempDryMW * (1 - (PercentMoisture / 100))) + (18 * (PercentMoisture /100)).
if tempWetMW is less than 25, or is greater than 35;
return result C.
Otherwise,
If ReferenceMethodCode begins with "2F",
If YawAngle is null, or is less than -90 or is greater than 90,
return result C.
If PitchAngle is null, or is less than -90 or is greater than 90,
return result C.
If ProbeTypeCode is not equal to "PRISM", "PRISM-T", or "SPHERE",
return result C.
Otherwise,
If AvgVelDiffPressure is not null,
Environmental Protection Agency
Page 635 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Calculate tempVel = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / (BarometricPressure +
(StackStaticPressure / 13.6)) / tempWetMW) * cos(YawAngle) *
cos(PitchAngle).
Otherwise,
Calculate tempVel = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) /
(BarometricPressure + (StackStaticPressure /13.6)) / tempWetMW) *
cos(YawAngle) * cos(PitchAngle).
Calculate RATA Calc Point Velocity = min(tempVel, 9999.99), and round the result to 2
decimal places.
If ReferenceMethodCode begins with "2G",
If YawAngle is null, or is less than -90 or is greater than 90,
return result C.
If PitchAngle is not null,
return result C.
If ProbeTypeCode is equal to "PRANDT1",
return result C.
Otherwise,
If AvgVelDiffPressure is not null,
Calculate tempVel = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / (BarometricPressure +
(StackStaticPressure / 13.6)) / tempWetMW) * cos(YawAngle).
Otherwise,
Calculate tempVel = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) /
(BarometricPressure + (StackStaticPressure /13.6)) / tempWetMW) *
cos(YawAngle).
Calculate RATA Calc Point Velocity = min(tempVel, 9999.99), and round the result to 2
decimal places.
If ReferenceMethodCode is equal to "M2H",
If YawAngle is not null, or PitchAngle is not null,
return result C.
If ProbeTypeCode is not equal to "TYPE-SA", "TYPE-SM" or "PRANDT1",
return result C.
Otherwise,
If AvgVelDiffPressure is not null,
Calculate tempVel = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / (BarometricPressure +
Environmental Protection Agency
Page 636 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
(StackStaticPressure / 13.6)) / tempWetMW).
Otherwise,
Calculate tempVel = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) /
(BarometricPressure + (StackStaticPressure /13.6)) / tempWetMW).
Calculate RATA Calc Point Velocity = min(tempVel, 9999.99), and round the result to 2
decimal places.
Results:
Result
A
Response
The values in this record could not be calculated because this record has not yet been
saved. You will also need to enter a ReferenceMethodCode in the RATA Summary
record before these values can be calculated.
The values in this record could not be recalculated, because this record is not
appropriate for a RATA conducted using ReferenceMethodCode [method].
The values in this record could not be calculated because of invalid data.
Severity
Critical Error Level 1
B
Critical Error Level 1
C
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Traverse Point Calculations
Environmental Protection Agency
Page 637 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-129
Check Name:
Calculate Run Reference Value for Method 2H RATA
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For the Flow RATA Run record where RATA Check WAF is equal to true:
If RATA Calc Run WAF is null,
set RunCt to 0
set sumWAF to 0
set RATA WAF Run Numbers to null.
Otherwise,
set RunCt to 1
set sumWAF to RATA Calc Run WAF.
set RATA WAF Run Numbers to the RunNumber in the current Flow RATA Run record.
Set tempFlow to RATA Calc Run RV.
Set RATA Calc Overall WAF and RATA Calc Run RV to null.
Locate all Flow RATA Run records where the OperatingLevelCode is equal to the OperatingLevelCode in the current Flow RATA
Run record, the RunNumber is not equal to the RunNumber in the current Flow RATA Run record, the RunStatusFlag is equal to
"RUNUSED", and the AverageVelocityWithWallEffects is not null.
For each Flow RATA Run record found,
If PercentC02 is null, is less than or equal to 0, or is greater than 20.0; or Percent02 is null, is less than or equal to 0, or is
greater than 22.0; or PercentMoisture is null, is less than or equal to 0, or is greater than 75.0,
return result A.
Calculate tempDryMW = (.44 * PercentC02) + (.32 * Percent02) + (.28 * (100 - PercentC02 - Percent02)).
Calculate tempWetMW = (tempDryMW * (1 - (PercentMoisture / 100))) + (18 * (PercentMoisture /100)).
if the associated StackDiameter is null or is less than 3.3; or the BarometricPressure is null, is less than 20, or is
greater than 35; or the StackStaticPressure is null, is less than -30, or is greater than 30; or the
NumberOfTraversePoints is null or is less than 16; or tempWetMW (rounded to two decimal places) is less than 25
or greater than 35,
return result A.
Set TravCt, RepCt, TotalVel, TotalRepVel, and TotalTemp to 0.
Set minPoints to 99.
Calculate tempPressure = BarometricPressure + (StackStaticPressure / 13.6).
Locate all RATA Traverse with OperatingLevelCode and RunNumber equal to the OperatingLevelCode
and RunNumber in the Flow RATA Run record retrieved above.
If not found,
return result B.
else
otherwise,
otherwise,
For each RATA Traverse record for the run:
Environmental Protection Agency
Page 63 8 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If TStackTemperature is null, is less than 0, or is greater than 1000; or the
NumberOfWallEffectsPoints is not null and is less than 2; or the ReplacementVelocity is
not null and is less than or equal to 0; or the VelocityCalibrationCoefficient is null, is less
than 0.5, or is greater than 1.5,
return result A.
else if AvgVelDiffPressure and AvgSquareVelDiffPressure are both null or are both not
null,
return result A.
else if ReferenceMethodCode is equal to "2FH",
If YawAngle is null, or is less than -90 or is greater than 90,
return result A.
else if PitchAngle is null, or is less than -90 or is greater than 90,
return result A.
else if AvgVelDiffPressure is not null,
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / tempPressure /
tempWetMW) * cos(YawAngle) * cos(PitchAngle).
otherwise,
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) /
tempPressure / tempWetMW) * cos(YawAngle) * cos(PitchAngle).
else if ReferenceMethodCode is equal to "2GH",
If YawAngle is null, or is less than -90 or is greater than 90,
return result A.
else if PitchAngle is not null,
return result A.
else if AvgVelDiffPressure is not null,
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / tempPressure /
tempWetMW) * cos(YawAngle).
otherwise,
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) /
tempPressure / tempWetMW) * cos(YawAngle).
else if ReferenceMethodCode is equal to "M2H",
If YawAngle is not null, or PitchAngle is not null,
return result A.
else if AvgVelDiffPressure is not null,
Environmental Protection Agency
Page 639 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
sqrt(AvgVelDiffPressure * (TStackTemperature + 460) / tempPressure /
tempWetMW).
otherwise,
Calculate tempPointVel = 85.49 * VelocityCalibrationCoefficient *
AvgSquareVelDiffPressure *sqrt( (TStackTemperature + 460) /
tempPressure / tempWetMW).
If PointUsedlndicator is equal to 1 and (either the NumberOfWallEffectsPoints is null or
the ReplacementVelocity is null),
return result A.
else if PointUsedlndicator is not equal to 1 and (either the NumberOfWallEffectsPoints is
not null or the ReplacementVelocity is not null),
return result A.
otherwise,
Add TStackTemperature to TotalTemp.
Add TempPointVel to TotalVel.
Add 1 to TravCt.
If ReplacementVelocity is not null,
add 1 to RepCt.
add ReplacementVelocity to TotalRepVel.
If NumberOfWallEffectsPoint is less than minPoints,
set minPoints to the NumberOfWallEffectsPoints.
Otherwise,
add TempPointVel to TotalRepVel.
//if no result
If TravCt is not equal to the NumberOfTraversePoints,
return result A.
else if RepCt is equal to 4, and TotalVel is less than TotalRepVel,
return result A.
else if RepCt is not equal to 4,
return result C.
otherwise,
Calculate tempVel = TotalVel / TravCt, and round the result to 2 decimal places.
Calculate tempRunWAF = TotalRepVel / TotalVel.
If tempRunWAF is greater than 0.9800,
Calculate wallpoints = min(int (6 * StackDiameter * (1 - sqrt(l - (4 / TravCt)))), 12).
If StackDiameter >= 16.5,
add 1 to wallpoints.
If wallpoints <= minPoints,
Environmental Protection Agency
Page 640 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If tempRunWAF is less than .9700,
set tempRunWAF to .9700.
otherwise,
set tempRunWAF to .9800.
II if no result
add 1 to RunCt.
add tempRunWAF to sumWAF.
append the RunNumber of the retrieved Flow RATA Run record to RATA WAF Run
Numbers.
//if no result
If RunCt is equal to 0,
return result D.
Otherwise,
Calculate RATA Calc Overall WAF = sumWAF / RunCt.
If RATA Calc Overall WAF is greater than .9900,
Locate a LocationAttribute record for the location where the BeginDate is on or before the EndDate of the test and
the EndDate is null or is on or after the EndDate of the test.
If one and only one record is found, and MaterialCode is equal to "BRICK" or "OTHER"
If MaterialCode is equal to "BRICK",
If the associated ReferenceMethodCode is equal to "M2H",
Calculate RATA Calc Run RV = min(tempFlow * RATA Calc Overall WAF,
9999999999 999), rounc[ec[ to the nearest 1000.
Round RATA Calc Overall WAF to 4 decimal places,
return result E.
Otherwise,
Calculate RATA Calc Run RV = min(tempFlow * .99, 9999999999.999), rounded to the
nearest 1000.
Set RATA Calc Overall WAF to .99.
return result F.
else if RATA Calc Overall WAF is greater than .9950,
If the associated ReferenceMethodCode is equal to "M2H",
Calculate RATA Calc Run RV = min(tempFlow * RATA Calc Overall WAF,
9999999999 999), rounc[ec[ to the nearest 1000.
Round RATA Calc Overall WAF to 4 decimal places,
return result E.
Otherwise,
Calculate RATA Calc Run RV = min(tempFlow * .995, 9999999999.999), rounded to the
nearest 1000.
Set RATA Calc Overall WAF to .995.
return result F.
otherwise,
Calculate RATA Calc Run RV = min(tempFlow * RATA Calc Overall WAF, 9999999999.999),
rounded to the nearest 1000.
Round RATA Calc Overall WAF to 4 decimal places,
return result G.
Otherwise,
return result H.
Environmental Protection Agency
Page 641 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Otherwise,
Calculate RATA Calc Run RV = min(tempFlow * RATA Calc Overall WAF, 9999999999.999), rounded to the
nearest 1000.
Round RATA Calc Overall WAF to 4 decimal places,
return result G.
Results:
Result
A
B
C
D
E
G
H
Response
The values in this record could not be recalculated because of invalid data in at least one
of the runs used to determine the wall effects adjustment factor.
The values in this record could not be recalculated because at least one of the runs used
to determine the wall effects adjustment factor had no traverse point data.
The values in this record could not be recalculated because at least one of the runs used
to determine the wall effects adjustment factor did not have four exterior Method 1
traverse points.
The AverageStackFlowRate could not be recalculated because the there were no runs
used to determine the wall effects adjustment factor for the operating level.
The AverageStackFlowRate was calculated based on wall effects data reported in the
following runs: [runs]. If additional wall effects runs are entered, you will need to
recalculate the values in this record. Based on the currently entered data, it will be more
advantageous to use a default WAF with Method D2F[ rather than measured WAF of
[WAF],
Based on the wall effects data reported in runs [runs], the AverageStackFlowRate was
calculated using a default wall effects adjustment factor (WAF). If additional wall
effects runs are entered, you will need to recalculate the values in this record. You
should enter the default WAF of [WAF] on the RATA Summary screen.
The AverageStackFlowRate was calculated based on wall effects data reported in the
following runs: [runs]. If additional wall effects runs are entered, you will need to
recalculate the values in this record. You should enter the calculated WAF of [WAF] on
the RATA Summary screen.
The values in this record could not be recalculated because there was not a single,
active, valid Location Attribute record for the location.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Informational Message
Informational Message
Informational Message
Informational Message
Critical Error Level 1
Usage:
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Flow RATA Run Calculations
Environmental Protection Agency
Page 642 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
RATA-130
Check Name:
RATA Run valid for HG
Related Former Checks:
Applicability:
Description:
Specifications:
For a RATA run with valid begin and end times and a RunStatusCode equal to "RUNUSED":
If the associated SystemTypeCode of the RATA is equal to "FLOW",
If the difference between the Run Begin Time and End Time is less than 4 minutes,
return result A.
If the associated SystemTypeCode of the RATA does not begin with "HG",
If the difference between the Run Begin Time and End Time is less than 20 minutes,
return result B.
Results:
Result
A
Response
The run for [key] was less than five minutes. Each run must be at least five minutes in
duration.
The run for [key] was less than 21 minutes. Each run must be at least 21 minutes in
duration.
Severity
Critical Error Level 2
B
Critical Error Level 2
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation RATA Run Evaluation
Environmental Protection Agency
Page 643 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Test Extension/Exemption
Environmental Protection Agency
Page 644 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
EXTEXEM-1
Check Name:
Test Extension/Exemption Year and Quarter Valid
Related Former Checks: FFEXT-4E
Applicability:
General Check
Description:
Specifications:
For the Test Extension/Exemption record:
If Reporting Period ID is null,
return result A.
Otherwise,
Locate the Reporting Period ID in the Reporting Period table.
Set Test Extension Exemption Begin Date to the first day of the Calendar Year and Quarter in the retrieved record.
Set Test Extension Exemption End Date to the last day of the Calendar Year and Quarter in the retrieved record.
If the Calendar Year and Quarter in the retrieved record is later than the current quarter,
return result B.
If the ExtensionOrExemptionCode is equal to "NONQAOS", and the Quarter of the TEE record is equal to 3,
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported a Year/Quarter which is outside the range of acceptable values for this
record.
You reported [key], but this test extension exemption record is not required for the third
quarter.
Severity
Fatal
Critical Error Level 1
C
Non-Critical Error
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Test Extension Exemption Evaluation
1
Process/Category: Other QA Evaluation Report Test Extension Exemption Evaluation
Environmental Protection Agency
Page 645 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
EXTEXEM-2
Check Name:
Test Extension/Exemption Extension or Exemption Code Valid
Related Former Checks:
Applicability:
General Check
Description:
Specifications:
For the Test Extension/Exemption record:
If the ExtensionOrExemptionCode is null,
return result A.
If the ExtensionOrExemptionCode is equal to "NONQAOS", and the Test Extension Exemption Begin Date is not null,
Locate a Reporting Frequency record for the location where the ReportingFrequency is equal to "Q", the BeginQuarter is on
or before the Calendar Year and Quarter of the current TEE record, and the EndQuarter is null or is on or after the Calendar
Year and Quarter of the current TEE record.
If found,
return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported [key] indicating that the unit is an ozone-season-only reporter, but
according to your Reporting Frequency records, the unit reports on an annual basis.
Severity
Fatal
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Test Extension Exemption Evaluation
1
Process/Category: Other QA Evaluation Report Test Extension Exemption Evaluation
Environmental Protection Agency
Page 646 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
EXTEXEM-3
Check Name:
Test Extension/Exemption System Valid
Related Former Checks: RTEXT-1, QEXP-1, FFEXT-1
Applicability:
General Check
Description:
Specifications:
For the Test Extension/Exemption record:
If MonitoringSystemID is null,
If ExtensionOrExemptionCode is equal to "LOWSYTD", "LOWSQTR", "NRB720", "NONQAPB", "FLOWEXP" or
"F2LEXP",
return result A.
If ExtensionOrExemptionCode is equal to "LOWSYTD", "LOWSQTR", "NRB720", "NONQAPB", "FLOWEXP" or
"F2LEXP",
Locate the Monitor System record for the location where the MonitorSystemID is equal to the MonitorSystemID in
the current test extension exemption record.
If ExtensionOrExemptionCode is equal to "LOWSYTD" or "LOWSQTR", and the SystemTypeCode in the
retrieved record is not equal to "S02" or "S02R",
return result B.
If ExtensionOrExemptionCode is equal to "NRB720" and the SystemDesignationCode in the retrieved record is not
equal to "B",
return result C.
If ExtensionOrExemptionCode is equal to "NONQAPB" and the SystemDesignationCode in the retrieved record is
not equal to "PB",
return result F.
If ExtensionOrExemptionCode is equal to "FLOWEXP" or "F2LEXP" and the SystemTypeCode in the retrieved
record is not equal to "FLOW",
return result G.
If the Test Extension Exemption Begin Date is not null,
Otherwise,
If the BeginDate of the retrieved record is after the Test Extension Exemption End Date, or if the EndDate
is not null and is prior to the Test Extension Exemption Begin Date,
return result D.
Otherwise,
return result E.
Environmental Protection Agency
Page 647 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
A
B
D
E
F
G
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
This test extension exemption should only be reported for an S02 or S02R system.
According to the monitoring system record, the system defined in this record is not an
S02 or S02R system.
According to the monitoring system record, the SystemDesignationCode for the system
reported in this record is not equal to "B". This test extension exemption is only valid
for regular non-redundant backup systems.
According to the monitoring plan data, the [item] defined in this test extension
exemption record was not active during the quarter.
You reported a [fieldname], which is not appropriate for this type of test extension
exemption.
According to the monitoring system record, the SystemDesignationCode for the system
reported in this record is not equal to "PB". This test extension exemption is only valid
for primary bypass systems.
This test extension exemption should only be reported for a FLOW system. According
to the monitoring system record, the system defined in this record is not a FLOW
system.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA and Certification Data Entry Screen Evaluation Test Extension Exemption Evaluation
Process/Category: Other QA Evaluation Report Test Extension Exemption Evaluation
Environmental Protection Agency
Page 648 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: EXTEXEM-4
Check Name: Test Extension/Exemption Component Valid
Related Former Checks: QEXP-2
Applicability: General Check
Description:
Specifications:
For the Test Extension/Exemption record:
If the ComponentID is null,
If ExtensionOrExemptionCode is equal to "RANGENU", "NONQAPB", "NONQADB", or "FLOWEXP",
return result A.
Otherwise,
If ExtensionOrExemptionCode is equal to "RANGENU" or "NONQAPB",
If the Test Extension Exemption Begin Date is not null,
Locate the Analyzer Range record for the location where the ComponentID is equal to the ComponentID in
the current test extension exemption record, the BeginDate is on or before the Test Extension Exemption
End Date, and the EndDate is null or is on or after the Test Extension Exemption Begin Date.
If not found,
Locate the Component record for the location where the ComponentID is equal to the
ComponentID in the current test extension exemption record.
If the ExtensionOrExemptionCode is equal to "RANGENU",
If not found, or the ComponentTypeCode is not equal to "NOX", "S02", "C02", or "02",
return result B.
Otherwise,
return result C.
Otherwise,
If not found, or the ComponentTypeCode is not equal to "NOX",
return result F.
Otherwise,
return result C.
If found,
If the ExtensionOrExemptionCode is equal to "RANGENU", and the DualRangelndicator is not
equal to 1,
return result D.
else if ExtensionOrExemptionCode is equal to "NONQADB",
Locate the Component record for the location where the ComponentID is equal to the ComponentID in the current
test extension exemption record.
If not found, or the ComponentTypeCode is not equal to "OFFM" or "GFFM",
Environmental Protection Agency
Page 649 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
return result G.
else if ExtensionOrExemptionCode is equal to "FLOWEXP",
Locate the Component record for the location where the ComponentID is equal to the ComponentID in the current
test extension exemption record.
If not found, or the ComponentTypeCode is not equal to "FLOW",
return result H.
Otherwise,
Locate a Sysem Component record for the location where the ComponentID is equal to the
ComponentID in the current test extension exemption record, the BeginDate is on or prior to the
last day of the year/quarter in the test extension exemption record, the EndDate is null or is on or
after the first day of the year/quarter in th test extension exemption record, and the
MonitoringSystemID is not equal to the MonitoringSystemID in the test extenstion exemption
recod,
If not found,
return result I.
Otherwise,
return result E.
Results:
Result
A
B
C
D
E
F
G
H
I
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
The ComponentTypeCode of the component reported for [key] is not appropriate. A
RANGENU extension exemption only applies to dual-range continuous emission
monitors.
According to the monitoring plan data, the [item] defined in this test extension
exemption record was not active during the quarter.
According to the analyzer range records, the component reported in this test extension
exemption record is not a dual-range analyzer. A RANGENU extension exemption only
applies to dual-range analyzer.
You reported a [fieldname], which is not appropriate for this type of test extension
exemption.
The ComponentTypeCode of the component reported for [key] is not appropriate. A
NONQAPB extension exemption only applies to NOX continuous emission monitors.
The ComponentTypeCode of the component reported for [key] is not appropriate. A
NONQADB extension exemption only applies to GFFM and OFFM monitors.
The ComponentTypeCode of the component reported for [key] is not appropriate. A
FLOWEXP extension exemption only applies to FLOW monitors.
The FLOW component reported in the test extension exemption record for [key] does
not actively belong to more than FLOW system. A FLOWEXP exemption only applies
to FLOW components that belong to multiple FLOW systems.
Process/Category: QA and Certification Data Entry Screen Evaluation Test Extension Exemption Evaluation
Process/Category: Other QA Evaluation Report Test Extension Exemption Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 650 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: EXTEXEM-5
Check Name: Test Extension/Exemption Span Scale Valid
Related Former Checks: QEXP-3
Applicability: General Check
Description:
Specifications:
For the Test Extension/Exemption record:
If the SpanScaleCode is null,
If ExtensionOrExemptionCode is equal to "RANGENU",
return result A.
Otherwise,
If ExtensionOrExemptionCode is not equal to "RANGENU",
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B You reported a [fieldname], which is not appropriate for this type of test extension Critical Error Level 1
exemption.
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Test Extension Exemption Evaluation
1 Process/Category: Other QA Evaluation Report Test Extension Exemption Evaluation
Environmental Protection Agency
Page 651 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
EXTEXEM-6
Check Name:
Test Extension/Exemption Fuel Code Valid
Related Former Checks:
Applicability:
General Check
Description:
Validation Tables:
Fuel Code (Lookup Table)
Fuel Code (Lookup Table)
Specifications:
For the Test Extension/Exemption record:
If the FuelCode is null,
If ExtensionOrExemptionCode is equal to "NONQAOS",
return result A.
Otherwise,
If ExtensionOrExemptionCode is equal to "NONQAOS",
Locate a Monitor System record for the location where the SystemTypeCode is equal to "OILV", "OILM", "GAS",
"LTOL", or "LTGS" and the FuelCode is equal to the FuelCode in the current test extension exemption record.
If not found,
return result B.
If the Test Exemption Extension Begin Date is not null,
If the BeginDate of the retrieved record is after the Test Extension Exemption End Date, or the EndDate is
not null and is prior to the Test Extension Exemption Begin Date,
return result C.
Otherwise,
return result D.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
This test extension exemption should only be reported for a location with a fuelflow
system with a FuelCode equal to [value]. According to the monitoring plan, there are no
such systems defined at this location.
This test extension exemption should only be reported for a location with an active
fuelflow system with a FuelCode equal to [value]. According to the monitoring plan,
there are no such systems defined at this location which are active during the quarter.
You reported a [fieldname], which is not appropriate for this type of test extension
exemption.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
D
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Test Extension Exemption Evaluation
1
Process/Category: Other QA Evaluation Report Test Extension Exemption Evaluation
Environmental Protection Agency
Page 652 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: EXTEXEM-7
Check Name: Test Extension/Exemption Hours Used Valid
Related Former Checks: FFEXT-4D, RTEXT-4, 5
Applicability: General Check
Description:
Specifications:
For the Test Extension/Exemption record:
If HoursUsed is not null and is less than 0,
return result A.
If the ExtensionOrExemptionCode is equal to "RANGENU" or "LOWSQTR",
If HoursUsed is greater than 0,
return result B.
else if the ExtensionOrExemptionCode is not equal to "FLOWEXP" or "F2LEXP",
If HoursUsed is null,
If ExtensionOrExemptionCode is equal to "NONQAOS" and the Test Extension Exemption Begin Date is before
ECMPS MP Begin Date,
return result C.
Otherwise,
return result D.
If the ExtensionOrExemptionCode is equal to "LOWSYTD" and HoursUsed is greater than 480,
return result E.
If the ExtensionOrExemptionCode is equal to "NRB720" and HoursUsed is greater than 720,
return result E.
If the ExtensionOrExemptionCode is equal to "NONQAOS", "NONQAPB", or "NONQADB", and HoursUsed is greater
than 168,
return result E.
Results:
Result
A
B
C
D
E
Usage:
1
1
Response
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
You reported a HoursUsed of [value] in this record. The HoursUsed must be zero to
qualify for this test extension exemption.
You did not provide [fieldname] for [key]. This information will be required for
ECMPS submissions.
You did not provide [fieldname], which is required for [key].
Based on the HoursUsed, this system does not qualify for this test extension exemption.
Severity
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Critical Error Level 1
Critical Error Level 1
Process/Category: QA and Certification Data Entry Screen Evaluation Test Extension Exemption Evaluation
Process/Category: Other QA Evaluation Report Test Extension Exemption Evaluation
Environmental Protection Agency
Page 653 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: EXTEXEM-8
Check Name: Duplicate Test Extension/Exemption
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Test Extension Exemption record with an ExtensionOrExemptionCode and Reporting Period ID that are both not null:
Locate another Test Extension Exemption record for the location with an ExtensionOrExemptionCode, Reporting Period ID,
MonitoringSystemID, ComponentID, and FuelCode that are equal to the corresponding fields in the current record.
If found,
return result A.
Results:
Result Response Severity
A Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Test Extension Exemption Evaluation
Environmental Protection Agency
Page 654 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: EXTEXEM-9
Check Name: Monitor Plan Evaluation Check
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Test Extension/Exemption record:
Locate all Monitoring Plan Location records for the location where the SeverityLevelCd of the associated Monitoring Plan is equal
to "CRIT1" or "FATAL", and the End Quarter of the associated Monitoring Plan is null or is on or after the Year/Quarter of the
extension/ exemption.
If found,
return result A.
Otherwise,
Locate all Monitoring Plan Location records for the location where the MustSubmitFlag and NeedsEvalFlag of the
associated Monitoring Plan is equal to "Y", and the End Quarter of the associated Monitoring Plan is null or is on or after
the Year/Quarter of the extension/exemption.
If found,
return result B.
Results:
Result
B
Response
A Monitoring Plan associated with this [entity] has critical errors. You must correct all
active and future Monitoring Plans containing the location in this [entity] in order to
submit this [entity] to be loaded on EPA's host system.
A Monitoring Plan associated with this [entity] has not been evaluated. You must
evaluate all active and future Monitoring Plans containing the location in this [entity] in
order to complete the evaluation of this [entity].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Other QA Evaluation Report Test Extension Exemption Evaluation
Environmental Protection Agency
Page 655 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Transmitter Transducer Test
Environmental Protection Agency
Page 656 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FFACCTT-1
Check Name: Transmitter Transducer Test Component Type Valid
Related Former Checks: ACC-5
Applicability: Appendix D Check
Description:
Specifications:
For the transmitter transducer test:
If the ComponentID is null,
set Transmitter Transducer Test Component Type Valid to false, and return result A.
Otherwise,
If the ComponentTypeCode of the associated component is not equal to "OFFM" or "GFFM",
set Transmitter Transducer Test Component Type Valid to false, and return result B.
Otherwise,
set Transmitter Transducer Test Component Type Valid to true.
If the SampleAcquisitionMethodCode of the associated component is not equal to "ORF", "VEN", or "NOZ",
return result C.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The component type in the monitoring plan is [comptype]. This type of component does
not require a transmitter transducer test. Only component types 'OFFM' or 'GFFM' may
perform this type of test.
The acquisition method code reported in the monitoring plan for this fuel flowmeter is
[sample-method] which indicates that the use of the transmitter transducer test record
may be inappropriate. A transmitter transducer test should be reported only for orifice,
nozzle and venturi-type fuel flowmeters unless otherwise approved by petition. You
may disregard this message if you have an approved petition to quality-assure your fuel
flowmeter in the same manner as an orifice, nozzle or venturi-type meter.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
Usage:
1
Process/Category:
QA Test Evaluation Report Transmitter Transducer Test
Environmental Protection Agency
Page 657 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACCTT-2
Check Name:
Aborted Transmitter Transducer Test Check
Related Former Checks:
Applicability:
Appendix D Check
Description:
Specifications:
For the transmitter transducer test:
If the TestResultCode is equal to "ABORTED",
return result A.
Results:
Result Response Severity
A The TestResultCode indicates that the test was aborted. If the test was aborted for a Informational Message
reason not related to monitor performance, you should not report the test.
Usage:
1
Process/Category: QA Test Evaluation Report Transmitter Transducer Test
Environmental Protection Agency
Page 658 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FFACCTT-3
Check Name: Transmitter Transducer Test Reason Code Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Validation Tables:
Test Reason Code (Lookup Table)
Test Reason Code (Lookup Table)
Specifications:
For the Transmitter Transducer test:
If TestResultCode is equal to "ABORTED",
Set Transmitter Transducer Test Calc Result to "ABORTED".
Otherwise,
Set Transmitter Transducer Test Calc Result to "PASSED".
If the TestReasonCode is null,
If EndDate is on or after ECMPS MP Begin Date,
return result A.
Otherwise,
return result B.
If the TestReasonCode is not in the TestReasonCode lookup table,
return result C.
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You did not provide [fieldname] for [key]. This information will be required for
ECMPS submissions.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Non-Critical Error
Critical Error Level 1
Process/Category: QA Test Evaluation Report Transmitter Transducer Test
Process/Category: QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Environmental Protection Agency
Page 659 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FFACCTT-4
Check Name: Identification of Previously Reported Test or Number for Transmitter Transducer Test
Related Former Checks:
Applicability: Appendix D Check
Description:
Specifications:
For a transmitter transducer test with valid end time and a non-null ComponentID:
Locate another transmitter transducer test for the component where the EndDate, EndHour, and EndMinute are equal to the
EndDate, EndFtour, and EndMinute of the current TestSummary record.
If found,
return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestTypeCode is equal to "FFACCTT", and the
ComponentID, EndDate, and EndHour is equal to ComponentID, EndDate, and EndHour of the current TestSummary
record, and the EndMinute is null or is equal to the EndMinute in the current TestSummary record, and the TestNum is not
equal to the TestNumber in the current TestSummary record,
If found,
return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "FFACCTT" and the TestNum equal
to the TestNumber in the current TestSummary record.
If found,
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the ComponentID, EndDate, EndHour, and
EndMinute in the QASupp record is not equal to ComponentID, EndDate, EndHour, or
EndMinute of the current TestSummary record,
return result B.
Otherwise,
return result C.
Results:
Result Response
A Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
B Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
C This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 660 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Transmitter Transducer Test
1 Process/Category: QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Conditions: Duplicate Transmitter Transducer Equals false
Environmental Protection Agency
Page 661 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACCTT-5
Check Name:
Low Level Accuracy Valid
Related Former Checks: ACC-7
Applicability:
Appendix D Check
Description:
Specifications:
For the Transmitter Transducer test with a TestResultCode not equal to "ABORTED":
If LowLevelAccuracy is null,
set Transmitter Transducer Test Calc Result to "INVALID", and return result A.
If LowLevel Accuracy is less than 0,
set Transmitter Transducer Test Calc Result to "INVALID", and return result B.
If Transmitter Transducer Test Calc Result is not equal to "INVALID",
If the LowLevelAccuracySpecCode is equal to "AGA3" and LowLevelAccuracy is greater than 2.0,
set Transmitter Transducer Test Calc Result to "FAILED".
If the LowLevelAccuracySpecCode is equal to "SUM" and LowLevelAccuracy is greater than 4.0,
set Transmitter Transducer Test Calc Result to "FAILED".
If the LowLevelAccuracySpecCode is equal to "ACT" and LowLevelAccuracy is greater than 1.0,
set Transmitter Transducer Test Calc Result to "FAILED".
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Transmitter Transducer Test
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Environmental Protection Agency
Page 662 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACCTT-6
Check Name:
Low Level Accuracy Specification Code Valid
Related Former Checks: ACC-6
Applicability:
Appendix D Check
Description:
Validation Tables:
Accuracy Spec Code (Lookup Table)
Accuracy Spec Code (Lookup Table)
Specifications:
For the Transmitter Transducer test with a TestResultCode not equal to "ABORTED":
If LowLevelAccuracySpecCode is null,
set Transmitter Transducer Test Calc Result to "INVALID", and return result A.
If LowLevelAccuracySpecCode is not in the Accuracy Specification Code lookup table,
set Transmitter Transducer Test Calc Result to "INVALID", and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report Transmitter Transducer Test
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Environmental Protection Agency
Page 663 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACCTT-7
Check Name:
Mid Level Accuracy Valid
Related Former Checks: ACC-7
Applicability:
Appendix D Check
Description:
Specifications:
For the Transmitter Transducer test with a TestResultCode not equal to "ABORTED":
If MidLevelAccuracy is null,
set Transmitter Transducer Test Calc Result to "INVALID", and return result A.
If MidLevel Accuracy is less than 0,
set Transmitter Transducer Test Calc Result to "INVALID", and return result B.
If Transmitter Transducer Test Calc Result is not equal to "INVALID",
If the MidLevelAccuracySpecCode is equal to "AGA3" and MidLevelAccuracy is greater than 2.0,
set Transmitter Transducer Test Calc Result to "FAILED".
If the MidLevelAccuracySpecCode is equal to "SUM" and MidLevelAccuracy is greater than 4.0,
set Transmitter Transducer Test Calc Result to "FAILED".
If the MidLevelAccuracySpecCode is equal to "ACT" and MidLevelAccuracy is greater than 1.0,
set Transmitter Transducer Test Calc Result to "FAILED".
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Transmitter Transducer Test
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Environmental Protection Agency
Page 664 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACCTT-8
Check Name:
Mid Level Accuracy Specification Code Valid
Related Former Checks: ACC-6
Applicability:
Appendix D Check
Description:
Validation Tables:
Accuracy Spec Code (Lookup Table)
Accuracy Spec Code (Lookup Table)
Specifications:
For the Transmitter Transducer test with a TestResultCode not equal to "ABORTED":
If MidLevelAccuracySpecCode is null,
set Transmitter Transducer Test Calc Result to "INVALID", and return result A.
If MidLevelAccuracySpecCode is not in the Accuracy Specification Code lookup table,
set Transmitter Transducer Test Calc Result to "INVALID", and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report Transmitter Transducer Test
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Environmental Protection Agency
Page 665 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACCTT-9
Check Name:
High Level Accuracy Valid
Related Former Checks: ACC-7
Applicability:
Appendix D Check
Description:
Specifications:
For the Transmitter Transducer test with a TestResultCode not equal to "ABORTED":
Set Transmitter Transducer Test Result Determined to true.
If HighLevelAccuracy is null,
set Transmitter Transducer Test Calc Result to "INVALID", and return result A.
If HighLevelAccuracy is less than 0,
set Transmitter Transducer Test Calc Result to "INVALID", and return result B.
If Transmitter Transducer Test Calc Result is not equal to "INVALID",
If the HighLevelAccuracySpecCode is equal to "AGA3" and HighLevelAccuracy is greater than 2.0,
set Transmitter Transducer Test Calc Result to "FAILED".
If the HighLevelAccuracySpecCode is equal to "SUM" and HighLevelAccuracy is greater than 4.0,
set Transmitter Transducer Test Calc Result to "FAILED".
If the HighLevelAccuracySpecCode is equal to "ACT" and HighLevelAccuracy is greater than 1.0,
set Transmitter Transducer Test Calc Result to "FAILED".
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Transmitter Transducer Test
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Environmental Protection Agency
Page 666 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACCTT-10
Check Name:
High Level Accuracy Specification Code Valid
Related Former Checks: ACC-6
Applicability:
Appendix D Check
Description:
Validation Tables:
Accuracy Spec Code (Lookup Table)
Accuracy Spec Code (Lookup Table)
Specifications:
For the Transmitter Transducer test with a TestResultCode not equal to "ABORTED":
If HighLevelAccuracySpecCode is null,
set Transmitter Transducer Test Calc Result to "INVALID", and return result A.
If HighLevelAccuracySpecCode is not in the Accuracy Specification Code lookup table,
set Transmitter Transducer Test Calc Result to "INVALID", and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report Transmitter Transducer Test
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Environmental Protection Agency
Page 667 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: FFACCTT-11
Check Name: Transmitter Transducer Test Result Code Valid
Related Former Checks: ACC-7
Applicability: Appendix D Check
Description:
Specifications:
For the Transmitter Transducer test:
If the TestResultCode is null,
return result A.
If the TestResultCode is not equal to "PASSED", "FAILED" or "ABORTED",
Locate the TestResultCode in the Test Result Code Lookup table.
If not found,
return result B.
If found,
return result C.
If the TestResultCode is equal to "PASSED" and Transmitter Transducer Test Calc Result is equal to "FAILED",
return result D.
If the TestResultCode is equal to "FAILED" and Transmitter Transducer Test Calc Result is equal to "PASSED",
return result E.
In the QA Evaluation Process, the Transmitter Transducer Test Calc Result will be stored as calculated values in the Test Summary
record for the test, and (for tests that have not yet been submitted or have been approved for resubmission) the appropriate values
will be stored in the QA Supp Data record for the test.
Results:
Result
A
B
C
D
E
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
The TestResultCode indicates a passing transmitter transducer test but the accuracy
results do not meet the test criteria for the methodology used.
You reported a TestResultCode of "FAILED", but the results recalculated or determined
from the other reported values indicate that the test passed.
Severity
Critical Error Level 1
Fatal
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: QA Test Evaluation Report Transmitter Transducer Test
Process/Category: QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Environmental Protection Agency
Page 668 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: FFACCTT-12
Check Name: Transmitter Transducer Test Component ID Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Specifications:
For the transmitter transducer test:
If the ComponentID is null,
return result A..
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Environmental Protection Agency
Page 669 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
FFACCTT-13
Check Name:
Duplicate Transmitter Transducer Test
Related Former Checks:
Applicability:
Appendix D Check
Description:
Specifications:
For a transmitter transducer test with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode is equal to "FFACCTT" and the TestNumber is equal
to the TestNumber in the current record.
If found,
return result A.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "FFACCTT" and the
TestNumber is equal to the TestNumber in the current record.
If found,
return result B.
Results:
Result
A
Response
Another [testtype] with this test number already exists. You must assign a different test
number.
You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Transmitter Transducer Test Evaluation
Environmental Protection Agency
Page 670 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Category:
Unit Default Test
Environmental Protection Agency
Page 671 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-1
Check Name: Initialize Unit Default Test Variables
Related Former Checks:
Applicability: LME Check
Description:
Specifications:
For the Unit Default test:
Set Unit Default Maximum NOx Rate, Unit Default Level Sum Reference Value, Unit Default Level Count, Unit Default Flagged
NOx Rate, Unit Default Flagged Level Sum Reference Value, Unit Default Level Run Count, and Unit Default Last Run Number to
0.
Set Unit Default Run Sequence Valid and Unit Default Run Used Indicators Consistent to true.
Set Unit Default Run Sequence Consecutive to false.
Set Unit Default Run Sequence, Unit Default Last Op Level, and Unit Default Flagged Op Level to null.
Results:
Result
Response
Severity
Usage:
1
Process/Category:
QA Test Evaluation Report Unit Default Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
2 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Run Evaluation
Environmental Protection Agency
Page 672 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
UNITDEF-2
Check Name:
Unit Default Test Fuel Code Valid
Related Former Checks:
Applicability:
LME Check
Description:
Validation Tables:
Fuel Code (Lookup Table)
Fuel Code (Lookup Table)
Specifications:
For the Unit Default test:
If the FuelCode is null,
set Unit Default Fuel Valid to false, and return result A.
If the FuelCode is not in the FuelCode lookup table, or the FuelGroup in the lookup table record is not equal to "OIL" or "GAS",
set Unit Default Fuel Valid to false, and return result B.
Otherwise,
set Unit Default Fuel Valid to true.
If Unit Default Fuel is invalid, do not perform checks in the Unit Default Run category.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Severity
Fatal
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
1
Process/Category:
QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 673 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-3
Check Name: Unit Default Test Operating Condition Code Valid
Related Former Checks:
Applicability: LME Check
Description:
Specifications:
For the Unit Default test:
If the OperatingConditionCode is not null,
If the OperatingConditionCode is not equal to "A", "B", or "P",
return result A.
Results:
Result Response Severity
A You reported the value [value], which is not in the list of valid values, in the field Critical Error Level 1
[fieldname] for [key].
Usage:
1 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Conditions: Unit Default Fuel Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 674 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-4
Check Name: Unit Default Test Reason Code Valid
Related Former Checks:
Applicability: LME Check
Description:
Validation Tables:
Test Reason Code (Lookup Table)
Test Reason Code (Lookup Table)
Specifications:
For the Unit Default test:
If the TestReasonCode is null,
If EndDate is on or after ECMPS MP Begin Date,
return result A.
Otherwise,
return result B.
If the TestReasonCode is not equal to "INITIAL", "QA", or "RECERT",
Locate the TestReasonCode is not in the Test Reason Code Lookup table,
If not found,
return result C.
If found,
return result D.
Results:
Result
A
B
D
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
You did not provide [fieldname] for [key]. This information will be required for
ECMPS submissions.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the value [value], which is not in the list of valid values for this test type,
in the field [fieldname] for [key].
Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Conditions: Unit Default Fuel Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Severity
Critical Error Level 1
Non-Critical Error
Fatal
Critical Error Level 1
Environmental Protection Agency
Page 675 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-5
Check Name: Unit Default Test NOx Default Rate Valid
Related Former Checks:
Applicability: LME Check
Description:
Specifications:
For the Unit Default test:
If the NOxDefaultRate is null,
return result A.
If the NOxDefaultRate is less than 0,
return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Usage:
1
1
Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Conditions: Unit Default Fuel Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 676 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-6
Check Name: Identification of Previously Reported Test or Test Number for Unit Default Test
Related Former Checks:
Applicability: LME Check
Description:
Specifications:
For an Unit Default test with valid end time:
Set Extra Unit Default Test to false.
Locate another Unit Default test for the location where the FuelCode, OperatingConditionCode, EndDate, EndHour, and EndMinute
are equal to the FuelCode, OperatingConditionCode, EndDate, EndFtour, and EndMinute of the current TestSummary record.
If found,
set Extra Unit Default Test to true, and return result A.
Otherwise,
Locate an unassociated QASupp record for the location where the TestType Code is equal to "UNITDEF",
FuelCode, OperatingConditionCode, EndDate, EndHour, and EndMinute is equal to the FuelCode,
OperatingConditionCode, EndDate, EndHour, and EndMinute of the current TestSummary record, and the
equal to the TestNumber in the current TestSummary record,
If found,
set Extra Unit Default Test to true, and return result A.
Otherwise,
Locate a QASupp record for the location where the TestTypeCode is equal to "UNITDEF" and the TestNum equal
to the TestNumber in the current TestSummary record.
If found,
If CANSUBMIT in the QA Supp record is equal to "N",
If this is an unassociated QASupp record, and the FuelCode, OperatingConditionCode, EndDate,
EndHour, and EndMinute in the QASupp record is not equal to FuelCode,
OperatingConditionCode, EndDate, EndHour, or EndMinute of the current TestSummary record,
return result B.
Otherwise,
return result C.
Results:
Result Response
A Based on the information in this record, this test has already been submitted with a
different test number, or the Client Tool database already contains the same test with a
different test number. This test cannot be submitted.
B Another [testtype] with this test number has already been submitted for this location.
This test cannot be submitted with this test number. If this is a different test, you should
assign it a unique test number.
C This test has already been submitted and will not be resubmitted. If you wish to
resubmit this test, please contact EPA for approval.
and the
TestNum is not
Severity
Fatal
Fatal
Informational Message
Environmental Protection Agency
Page 677 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Usage:
1 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
1 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Conditions: Duplicate Unit Default Test Equals false
Environmental Protection Agency
Page 678 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-7
Check Name: Determine Run Sequence
Related Former Checks:
Applicability: LME Check
Description:
Specifications:
For the unit default test:
If there are no Unit Default Run records,
Set Unit Default Run Times Valid to false.
Otherwise,
Set Unit Default Run Times Valid to true.
Proceed through the Unit Default Run records for the test in run BeginDate/Hour/Minute order.
If this is the first run of the test,
Set Simultaneous Unit Default Runs to false.
If the BeginDate is null, or the BeginHour is null or not between 0 and 23, or the BeginMinute is null or
not between 0 and 59,
set Unit Default Run Times Valid to false.
Otherwise,
Set the Unit Default Test Begin Date, Begin Hour, and Begin Minute to the BeginDate,
BeginHour, and BeginMinute.
If the EndDate is null, or the EndHour is null or not between 0 and 23, or the EndMinute is null or not
between 0 and 59,
set Unit Default Run Times Valid to false.
Otherwise,
Set the Unit Default Test End Date, End Hour, and End Minute to the EndDate, EndHour, and
EndMinute.
Otherwise,
If Unit Default Run Times Valid is equal to true, the BeginDate is not null, the BeginHour is between 0
and 23, and the BeginMinute is between 0 and 59,
If the BeginDate, BeginHour, and BeginMinute is prior to the EndDate, EndHour, and EndMinute
of the previous run,
set Simultaneous Unit Default Runs to true.
If the EndDate is null, or the EndHour is null or not between 0 and 23, or the EndMinute is null or not
between 0 and 59,
set Unit Default Run Times Valid to false.
Otherwise,
Set the Unit Default Test End Date, End Hour, and End Minute to the EndDate, EndHour, and
EndMinute.
Environmental Protection Agency
Page 679 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result
Usage:
1
Response
Process/Category:
Conditions:
Severity
QA Test Evaluation Report Unit Default Test (Pass 1)
Unit Default Fuel Valid Equals true
Environmental Protection Agency
Page 680 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-8
Check Name: Unit Default Test Number of Units in Group Valid
Related Former Checks: IDEN-6A
Applicability: LME Check
Description:
Specifications:
For the Unit Default test:
If GroupID is not null,
If NumberOfUnitsInGroup is null,
return result A.
If NumberOfUnitsInGroup is less than 2,
return result B.
Otherwise,
If NumberOfUnitsInGroup is not null,
return result C.
Results:
Result Response
A You did not provide [fieldname], which is required for [key],
B You reported an invalid value in the NumberOfUnitsInGroup for this test. The value
must be greater than or equal to 2.
C You reported a value in [fieldname] for this test, but you did not report a GroupID. This
field only applies to a test that is conducted for a group of identical units.
Usage:
1 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Conditions: Unit Default Fuel Valid Equals true
1 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 681 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Unit Default test:
If GroupID is not null,
If NumberOfTestsForGroup is null,
return result A.
If NumberOfUnitsInGroup is less than 3,
If NumberOfTestsForGroup is less than 1,
return result B.
If NumberOfUnitsInGroup is less than 7,
If NumberOfTestsForGroup is less than 2,
return result B.
If NumberOfUnitsInGroup is less than 11,
If NumberOfTestsForGroup is less than 3,
return result B.
Otherwise,
Calculate tempval = (NumberOfUnitsInGroup / 3), and round the result to the nearest integer.
If NumberOfTestsForGroup is less than tempval,
return result B.
Otherwise,
If NumberOfTestsForGroup is not null,
return result C.
UNITDEF-9
Unit Default Test Number of Tests for Group Valid
IDEN-6B
LME Check
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported an invalid value in the NumberOfTestsForGroup for this test. This value
is less than the minimum number of tests for the number of units in the group.
You reported a value in [fieldname] for this test, but you did not report a GroupID. This
field only applies to a test that is conducted for a group of identical units.
Severity
Critical Error Level 1
Critical Error Level 2
Critical Error Level 1
Usage:
1
1
Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Conditions: Unit Default Fuel Valid Equals true
Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 682 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-10
Check Name: Unit Default Test Begin Time Consistent with Run Times
Related Former Checks:
Applicability: LME Check
Description:
Specifications:
For the unit default test with valid begin time and run times:
If BeginDate, BeginHour, and BeginMinute does not equal the Unit Default Test Begin Date, Begin Hour, and Begin Minute,
return result A.
Results:
Result Response Severity
A You reported a test Begin Date, Hour, and Minute that is not the same as the BeginDate, Critical Error Level 1
Hour, and Minute of the first run in the test.
Usage:
1 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Environmental Protection Agency
Page 683 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-11
Check Name: Unit Default Test End Time Consistent with Run Times
Related Former Checks:
Applicability: LME Check
Description:
Specifications:
For the unit default test with valid end time and run times:
If EndDate, EndHour, and EndMinute does not equal the Unit Default Test End Date, End Hour, and End Minute,
return result A.
Results:
Result Response Severity
A You reported a test EndDate, Hour, and Minute that is not the same as the EndDate, Critical Error Level 1
Hour, and Minute of the last run in the test.
Usage:
1 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Environmental Protection Agency
Page 684 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-12
Check Name: Unit Default Test Consistent with Methodology
Related Former Checks: UDEF-2
Applicability: LME Check
Description:
Specifications:
For the Unit Default Test with consistent dates:
Locate a Method record for the location where the ParameterCode is equal to "NOXM", the MethodCode is equal to "LME", and
the EndDate is null or the EndDate and EndHour is after the EndDate and EndHour of the test.
If not found,
return result A.
Results:
Result Response Severity
A You have reported this unit default test to determine a unit-and-fuel specific NOX Critical Error Level 1
default for LME, but you do not have an active NOXM LME methodology record in
your monitoring plan.
Usage:
1 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Environmental Protection Agency
Page 685 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-13
Check Name: Simultaneous Runs
Related Former Checks: UDEF-4
Applicability: LME Check
Description:
Specifications:
For the unit default test with valid run times:
If Simultaneous Unit Default Runs is equal to true,
return result A.
Results:
Result Response Severity
A One or more runs in this test have overlapping run times. Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 1)
Environmental Protection Agency
Page 686 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
UNITDEF-14
Check Name:
Concurrent Unit Default Tests
Related Former Checks: UDEF-6
Applicability:
LME Check
Description:
Specifications:
For a unit default test with consistent dates:
Locate another Unit Default test for the location where the FuelCode and OperatingConditionCode are equal to the FuelCode and
OperatingConditionCode of the current test, the BeginDate, BeginFtour, and BeginMinute is before the EndDate, EndFtour, and
EndMinute of the current test, and the EndDate, EndFtour, and EndMinute is after the BeginDate, BeginFtour, and BeginMinute of
the current test.
If found,
return result A.
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "UNITDEF"; the FuelCode
and OperatingConditionCode are equal to FuelCode and OperatingConditionCode of the current test; the BeginDate,
BeginFtour, and BeginMinute is before the EndDate, EndFtour, and EndMinute of the current test, and the EndDate,
EndFtour, and EndMinute is after the BeginDate, BeginFtour, and BeginMinute of the current record; and the TestNum is
not equal to the TestNumber in the current test.
If not found,
If found,
return result A.
Results:
Result
A
Response
The test was conducted at the same time as another Unit Default test with the same
FuelCode and OperatingConditionCode.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
QA Test Evaluation Report Unit Default Test (Pass 1)
Extra Unit Default Test Equals false
Environmental Protection Agency
Page 687 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-15
Check Name: Insufficient Number of Runs
Related Former Checks: UDEF-7
Applicability: LME Check
Description:
Specifications:
For the Unit Default Run:
If Unit Default Last Op Level is equal to OperatingLevelforRun,
If Unit Default Flagged Op Level contains the OperatingLevelForRun,
If RunUsedlndicator is not equal to 1,
set Unit Default Run Used Indicators Consistent to false.
Otherwise,
If RunUsedlndicator is equal to 1,
set Unit Default Run Used Indicators Consistent to false,
append OperatingLevelForRun to Unit Default Flagged Op Level.
Otherwise,
Add 1 to Unit Default Level Count.
If RunUsedlndicator is equal to 1,
append OperatingLevelForRun to Unit Default Flagged Op Level.
If Unit Default Last Op Level is not null,
If Unit Default Level Run Count is less than 3,
set Unit Default Incomplete Level to Unit Default Last Op Level.
set Unit Default Level Sum Reference Value and Unit Default Level Run Count to 0, Unit Default Last Op
Level to OperatingLevelforRun, Unit Default Maximum NOx Rate to -1, and return result A.
Otherwise,
If Unit Default Maximum NOx Rate is greater than or equal to 0,
If Unit Default Level Sum Reference Value is greater than or equal to 0,
Calculate tempRate = Unit Default Level Sum Reference Value / Unit Default Level Run
Count and round the result to 3 decimal places.
If tempRate is greater than Unit Default Maximum NOx Rate,
set Unit Default Maximum NOx Rate to tempRate.
Otherwise,
set Unit Default Maximum NOx Rate to -1.
If Unit Default Flagged Level Sum Reference Value is greater than or equal to 0,
Calculate Unit Default Flagged NOx Rate = Unit Default Flagged Level Sum Reference
Value / Unit Default Level Run Count and round the result to 3 decimal places.
Set Unit Default Level Sum Reference Value and Unit Default Level Run Count to 0.
Set Unit Default Last Op Level to OperatingLevelforRun.
Environmental Protection Agency
Page 688 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Results:
Result Response Severity
A The Unit Default test contains fewer than three run records for OperatingLevelForRun Critical Error Level 1
[level], A minimum of three runs are required at each operating level.
Usage:
1 Process/Category: QA Test Evaluation Report — Unit Default Test Run
Environmental Protection Agency
Page 689 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-16
Check Name: Operating Level for Run Valid
Related Former Checks:
Applicability: LME Check
Description:
Specifications:
For the Unit Default Run:
If the OperatingLevelfor Run is null,
return result A.
If the OperatingLevelforRun is not between 1 and 99,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values from [minvalue] to [maxvalue].
Usage:
1 Process/Category: QA Test Evaluation Report — Unit Default Test Run
1 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Run Evaluation
Environmental Protection Agency
Page 690 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Unit Default run:
If the BeginDate is null, or the BeginHour is null or not between 0 and 23, or the BeginMinute is null or not between 0 and 59.
return result A.
Results:
Result Response
A The BeginDate, BeginHour, and/or BeginMinute for [key] is invalid
Usage:
1 Process/Category: QA Test Evaluation Report — Unit Default Test Run
1 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Run Evaluation
UNITDEF-17
Run Begin Time Valid
LME Check
Severity
Critical Error Level 1
Environmental Protection Agency
Page 691 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks
Applicability:
Description:
Specifications:
For the Unit Default run:
If the EndDate is null, or the EndHour is null or not between 0 and 23, or the EndMinute is null or not between 0 and 59,
return result A.
Otherwise,
If the BeginDate is not null, the BeginHour is between 0 and 23, and the BeginMinute is between 0 and 59.
If the BeginDate, BeginHour, and BeginMinute is on or after the EndDate, EndHour, and EndMinute,
return result B.
Otherwise,
Calculate tempLength as the difference in minutes between the BeginDate/Hour/Minute and the
EndDate/Hour/Minute.
If tempLength is less than 8,
return result C.
UNITDEF-18
Run End Time Valid
UDEF-13
LME Check
Results:
Result
A
B
C
Usage:
1
1
Response
The EndDate, EndHour, and/or EndMinute for [key] are invalid.
The begin time was later than the end time for [key].
According to the Begin and End times for [key], the run was less than 8 minutes. Each
run must be at least 8 minutes in duration.
Severity
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Process/Category: QA Test Evaluation Report — Unit Default Test Run
Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Run Evaluation
Environmental Protection Agency
Page 692 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
Check Name:
Related Former Checks:
UNITDEF-19
Response Time Valid
Applicability: LME Check
Description:
Specifications:
For the Unit Default Run:
If the ResponseTime is null,
return result A.
If the ResponseTime is not between 0 and 800,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The value [value] in the field [fieldname] for [key] is not within the range of valid Critical Error Level 1
values from [minvalue] to [maxvalue].
Usage:
1 Process/Category: QA Test Evaluation Report — Unit Default Test Run
1 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Run Evaluation
Environmental Protection Agency
Page 693 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
UNITDEF-20
Check Name:
Run Number Valid
Related Former Checks:
Applicability:
LME Check
Description:
Specifications:
For the Unit Default Run:
Add 1 to Unit Default Level Run Count.
If the RunNumber is null,
If Unit Default Level Run Count is equal to 1,
If Unit Default Level Count is equal to 1, and the associated OperatingLevelForRun is not equal to 1,
set Unit Default Run Sequence Valid to false.
Otherwise,
If RunNumber is not equal to 1,
set Unit Default Run Sequence Consecutive to true.
Otherwise,
If RunNumber - Unit Default Last Run Number is not equal to 1,
set Unit Default Run Sequence Valid to false.
Set Unit Default Last Run Number to RunNumber.
Append RunNumber to Unit Default Run Sequence in numeric order.
If the RunNumber is less than or equal to 0,
return result B.
return result A.
Otherwise,
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than one and
less than 20,000.
Severity
Fatal
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report — Unit Default Test Run
1
Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Run Evaluation
Environmental Protection Agency
Page 694 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
UNITDEF-21
Check Name:
Reference Value for Run Valid
Related Former Checks:
Applicability:
LME Check
Description:
Specifications:
For the Unit Default Run:
If the ReferenceValue is null,
set Unit Default Maximum NOx Rate to -1, and return result A.
If the ReferenceValue is less than 0,
set Unit Default Maximum NOx Rate to -1, and return result B.
Otherwise,
add ReferenceValue to Unit Default Level Sum Reference Value.
If RunUsedlndicator is equal to 1,
add Reference Value to Unit Default Flagged Level Sum Reference Value.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than or equal to zero.
Severity
Critical Error Level 1
Critical Error Level 2
Usage:
1
Process/Category: QA Test Evaluation Report — Unit Default Test Run
1
Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Run Evaluation
Environmental Protection Agency
Page 695 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-22
Check Name: Out of Sequence or Missing Runs
Related Former Checks: UDEF-5
Applicability: LME Check
Description:
Specifications:
For the unit default test with valid run times:
If Unit Default Run Sequence Valid is equal to true,
If Unit Default Run Sequence Consecutive is equal to true,
If the RunNumbers in the Unit Default Run Sequence do not begin with 1 or are not consecutive,
return result A.
Otherwise,
return result A.
Results:
Severity
Critical Error Level 1
Usage:
1 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 2)
Result Response
A There are missing or non-sequential OperatingLevelForRun and RunNumbers in this
test. Run numbers must begin with 1 and be consecutive within the entire test or within
each operating level. The lowest OperatingLevelForRun must be equal to 1.
Environmental Protection Agency
Page 696 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-23
Check Name: Insufficient Number of Runs for Highest Operating Level
Related Former Checks: UDEF-7
Applicability: LME Check
Description:
Specifications:
For the Unit Default test:
If Unit Default Last Op Level is null,
set Calculate Unit Default NOx Rate to false.
Otherwise,
Set Calculate Unit Default NOx Rate to true.
If Unit Default Level Run Count is less than 3,
set Calculate Unit Default NOx Rate to false, and return result A.
Otherwise,
If Unit Default Maximum NOx Rate is less than 0,
set Calculate Unit Default NOx Rate to false.
Otherwise,
If Unit Default Level Sum Reference Value is greater than or equal to 0,
Calculate tempRate = Unit Default Level Sum Reference Value / Unit Default Level Run Count
and round the result to 3 decimal places.
If tempRate is greater than Unit Default Maximum NOx Rate,
set Unit Default Maximum NOx Rate to tempRate.
Otherwise,
set Unit Default Maximum NOx Rate to -1.
If Unit Default Flagged Level Sum Reference Value is greater than or equal to 0,
Calculate Unit Default Flagged NOx Rate = Unit Default Flagged Level Sum Reference Value /
Unit Default Level Run Count and round the result to 3 decimal places.
Results:
Result
A
Response
The Unit Default test contains fewer than three run records for OperatingLevelForRun
[level], A minimum of three runs are required at each operating level.
Severity
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report Unit Default Test (Pass 2)
Environmental Protection Agency
Page 697 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-24
Check Name: Unit Default Test Run Used Indicators Consistent with Default NOx Rate
Related Former Checks: UDEF-8D, E, F, 9B
Applicability: LME Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the Unit Default test:
If Unit Default Flagged Op Level is null,
return result A.
If Unit Default Flagged Op Level Contains more than one level,
return result B.
If Unit Default Run Used Indicators Consistent is false,
return result C.
Otherwise,
If Calculate Unit Default NOx Rate is equal to true,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "APPE" and the
FieldDescription is equal to "MeanReferenceValue".
If the absolute value of the difference between the Unit Default Maximum NOx Rate and Unit Default Flagged
NOx Rate is greater than the Tolerance in the cross-check record,
return result D.
Results:
Result
A
B
D
Usage:
1
Response
You have not reported a RunUsedlndicator of 1 in any runs of this test, which indicate
the runs used to calculate the default NOx emissions rate.
You have reported a RunUsedlndicator in runs for more than one operating level of this
test. The default NOx emissions rate should only be calculated from the runs of one
operating level.
Some runs for OperatingLevelForRun [level] of this test have RunUsedlndicators equal
to 1 indicating that the run was used to calculate the default NOx emissions rate, but
other runs for this operating level do not have RunUsedlndicators equal to 1. The
default NOx emissions rate must be calculated from all the runs of one operating level.
The default NOx emission rate calculated from the runs in the flagged operating level is
not equal to the highest average NOx emissions rate for all operating levels the test.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
QA Test Evaluation Report Unit Default Test (Pass 2)
Environmental Protection Agency
Page 698 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
UNITDEF-25
Check Name:
Unit Default TestNOx Rate Consistent with Recalculated Value
Related Former Checks: UDEF-31B
Applicability:
LME Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the Unit Default test:
If Calculate Unit Default NOx Rate is equal to true,
If the NOxDefaultRate in the current record is greater than or equal to 0, and is not equal to the Unit Default Maximum
NOx Rate,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "APPE" and the
FieldDescription is equal to "MeanReferenceValue".
If the absolute value of the difference between the NOxDefaultRate and the Unit Default Maximum NOx Rate is
greater than the Tolerance in the cross-check record,
return result A.
Otherwise,
set Unit Default Maximum NOx Rate to the NOxDefaultRate.
Results:
Result
A
Response
The DefaultNOxRate reported for the test is not equal to the emissions rate recalculated
from the run records.
Severity
Critical Error Level 1
Usage:
1
Process/Category: QA Test Evaluation Report Unit Default Test (Pass 2)
Environmental Protection Agency
Page 699 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-26
Check Name: Unit Default Test NOx Rate Consistent with Default Value
Related Former Checks: UDEF-10D, E, F, IDEN-13
Applicability: LME Check
Description:
Specifications:
For a Unit Default test with valid end date and hour:
If Calculate Unit Default NOx Rate is equal to true,
set temp Value to null.
If the OperatingConditionCode is null,
Locate the latest MonitorDefault record for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode is equal to "LM", the DefaultSourceCode is equal to "TEST", the FuelCode is equal to the
FuelCode in the current test, the OperatingConditionCode is not equal to "B" or "P", and the BeginDate is within
90 days of the EndDate of the current test.
If not found,
Locate the latest MonitorDefault record for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode is equal to "LM", the DefaultSourceCode is equal to "TEST", the FuelCode is equal
to the FuelCode in the current test, the OperatingConditionCode is not equal to "B" or "P", and the
BeginDate is prior to the EndDate of the current test.
If the OperatingConditionCode is equal to "A" or "B",
Locate the latest MonitorDefault record for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode is equal to "LM", the DefaultSourceCode is equal to "TEST", the FuelCode is equal to the
FuelCode in the current test, the OperatingConditionCode is equal to "B", and the BeginDate is within 90 days of
the EndDate of the current test.
If not found,
Locate the latest MonitorDefault record for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode is equal to "LM", the DefaultSourceCode is equal to "TEST", the FuelCode is equal
to the FuelCode in the current test, the OperatingConditionCode is equal to "B", and the BeginDate is prior
to the EndDate of the current test.
If the OperatingConditionCode is equal to "P",
Locate the latest MonitorDefault record for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode is equal to "LM", the DefaultSourceCode is equal to "TEST", the FuelCode is equal to the
FuelCode in the current test, the OperatingConditionCode is equal to "P", and the BeginDate is within 90 days of
the EndDate of the current test.
If not found,
Locate the latest MonitorDefault record for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode is equal to "LM", the DefaultSourceCode is equal to "TEST", the FuelCode is equal
to the FuelCode in the current test, the OperatingConditionCode is equal to "P", and the BeginDate is prior
to the EndDate of the current test.
If a default record was found above,
set tempValue to the DefaultValue in the retrieved record.
Environmental Protection Agency
Page 700 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
If tempValue is null,
return result A.
Otherwise,
IfGroupID is null,
If the Unit Default Maximum NOx Emission Rate is greater than 0.15,
If tempValue is not equal to the Unit Default Maximum NOx Emission Rate,
return result B.
Otherwise,
If tempValue is not equal to the Unit Default Maximum NOx Emission Rate or to 0.15,
return result B.
Otherwise,
If tempValue is less than the Unit Default Maximum NOx Emission Rate,
return result B.
Results:
Result Response Severity
A You have not included in your monitoring plan a default record for ParameterCode Critical Error Level 1
NOXR, DefaultPurposeCode LM, DefaultSourceCode TEST, FuelCode [fuel] with the
appropriate OperatingConditionCode to report the unit-and-fuel-specific NOx emission
rate that was determined by this test.
B The unit-and-fuel specific NOx emission rate reported in the Monitor Default record in Critical Error Level 1
your monitoring plan does not correspond to the default NOx emission rate recalculated
from the run values in this test.
Usage:
1 Process/Category: QA Test Evaluation Report Unit Default Test (Pass 2)
Environmental Protection Agency
Page 701 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code: UNITDEF-27
Check Name: Unit Default Validation of Base and Peak Load Unit Default Tests
Related Former Checks: UDEF-32 A, E, IDEN-13
Applicability: LME Check
Description:
Validation Tables:
Test Tolerances (Cross Check Table)
Specifications:
For the Unit Default Test with an OperatingConditionCode equal to "A", "B", or "P" and a valid end date and hour:
Locate all Unit Type records for this location where the UnitTypeCode is not equal to "CC", "CT", "ICE", "IGC", or "OT"; the
BeginDate is null or is before the EndDate of the test; and the EndDate is null or after the BeginDate of the test.
If found,
return result A.
Otherwise,
If the OperatingConditionCode is equal to "A", and Calculate Unit Default NOx Rate is equal to true,
Locate the earliest MonitorDefault record for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode is equal to "LM", the DefaultSourceCode is equal to "TEST", the FuelCode is equal to the
FuelCode in the current test, the OperatingConditionCode is equal to "P", and the EndDate is null or the EndDate
and EndHour are on or after the EndDate and EndHour of the current test.
If not found,
return result B.
Otherwise,
Calculate tempPeakValue = Unit Default Maximum NOx Rate * 1.15, and round the result to three decimal
places.
If tempPeakValue is not equal to the DefaultValue in the retrieved record,
Locate the Test Tolerance cross-check record where the TestTypeCode is equal to "APPE" and the
FieldDescription is equal to "MeanReferenceValue".
If GroupID is null,
If tempPeakValue is greater than 0.15,
If the absolute value of the difference between the tempPeakValue and the
DefaultValue is greater than the Tolerance in the cross-check record,
return result C.
Otherwise,
If the absolute value of the difference between the tempPeakValue and the
DefaultValue is greater than the Tolerance in the cross-check record, and
DefaultValue is not equal to 0.15,
return result C.
Otherwise,
If the absolute value of the difference between the tempPeakValue and the DefaultValue
Environmental Protection Agency
Page 702 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
is greater than the Tolerance in the cross-check record, and DefaultValue is less than the
tempPeakValue,
return result C.
Results:
Result
B
Response
You have indicated that this test is used to determine separate default NOx emissions
rates for base and peak load hours, but according to the monitoring plan, this unit is not
a combustion turbine. Only combustion turbines can have separate default NOx
emissions rates for base and peak load hours.
You have not included in your monitoring plan a default record for ParameterCode
NOXR, DefaultPurposeCode LM, DefaultSourceCode TEST, FuelCode [fuel],
OperatingConditionCode P to report the unit-and-fuel-specific NOx emission rate for
use during peak load hours that was determined by this test.
The unit-and-fuel specific NOx default emission rate reported in the Monitor Default
record for ParameterCode NOXR, DefaultPurposeCode LM, DefaultSourceCode TEST,
FuelCode [fuel], OperatingConditionCode P does not correspond to the emission rate
recalculated from the run values in this test. The peak load default value should
generally be 1.15 times the emission rate established by the test.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
QA Test Evaluation Report Unit Default Test (Pass 2)
Environmental Protection Agency
Page 703 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
UNITDEF-28
Check Name:
Duplicate Unit Default Test
Related Former Checks:
Applicability:
LME Check
Description:
Specifications:
For the Unit Default test with a valid TestNumber:
Locate another TestSummary record for the location where the TestTypeCode is equal to "UNITDEF" and the TestNumber is equal
to the TestNumber in the current record.
If found,
return result A.
Otherwise,
Locate an unassociated QA Supp record for the location where the TestTypeCode is equal to "UNITDEF" and the
TestNumber is equal to the TestNumber in the current record.
If found,
return result B.
Results:
Result
A
Response
Another [testtype] with this test number already exists. You must assign a different test
number.
You cannot change the TestNumber to the value that you have entered, because a
[testtype] with this TestNumber has already been submitted. If this is a different test,
you should assign it a different TestNumber. If you are trying to resubmit this test, you
should delete this test, and either reimport this test with its original TestNumber or
retrieve the original test from the EPA host system.
Severity
Fatal
B
Fatal
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Evaluation
Environmental Protection Agency
Page 704 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications 12/10/2014 12:00:00AM
Check Code: UNITDEF-29
Check Name: Duplicate Unit Default Test Run
Related Former Checks:
Applicability: LME Check
Description:
Specifications:
For the Unit Default Run record with a OperatingLevelforRun and RunNumber that are not null.
Locate another Unit Default Run record for the test where the OperatingLevelforRun and RunNumber are equal to the
OperatingLevelforRun and RunNumber in the current record.
If found,
return result A.
Results:
Result Response Severity
A Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Run Evaluation
Environmental Protection Agency
Page 705 of 706
-------
Draft ECMPS QA/Cert Data Check Specifications
12/10/2014 12:00:00AM
Check Code:
UNITDEF-30
Check Name:
Calculate Unit Default NOx Rate
Related Former Checks:
Applicability:
LME Check
Description:
Specifications:
For the Unit Default Test:
Set tempLevel and Unit Default Test NOx Rate to null.
Sort the Unit Default Run records for the test in OperatingLevelForRun order:
For each run record:
If OperatingLevelforRun is null or is less than or equal to 0; or ReferenceValue is null or is less than 0,
return result A.
Otherwise,
If OperatingLevelForRun is not equal to tempLevel,
If tempLevel is not null,
If tmpCt is less than 3,
return result B.
Otherwise,
Calculate tmpRate = tmpRV / tmpCt, and round the result to 3 decimal places.
If tmpRate is greater than Unit Default Test NOx Rate,
set Unit Default Test NOx Rate to tmpRate.
Set tmpCt and tmpRV to 0.
Set tempLevel to OperatingLevelforRun.
Add 1 to tmpCt.
Add ReferenceValue to tmpRV.
If tempLevel is null, or tmpCt is less than 3,
return result B.
Otherwise,
Calculate tmpRate = tmpRV / tmpCt, and round the result to 3 decimal places.
If tmpRate is greater than Unit Default Test NOx Rate,
set Unit Default Test NOx Rate to tmpRate.
Results:
Result
A
B
Response
The values in this record could not be calculated because of invalid data.
The Unit Default test contains fewer than three run records for at least one operating
level. A minimum of three runs are required at each operating level.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: QA and Certification Data Entry Screen Evaluation Unit Default Test Calculations
Environmental Protection Agency
Page 706 of 706
------- |