ECMPS Monitoring Plan
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
September 08, 2021
-------
Table of Contents
Capacity 1
Component and Associated Data 8
Control 53
Default and WAF 67
Formula 117
Fuel 145
Fuel Flow 158
Load 171
Location 196
MATS Supplemental Method 237
Method 249
Monitoring Plan 316
Program 331
Qualification 344
Qualification LEE 384
Span 388
System 428
-------
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Capacity
Environmental Protection Agency
Page 1 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: CAPAC-1
Check Name: Unit Capacity Dates Consistent
Related Former Checks:
Applicability: General Check
Description: This check determines whether the UnitCapacityData BeginDate is consistent with the EndDate.
Specifications:
For a UnitCapacity record:
If BeginDate and EndDate are valid,
If the EndDate is not null and the BeginDate is after the EndDate,
set Unit Capacity Dates Consistent to false and return result A.
Otherwise,
set Unit Capacity Dates Consistent to true.
Otherwise,
set Unit Capacity Dates Consistent to false.
Results:
Result Response Severity
A You reported [datefield2] which is prior to [datefieldl] for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Capacity Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Capacity Evaluation
Environmental Protection Agency
Page 2 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: CAPAC-2
Check Name: Unit Capacity End Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not UnitCapacityData End Date is valid.
Specifications:
For the UnitCapacityData record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Unit Capacity Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Capacity Evaluation
Environmental Protection Agency
Page 3 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: CAPAC-3
Check Name: Unit Capacity Maximum Heat Input Capacity Valid
Related Former Checks:
Applicability: LME Check
Description: This check determines if the Maximum Heat Input Capacity reported for the UnitCapacityData record is valid.
Specifications:
For the UnitCapacityData record:
If the MaximumHourlyHeatlnputCapacity is null,
return result A.
Else if the MaximumHourlyHeatlnputCapacity is less than or equal to 1,
return result B.
Else if the MaximumHourlyHeatlnputCapacity is greater than or equal to 20,000,
return result C.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B You defined an invalid [fieldname] for [key]. This value must be greater than zero and Critical Error Level 1
less than 20,000.
C You defined an invalid [fieldname] for [key]. This value must be greater than zero and Critical Error Level 2
less than 20,000.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Capacity Evaluation
Conditions: Current Unit Capacity Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Capacity Evaluation
Environmental Protection Agency
Page 4 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: CAPAC-4
Check Name: Unit Capacity Record Active
Related Former Checks:
Applicability: General Check
Description: This check determines whether the UnitCapacityData Record being evaluated is active during the evaluation
period.
Specifications:
For a UnitCapacityData record with consistent Dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Unit Capacity Active to false.
Otherwise,
set Unit Capacity Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the Unit Capacity Evaluation Begin Date to the Evaluation Begin Date.
Otherwise,
set the Unit Capacity Evaluation Begin Date to the BeginDate.
If the EndDate is null or is after the Evaluation End Date,
set the Unit Capacity Evaluation End Date to the Evaluation End Date.
Otherwise,
set the Unit Capacity Evaluation End Date to the EndDate.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Capacity Evaluation
Environmental Protection Agency
Page 5 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
CAPAC-5
Unit Capacity Begin Date Valid
Applicability:
Description:
General Check
This check determines whether or not the UnitCapacityData Begin Date is valid.
Specifications:
For the UnitCapacityData record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1930 or later than Maximum Future Date,
return result B.
If either the Commence Operation Date or Commercial Operation Date of the unit is not null, and the BeginDate is prior to the
earlier of the Commence Operation Date or Commercial Operation Date,
return result C.
Results:
Result
A
B
Response
You have not reported the required value in the field [fieldname] for [key].
You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
You reported a BeginDate of [date], which is earlier than the date reported as the
commence operation (CO) or commence commercial operation (CCO) date. If the CO
date was reported as the capacity begin date but you have only reported the CCO date
to CAMD, use the CCO date as the BeginDate to eliminate this error.
Severity
Critical Error Level 1
Critical Error Level 1
C
Non-Critical Error
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Capacity Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Capacity Evaluation
Environmental Protection Agency
Page 6 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
CAPAC-6
Check Name:
Related Former Checks:
Duplicate UnitCapacity Records
Applicability:
Description:
General Check
This check determines if there is another UnitCapacity record with the same key fields.
Specifications:
For a UnitCapacity record with a valid Begin Date:
Locate another UnitCapacity record for the unit with a BeginDate that is equal to the BeginDate in the current record.
If found,
return result A.
If not found, and the EndDate in the current record is not null,
Locate another UnitCapacity record for the unit with an EndDate that is equal to the EndDate 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: Monitoring Plan Data Entry Screen Evaluation Unit Capacity Evaluation
Environmental Protection Agency
Page 7 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Component and Associated Data
Environmental Protection Agency
Page 8 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-3
Check Name: System Component Begin Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the System Component Begin Date is valid.
Specifications:
For a System Component record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] 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: Monitoring Plan Evaluation Report System Component Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System Component Evaluation
Environmental Protection Agency
Page 9 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-4
Check Name: System Component Begin Hour Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the System Component Begin Hour is valid.
Specifications:
For a System Component record:
If BeginHour is null,
return result A.
If BeginHour is less than 0 or greater than 23
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System Component Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System Component Evaluation
Environmental Protection Agency
Page 10 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-5
Check Name: System Component End Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the System Component End Date is valid.
Specifications:
For a System Component record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report System Component Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System Component Evaluation
Environmental Protection Agency
Page 11 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-6
Check Name: System Component End Hour Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the System Component End Hour is valid.
Specifications:
For a System Component record:
If EndHour is not null, and is less than 0 or greater than 23
return result A.
Results:
Result Response Severity
A You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System Component Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System Component Evaluation
Environmental Protection Agency
Page 12 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-7
Check Name: System Component Dates and Hours Consistent
Related Former Checks:
Applicability: General Check
Description: Monitoring System Component Start Date and Hour should be prior to the Monitor System Component End
Date and Hour. Also cannot report end date without end hour, or vice versa.
Specifications:
For a System Component record:
If the EndDate is valid and not null, and the EndHour is null,
set System Component Dates and Hours Consistent to false, and return result A.
If the EndHour is valid and not null, and the EndDate is null,
set System Component Dates and Hours Consistent to false, and return result B.
If the BeginDate, BeginHour, EndDate, and EndHour are all valid,
If the EndDate is not null, and the BeginDate and BeginHour is after the EndDate and EndHour,
set System Component Dates and Hours Consistent to false, return result C.
Otherwise,
set System Component Dates and Hours Consistent to true.
Otherwise,
set System Component Dates and Hours Consistent to false.
Results:
Result Response Severity
A You reported [datefield2] but did not report an [hourfield2] for [key]. Critical Error Level 1
B You reported [hourfield2] but did not report [datefield2] for [key]. Critical Error Level 1
C You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and Critical Error Level 1
[hourfieldl] for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System Component Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System Component Evaluation
Environmental Protection Agency
Page 13 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-8
Check Name: Component ID Valid
Related Former Checks:
Applicability: General Check
Description: Determines whether the Component ID is valid.
Specifications:
For the Component record:
If the ComponentID is null,
return result A.
If the ComponentID does not consist of 3 alphanumeric characters:
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B The ComponentID [ID] has an invalid format. A ComponentID must contain three Critical Error Level 1
alphanumeric characters.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Component Evaluation
Conditions: Current Component Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Component Evaluation
Environmental Protection Agency
Page 14 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-IO
Check Name: Component Serial Number Valid
Related Former Checks: NBP-20
Applicability: General Check
Description: This check determines whether a required Serial Number is reported.
Required. Must have 3 alphanumeric characters.
Must also be unique within location.
Specifications:
For a Component record with a valid ComponentTypeCode:
If the SerialNumber is null, and the ComponentTypeCode is not equal to "BGFF", "BOFF", "TANK", "DAHS", "DL", "PLC", or
"FLC",
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: Monitoring Plan Evaluation Report Component Evaluation
Conditions: Current Component Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Component Evaluation
Environmental Protection Agency
Page 15 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-11
Check Name: Component Manufacturer Valid
Related Former Checks:
Applicability: General Check
Description: Determines whether a required Manufacturer is reported.
Specifications:
For a Component record with a valid ComponentTypeCode:
If the Manufacturer is null, and the ComponentTypeCode is not equal to "BGFF", "BOFF", or "TANK",
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: Monitoring Plan Evaluation Report Component Evaluation
Conditions: Current Component Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Component Evaluation
Environmental Protection Agency
Page 16 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-12
Check Name:
Related Former Checks:
Component Type Code Valid
Applicability:
Description:
General Check
This check determines whether the Component Type is valid.
Validation Tables:
Component Type Code (Complex Lookup Table)
Component Type Code (Complex Lookup Table)
Specifications:
For the Component record:
If the ComponentTypeCode is null,
return result A.
Otherwise,
Locate ComponentTypeCode in the Component Type Code Lookup Table.
If not found,
return result B.
If found,
Locate a Used Identifier record for the location where the Table Code is equal to "C" and the Identifier is equal to
the Component ID in the Component record.
If found,
If the ComponentTypeCode is not equal to the Type or Parameter Code in the retrieved record,
return result C.
Results:
Result
A
B
Response
You have not reported the required value 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].
You have changed the ComponentTypeCode for [key] from its previously reported
value. You should only do this to correct invalid data. If you are installing a
component with a different component type, you should add a new component.
Severity
Fatal
Critical Error Level 1
C
Critical Error Level 2
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Component Evaluation
Current Component Active Equals true
Monitoring Plan Data Entry Screen Evaluation Component Evaluation
Environmental Protection Agency
Page 17 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-13
Check Name:
Component Sample Acquisition Method Code Valid
Related Former Checks: NBP-19
Applicability:
Description:
General Check
This check determines whether the Sample Acquisition Method Code is valid.
Validation Tables:
[Component Type and Basis to Sample Acquisition Method] (Cross Check Table)
Acquisition Method Code (Lookup Table)
[Component Type and Basis to Sample Acquisition Method] (Cross Check Table)
Acquisition Method Code (Lookup Table)
Specifications:
For a Component record with a valid ComponentTypeCode and BasisCode:
If the SampleAcquisitionMethodCode is null,
Locate a record in Component Type and Basis to Sample Acquisition Method cross check table for the
ComponentTypeCode and the BasisCode and SampleAcquisitionMethodCode in the current Monitor Component record.
If not found,
return result A.
Locate SampleAcquisitionMethodCode in the Sample Acquisition Method Code Lookup Table.
If not found,
return result B.
Otherwise,
If the ComponentTypeCode is equal to "S02", "NOX", "C02", "02", "PRB", "HG", "HCL", "HF", or "PM",
set GenericComponentType to "CONC".
If the ComponentTypeCode is equal to "OFFM", "GFFM", "BOFF", "BGFF", "DP", "TEMP", "PRES", "FLC",
"GCH", "MS", or "CALR",
set GenericComponentType to "FUELFLOW".
Otherwise,
set GenericComponentType to ComponentTypeCode.
If the BasisCode is equal to "B" or the ComponentTypeCode is equal to "FLOW", "PRB" or "PM",
Locate a record in Component Type and Basis to Sample Acquisition Method cross check table for the
GenericComponentType and the SampleAcquisitionMethodCode in the Component record.
If not found,
return result C.
Locate a record in Component Type and Basis to Sample Acquisition Method cross check table for the
GenericComponentType and the BasisCode and SampleAcquisitionMethodCode in the Component
record.
Otherwise,
Otherwise,
If not found,
Environmental Protection Agency
Page 18 of 457
-------
ECMPS Monitoring Plan Check Specifications
return result C.
9/8/2021 12:00:00AM
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 You reported a Sample Acquisition Method Code of [value] for [key], which is not
appropriate for the component type and basis.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Component Evaluation
Conditions: Current Component Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Component Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 19 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-14
Check Name:
Related Former Checks:
Component Basis Code Valid
Applicability:
Description:
General Check
This check determines whether the Component Basis Code is valid.
Specifications:
For the Component record with a valid ComponentTypeCode:
If the ComponentTypeCode is equal to "NOX", "S02", "C02", "02", "FLOW", "HG", "HCL", "HF", or "STRAIN",
If the BasisCode is null,
return result A.
If the BasisCode is not equal to "W", "D", or "B",
return result B.
If ComponentTypeCode is equal to "FLOW" and BasisCode is not equal to "W",
return result B.
If ComponentTypeCode is equal to "STRAIN", and BasisCode is not equal to "D",
return result B.
If the BasisCode is equal to "B" and the ComponentTypeCode is not equal to "02",
return result B.
If the BasisCode is not equal to "B",
Locate a Used Identifier record for the location where the Table Code is equal to "C" and the Identifier is equal to
the Component ID in the Component record.
If found and the Formula or Basis Code is not null,
If the BasisCode is not equal to the Formula or Basis Code in the retrieved record,
return result C.
Otherwise,
If the BasisCode is not null,
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 have changed the moisture basis for [key] from its previously reported value. You
should only do this to correct invalid data. If you are installing a component with a
different moisture basis, you should add a new component.
You reported an invalid BasisCode for [key]. A BasisCode is not appropriate for a
[component type] component.
Severity
Critical Error Level 1
Critical Error Level 1
C
Informational Message
D
Critical Error Level 1
Environmental Protection Agency
Page 20 of 457
-------
ECMPS Monitoring Plan Check Specifications
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Component Evaluation
Conditions: Current Component Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Component Evaluation
9/8/2021 12:00:00AM
Environmental Protection Agency
Page 21 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
COMPON-16
Analyzer Range Code Valid
Applicability:
Description:
CEM Check
This check determines whether value reported is Valid. This value is required and must be from the associated
Lookup Table.
Required. Must have 3 alphanumeric characters.
Must also be unique within location.
Validation Tables:
Analyzer Range Code (Lookup Table)
Analyzer Range Code (Lookup Table)
Specifications:
For an Analyzer Range record:
If the AnalyzerRangeCode is null,
return result A.
Else if the AnalyzerRangeCode is not in the Analyzer Range Code Lookup Table,
return result B.
Else if the ComponentTypeCode of the associated Component record is equal to "HG", and AnalyzerRangeCode is not equal to
"H",
return result C.
Results:
Result
A
B
Response
You have not reported the required value 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].
For [Key] you reported a [ReportedField] of [ReportedValue] which is invalid for a
[ConstraintField] of [ConstraintValue].
Severity
Fatal
Critical Error Level 1
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
Current Analyzer Range Active Equals true
Monitoring Plan Data Entry Screen Evaluation Analyzer Range Evaluation
Environmental Protection Agency
Page 22 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: COMPON-18
Check Name: Analyzer Range Begin Date Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not the Analyzer Range Begin Date is valid.
Specifications:
For an Analyzer Range record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] 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: Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Analyzer Range Evaluation
Environmental Protection Agency
Page 23 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-19
Check Name: Analyzer Range Begin Hour Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not the Analyzer Range Begin Hour is valid.
Specifications:
For an Analyzer Range record:
If BeginHour is null,
return result A.
If BeginHour is less than 0 or greater than 23
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Analyzer Range Evaluation
Environmental Protection Agency
Page 24 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: COMPON-20
Check Name: Analyzer Range End Date Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not the Analyzer Range End Date is valid.
Specifications:
For an Analyzer Range record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Analyzer Range Evaluation
Environmental Protection Agency
Page 25 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: COMPON-21
Check Name: Analyzer Range End Hour Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not the Analyzer Range End Hour is valid.
Specifications:
For an Analyzer Range record:
If EndHour is not null, and is less than 0 or greater than 23
return result A.
Results:
Result Response Severity
A You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Analyzer Range Evaluation
Environmental Protection Agency
Page 26 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-22
Check Name: Analyzer Range Dates and Hours Consistent
Related Former Checks:
Applicability: CEM Check
Description: This check determines if the Analyzer Range Start Date and Hour and End Date and Hour are consistent.
Specifications:
For an Analyzer Range record:
If the EndDate is valid and not null, and the EndHour is null,
set Analyzer Range Dates and Hours Consistent to false, and return result A.
If the EndHour is valid and not null, and the EndDate is null,
set Analyzer Range Dates and Hours Consistent to false, and return result B.
If the BeginDate, BeginHour, EndDate, and EndHour are all valid,
If the EndDate is not null, and the BeginDate and BeginHour is after the EndDate and EndHour,
set Analyzer Range Dates and Hours Consistent to false, return result C.
Otherwise,
set Analyzer Range Dates and Hours Consistent to true.
Otherwise,
set Analyzer Range Dates and Hours Consistent to false.
Results:
Result Response Severity
A You reported [datefield2] but did not report an [hourfield2] for [key]. Critical Error Level 1
B You reported [hourfield2] but did not report [datefield2] for [key]. Critical Error Level 1
C You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and Critical Error Level 1
[hourfieldl] for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Analyzer Range Evaluation
Environmental Protection Agency
Page 27 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-26
Check Name:
Related Former Checks:
Component Active Status
Applicability:
Description:
General Check
This check determines if the Component is active within the Evaluation Period based on System Component
Begin Date and Hour and System Component End Date and Hour.
Specifications:
For a Component record:
Locate all System Component records for the component with an EndDate that is null or an EndDate that is on or after the
BeginDate, a BeginDate that is on or before the Evaluation End Date, and an End Date that is null or is on or after the Evaluation
Begin Date:
If not found,
set Current Component Active to false.
Locate any System Component record for the component.
If not found,
return result A.
If found,
set Current Component Active to true.
If the BeginDate/Begin Hour is later than the EndDate/EndHour in any retrieved record,
set Component Dates and Hours Consistent to false.
Otherwise,
set Component Dates and Hours Consistent to true.
If the earliest BeginDate of the retrieved records is on or after the Evaluation Begin Date,
set Component Evaluation Begin Date to the BeginDate.
set Component Evaluation Begin Hour to the BeginHour.
Otherwise,
set Component Evaluation Begin Date to the Evaluation Begin Date,
set Component Evaluation Begin Hour to 0.
If the End Date of any of the retrieved records is null,
set Component Evaluation End Date to the Evaluation End Date,
set Component Evaluation End Hour to 23.
Otherwise,
If the latest EndDate in the retrieved records is on or before the Evaluation End Date,
set Component Evaluation End Date to the EndDate.
set Component Evaluation End Hour to the EndHour.
Otherwise,
set
set Component Evaluation End Date to the Evaluation End Date,
set Component Evaluation End Hour to 23.
Results:
Result
A
Response
The component for [key] has not been linked to any system.
Severity
Critical Error Level 1
Environmental Protection Agency
Page 28 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Component Evaluation
Environmental Protection Agency
Page 29 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-30
Check Name:
Related Former Checks:
Required Analyzer Range Reported for Component
Applicability:
Description:
CEM Check
This check determines if there is an active analyzer range for a S02, NOX, C02, HG, or 02 component
during the entire evaluation period.
Specifications:
For a Component record with a ComponentTypeCode equal to "S02", "NOX", "C02", "02", "HG", and consistent dates:
Locate all Component Analyzer Range records for the component with a BeginDate and BeginHour that is on or before the
Component Evaluation End Date and End Hour and an EndDate that is null or and EndDate and EndHour that is on or after the
Component Evaluation Begin Date and Begin Hour.
If not found
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved analyzer range records do not span the entire
component evaluation period,
return result B.
Results:
Result
A
Response
You have not reported an analyzer range record that was active during the evaluation
period for [key].
You have not reported an active analyzer range record for [key] to span the entire
evaluation period.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Component Evaluation
Current Component Active Equals true
Environmental Protection Agency
Page 30 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-33
Check Name:
Related Former Checks:
System and Component Dates Consistent
Applicability:
Description:
General Check
This check determines if the System Component Begin and End Date/Hour is consistent with its System Begin
and End Date/Hour.
Specifications:
For a valid System Component record with consistent dates and an associated Monitoring System record with consistent dates:
If the BeginDate in the current Monitoring System record is after the BeginDate in the current SystemComponent record
If the BeginDate in the current Monitoring System record is equal to the BeginDate in the current SystemComponent record, and
the BeginHour in the current Monitoring System record is after the BeginHour in the current SystemComponent record,
return result A.
If the EndDate in the current Monitoring System record is not null, and the EndDate in the current SystemComponent record is
null,
return result A.
If the EndDate in the current Monitoring System record is prior to the EndDate in the current SystemComponent record,
If the EndDate in the current Monitoring System record is equal to the EndDate in the current SystemComponent record, and the
EndHour in the current Monitoring System record is prior to the EndHour in the current SystemComponent record,
return result A.
return result A.
return result A.
Results:
Result
A
Response
The Start and End Date/Hour for [key] is inconsistent with the Start and End
Date/Hour for the associated monitoring system.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report System Component Evaluation
Current System Component Active Equals true
Environmental Protection Agency
Page 31 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-34
Check Name: Required Second Component Reported for Dual Range Analyzer
Related Former Checks:
Applicability: CEM Check
Description: This check determines if corresponding alternate range component exists with the same or similar serial
number for a dual range analyzer defined as two components for the entire evaluation period.
Specifications:
For an Analyzer Range record with an AnalyzerRangeCode equal to "H" or "L" and a DualRangelndicator equal to 1:
If the AnalyzerRangeCode is equal to "H",
Locate an AnalyzerRange record for the location with a ComponentTypeCode equal to the ComponentTypeCode in the
current Component record, an Analyzer Range Code equal to "L", a DualRangelndicator equal to 1, a BeginDate and
BeginHour that is on or before the Analyzer Range Evaluation End Date and End Hour, and an EndDate that is null or an
EndDate and EndHour that is on or after the Analyzer Range Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If found,
If none of the retrieved records has a Component Serial Number (minus the string "HI" or "HIGH") equal to the
Component Serial Number of the current record (minus the string "LO" or "LOW"),
return result B.
If the BeginDate, BeginHour, EndDate, and EndHour of the matching record is not equal to the BeginDate,
BeginHour, EndDate, and EndHour of the current record,
return result C.
If the AnalyzerRangeCode is equal to "L",
Locate an AnalyzerRange record for the location with a ComponentTypeCode equal to the ComponentTypeCode in the
current Component record, an Analyzer Range Code equal to "H", a DualRangelndicator equal to 1, a BeginDate and
BeginHour that is on or before the Analyzer Range Evaluation End Date and End Hour, and an EndDate that is null or an
EndDate and EndHour that is on or after the Analyzer Range Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If found,
If none of the retrieved records has a Component Serial Number (minus the string "HI" or "HIGH") equal to the
Component Serial Number of the current record (minus the string "LO" or "LOW"),
return result B.
If the BeginDate, BeginHour, EndDate, and EndHour of the matching record is not equal to the BeginDate,
BeginHour, EndDate, and EndHour of the current record,
return result C.
Environmental Protection Agency
Page 32 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
Response
You reported [key] as the [range] range of a dual-range analyzer, but you did not report
another dual-range [component] component that was active during the evaluation
period with the alternate analyzer range.
You reported [key] as the [range] range of a dual-range analyzer, but you did not report
a [component] component with the same (or similar) serial number as the
alternate-range analyzer.
You reported [key] as the [range] range of a dual-range analyzer, but you did not report
the same start and end dates/hour in the alternate-range analyzer range record.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
Current Analyzer Range Active Equals true
Environmental Protection Agency
Page 33 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-37
Check Name: Dual Range Indicator Consistent with Analyzer Range Code
Related Former Checks:
Applicability: CEM Check
Description: This check ensures that the dual range indicator is consistent with the analyzer range code.
Specifications:
For an Analyzer Range record:
If DualRangelndicator is null,
return result A.
Else If CurrentComponent.ComponcnlTypcCodc is equal to "HG",
If DualRangelndicator is not equal to 0,
return result C.
Else If AnalyzerRangeCode equal to "A" and the DualRangelndicator is not equal to 1,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B You have not reported a dual range indicator of " 1" for [key], even though the analyzer Critical Error Level 1
range code indicates that this component is a dual-range analyzer.
C For [key] you reported a [value] which is not valid for [condition]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
Conditions: Current Analyzer Range Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Analyzer Range Evaluation
Environmental Protection Agency
Page 34 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-38
Check Name: Analyzer Range Active Status
Related Former Checks:
Applicability: CEM Check
Description: This check determines if the Analyzer Range is active within the Evaluation Period based on Analyzer Range
Start Date and Hour and Analyzer Range End Date and Hour.
Specifications:
For an Analyzer Range record with consistent dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Current Analyzer Range Active to false.
Otherwise,
set Current Analyzer Range Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the Analyzer Range Evaluation Begin Date to the Evaluation Begin Date,
set the Analyzer Range Evaluation Begin Hour to 0.
Otherwise,
set the Analyzer Range Evaluation Begin Date to the BeginDate.
set the Analyzer Range Evaluation Begin Hour to the BeginHour.
If the EndDate is null or is after the Evaluation End Date,
set the Analyzer Range Evaluation End Date to the Evaluation End Date,
set the Analyzer Range Evaluation End Hour to 23.
Otherwise,
set the Analyzer Range Evaluation End Date to the EndDate.
set the Analyzer Range Evaluation End Hour to the EndHour.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
Environmental Protection Agency
Page 35 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-39
Check Name: System Component Active Status
Related Former Checks:
Applicability: General Check
Description: Determines if component is active in a system during the evaluation period.
Specifications:
For a System Component record:
If System Component Dates and Hour Consistent is equal to true,
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Current System Component Active to false.
Otherwise,
set Current System Component Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the System Component Evaluation Begin Date to the Evaluation Begin Date,
set the System Component Evaluation Begin Hour to 0.
Otherwise,
set the System Component Evaluation Begin Date to the BeginDate.
set the System Component Evaluation Begin Hour to the BeginHour.
If the EndDate is null or is after the Evaluation End Date,
set the System Component Evaluation End Date to the Evaluation End Date,
set the System Component Evaluation End Hour to 23.
Otherwise,
set the System Component Evaluation End Date to the EndDate.
set the System Component Evaluation End Hour to the EndHour.
Otherwise,
set Current System Component Active to false.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System Component Evaluation
Environmental Protection Agency
Page 36 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-44
Check Name:
Required Formula Reported for System and Component
Related Former Checks: ARP-5, NBP-28
Applicability:
Description:
General Check
This check determines if the correct formula has been reported for each component based on component type
and basis codes for the entire evaluation period.
Validation Tables:
[System Type to Formula Parameter ] (Cross Check Table)
Formula Parameter and Component Type and Basis to Formula Code (Cross Check Table)
Specifications:
For a valid System Component record with consistent dates and a valid SystemTypeCode in the associated Monitor System record:
If the associated SystemTypeCode is equal to "C02",
Locate the earliest Method record for the location with a ParameterCode equal to "C02", a BeginDate and BeginHour on
or before the System Component Evaluation End Date and End Hour, and an EndDate that is null or and EndDate and
EndHour that is on or after the System Component Evaluation Begin Date and Begin Hour.
If the associated SystemTypeCode is equal to "C02" and a Method record was retrieved above,
If the ComponentTypeCode in the System Component record is equal to "C02",
Locate all records in the Formula Parameter and Component Type and Basis to Formula Code cross check table
where the ParameterCode is equal to "C02" or "HI", and the ComponentTypeAndBasis equal to the associated
concatenated ComponentTypeCode + BasisCode in the System Component record.
Locate all Formula records for the location with a ParameterCode + FormulaCode equal to the
ParameterCode + FormulaCode in any of the retrieved cross check records, a BeginDate and BeginHour
on or before the earlier of the System Component Evaluation End Date and End Hour and the EndDate
and EndHour in the method record, and an EndDate that is null or and EndDate and EndHour that is on
or after the later of the System Component Evaluation Begin Date and Begin Hour and the BeginDate
and BeginHour of the method record.
If not found,
set Parameter Code/Formula Code(s) to Missing Formula for Component.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved formula records do not
span the evaluation period (in the above locate statement),
set Parameter Code(s)/Formula Code(s) to Incomplete Formula for Component.
If the ComponentTypeCode in the System Component record is equal to "02",
Locate all records in the Formula Parameter and Component Type and Basis to Formula Code cross check table
where the ParameterCode is equal to "C02C" or "HI", and the ComponentTypeAndBasis equal to the associated
concatenated ComponentTypeCode + BasisCode in the System Component record.
Locate all Formula records for the location with a ParameterCode + FormulaCode equal to the
ParameterCode + FormulaCode in any of the retrieved cross check records, a BeginDate and BeginHour
on or before the earlier of the System Component Evaluation End Date and End Hour and the EndDate
and EndHour in the method record, and an EndDate that is null or and EndDate and EndHour that is on
If found,
If found,
Environmental Protection Agency
Page 37 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
or after the later of the System Component Evaluation Begin Date and Begin Hour and the BeginDate
and BeginHour of the method record.
If not found,
set Parameter Code/Formula Code(s) to Missing Formula for Component.
If found,
If the BeginDate/BeginHour and EndDate/EndHour of the retrieved formula records do not span
the evaluation period (in the above locate statement),
set Parameter Code(s)/Formula Code(s) to Incomplete Formula for Component.
If the ParameterCode of any of the retrieved records is equal to "C02C",
Locate all records in the Formula Parameter and Component Type and Basis to Formula
Code cross check table where the ParameterCode is equal to "C02" and the
ComponentTypeAndBasis equal to the associated concatenated ComponentTypeCode +
BasisCode in the System Component record.
If found,
Locate all Formula records for the location with a ParameterCode equal to
"C02", a FormulaCode equal to the FormulaCode in any of the retrieved cross
check records, a BeginDate and BeginHour on or before the earlier of the
System Component Evaluation End Date and End Hour and the EndDate and
EndHour in the method record, and an EndDate that is null or and EndDate and
EndHour that is on or after the later of the System Component Evaluation Begin
Date and Begin Hour and the BeginDate and BeginHour of the method record.
If not found,
set Parameter Code/Formula Code(s) to Missing Formula for
Component.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved
formula records do not span the evaluation period (in the above locate
statement),
add Parameter Code/Formula Code(s) to Incomplete Formula for
Component.
Otherwise,
Locate the record in the System Type to Formula Parameter cross check table where the SystemTypeCode is equal to the
SystemTypeCode associated with the current System Component record.
For each cross check record found,
If Optional in the cross check record is not null,
Locate the earliest Method record for the location with a ParameterCode and MethodCode that equal the
ParameterCode and MethodCode in the Optional field of the retrieved cross-check record, a BeginDate
and BeginHour on or before the System Component Evaluation End Date and End Hour, and an EndDate
that is null or and EndDate and EndHour that is on or after the System Component Evaluation Begin
Date and Begin Hour.
If Optional in the cross check record is null, or a Method record was retrieved above,
Locate all records in the Formula Parameter and Component Type and Basis to Formula Code cross
Environmental Protection Agency
Page 38 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
check table where the ParameterCode is equal to the ParameterCode in the cross check record and the
ComponentTypeAndBasis equal to the associated concatenated ComponentTypeCode (+ BasisCode, if not
null) in the System Component record.
If found,
If Optional in the System Type to Formula Parameter cross check table is not null:
Locate all Formula records for the location with a ParameterCode equal to the
ParameterCode in the cross check table, a FormulaCode equal to the FormulaCode in
any of the retrieved cross check records, a BeginDate and BeginHour on or before the
earlier of the System Component Evaluation End Date and End Hour and the EndDate
and EndHour in the method record (if not null), and an EndDate that is null or and
EndDate and EndHour that is on or before the later of the System Component Evaluation
Begin Date and Begin Hour and the BeginDate and BeginHour of the method record.
If not found,
add Parameter Code/Formula Code(s) to Missing Formula for Component.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved formula
records do not span the evaluation period (in the above locate statement),
add Parameter Code/Formula Code(s) to Incomplete Formula for Component.
Otherwise,
Locate all Formula records for the location with a ParameterCode equal to the
ParameterCode in the cross check table, a FormulaCode equal to the FormulaCode in
any of the retrieved cross check records, a BeginDate and BeginHour on or before the
System Component Evaluation End Date and End Hour, and an EndDate that is null or
and EndDate and EndHour that is on or after the System Component Evaluation Begin
Date and Begin Hour.
If not found,
add Parameter Code/Formula Code(s) to Missing Formula for Component.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved formula
records do not span the entire system component evaluation period,
add Parameter Code/Formula Code(s) to Incomplete Formula for Component.
If Missing Formula for Component is not null, and Incomplete Formula for Component is null,
return result A.
If Incomplete Formula for Component is not null, and Missing Formula for Component is null,
return result B.
If both Missing Formula for Component and Incomplete Formula for Component are not null,
return result C.
Environmental Protection Agency
Page 39 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
Response
You did not report [missing formulas] formula record(s) that was/were active during
the evaluation period to compute emission values. These formulas are required when
using a [system type] system with a [component type] [basis] component.
You did not report [incomplete formulas] formula record(s) to compute emission values
that are active for the entire evaluation period. These formulas are required when
using a [system type] system with a [component type] [basis] component.
You did not report [missing formulas] formula record(s) that was/were active during
the evaluation period to compute emission values. Also, you did not report [incomplete
formulas] formula record(s) to compute emission values that are active for the entire
evaluation period. These formulas are required when using a [system type] system
with a [component type] [basis] component.
Severity
Critical Error Level 1
Critical Error Level 2
Critical Error Level 2
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report System Component Evaluation
Current System Component Active Equals true
Environmental Protection Agency
Page 40 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-45
Check Name:
Required High-Scale Span Reported for Component
Related Former Checks: NBP-33
Applicability:
Description:
CEM Check
This check determines if, for the component type and analyzer range code, there is an active and concurrent
high-scale span record.
Specifications:
For an Analyzer Range record with an AnalyzerRangeCode equal to "H" or "A" and consistent dates:
If ComponentTypeCode in the associated Component record is not equal to "HF" or "HCL",
Locate a Span record for the location where the ComponentTypeCode is equal to the ComponentTypeCode in the
associated Component record, the SpanScaleCode is equal to "H", the BeginDate and BeginHour is on or before the
Analyzer Range Evaluation End Date and End Hour, and an EndDate that is null or an EndDate and EndHour that is on
or after the Analyzer Range Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved span records do not span the entire
analyzer range evaluation period,
return result B.
Results:
Result
A
Response
You reported [key], but you did not report a [scale] [span parameter] span record that
was active during the evaluation period, which is required when you report an analyzer
range record with a range code of [range].
You reported [key], but you did not report [scale] [spanparameter] span records to
span the entire evaluation period for the analyzer.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
Current Analyzer Range Active Equals true
Environmental Protection Agency
Page 41 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-46
Check Name: System Type Consistent with Component Type
Related Former Checks: NBP-17
Applicability: General Check
Description: This check determines if the component type is appropriate for the monitor system.
Validation Tables:
Component Type Code (Complex Lookup Table)
System Type to Component Type (Cross Check Table)
System Type to Optional Component Type (Cross Check Table)
Specifications:
For a System Component record:
If the associated System record is not valid,
Set System Component Record Valid to false.
Otherwise,
Set System Component Record Valid to true.
If the associated ComponentTypeCode is not equal to "DAHS", "PLC", or "DL", and an EndDate that is null or is on or
after 1/1/2001,
Locate the System Type to Component Type cross check table record where the ComponentTypeCode is equal to
the ComponentTypeCode in the current System Component record and the SystemTypeCode is equal to the
SystemTypeCode in the current Monitoring System record.
If not found,
Locate the System Type to Optional Component Type cross check table record where the Optional
ComponentTypeCode is equal to the ComponentTypeCode in the current System Component record and
the SystemTypeCode is equal to the SystemTypeCode in the current Monitoring System record.
If not found,
Locate the ComponentTypeCode in the current System Component record in the Component
Type Code lookup table.
If found,
set System Component Record Valid to false, and return result A.
Results:
Result Response Severity
A You have linked an inappropriate [component type] component to the [system type] Critical Error Level 1
system for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System Component Evaluation
Conditions: Current System Component Active Equals true
Environmental Protection Agency
Page 42 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-47
Check Name:
Related Former Checks:
Overlapping Analyzer Range Reported for Component
Applicability:
Description:
CEM Check
This check determines if there is no more than one active analyzer range for a S02, NOX, C02, or 02
component during the entire evaluation period.
Specifications:
For a Component record with a ComponentTypeCode equal to "S02", "NOX", "C02", "02", "HG", "HCL", or "HF", and consistent dates:
Locate all Component Analyzer Range records for the component with a BeginDate and BeginHour that is on or after the
BeginDate and BeginHour in the current record and is on or before the Component Evaluation End Date and End Hour and an
EndDate that is null or and EndDate and EndHour that is on or after the Component Evaluation Begin Date and Begin Hour.
If more than one are found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved analyzer range records overlap
during the component evaluation period,
return result A.
Results:
Result
A
Response
You have reported more than one active analyzer range record for [key] during the
evaluation period.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Component Evaluation
Current Component Active Equals true
Environmental Protection Agency
Page 43 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-48
Check Name:
Related Former Checks:
Component and Analyzer Range Dates Consistent
Applicability:
Description:
General Check
This check determines if the Analyzer Range Start and End Date/Hour are consistent with its Component start
and end times.
Specifications:
For an Analyzer Range record with consistent dates in both the Analyzer Range and associated Component record:
If the Component Evaluation Begin Date and Begin Hour is after the Analyzer Range Evaluation Begin Date and Begin Hour,
return result A.
If the Component Evaluation End Date is not null, and the Analyzer Range Evaluation End Date is null,
return result A.
If the Component Evaluation End Date and End Hour is prior to the Analyzer Range Evaluation End Date and End Hour,
return result A.
Results:
Result
A
Response
The BeginDate/Hour and EndDate/Hour for [key] is inconsistent with the
BeginDate/Hour and EndDate/Hour for the associated component.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
Current Analyzer Range Active Equals true
Environmental Protection Agency
Page 44 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-51
Check Name:
Required Low-Scale Span Reported for Component
Related Former Checks: NBP-33
Applicability:
Description:
CEM Check
This check determines if, for the component type and analyzer range code, there is an active and concurrent
low-scale span record.
Specifications:
For an Analyzer Range record with an AnalyzerRangeCode equal to "L" or "A" and consistent dates:
If ComponentTypeCode in the associated Component record is not equal to "HCL" or "HF"
Locate a Span record for the location where the ComponentTypeCode is equal to the ComponentTypeCode in the
associated Component record, the SpanScaleCode is equal to "L", the BeginDate and BeginHour is on or before the
Analyzer Range Evaluation End Date and End Hour, and an EndDate that is null or an EndDate and EndHour that is on
or after the Analyzer Range Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved span records do not span the entire
analyzer range evaluation period,
return result B.
Results:
Result
A
Response
You reported [key], but you did not report a [scale] [span parameter] span record that
was active during the evaluation period, which is required when you report an analyzer
range record with a range code of [range].
You reported [key], but you did not report [scale] [spanparameter] span records to
span the entire evaluation period for the analyzer.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Component Analyzer Range Evaluation
Current Analyzer Range Active Equals true
Environmental Protection Agency
Page 45 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-52
Check Name:
Required FLOW Span Reported for Component
Related Former Checks: NBP-33
Applicability:
Description:
CEM Check
This check determines if, for a FLOW component type, there is an active and concurrent span record.
Specifications:
For a Component record with a ComponentTypeCode equal to "FLOW" and consistent dates:
Locate a Span record for the location where the ComponentTypeCode is equal to "FLOW", the BeginDate and BeginHour is on or
before the Component Evaluation End Date and End Hour, and an EndDate that is null or an EndDate and EndHour that is on or
after the Component Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved span records do not span the entire component
evaluation period,
return result B.
Results:
Result
A
Response
You reported [key], but you did not report a FLOW span record that was active during
the evaluation period, which is required when you report a FLOW component.
You reported [key], but you did not report FLOW span records to span the entire
evaluation period for the component.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Component Evaluation
Current Component Active Equals true
Environmental Protection Agency
Page 46 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-56
Check Name:
Related Former Checks:
Required Default Reported for System and Component
Applicability:
Description:
Specifications:
General Check
This check determines if the correct missing data default has been reported for certain system and component.
For a valid System Component record with consistent dates:
If the associated SystemTypeCode is equal to "C02" and the associated ComponentTypeCode is equal to "02",
Set Missing Default for System and Parameter to "C02X Default for Purpose MD and Fuel NFS".
Locate all Default records for the location with a ParameterCode equal to "C02X", a DefaultPurposeCode equal to "MD",
a FuelCode equal to "NFS", a BeginDate and BeginHour on or before the System Component Evaluation End Date and
End Hour, and an EndDate that is null or and EndDate and EndHour that is on or before the System Component
Evaluation Begin Date and Begin Hour.
If not found, or the BeginDate/BeginHour and EndDate/EndHour of the retrieved default records do not span the entire
system component evaluation period,
Locate all Span records for the location with a ComponentTypeCode equal to "C02", a SpanScaleCode equal to
"H", a BeginDate and BeginHour on or before the System Component Evaluation End Date and End Hour, and an
EndDate that is null or and EndDate and EndHour that is on or before the System Component Evaluation Begin
Date and Begin Hour.
If no Span and no Default records are found,
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved span and default records do not
span the entire system component evaluation period,
return result B.
Results:
Result
A
Response
You did not report [type] record that was active during the evaluation period. This
default is required when using a [system type] system with a [component type]
component.
You did not report [type] record(s) that were active for the entire evaluation period.
This default is required when using a [system type] system with a [component type]
component.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report System Component Evaluation
Current System Component Active Equals true
Environmental Protection Agency
Page 47 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-80
Check Name:
Related Former Checks:
Overlapping System Component Records
Applicability:
Description:
Specifications:
General Check
For a System Component record with consistent dates:
Locate another System Component record for the system with a ComponentID equal to the ComponentID in the current record
and a BeginDate/BeginHour that is on or after the BeginDate/BeginHour in the current record and is on or before the System
Component Evaluation End Date/Hour, and a EndDate/EndHour that is null or is on or after the System Component Evaluation
Begin Date/Hour.
If found,
return result A.
Results:
Result
A
You have reported two Monitor System Component records for [key] with overlapping Critical Error Level 1
start and end times during the evaluation period.
Response
Severity
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report System Component Evaluation
Current System Component Active Equals true
Environmental Protection Agency
Page 48 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-81
Check Name: Hg Converter Indicator Valid
Related Former Checks:
Applicability:
Description: Checks that the Hg Converter Indicator is only populated for a Hg CEMS component with "1" orr "0".
Specifications:
For the Component record with a valid ComponentTypeCode:
If the ComponentTypeCode is equal to "HG",
If the HgConverterlndicator is null,
return result A.
If the HgConverterlndicator is not equal to "1" or "0",
return result B.
Otherwise,
Results:
Result
A
B
C
Usage:
1
1
If the HgConverterlndicator is not null,
return result C.
Response
You did not provide [fieldname], which is required for [key].
For [key] you reported a [value] which is not valid for [fieldname].
You reported a value for [fieldname], which is not appropriate for [condition].
Process/Category:
Process/Category:
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Monitoring Plan Evaluation Report Component Evaluation
Monitoring Plan Data Entry Screen Evaluation Component Evaluation
Environmental Protection Agency
Page 49 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: COMPON-53
Check Name: Duplicate Component Records
Related Former Checks:
Applicability: General Check
Description: This check determines if there is another Component record with the same key fields.
Specifications:
For a Component record:
Locate another Component record for the location with a ComponentID that is equal to the ComponentID 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: Monitoring Plan Data Entry Screen Evaluation Component Evaluation
Environmental Protection Agency
Page 50 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-54
Check Name:
Related Former Checks:
Duplicate Analyzer Range Records
Applicability:
Description:
General Check
This check determines if there is another Analyzer Range record with the same key fields.
Specifications:
For an Analyzer Range record:
Locate another Analyzer Range record for the location with a ComponentID equal to the Component ID in the current record and
a BeginDate/BeginHour that is equal to the BeginDate/BeginHour in the current record.
If found,
return result A.
If not found, and the EndDate in the current record is not null,
Locate another Analyzer Range record for the location with a ComponentID equal to the Component ID in the current
record and an EndDate/EndHour that is equal to the EndDate/EndHour 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: Monitoring Plan Data Entry Screen Evaluation Analyzer Range Evaluation
Environmental Protection Agency
Page 51 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
COMPON-55
Check Name:
Related Former Checks:
System Component Record Valid
Applicability:
Description:
General Check
This check determines if the Component ID is valid and there is another system component record with the
same key fields.
Specifications:
For a System Component record:
If the ComponentID is null,
return result A.
Locate another System Component record for the location with a MonitoringSystemID equal to the MonitoringSystemID in the
current record, a ComponentID equal to the ComponentID in the current record, and a BeginDate/BeginHour that is equal to the
BeginDate/BeginHour in the current record.
If found,
return result B.
If not found, and the EndDate in the current record is not null,
Locate another System Component record for the location with a MonitoringSystemID equal to the MonitoringSystemID
in the current record, a ComponentID equal to the ComponentID in the current record, and an EndDate/EndHour that is
equal to the EndDate/EndHour in the current record.
If found,
return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
Another [recordtype] record already exists with the same [fieldnames].
Severity
Fatal
Fatal
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System Component Evaluation
Environmental Protection Agency
Page 52 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Control
Environmental Protection Agency
Page 53 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: CONTROL-1
Check Name: Control Parameter Code Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the ParameterCode for the UnitControlData record is valid.
Validation Tables:
Control Code (Lookup Table)
Control Code (Lookup Table)
Specifications:
For the UnitControlData record:
If the ParameterCode is null,
return result A.
Otherwise,
Locate ParameterCode in the Control Code lookup table.
If not found,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B 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: Monitoring Plan Evaluation Report Unit Control Evaluation
Conditions: Current Control Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Control Evaluation
Environmental Protection Agency
Page 54 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: CONTROL-2
Check Name: Control Code Valid
Related Former Checks: NBP-66
Applicability: General Check
Description: This check determines whether the ControlCode for the UnitControlData record reported is valid.
Validation Tables:
Control Code (Lookup Table)
Control Code (Lookup Table)
Specifications:
For the UnitControlData record:
If the ControlCode is null,
return result A.
Otherwise,
Locate the ParameterCode and ControlCode in the Control Code lookup table.
If not found,
Locate the ControlCode in the Control Code lookup table.
If not found,
return result B.
If found, and the ParameterCode is valid,
return result C.
Results:
Result
A
B
C
Usage:
1
1
Response
You have not reported the required value 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].
For [key] you have provided a value for [fieldname] that is not appropriate for this
parameter.
Process/Category:
Conditions:
Process/Category:
Severity
Fatal
Fatal
Critical Error Level 1
Monitoring Plan Evaluation Report Unit Control Evaluation
Current Control Active Equals true
Monitoring Plan Data Entry Screen Evaluation Unit Control Evaluation
Environmental Protection Agency
Page 55 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: CONTROL-4
Check Name: Control Optimization Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the OptimizationDate for the UnitControlData record reported is Valid.
Specifications:
For the UnitControlData record:
If OptimizationDate is not null,
If the InstallDate is valid and the OptimizationDate is prior to the Install Date, or if the RetireDate is valid and non-null
and the OptimizationDate is after the RetireDate,
return result A.
Results:
Result Response Severity
A You reported an OptimizationDate of [Date] that is either before the InstallationDate or Critical Error Level 1
after the RetireDate for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Control Evaluation
Conditions: Current Control Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Control Evaluation
Environmental Protection Agency
Page 56 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: CONTROL-5
Check Name: Control Install Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the Install Date reported in the UnitControlData record is Valid.
Specifications:
For the UnitControlData record:
Set Control Install Date Valid to true.
If InstallDate is null,
If OriginalCode is not equal to 1,
set Control Install Date Valid to false, and return result A.
Otherwise,
If InstallDate is earlier than 01/01/1930 or later than Maximum Future Date,
set Control Install Date Valid to false, and return result B.
If either the Commence Operation Date or Commercial Operation Date of the unit is not null, and the InstallDate is prior
to the earlier of the Commence Operation Date or Commercial Operation Date,
set Control Install Date Valid to false, and return result C.
If OriginalCode is equal to 1,
return result D.
Results:
Result
A
B
C
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].
You reported an InstallDate of [date], which is earlier than the date reported as the
commence operation (CO) or commence commercial operation (CCO) date. If the
control was installed and operational as part of the original unit design, report "1" in
the OriginalCode field and leave the InstallDate field blank. If the control was
installed between the CO and CCO dates and you have only reported the CCO date,
use the CCO date as the InstallDate to eliminate this error.
You reported an InstallDate for [key], but you have indicated that the control
equipment was part of the original unit.
Severity
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Critical Error Level 1
Usage:
1
Process/Category: Monitoring Plan Evaluation Report Unit Control Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Control Evaluation
Environmental Protection Agency
Page 57 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: CONTROL-6
Check Name: Control Retire Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the Retire Date reported in the UnitControlData record is Valid.
Specifications:
For the UnitControlData record:
If RetireDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Unit Control Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Control Evaluation
Environmental Protection Agency
Page 58 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: CONTROL-8
Check Name: Control Active Status
Related Former Checks:
Applicability: General Check
Description: This check determines if the current control is active during the evaluation period.
Specifications:
For a UnitControlData record with consistent Dates:
If InstallDate is after Evaluation End Date or RetireDate is before Evaluation Begin Date,
set Control Active to false.
Otherwise,
set Control Active to true.
If the InstallDate is prior to the Evaluation Begin Date,
set the Control Evaluation Begin Date to the Evaluation Begin Date.
Otherwise,
set the Control Evaluation Begin Date to the BeginDate.
If the RetireDate is null or is after the Evaluation End Date,
set the Control Evaluation End Date to the Evaluation End Date.
Otherwise,
set the Control Evaluation End Date to the RetireDate.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Control Evaluation
Environmental Protection Agency
Page 59 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: CONTROL-9
Check Name: Control Install Date Consistent with Retire Date
Related Former Checks:
Applicability: General Check
Description: This check determines if the UnitControlData InstallDate date is prior to the RetireDate.
Specifications:
For the UnitControl record:
If InstallDate is valid and RetireDate is valid,
If the RetireDate is not null and the InstallDate is after the RetireDate,
set Control Install Date Consistent with Retire Date to false and return result A.
Otherwise,
set Control Install Date Consistent with Retire Date to true.
Otherwise,
set Control Install Date Consistent with Retire Date to false.
Results:
Result Response Severity
A You reported [datefield2] which is prior to [datefieldl] for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Control Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Control Evaluation
Environmental Protection Agency
Page 60 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
CONTROL-11
Check Name:
Control Code Consistent with Unit Type
Related Former Checks: NBP-64
Applicability:
Description:
General Check
This check determines if the UnitControlData record ControlCode reported is consistent with the boiler type
for this location.
Validation Tables:
Control to Unit Type Cross Check Table (Cross Check Table)
Specifications:
For a UnitControl record with valid ParameterCode and ControlCode:
Locate a record in the Control to Unit Type cross check table where the ControlCode is equal to the ControlCode in the current
Locate all UnitType records for the unit where the BeginDate is on or before the Control Evaluation End Date and the
EndDate is null or is on or before the Control Evaluation Start Date.
For each UnitType record found,
Locate a record in the Control to Unit Type cross check table where the ControlCode is equal to the ControlCode
in the current record and the UnitTypeCode is equal to the UnitTypeCode in the retrieved UnitType record.
If not found,
Set Invalid Unit Type for Control to the UnitTypeCode.
return result A.
record.
If found,
Results:
Result
A
Response
The ControlCode [code] for the unit is not appropriate for the UnitTypeCode [type].
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Unit Control Evaluation
Current Control Active Equals true
Environmental Protection Agency
Page 61 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: CONTROL-13
Check Name: Overlapping Controls
Related Former Checks:
Applicability: General Check
Description: This check determines if for the monitoring location if is there another UnitControlData record with the start
and end dates for the second matching UnitControlData record found overlapping with the start and end dates
of the first matching UnitControlData record found.
Specifications:
For a UnitControl record with valid ParameterCode and ControlCode and consistent dates:
Locate another UnitControl record for the unit with the same ParameterCode and ControlCode, and an InstallDate that is on or
after the InstallDate in the current record and is on or before the Control Evaluation End Date, and a RetireDate that is null or is
on or after the Control Evaluation Begin Date.
If found,
return result A.
Results:
Result Response Severity
A Concurrently active records have been reported for control parameter [parameter] Critical Error Level 1
control type [control type].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Control Evaluation
Conditions: Current Control Active Equals true
Environmental Protection Agency
Page 62 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: CONTROL-14
Check Name: S02 and PART Controls for Consistent with Fuels
Related Former Checks:
Applicability: General Check
Description: This check determines for a unit with either a ParameterCode S02 and/or PART control, if the unit burns only
gas.
Specifications:
For a UnitControl record with a ParameterCode equal to 'S02' or 'PART':
Locate all Fuel records for the location where the associated FuelGroup is equal to "GAS', the BeginDate is on or before the
Control Evaluation End Date, and the EndDate is null or is on or after the Control Evaluation Start Date.
If found,
Results:
Locate all UnitFuel records for the unit where the associated FuelGroup is not equal to "GAS', the BeginDate is on or
before the Control Evaluation End Date, and the EndDate is null or is on or after the Control Evaluation Start Date.
If not found,
return result A.
Result Response Severity
A There should be no S02 or PART controls if the Unit burns only gas. You have defined Non-Critical Error
a [controlparameter] control for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Control Evaluation
Conditions: Current Control Active Equals true
Environmental Protection Agency
Page 63 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: CONTROL-16
Check Name: Control Equipment Dual Range Analyzer Check
Related Former Checks:
Applicability: CEM Check
Description: This informational check identifies whether an active SCR/SNCR and/or FGD has a dual range monitor.
Specifications:
For the current UnitControl record,
If the ControlCode is equal to 'SCR' or 'SNCR'
Find active Component records for the Unit location where the ComponentTypeCode is equal to "NOX"
if not found or the records do not span the entire control evaluation period, find active Component records for all
Common stack/pipe locations for the Unit where the ComponentTypeCode is equal to "NOX"
if not found or the records do not span the entire control evaluation period, find active Component records for
any Multiple stack/pipe locations for the Unit where the ComponentTypeCode is equal to "NOX"
If Component records are found, find the Analyzer Range records for the Component record with a DualRangelndicator equal
to 1,
If not found or the records do not span the entire control evaluation period, find active span records with a
SpanScaleCode equal to "H",
If not found or the records do not span the entire control evaluation period, or the DefaultHighRange is null,
Return Result A
Else, if the ControlCode is equal to "DA", "DL", "MO", "SB", "WL", or "WLS",
Find active Component records for the Unit location where the ComponentTypeCode is equal to "S02"
if not found or the records do not span the entire control evaluation period, find active Component records for all
Common stack/pipe locations for the Unit where the ComponentTypeCode is equal to "S02"
if not found or the records do not span the entire control evaluation period, find active Component records for
any Multiple stack/pipe locations for the Unit where the ComponentTypeCode is equal to "S02"
If Component records are found, find the Analyzer Range records for the Component record with a DualRangelndicator equal
to 1,
If not found or the records do not span the entire control evaluation period, find a span record with a SpanScaleCode
equal to "H",
If not found or the records do not span the entire control evaluation period, or the DefaultHighRange is null,
Return Result A
Results:
Result Response
A You did not report an expected dual range monitor or default high range value for
[key], given the active [Control Code] for the unit. Ignore this message if the
monitoring location is uncontrolled (uncontrolled bypass or common stack with
uncontrolled unit).
Seventy
Informational Message
Environmental Protection Agency
Page 64 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Control Evaluation
Environmental Protection Agency
Page 65 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
CONTROL-15
Check Name:
Related Former Checks:
Duplicate Unit Control Records
Applicability:
Description:
General Check
This check determines if there is another Unit Control record with the same key fields.
Specifications:
For a UnitControl record:
Locate another UnitControl record for the unit with a ParameterCode equal to the ParameterCode in the current record and a
ControlCode equal to the ControlCode in the current record and InstallDate that is equal to the InstallDate in the current record.
If found,
return result A.
If not found, and the RetireDate in the current record is not null,
Locate another UnitControl record for the unit with a ParameterCode equal to the ParameterCode in the current record
and a ControlCode equal to the ControlCode in the current record and RetireDate that is equal to the RetireDate 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: Monitoring Plan Data Entry Screen Evaluation Unit Control Evaluation
Environmental Protection Agency
Page 66 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Default and WAF
Environmental Protection Agency
Page 67 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-37
Check Name:
Related Former Checks:
Default Active Status
Applicability:
Description:
General Check
This check determines if the current default is active during the evaluation period.
Specifications:
For a Default record with consistent Dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Default Active to false.
Otherwise,
set Default Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the Default Evaluation Begin Date to the Evaluation Begin Date,
set the Default Evaluation Begin Hour to 0.
Otherwise,
set the Default Evaluation Begin Date to the BeginDate.
set the Default Evaluation Begin Hour to the BeginHour.
If the EndDate is null or is after the Evaluation End Date,
set the Default Evaluation End Date to the Evaluation End Date,
set the Default Evaluation End Hour to 23.
Otherwise,
set the Default Evaluation End Date to the EndDate.
set the Default Evaluation End Hour to the EndHour.
Results:
Result
Response
Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Default Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Environmental Protection Agency
Page 68 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-38
Check Name: Default Dates and Hours Consistent
Related Former Checks:
Applicability: General Check
Description: Monitoring Default Start Date and Hour should be prior to the Monitor Default End Date and Hour.
Specifications:
For the Default record:
If the EndDate is valid and not null, and the EndHour is null,
set Default Dates and Hours Consistent to false, and return result A.
If the EndHour is valid and not null, and the EndDate is null,
set Default Dates and Hours Consistent to false, and return result B.
If the BeginDate, BeginHour, EndDate, and EndHour are all valid,
If the EndDate is not null, and the BeginDate and BeginHour is after the EndDate and EndHour,
set Default Dates and Hours Consistent to false, return result C.
Otherwise,
set Default Dates and Hours Consistent to true.
Otherwise,
set Default Dates and Hours Consistent to false.
Results:
Result
A
B
C
Usage:
1
1
Response
You reported [datefield2] but did not report an [hourfield2] for [key].
You reported [hourfield2] but did not report [datefield2] for [key].
You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and
[hourfieldl] for [key].
Process/Category:
Process/Category:
Monitoring Plan Evaluation Report Default Evaluation
Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 69 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: DEFAULT-39
Check Name: Default Begin Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the Default Begin Date is valid.
Specifications:
For the Default record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] 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: Monitoring Plan Evaluation Report Default Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Environmental Protection Agency
Page 70 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-40
Check Name:
Related Former Checks:
Default Begin Hour Valid
Applicability:
Description:
General Check
This check determines whether or not the Default Begin Hour is valid.
Specifications:
For the Default record:
If BeginHour is null,
return result A.
If BeginHour is less than 0 or greater than 23
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Default Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Environmental Protection Agency
Page 71 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: DEFAULT-41
Check Name: Default End Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the Default End Date is valid.
Specifications:
For the Monitoring System record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Default Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Environmental Protection Agency
Page 72 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: DEFAULT-42
Check Name: Default End Hour Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the Default End Hour is valid.
Specifications:
For the Default record:
If EndHour is not null, and is less than 0 or greater than 23
return result A.
Results:
Result Response Severity
A You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Default Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Environmental Protection Agency
Page 73 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-47
Check Name:
Default Parameter Code Valid
Related Former Checks: ARP-55A, B
Applicability:
Description:
General Check
This check determines whether or not the Default Parameter Code is Valid.
Validation Tables:
Parameter to Category (Cross Check Table)
Parameter to Category (Cross Check Table)
Specifications:
For the Default record:
If the ParameterCode is null,
return result A.
Otherwise,
Locate a record in the List of Default Parameter Codes (Parameter to Category Cross Check Table) where the
ParameterCode is equal to the ParameterCode in the current Default record and the CategoryCode is equal to
"DEFAULT".
If not found,
return result B.
If found,
If the Location Type is equal to "CP",
If the ParameterCode begins with "H20", "SO", "CO", "02", "NO", or is equal to "FLOX", "MNHI", or
"MNNX",
return result C.
If the Location Type is equal to "MP",
If the ParameterCode begins with "H20", "SO", "CO", "02", or is equal to "NOXR", "FLOX", "MNHI",
or "MNNX",
return result C.
If the Location Type is equal to "CS" or "MS",
If the Parameter Code is equal to "C02R", "NOXR", "MNGF", or "MNOF",
return result C.
Results:
Result
A
B
Response
You have not reported the required value 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].
The default record for [key] is not valid for a [location type].
Severity
Fatal
Critical Error Level 1
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Default Evaluation
Current Default Active Equals true
Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Environmental Protection Agency
Page 74 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-48
Check Name: Default Operating Condition Code Valid
Related Former Checks: ARP-69C
Applicability: General Check
Description: This check determines whether or not the Default Control Status Code is Valid.
Specifications:
For a Monitoring Default record with a valid ParameterCode:
If the Default OperatingConditionCode is null,
return result A.
Otherwise,
If the OperatingConditionCode is not equal to "A", "C", "U", "B", or "P",
return result B.
Otherwise,
If the OperatingConditionCode is equal to "B" or "P", and the ParameterCode is not equal to "NOXR",
return result C.
If the OperatingConditionCode is equal to "C", and the ParameterCode is not equal to "S02X", "SORX",
"NORX", "NOCX", or "NOXR",
return result C.
If the OperatingConditionCode is equal to "B", "P", or "C", the ParameterCode is equal to "NOXR", and the
DefaultSourceCode is equal to "DEF",
return result D.
If the OperatingConditionCode is equal to "U", the ParameterCode is equal to "NOXR",
return result E.
Results:
Result
A
B
C
D
Response
You have not reported the required value 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].
The OperatingConditionCode [value] reported for [key] is not appropriate for the
associated parameter.
The OperatingConditionCode [value] reported for [key] is not appropriate for the
DefaultSourceCode "DEF". If you use a generic Part75 NOXR default, it must be used
for all hours.
The OperatingConditionCode U reported for [key] is not appropriate for parameter
NOXR. If you are reporting this record to indicate that you are using a generic Part 75
LME default value for all hours, you should report an OperatingConditionCode of A.
If you normally use a unit-and-fuel specific NOXR default during controlled hours, and
you are reporting this record to indicate that you are using a generic Part 75 LME
default value during hours when controls are not operating, you should report a
ParameterCode of NORX and a DefaultPurposeCode of MD.
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 75 of 457
-------
ECMPS Monitoring Plan Check Specifications
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Default Evaluation
Conditions: Current Default Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Default Evaluation
9/8/2021 12:00:00AM
Environmental Protection Agency
Page 76 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-49
Check Name:
Default Value Valid
Related Former Checks: ARP-8D, ARP-27B, NBP-47, ARP-58
Applicability:
Description:
General Check
This check determines whether or not the Default Value is valid.
Validation Tables:
Fuel Code to Minimum and Maximum Moisture Default Value (Cross Check Table)
Parameter UOM (Complex Lookup Table)
Fuel Code to Minimum and Maximum Moisture Default Value (Cross Check Table)
Parameter UOM (Complex Lookup Table)
Specifications:
For a Monitoring Default record with a valid ParameterCode:
If the Default Value is null,
return result A.
If the Default Value is less than or equal to 0,
return result B.
Otherwise,
Locate the ParameterCode and DefaultUnitsOfMeasureCode in the Parameter Units of Measure lookup table.
If found, and the Default Value is not equal to the Default Value rounded to the value specified by DecimalHrly in the
lookup table record,
return result G.
If the DefaultPurposeCode is equal to "DC",
Locate all Unit Type records linked to the location where the BeginDate is null or is on or before the
Default Evaluation End Date and the EndDate is null or is on or after the Default Evaluation Begin Date.
If the Unit Type in any the retrieved records is equal to "CC", "CT", "ICE", "OT", or "IGC",
set Boiler Type to "TURBINE".
Otherwise,
set Boiler Type to "BOILER".
If the ParameterCode is equal to "C02N" and the Boiler Type is equal to "TURBINE", and the
Default Value is not equal to 1,
return result C.
If the ParameterCode is equal to "C02N" and the Boiler Type is equal to "BOILER", and the
DefaultValue is not equal to 5,
return result C.
If the ParameterCode is equal to "02X" and the Boiler Type is equal to "TURBINE", and the
DefaultValue is not equal to 19,
return result C.
If the ParameterCode is equal to "02X" and the Boiler Type is equal to "BOILER", and the DefaultValue
is not equal to 14,
Otherwise,
Environmental Protection Agency
Page 77 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
return result C.
Otherwise,
If the ParameterCode is equal to "H20" and the DefaultSourceCode is equal to "DEF1,
Locate the FuelCode in the Fuel Code to Minimum and Maximum Moisture Default Cross Check
Table.
If found,
If the Default Value is less than the Minimum Value in the cross check table or is greater
than the Maximum Value in the cross check table,
return result D.
Else if the ParameterCode is equal to "H20N" and the DefaultSourceCode is equal to "DEF",
If the Default Value is not equal to 3.0,
return result F.
Else if the ParameterCode is equal to "H20X" and the DefaultSourceCode is equal to "DEF",
If the Default Value is not equal to 15.0,
return result F.
Otherwise,
If the Minimum Default Value and the Maximum Default Value are not null,
If ParameterCode is equal to "NOCX" or "NORX", and the DefaultPurposeCode is equal
to "MD",
Locate a Monitor Method record for the location where the ParameterCode
begins with "NOX", the MethodCode is equal to "CEM", the BeginDate and
BeginHour is on or before the Default Evaluation End Date/End Hour and the
EndDate is null or the EndDate and EndHour is on or after the Default
Evaluation Begin Date/Begin Hour.
If found,
If ParameterCode is equal to "NORX" and OperatingConditionCode is
equal to "C",
If the Default Value is less than 0 or is greater than the
Maximum Default Value,
return result E.
Otherwise,
If the Default Value is less than the Minimum Default Value or
is greater than the Maximum Default Value,
return result E.
If DefaultPurposeCode and the DefaultSourceCode combination is not equal to "LM"
and "DEF",
If the Default Value is less than the Minimum Default Value or is greater than
the Maximum Default Value,
Environmental Protection Agency
Page 78 of 457
-------
ECMPS Monitoring Plan Check Specifications
return result E.
9/8/2021 12:00:00AM
Results:
Result
Response
Severity
A
You have not reported the required value in the field [fieldname] 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. This value must be greater than zero.
C
The default value [value] reported for [key] is not valid for the unit type.
Critical Error Level 1
D
The default value [value] reported for [key] is not within the valid range of values for
Critical Error Level 1
the fuel code [fuel].
E
The default value [value] reported for [key] is not within the valid range of values for
Critical Error Level 2
the parameter.
F
The default value reported for [key] is not a valid Part75 default value for the
Critical Error Level 1
parameter.
G
The default value reported for [key] exceeds the maximum allowable precision.
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Default Evaluation
Conditions: Current Default Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Environmental Protection Agency
Page 79 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-50
Check Name: Default Units of Measure Code Valid
Related Former Checks: NBP-48
Applicability: General Check
Description: This check determines whether or not the Default Units of Measure Code is Valid.
Validation Tables:
Parameter UOM (Complex Lookup Table)
Units Of Measure Code (Lookup Table)
Parameter UOM (Complex Lookup Table)
Units Of Measure Code (Lookup Table)
Specifications:
For a Monitoring Default record with a valid ParameterCode:
If the UnitsOfMeasure is null,
return result A.
Otherwise,
Locate a record in the Parameter Units of Measure lookup table where the ParameterCode is equal to the Parameter Code
and the UnitsOfMeasure is equal to the UnitsOfMeasure in the current default record.
If found,
set Maximum Default Value to the Max Value in the lookup table record.
If ParameterCode is equal to "S02R",
set Minimum Default Value to 0.0001.
Otherwise,
set Minimum Default Value to the Min Value in the lookup table record.
If not found,
Locate the UnitsOfMeasure in the Units of Measure Code Lookup Table.
If not found,
return result B.
If found,
return result C.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B You reported the value [value], which is not in the list of valid values, in the field Fatal
[fieldname] for [key].
C The units of measure [value] reported for [key] is not appropriate for the associated Critical Error Level 1
parameter.
Environmental Protection Agency
Page 80 of 457
-------
ECMPS Monitoring Plan Check Specifications
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Default Evaluation
Conditions: Current Default Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Default Evaluation
9/8/2021 12:00:00AM
Environmental Protection Agency
Page 81 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-51
Check Name:
Default Purpose Code Valid
Related Former Checks: ARP-69D
Applicability:
Description:
General Check
This check determines whether or not the Default Purpose Code is Valid.
Validation Tables:
Default Parameter to Purpose (Cross Check Table)
Default Purpose Code (Lookup Table)
Default Parameter to Purpose (Cross Check Table)
Default Purpose Code (Lookup Table)
Specifications:
For the Monitoring Default record with a valid ParameterCode:
If the DefaultPurposeCode is null,
set Default Purpose Code Valid to false, and return result A.
Otherwise,
Locate a record in Default Parameter to Purpose cross check table for the ParameterCode and the DefaultPurposeCode in
the current Monitoring Default record.
If found,
set Default Purpose Code Valid to true.
If not found,
set Default Purpose Code Valid to false.
Locate DefaultPurposeCode in the DefaultPurposeCode Lookup Table.
If not found,
return result B.
Otherwise,
return result C.
Results:
Result
A
B
Response
You have not reported the required value 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].
The DefaultPurposeCode for [key] is not appropriate for the associated parameter.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Default Evaluation
Current Default Active Equals true
Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Environmental Protection Agency
Page 82 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-52
Check Name:
Default Source Code Valid
Related Former Checks: NBP-49
Applicability:
Description:
General Check
This check determines whether or not the Default Source Code is Valid.
Validation Tables:
Default Parameter to Source of Value (Cross Check Table)
Default Source Code (Lookup Table)
Default Parameter to Source of Value (Cross Check Table)
Default Source Code (Lookup Table)
Specifications:
For the Monitoring Default record with a valid ParameterCode:
If the DefaultSourceCode is null,
set Default Source Code Valid to false, and return result A.
Otherwise,
Locate a record in Default Parameter to Source of Value cross check table for the ParameterCode and the
DefaultSourceCode in the current Monitoring Default record.
If found,
set Default Source Code Valid to true.
If not found,
set Default Source Code Valid to false.
Locate DefaultSourceCode in the DefaultSourceCode Lookup Table.
If not found,
return result B.
Otherwise,
return result C.
Results:
Result
A
B
Response
You have not reported the required value 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].
The DefaultSourceCode [value] reported for [key] is not appropriate for the associated
parameter.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Default Evaluation
Current Default Active Equals true
Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Environmental Protection Agency
Page 83 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-53
Check Name: Default Fuel Code Valid
Related Former Checks: ARP-27A, ARP-69A, ARP-69F, ARP-42
Applicability: General Check
Description: This check determines whether the Default Fuel Code is Valid.
Validation Tables:
Fuel Code (Lookup Table)
Fuel Code (Lookup Table)
Specifications:
For a Monitoring Default record with a valid ParameterCode:
Set Default Fuel Code Valid to true.
If the FuelCode is null,
set Default Fuel Code Valid to false, and return result A.
Otherwise,
Locate FuelCode in the FuelCode Lookup Table.
If not found,
set Default Fuel Code Valid to false, and return result B.
Otherwise,
Set Default Unit Fuel to the Unit Fuel in the FuelCode lookup table record.
If the ParameterCode is equal to "S02R", "C02R", or "NOXR", and the DefaultPurposeCode is not equal to
"F23",
If the FuelGroup in the FuelCode lookup table record is not equal to "GAS", "OIL" or
"MIX",
set Default Fuel Code Valid to false, and return result C.
If the ParameterCode is equal to "S02R", the DefaultPurposeCode is equal to "F23", and the DefaultSourceCode
is not equal to "APP",
If the FuelCode is not equal to "NNG", "PNG", or "OGS",
set Default Fuel Code Valid to false, and return result C.
If the ParameterCode begins with "02" or is equal to "C02N", "C02X", "H20N", or "H20X",
If the FuelCode is not equal to "NFS",
set Default Fuel Code Valid to false, and return result C.
If the ParameterCode is equal to "H20", and the DefaultSourceCode is not equal to "APP",
If the FuelCode is not equal to "NNG", "PNG", "CRF", or "W", or the FuelGroup in the FuelCode lookup
table record is not equal to "COAL",
set Default Fuel Code Valid to false, and return result C.
If the ParameterCode is equal to "MNGF",
If the FuelGroup in the FuelCode lookup table record is not equal to "GAS" or MIX",
Environmental Protection Agency
Page 84 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
set Default Fuel Code Valid to false, and return result C.
If the ParameterCode is equal to "MNOF",
If the FuelGroup in the FuelCode lookup table record is not equal to "OIL" or MIX",
set Default Fuel Code Valid to false, and return result C.
Results:
Result
A
B
C
Usage:
1
1
Response
You have not reported the required value 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].
The fuel code [value] reported for [key] is not appropriate for the associated parameter
and purpose.
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report Default Evaluation
Current Default Active Equals true
Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 85 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-54
Check Name: Generic LME Default Emission Rate Valid
Related Former Checks: ARP-28
Applicability: LME Check
Description: This check determines if a generic LME default value is valid.
Validation Tables:
Default Parameter, Boiler Type, and Fuel Type to Default Value (Cross Check Table)
Specifications:
For a Monitoring Default record with a valid ParameterCode, Default Purpose Code Valid equal to true, DefaultSourceCode equal to
"DEF", and a valid FuelCode that is not equal to "NFS":
If the ParameterCode is equal to "NOXR" and DefaultPurposeCode is equal to "LM", OR the ParameterCode is equal to "NORX"
and DefaultPurposeCode is equal to "MD",
Set NOX LME to true.
If DefaultPurposeCode is equal to "MD",
Locate another Monitor Default record for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode is equal to "LM", the BeginDate is null or is on or before the Default Evaluation End Date,
and the
EndDate is null or is on or after the Default Evaluation Start Date
If not found,
set NOX LME to false.
If NOX LME is true,
Set Boiler Type to null.
Locate all Unit Type records linked to the location where the BeginDate is null or is on or before the Default
Evaluation End Date and the EndDate is null or is on or after the Default Evaluation Start Date.
If the Unit Type in all the retrieved records is equal to "CC", "CT", "ICE", "OT", or "IGC"
set Boiler Type to "TURBINE".
If the Unit Type in all the retrieved records is equal to "CFB", "DB", "OB", "T", "PFB", or "BFB"
set Boiler Type to "BOILER".
If Boiler Type is null,
return result A.
Otherwise,
Locate the Default Parameter Code, Boiler Type, and Fuel Type to Default Value cross check table record
where the ParameterCode (and Boiler Type) is equal to the concatenation of "NOXR-" and the Boiler
Type, and where the FuelCode is equal to the FuelCode in the current default record.
If the cross check record is not found,
return result A.
Otherwise,
If the Default Value in the current default record is valid, but is not equal to the Default Value in
the cross check record,
Environmental Protection Agency
Page 86 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
return result B.
Otherwise,
If the DefaultPurposeCode is equal to "LM",
Locate the Default Parameter Code, Boiler Type, and Fuel Type to Default Value cross check table record where
the ParameterCode (and Boiler Type) is equal to the ParameterCode in the current default record and the
FuelCode is equal to the FuelCode in the current default record.
If the cross check record is not found,
return result A.
Otherwise,
If the Default Value in the current default record is greater than 0, but is not equal to the Default Value in
the cross check record,
return result B.
Results:
Result
A
Response
You have reported a parameter for [key] that is not appropriate for the unit type and/or
fuel burned at the location.
The default value [value] reported for [key] is not appropriate for the unit type and/or
fuel burned at the location.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Default Evaluation
Current Default Active Equals true
Environmental Protection Agency
Page 87 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-56
Check Name:
NOXR LME Default Consistent with Controls and Unit Type
Related Former Checks: ARP-69E, ARP-77A, LME-EXP4
Applicability:
LME Check
Description:
Specifications:
For a Monitoring Default record with a valid ParameterCode equal to "NOXR", a DefaultPurposeCode equal to "LM", a
DefaultSourceCode not equal to "DEF",and consistent dates:
If the OperatingConditionCode is equal to "A",
Locate a Unit Control record for the location where the ParameterCode is equal to "NOX", the ControlCode is equal to
"DLNB", "H20", "NEB", "SCR", "SNCR", or "STM"; the InstallDate is null or is before the Default Evaluation End Date;
and the RetireDate is null or after the Default Evaluation Begin Date.
If found,
return result A.
If the OperatingConditionCode is equal to "B" or "P",
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 Default Evaluation End Date; and the EndDate is null or after the Default
Evaluation Begin Date.
If found,
return result B.
If the OperatingConditionCode is equal to "C",
Locate all Unit Control records for the location where the ParameterCode is equal to "NOX", the InstallDate is null or is
before the Default Evaluation End Date; and the RetireDate is null or after the Default Evaluation Begin Date.
If not found,
return result C.
If found, and the control records do not span the entire default evaluation period,
return result D.
Environmental Protection Agency Page 88 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
D
Response
You reported a default record for indicating the use of a unit-and-fuel specific NOXR
default value during any hour, but units with add-on NOx controls or Dry low-NOx
technology can only use a unit-and-fuel specific NOXR default value during controlled
hours.
You reported a default record for indicating the use of separate unit-and-fuel specific
NOXR default values during base and peak load hours, but only combustion turbines
can use separate unit-and-fuel specific NOXR default values during base and peak load
hours.
You reported a default record for indicating the use of a unit-and-fuel specific NOXR
default value during a controlled or uncontrolled hour, but you have not reported an
active NOx control in your monitoring plan.
You reported a default record for indicating the use of a unit-and-fuel specific NOXR
default value during a controlled or uncontrolled hour, but you have not reported NOx
control records that span the entire evaluation period.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Default Active Equals true
¦ Default Evaluation
Environmental Protection Agency
Page 89 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-58
Check Name: Default Fuel Type Consistent with Unit Fuel
Related Former Checks: ARP-50
Applicability: General Check
Description: This check determines if the fuel code in the default record is consistent with the fuels in the unit fuel record.
Specifications:
For Monitoring Default record with a valid ParameterCode and consistent dates:
If Default Fuel Code Valid is equal to true, and the FuelCode is not equal to "NFS" or "MIX",
Locate all Unit Fuel records linked to the location where the FuelCode is equal to the Default Unit Fuel, the BeginDate is
on or before the Default Evaluation End Date, and the EndDate is null or is on or after the Default Evaluation Begin Date.
If not found,
return result A.
If found, and the Begin and End Dates in the retrieved records do not span the entire default evaluation period,
return result B.
Results:
Result
A
B
Usage:
1
Response
The Fuel Code [Fuel Code] for [key] is inconsistent with the active fuels for the
associated unit.
The Fuel Code [Fuel Code] for [key] is inconsistent with the active fuels for the
associated unit for part of the evaluation period.
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Default Active Equals true
¦ Default Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 90 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-73
Check Name:
NOXR LME Defaults Consistent
Related Former Checks: ARP-77B, C, D
Applicability:
Description:
Specifications:
LME Check
Ensure that the correct NOXR LME defaults are reported for different operating conditions.
For a Monitoring Default record with a valid ParameterCode equal to "NOXR" and a DefaultPurposeCode equal to "LM", and consistent
dates:
If the OperatingConditionCode is equal to "A" or "C",
Locate a Monitoring Default record for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode is equal to "LM", the FuelCode is equal to the FuelCode in the current record; the
OperatingConditionCode is not equal to the OperatingConditionCode in the current record; BeginDate and BeginHour is
on or before the Default Evaluation End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on
or after the Default Evaluation Begin Date and Begin Hour.
If found,
return result A.
If the OperatingConditionCode is equal to "B",
Locate a Monitoring Default record for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode is equal to "LM", the DefaultSourceCode is not equal to "DEF", the FuelCode is equal to the
FuelCode in the current record; the OperatingConditionCode is equal to "P"; BeginDate and BeginHour is on or before
the Default Evaluation End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the
Default Evaluation Begin Date and Begin Hour.
If not found,
return result B.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire default
evaluation period,
return result C.
If the OperatingConditionCode is equal to "P",
Locate a Monitoring Default record for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode is equal to "LM", the DefaultSourceCode is not equal to "DEF", the FuelCode is equal to the
FuelCode in the current record; the OperatingConditionCode is equal to "B"; BeginDate and BeginHour is on or before
the Default Evaluation End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the
Default Evaluation Begin Date and Begin Hour.
If not found,
return result D.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire default
evaluation period,
return result E.
Environmental Protection Agency
Page 91 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
D
Usage:
1
Response
You have reported a default value for [key], but you have also defined a concurrent
NOXR default value for the same fuel.
You have reported a default record for [key], but you have not reported a NOXR default
value for this fuel for use during peak load hours that was active during the evaluation
period.
You have reported a default record for [key], but you have not reported a NOXR default
value for this fuel for use during peak load hours for the entire evaluation period.
You have reported a default record for [key], but you have not reported a NOXR default
value for the fuel for use during base load hours that was active during the evaluation
period.
You have reported a default record for [key], but you have not reported a NOXR default
value for this fuel for use during base load hours for the entire evaluation period.
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Default Active Equals true
¦ Default Evaluation
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 92 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-74
Check Name:
Overlapping Default Records
Related Former Checks: ARP-69B
Applicability:
Description:
Specifications:
General Check
Determine if there are any overlapping default records for the same parameter, fuel, and purpose.
For a Monitoring Default record with a valid ParameterCode:
If Default Purpose Code Valid is equal to true,
Locate another Monitoring Default record for the location where the ParameterCode, DefaultPurposeCode, FuelCode, and
OperatingConditionCode is equal to the ParameterCode, DefaultPurposeCode, FuelCode, and OperatingConditionCode in
the current default record, the BeginDate and BeginHour is on or after the BeginDate and BeginHour in the current record
and is on or before the Default Evaluation End Date and End Hour, and the EndDate is null or the EndDate and EndHour
is on or after the Default Evaluation Begin Date and Begin Hour.
If found,
return result A.
Results:
Result
A
Response
You have reported more than one concurrently active [parameter] default records for
purpose [purpose], fuel [fuel], and operating condition [condition].
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Default Evaluation
Current Default Active Equals true
Environmental Protection Agency
Page 93 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-75
Check Name: Default Value Consistent with Maximum Value
Related Former Checks: ARP-75A/C
Applicability: General Check
Description: This check determines if default values are less than values reported as maximums in Span, FuelFlow, Unit
Capacity, or Default records.
Specifications:
For a Monitoring Default record with a valid ParameterCode
If Default Value Valid is equal to true,
If the ParameterCode is equal to "C02N",
Locate all Span records for the location where the ComponentTypeCode is equal to "C02", the BeginDate and
BeginHour is on or before the Default Evaluation End Date and End Hour, and the EndDate is null or the
EndDate and EndHour is on or after the Default Evaluation Begin Date and Begin Hour.
If the MPCValue or MECValue in any of the retrieved records is greater than zero and less than the Default Value,
set Related Maximum to "MEC or MPC for C02", and return result A.
If the ParameterCode is equal to "02N",
Locate all Span records for the location where the ComponentTypeCode is equal to "02", the BeginDate and
BeginHour is on or before the Default Evaluation End Date and End Hour, and the EndDate is null or the
EndDate and EndHour is on or after the Default Evaluation Begin Date and Begin Hour.
If the MPCValue or MECValue in any of the retrieved records is greater than zero and less than the Default Value,
set Related Maximum to "MEC or MPC for 02", and return result A.
If the ParameterCode is equal to "S02X",
Locate all Span records for the location where the ComponentTypeCode is equal to "S02", the SpanScaleCode is
equal to "H", the BeginDate and BeginHour is on or before the Default Evaluation End Date and End Hour, and
the EndDate is null or the EndDate and EndHour is on or after the Default Evaluation Begin Date and Begin
Hour.
If the MPCValue in any of the retrieved records is greater than zero and less than the Default Value,
set Related Maximum to "MPC for S02", and return result A.
If the ParameterCode is equal to "NOCX",
Locate all Span records for the location where the ComponentTypeCode is equal to "NOX", the SpanScaleCode is
equal to "H", the BeginDate and BeginHour is on or before the Default Evaluation End Date and End Hour, and
the EndDate is null or the EndDate and EndHour is on or after the Default Evaluation Begin Date and Begin
Hour.
If the MPCValue in any of the retrieved records is greater than zero and less than the Default Value,
set Related Maximum to "MPC for NOX", and return result A.
If the ParameterCode is equal to "FLOX",
Locate all Span records for the location where the ComponentTypeCode is equal to "FLOW", the BeginDate and
BeginHour is on or before the Default Evaluation End Date and End Hour, and the EndDate is null or the
EndDate and EndHour is on or after the Default Evaluation Begin Date and Begin Hour.
Environmental Protection Agency
Page 94 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If the MPFValue in any of the retrieved records is greater than zero and less than the Default Value,
set Related Maximum to "MPF", and return result A.
If the ParameterCode is equal to "MNNX",
Locate all Monitor Default records for the location where the ParameterCode is equal to "NORX", the BeginDate
and BeginHour is on or before the Default Evaluation End Date and End Hour, and the EndDate is null or the
EndDate and EndHour is on or after the Default Evaluation Begin Date and Begin Hour.
If the Default Value in any of the retrieved records is greater than zero and less than the Default Value in the
current record,
set Related Maximum to "Maximum NOx Emission Rate", and return result A.
If the ParameterCode is equal to "MNGF" or "MNOF"
Locate all System FuelFlow records for the location where the associated FuelCode and the UnitsOfMeasure are
equal to the FuelCode and UnitsOfMeasure in the current default record, the BeginDate and BeginHour is on or
before the Default Evaluation End Date and End Hour, and the EndDate is null or the EndDate and EndHour is
on or after the Default Evaluation Begin Date and Begin Hour.
If the MaximumFuelFlowRate in any of the retrieved records is greater than zero and less than the Default Value,
If the ParameterCode is equal to "H20N",
Locate all Monitor Default records for the location where the ParameterCode is equal to "H20X", the BeginDate
and BeginHour is on or before the Default Evaluation End Date and End Hour, and the EndDate is null or the
EndDate and EndHour is on or after the Default Evaluation Begin Date and Begin Hour.
If the Default Value in any of the retrieved records is greater than zero and less than the Default Value in the current
record,
set Related Maximum to "Maximum Percent H20", and return result A.
If the ParameterCode is equal to "MNHI",
Locate all Unit Capacity records linked to the location (or any unit linked to the location) where the BeginDate is
on or before the Default Evaluation End Date, and the EndDate is null or is on or after the Default Evaluation
Begin Date.
If the MaximumHourlyHeatlnputCapacity in any of the retrieved records is greater than zero and less than the
Default Value,
set Related Maximum to "Maximum Hourly Heat Input", and return result A.
set Related Maximum to "Maximum Fuel Flow Rate", and return result A.
Results:
Result
A
Response
You have reported a default value for [key] which is greater than the [maximum] for
the location (and fuel).
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Default Evaluation
Current Default Active Equals true
Environmental Protection Agency
Page 95 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-78
Check Name: Rectangular Duct WAF Duct Width at Test Location Valid
Related Former Checks:
Applicability: CEM Check
Description: This check ensures that the Duct Width at the test location is valid.
Specifications:
For the RectangularDuctWAF record:
If the Duct Width is null,
return result A.
Otherwise,
If the Duct Width is equal to or less than zero,
return result B.
Results:
Result
A
B
Usage:
1
1
Response
You have not reported the required value in the field [fieldname] 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.
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: Monitoring Plan Evaluation Report WAF Evaluation
Conditions: Current WAF Active Equals true
Process/Category: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 96 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-79
Check Name: Rectangular Duct WAF Duct Depth at Test Location Valid
Related Former Checks:
Applicability: CEM Check
Description: This check ensures that the Rectangular Duct WAF Duct Depth at the Test Location is valid.
Specifications:
For the RectangularDuctWAF record:
If the Duct Depth is null,
return result A.
Otherwise,
If the DuctDepth is equal to or less than zero,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] 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 zero.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report WAF Evaluation
Conditions: Current WAF Active Equals True
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 97 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-80
Check Name: Rectangular Duct WAF Value Valid
Related Former Checks: ARP-80
Applicability: CEM Check
Description: This check ensures that the Rectangular Duct WAF value is valid.
Specifications:
For the RectangularDuctWAF record:
If the WAFValue is null,
return result A.
If WAFValue is greater than 0 and less than 1,
If the WAFMethodCode is equal to "FT" or "AT" and the WAFValue is less than 0.9400,
return result B.
If the WAFMethodCode is equal to "DF" and the WAFValue is less than 0.9500,
return result C.
Othewise,
return result D.
Results:
Result
A
B
C
D
Usage:
1
1
Response
You have not reported the required value in the field [fieldname] for [key].
You have reported a WAFValue for [key] that is below the minimum expected value of
.9400 when using method "FT" or "AT". Please re-check your measurements and
calculations to ensure that your WAF is correct.
You have reported a WAFValue for [key] that is below the minimum expected value of
.9500 when using method "DF". Please re-check your measurements and calculations
to ensure that your WAF is correct.
The [fieldname] for [key] is not within the range of valid values. This value must be
greater than 0 and less than 1.
Severity
Fatal
Informational Message
Informational Message
Critical Error Level 1
Process/Category: Monitoring Plan Evaluation Report WAF Evaluation
Conditions: Current WAF Active Equals True
Process/Category: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 98 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-81
Check Name: Rectangular Duct WAF Method of Determination Valid
Related Former Checks:
Applicability: CEM Check
Description: This check ensures that the Rectangular Duct WAF method of determination is valid.
Validation Tables:
WAF Method Code (Lookup Table)
WAF Method Code (Lookup Table)
Specifications:
For the RectangularDuctWAF record:
If the WAFMethodCode is null,
return result A.
Otherwise,
Locate the WAFMethodCode in the WAF Method Code lookup table.
If not found,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Critical Error Level 1
B 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: Monitoring Plan Evaluation Report WAF Evaluation
Conditions: Current WAF Active Equals True
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 99 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-82
Check Name:
Related Former Checks:
Rectangular Duct WAF Effective Date Valid
Applicability:
Description:
CEM Check
This check ensures that the Rectangular Duct WAFBeginDate is valid.
Specifications:
For the RectangularDuctWAF record:
If WAFEffectiveDate is null,
return result A.
If WAFEffectiveDate is earlier than 01/01/2004 or later than the current date,
return result B.
Results:
Result
A
B
Response
You have not reported the required value in the field [fieldname] for [key].
You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
Severity
Fatal
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report WAF Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 100 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-83
Check Name:
Related Former Checks:
Rectangular Duct WAF Effective Hour Valid
Applicability:
Description:
CEM Check
This check ensures that the Rectangular Duct WAFBeginHour is valid.
Specifications:
For the RectangularDuctWAF record:
If WAFEffectiveHour is null,
return result A.
If WAFEffectiveHour is less than 0 or greater than 23
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report WAF Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 101 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-84
Check Name: Rectangular Duct WAF End Date Valid
Related Former Checks:
Applicability: CEM Check
Description: This check ensures that the Rectangular Duct WAFEndDate is valid.
Specifications:
For the RectangularDuctWAF record:
If EndDate is not null, and is earlier than 01/01/2004 or later than the current date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report WAF Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 102 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: DEFAULT-85
Check Name: Rectangular Duct WAF End Hour Valid
Related Former Checks:
Applicability: CEM Check
Description: This check ensures that the Rectangular Duct WAFEndHour is valid.
Specifications:
For the RectangularDuctWAF record:
If EndHour is not null, and is less than 0 or greater than 23
return result A.
Results:
Result Response Severity
A You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report WAF Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 103 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-86
Check Name:
Related Former Checks:
Rectangular Duct WAF Determination Date Valid
Applicability:
Description:
CEM Check
This check ensures that the Rectangular Duct WAF determination date is valid.
Specifications:
For the RectangularDuctWAF record:
If WAFDeterminationDate is null,
return result A.
Otherwise,
If WAFDeterminationDate is earlier than 01/01/2004 or later than the current date,
return result B.
If WAFEflfectiveDate is valid,
If the year of the WAFEflfectiveDate is before the year of the WAFDeterminationDate,
return result C.
Results:
Result
A
B
Response
You have not reported the required value in the field [fieldname] for [key].
You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
You reported [datefield2] that is prior to the year of the [datefieldl] for [key].
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report WAF Evaluation
Current WAF Active Equals True
Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 104 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-87
Check Name: Rectangular Duct WAF Number of WAF Test Runs Valid
Related Former Checks: ARP-81A
Applicability: CEM Check
Description: This check ensures that the Rectangular Duct WAF number of WAF test runs is valid.
Specifications:
For the RectangularDuctWAF record:
If the NumberOfWAFTestRuns is null,
return result A.
Otherwise,
If the NumberOfWAFTestRuns is not between 1 and 99,
return result B.
If the WAFMethodCode is equal to "FT" or "AT", and the Number of WAFTestRuns is less than 3,
return result C.
Results:
Result Response
A You have not reported the required value in the field [fieldname] for [key].
B The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
C You have reported less than 3 test runs for [key], which is not valid when using method
"FT" or "AT" to determine the WAF.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report WAF Evaluation
Conditions: Current WAF Active Equals True
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Seventy
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 105 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-88
Check Name: Rectangular Duct WAF Number of Method 1 Traverse Points in WAF Test Valid
Related Former Checks:
Applicability: CEM Check
Description: This check ensures that the Rectangular Duct WAF number of Traverse Points in WAF Test is valid.
Specifications:
For the RectangularDuctWAF record:
If the NumberOfTraversePointsWAF is null,
return result A.
Otherwise,
If the NumberOfTraversePointsWAF is not between 12 and 99,
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
1
Process/Category: Monitoring Plan Evaluation Report WAF Evaluation
Conditions: Current WAF Active Equals True
Process/Category: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 106 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-89
Check Name: Rectangular Duct WAF Number of Test Ports in WAF Test Valid
Related Former Checks: ARP-81B
Applicability: CEM Check
Description: This check ensures that the Rectangular Duct WAF number of Test Ports in WAF Test is valid.
Specifications:
For the RectangularDuctWAF record:
If the NumberOfTestPorts is null,
return result A.
Otherwise,
If the NumberOfTestPorts is not between 1 and 99,
return result B.
If the WAFMethodCode is equal to "FT" or "AT", and the NumberOfTestPorts is less than 4,
return result C.
Results:
Result
A
B
C
Usage:
1
1
Response Severity
You did not provide [fieldname], which is required for [key]. Critical Error Level 1
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].
You have reported less than 4 as the Number of Test Ports for [key], which is not valid Critical Error Level 1
when using method "FT" or "AT" to determine the WAF.
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report WAF Evaluation
Current WAF Active Equals True
Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 107 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-90
Check Name: Rectangular Duct WAF Number of Method 1 Traverse Points in Reference Flow RATA Test Valid
Related Former Checks:
Applicability: CEM Check
Description: This check ensures that the Rectangular Duct WAF number of Traverse Points in Reference Flow RATA is
valid.
Specifications:
For the RectangularDuctWAF record:
If the NumberOfTraversePointsRef is null,
return result A.
Otherwise,
If the NumberOfTraversePointsRef is not between 12 and 99,
return result B.
If the NumberOfTraversePointsWAF is valid and is not equal to the NumberOfTraversePointsRef,
return result C.
Results:
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].
C The Number of Traverse Points in the Reference Flow RATA is not equal to the
Number of Method 1 Traverse Points in WAF Test for [key]. When you determine the
rectangular duct WAF, you must use the same number of Method 1 traverse points as
were used in conducting the Reference Flow RATA.
Seventy
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report WAF Evaluation
Conditions: Current WAF Active Equals True
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 108 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-91
Check Name: WAF Dates and Hours Consistent
Related Former Checks:
Applicability: General Check
Description: Rectangular Duct WAF Start Date and Hour should be prior to the Rectangular Duct End Date and Hour.
Specifications:
For the RectangularDuctWAF record:
If the EndDate is valid and not null, and the EndHour is null,
set WAF Dates and Hours Consistent to false, and return result A.
If the EndHour is valid and not null, and the EndDate is null,
set WAF Dates and Hours Consistent to false, and return result B.
If the BeginDate, BeginHour, EndDate, and EndHour are all valid,
If the EndDate is not null, and the BeginDate and BeginHour is after the EndDate and EndHour,
set WAF Dates and Hours Consistent to false, return result C.
Otherwise,
set WAF Dates and Hours Consistent to true.
Otherwise,
set WAF Dates and Hours Consistent to false.
Results:
Result
A
B
C
Usage:
1
1
Response
You reported [datefield2] but did not report an [hourfield2] for [key].
You reported [hourfield2] but did not report [datefield2] for [key].
You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and
[hourfieldl] for [key].
Process/Category:
Process/Category:
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Monitoring Plan Evaluation Report WAF Evaluation
Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 109 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-92
Check Name: WAF Active Status
Related Former Checks:
Applicability: General Check
Description: This check determines if the current Rectangular Duct WAF is active during the evaluation period.
Specifications:
For a RectangularDuctWAF record with consistent Dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set WAF Active to false.
Otherwise,
set WAF Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the WAF Evaluation Begin Date to the Evaluation Begin Date,
set the WAF Evaluation Begin Hour to 0.
Otherwise,
set the WAF Evaluation Begin Date to the BeginDate.
set the WAF Evaluation Begin Hour to the BeginHour.
If the EndDate is null or is after the Evaluation End Date,
set the WAF Evaluation End Date to the Evaluation End Date,
set the WAF Evaluation End Hour to 23.
Otherwise,
set the WAF Evaluation End Date to the EndDate.
set the WAF Evaluation End Hour to the EndHour.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report WAF Evaluation
Environmental Protection Agency
Page 110 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-93
Check Name:
Flow System reported for WAF Record
Related Former Checks: ARP-79
Applicability:
Description:
Specifications:
CEM Check
This check is to ensure that a WAF record is associated with allocation with a flow CEM.
For the RectangularDuctWAF record:
Locate a MonitoringSystem record for the location where the SystemTypeCode is equal to "FLOW", the BeginDate/Hour is on or
before the WAF Evaluation End Date and End Hour, and the EndDate is null or the EndDate/EndHour is on or after the WAF
Evaluation Start Date and Start Hour.
If not found,
return result A.
Results:
Result
A
Response
You have reported [key], which indicates that a rectangular duct WAF is being applied
to the stack flow values recorded by a CEM. However, you have not reported an active
FLOW monitoring system at this location.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report WAF Evaluation
Current WAF Active Equals True
Environmental Protection Agency
Page 111 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-97
Check Name: WAF Record Consistent with Stack Shape
Related Former Checks:
Applicability: CEM Check
Description: This check is to ensure that a WAF record is associated with a rectangular stack.
Specifications:
For the RectangularDuctWAF record:
Locate a LocationAttribute record for the location where the ShapeCode is equal to "RECT", the BeginDate is on or before the
WAF Evaluation End Date, and the EndDate is null or the EndDate is on or after the WAF Evaluation Start Date.
If not found,
return result A.
Results:
Result Response Severity
A You have reported [key], which indicates that a rectangular duct WAF is being applied Critical Error Level 1
to the stack flow values recorded by a CEM. However, the active LocationAttribute
record for the location does not indicate that the stack has a rectangular shape.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report WAF Evaluation
Conditions: Current WAF Active Equals true
Environmental Protection Agency
Page 112 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: DEFAULT-98
Check Name: Default Group ID Valid
Related Former Checks:
Applicability: LME Check
Description:
Specifications:
For the Default record with a valid ParameterCode:
If GroupID is not null,
If ParameterCode is not equal to "NOXR", or DefaultPurposeCode is not equal to "LM",
return result B.
Results:
Result
A
B
Response Severity
You did not report a GroupID for [key]. If this location does not belong to an identical Critical Error Level 1
group of units, you do not need to report the default Hg concentration in a default
record.
You reported a GroupID for [key], which is not appropriate for this parameter and Critical Error Level 1
purpose.
Usage:
1
1
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report Default Evaluation
Current Default Active Equals true
Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Environmental Protection Agency
Page 113 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-99
Check Name:
Required Missing Data Default for NOXR LME Default
Related Former Checks:
Applicability:
LME Check
Description:
Specifications:
For a Monitoring Default record with a valid ParameterCode equal to "NOXR", a DefaultPurposeCode equal to "LM", a
DefaultSourceCode not equal to "DEF", and consistent dates:
Locate a Monitoring Default record for the location where the ParameterCode is equal to "NORX", the DefaultPurposeCode is
equal to "MD", the FuelCode is equal to the FuelCode in the current record; BeginDate and BeginHour is on or before the Default
Evaluation End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the Default Evaluation
Begin Date and Begin Hour.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire default evaluation
period,
return result B.
If not found,
return result A.
Results:
Result
A
Response
You have reported a unit-and-fuel specific default record for [key], but you have not
reported a generic maximum NOx emission rate default value for the fuel for use
during missing data hours.
You have reported a unit-and-fuel specific default record for [key], but you have not
reported a generic maximum NOx emission rate default value for the fuel for use
during missing data hours that was active during the evaluation period.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Default Evaluation
Current Default Active Equals true
Environmental Protection Agency
Page 114 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-95
Check Name:
Related Former Checks:
Duplicate Default Records
Applicability:
Description:
Specifications:
General Check
This check determines if there is another default record with the same key fields.
For a default record:
Locate another Default record for the location with a ParameterCode that is equal to the ParameterCode in the current record and
a DefaultPurposeCode equal to the DefaultPurposeCode in the current record and a FuelCode equal to the FuelCode in the current
record and an OperatingConditionCode equal to the OperatingConditionCode in the current record and a BeginDate/Hour equal to
the BeginDate/Hour in the current record.
If found,
return result A.
If not found, and the EndDate in the current record is not null.,
Locate another Default record for the location with a ParameterCode that is equal to the ParameterCode in the current
record and a DefaultPurposeCode equal to the DefaultPurposeCode in the current record and a FuelCode equal to the
FuelCode in the current record and an OperatingConditionCode equal to the OperatingConditionCode in the current
record and an End Date/Hour equal to the EndDate/Hour 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: Monitoring Plan Data Entry Screen Evaluation Default Evaluation
Environmental Protection Agency
Page 115 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
DEFAULT-96
Check Name:
Related Former Checks:
Duplicate WAF Records
Applicability:
Description:
General Check
This check determines if there is another WAF record with the same key fields.
Specifications:
For a RectangularDuctWAFData record:
Locate another RectangularDuctWAFData record for the location with a BeginDate/Hour equal to the BeginDate/Hour in the
current record.
If found,
return result A.
If not found, and the EndDate in the current record is not null.,
Locate another RectangularDuctWAFData record for the location with an End Date/Hour equal to the EndDate/Hour 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: Monitoring Plan Data Entry Screen Evaluation Rectangular Duct WAF Evaluation
Environmental Protection Agency
Page 116 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Formula
Environmental Protection Agency
Page 117 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-1
Check Name: Formula Begin Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the Formula Begin Date is Valid. This value is required and should be within the
acceptable range of values.
Specifications:
For the Formula record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Critical Error Level 1
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: Monitoring Plan Evaluation Report Formula Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Formula Evaluation
Environmental Protection Agency
Page 118 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FORMULA-2
Check Name:
Related Former Checks:
Formula Begin Hour Valid
Applicability:
Description:
General Check
This check determines if the Formula Begin Hour is Valid. This value is required and should be within the
acceptable range of values.
Specifications:
For the Formula record:
If BeginHour is null,
return result A.
If BeginHour is less than 0 or greater than 23
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] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Formula Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Formula Evaluation
Environmental Protection Agency
Page 119 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: FORMULA-3
Check Name: Formula End Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the Formula End Date is Valid. This value should be within the acceptable range of
values.
Specifications:
For the Formula record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Formula Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Formula Evaluation
Environmental Protection Agency
Page 120 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: FORMULA-4
Check Name: Formula End Hour Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the Formula End Hour is Valid. This value should be within the acceptable range of
values.
Specifications:
For the Formula record:
If EndHour is not null, and is less than 0 or greater than 23
return result A.
Results:
Result Response Severity
A You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Formula Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Formula Evaluation
Environmental Protection Agency
Page 121 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-5
Check Name: Formula Dates and Hours Consistent
Related Former Checks:
Applicability: General Check
Description: Monitoring Formula Start Date and Hour should be prior to the Monitor Formula End Date and Hour. Also
cannot report end date without end hour, or vice versa.
Specifications:
For the Formula record:
If the EndDate is valid and not null, and the EndHour is null,
set Formula Dates and Hours Consistent to false, and return result A.
If the EndHour is valid and not null, and the EndDate is null,
set Formula Dates and Hours Consistent to false, and return result B.
If the BeginDate, BeginHour, EndDate, and EndHour are all valid,
If the EndDate is not null, and the BeginDate and BeginHour is after the EndDate and EndHour,
set Formula Dates and Hours Consistent to false, return result C.
Otherwise,
set Formula Dates and Hours Consistent to true.
Otherwise,
set Formula Dates and Hours Consistent to false.
Results:
Result
A
B
C
Usage:
1
1
Response
You reported [datefield2] but did not report an [hourfield2] for [key].
You reported [hourfield2] but did not report [datefield2] for [key].
You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and
[hourfieldl] for [key].
Process/Category:
Process/Category:
Monitoring Plan Evaluation Report Formula Evaluation
Monitoring Plan Data Entry Screen Evaluation Formula Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 122 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-6
Check Name: Formula Active Status
Related Former Checks:
Applicability: General Check
Description: This check determines if the current formula is active during the evaluation period using the
Monitor Formula.Start Date and Hour and the MonitorFormula.EndDate and hour and the Evaluation
Begin and End Dates.
Specifications:
For a Formula record with consistent dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Current Formula Active to false.
Otherwise,
set Current Formula Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the Formula Evaluation Begin Date to the Evaluation Begin Date.
Set the Formula Evaluation Begin Hour to 0.
Otherwise,
set the Formula Evaluation Begin Date to the BeginDate.
Set the Formula Evaluation Begin Hour to the BeginHour.
If the EndDate is null or is after the Evaluation End Date,
set the Formula Evaluation End Date to the Evaluation End Date.
Set the Formula Evaluation End Hour to 23.
Otherwise,
set the Formula Evaluation End Date to the EndDate.
Set the Formula Evaluation End Hour to the EndHour.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Formula Evaluation
Environmental Protection Agency
Page 123 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-7
Check Name: Formula ID Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the FormulalD reported is valid.
Specifications:
For the Formula record:
If the FormulalD is null,
return result A.
If the FormulalD does not consist of 3 alphanumeric characters:
return result B.
Results:
Result
A
B
Usage:
1
1
Response
You did not provide [fieldname], which is required for [key].
The FormulalD [ID] has an invalid format. A FormulalD must contain three
alphanumeric characters.
Severity
Fatal
Critical Error Level 1
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report Formula Evaluation
Current Formula Active Equals true
Monitoring Plan Data Entry Screen Evaluation Formula Evaluation
Environmental Protection Agency
Page 124 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-8
Check Name: Formula Parameter Code Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the formula ParameterCode is valid.
Validation Tables:
Parameter to Category (Cross Check Table)
Parameter to Category (Cross Check Table)
Specifications:
For a Formula record:
If the ParameterCode is null,
return result A.
Otherwise,
Locate a record in the List of Formula Parameter Codes (Parameter to Category Cross Check Table) where the
ParameterCode is equal to the ParameterCode in the current Formula record and the CategoryCode is equal to
"FORMULA".
If not found,
return result B.
If found,
Locate a Used Identifier record for the location where the Table Code is equal to "F" and the Identifier is equal to
the Formula ID in the Formula record.
If found,
If the ParameterCode is not equal to the Type or Parameter Code in the retrieved record,
return result C.
Results:
Result
A
B
C
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 changed the ParameterCode for [key] from its previously reported value.
You should only do this to correct invalid data. If you are using a different equation to
calculate emissions, you should add a new formula.
Severity
Fatal
Critical Error Level 1
Critical Error Level 2
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Formula Evaluation
Conditions: Current Formula Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Formula Evaluation
Environmental Protection Agency
Page 125 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FORMULA-9
Check Name:
Formula Code Valid
Related Former Checks: ARP-6, NBP-30
Applicability:
Description:
General Check
This check determines if the Formula Code reported is Valid.
Validation Tables:
Equation Code (Lookup Table)
Formula Parameter and Component Type and Basis to Formula Code (Cross Check Table)
Equation Code (Lookup Table)
Formula Parameter and Component Type and Basis to Formula Code (Cross Check Table)
Specifications:
For the Formula record with a valid ParameterCode:
Set 02 Component Required to false.
Set Moisture Method Required to false.
Set Formula Code Valid to true.
If the FormulaCode is null,
Locate the FormulaCode in the Formula Code Lookup Table.
If not found,
set Formula Code Valid to false, and return result B.
If found,
If the Moisture Indicator in the lookup table is equal to 1,
set Moisture Method Required to true.
Locate a record in the Formula Parameter and Component Type and Basis to Formula Code cross check table
where the ParameterCode and FormulaCode are equal to the ParameterCode and FormulaCode in the Formula
record.
If not found,
set Formula Code Valid to false, and return result C.
If found,
If Component Type and Basis begins with "02",
set 02 Component Required to true.
Locate a Used Identifier record for the location where the Table Code is equal to "F" and the Identifier is
equal to the Formula ID in the Formula record.
If found and the Formula or Basis Code is not null,
If the FormulaCode is not equal to the Formula or Basis Code in the retrieved record,
return result D.
If the FormulaText is null,
return result A.
Otherwise,
Environmental Protection Agency
Page 126 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
D
Response
You did not report a formula code or formula text for [key]. If using a standard
formula, you should report the formula code for that formula; otherwise, you must
provide a formula text for the formula.
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] formula which is inappropriate for the ParameterCode
[parameter] for [key].
You have changed the FormulaCode for [key] from its previously reported value. You
should only do this to correct invalid data. If you are using a different equation to
perform emissions calculations, you should add a new formula.
Severity
Critical Error Level 1
Fatal
Critical Error Level 1
Critical Error Level 2
Usage:
1
1
Process/Category: Monitoring Plan Evaluation Report Formula Evaluation
Conditions: Current Formula Active Equals true
Process/Category: Monitoring Plan Data Entry Screen Evaluation Formula Evaluation
Environmental Protection Agency
Page 127 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-10
Check Name: Formula Text Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the FormulaText is valid.
Specifications:
For Current Formula'.
If the FormulaText is null or whitespace, AND FormulaCode is equal to "N-GAS" or "N-OIL", AND EndDate is null,
return result A.
Results:
Result Response Severity
A You did not report formula text for [key], which is required for "Net Gas Flow Rate" Informational Message
(N-GAS) and "Net Volumetric Oil Flow Rate" (N-OIL) formulas.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Formula Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Formula Evaluation
Environmental Protection Agency
Page 128 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FORMULA-11
Check Name:
Related Former Checks:
Heat Input Apportionment/Summary Formula Valid
Applicability:
Description:
Specifications:
General Check
This check determines if a heat input apportionment or summary formula is valid.
For a Formula record with a ParameterCode equal to "HI" and a FormulaCode equal to "F-21A", "F-21B", "F-21C1, "F-21D", or "F-25"
Locate a Monitoring Method records for the location where the ParameterCode is equal to "HI", the MethodCode contains
"CALC", the BeginDate and BeginHour is on or before the Formula Evaluation End Date and End Hour, and the End Date is null
or the EndDate and EndHour is on or after the Formula Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If found,
If FormulaCode is equal to "F-25" and Location Type is not equal to "CS", or if FormulaCode begins with "F-21" and the
Location Type is not equal to "US", "UP", or "UB",
return result B.
If the FormulaCode is equal to "F-21A",
Locate a Monitor Load record for the location where the Units of Measure is equal to "KLBHR" or
"MMBTUHR", the BeginDate is on or before the Formula Evaluation End Date, and the EndDate is null
or on or after the Formula Evaluation Begin Date.
If found,
return result C.
If the FormulaCode is equal to "F-21B",
Locate a Monitor Load record for the location where the Units of Measure is equal to "MW", the
BeginDate is on or before the Formula Evaluation End Date, and the EndDate is null or on or after the
Formula Evaluation Begin Date.
If found,
return result C.
If the FormulaCode is equal to "F-21D",
Locate a Unit Stack Configuration where the unit location is the location in the Formula record, the
associated StackPipelD begins with "CP", the BeginDate is on or before the Formula Evaluation End
Date, and the EndDate is null or is on or after the Formula Evaluation Begin Date.
If not found,
return result D.
Otherwise,
If found,
Locate a Monitoring Method record where the location is any of the stack/pipe locations in the
retrieved Unit Stack Configuration records, the ParameterCode is equal to "HI", the
MethodCode is equal to "AD", the BeginDate is on or before the Formula Evaluation End Date,
and the EndDate is null or on or after the Formula Evaluation Begin Date.
Environmental Protection Agency
Page 129 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
If not found,
return result D.
Result Response Severity
A You have reported [key], but you have not reported a [method] method record, which is Critical Error Level 1
required for a [parameter] [code] formula, during the evaluation period.
B You have reported a [parameter] [code] formula for [key], which is inappropriate for a Critical Error Level 1
[Location Type].
C You reported [key], which is an [Code] heat input apportionment formula, but this Critical Error Level 1
formula code is not consistent with the units of measure in the active load record for
the unit.
D You reported [key], which indicates that you apportion heat input from a common pipe Critical Error Level 1
with an uncertified fuel flowmeter, but the unit is not linked to a common pipe that is
using an Appendix D methodology to determine heat input.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Formula Evaluation
Conditions: Current Formula Active Equals true
Environmental Protection Agency
Page 130 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-12
Check Name: Formula Parameter and Code Consistent with Method and Fuel
Related Former Checks:
Applicability: General Check
Description: For this formula parameter and equation code, check to see if there is a corresponding acceptable method
and/or fuel for this formula.
Validation Tables:
[Formula to Required Method] (Cross Check Table)
[Formula to Required Unit Fuel] (Cross Check Table)
Specifications:
For CurrentFormula where FormulaParameterValid and FormulaCodeValid are equal to true:
Locate records in the FormulaToRequiredMethodCrosscheck where FormulaCode is equal to CurrentFormula.FormuhCodc.
If found,
Locate records in MethodRecords (for the location) where:
1) ParameterCode and MethodCode match the MethodParameter and MethodCode in one of the located crosscheck
records, and
2) BeginDate/Hour is on or before the FormulaEvaluationEndDate/FormulaEvaluationEndHour, and
3) EndDate is null or EndDate/Hour is on or after the FormulaEvaluationBeginDate/FormulaEvaluationBeginHour.
If not found,
Set AppropriateMethodForFormula to the list of MethodParameter/MethodCode in the located crosscheck
records.
Return result A.
Otherwise
Locate records in the FormulaToRequiredUnitFuelCrosscheck where FormulaCode is equal to
CurrentFormula.FormuhCodc.
If found,
Locate records in LocationFuelRecords (for the locations) where:
1) FuelCode matches the UnitFuelCode in one of the located crosscheck records, and
2) BeginDate is on or before the FormulaEvaluationEndDate, and
3) EndDate is null or is on or after the FormulaEvaluationBeginDate.
If not found,
Return result B.
Results:
Result Response Severity
A You have reported [key], but you have not reported a [method] method record, which is Critical Error Level 1
required for a [parameter] [code] formula, during the evaluation period.
B You have reported [key], but the unit is not burning coal, which is required when using Critical Error Level 1
this formula.
Environmental Protection Agency
Page 131 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Formula Evaluation
Conditions: Current Formula Active Equals true
Environmental Protection Agency
Page 132 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FORMULA-13
Check Name:
Formula Parameter and Code Consistent with System or Fuel
Related Former Checks: ARP-7, ARP-86
Applicability:
Description:
General Check
This check determines if there is an active system that is appropriate for the formula.
Validation Tables:
Formula Parameter and Component Type and Basis to Formula Code (Cross Check Table)
Specifications:
For a Formula record with a valid ParameterCode and a valid FormulaCode:
If the FormulaCode is equal to "D-12", "D-15A", or "G-4A",
Locate all Monitor System records for the location where the SystemTypeCode is equal to "OILM", "OILV", or "GAS",
SystemDesignationCode is equal to "P", the BeginDate and BeginHour is on or before the Formula Evaluation End Date
and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the Formula Evaluation Begin Date
and Begin Hour.
If less than two are found, or if the BeginDate/BeginHour and EndDate/EndHour of any pair of system records do not
overlap during the evaluation period, AND the location is a unit,
Locate all Monitor System records for the location and all common pipe locations linked to the location where the
SystemTypeCode is equal to "OILM", "OILV", or "GAS", SystemDesignationCode is equal to "P", the BeginDate
and BeginHour (or intersection between the BeginDate and BeginHour of the System and the associated Unit
Stack Configuration records) is on or before the Formula Evaluation End Date and End Hour, and the EndDate is
null (or EndDate of the System and the associated UnitStackConfiguration record are both null) or EndDate and
EndHour (or intersection between the EndDate and EndHour of the System and the associated Unit Stack
Configuration record) is on or after the Formula Evaluation Begin Date and Begin Hour.
If less than two are found, or if the BeginDate/BeginHour and EndDate/EndHour of any pair of system records do not
overlap during the evaluation period,
If at least one system record is found,
Locate a Fuel Record for the location where the FuelGroup is equal to "GAS" or "OIL", the
IndicatorCode is equal to "I" or "E", BeginDate and BeginHour is on or before the Formula Evaluation
End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the Formula
Evaluation Begin Date and Begin Hour.
If the Formula Code is equal to "D-15A",
Locate a Formula record for the location where the FormulaCode is equal to "F-21A",
"F-21B", or "F-21D", the BeginDate and BeginHour is on or before the Formula
Evaluation End Date and End Hour, and the EndDate is null or the EndDate and
EndHour is on or after the Formula Evaluation Begin Date and Begin Hour.
If not found, or if the BeginDate/BeginHour of any retrieved formula record does not
overlap any of the retrieved system records during the evaluation period,
If not found,
Set the Appropriate System or Component for Formula to "oil or gas", and
return result A.
Otherwise,
Environmental Protection Agency
Page 133 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Set the Appropriate System or Component for Formula to "oil or gas", and return result
A.
Otherwise,
Set the Appropriate System or Component for Formula to "oil or gas", and return result A.
If the FormulaCode is equal to "E-2",
Locate all Monitor System records for the location where the SystemTypeCode is equal to "NOXE", the FuelCode is not
equal to "MIX", the BeginDate and BeginHour is on or before the Formula Evaluation End Date and End Hour, and the
EndDate is null or the EndDate and EndHour is on or after the Formula Evaluation Begin Date and Begin Hour.
If less than two are found, or if the BeginDate/BeginHour and EndDate/EndHour of any pair of system records do not
overlap during the evaluation period,
Set the Appropriate System or Component for Formula to "NOXE", and return result A.
If the FormulaCode is equal to "D-3",
Locate a Monitoring System record for the location where the SystemType is equal to "OILV", the BeginDate and
BeginHour is on or before the Formula Evaluation End Date and End Hour, and the EndDate is null or the EndDate and
EndHour is on or after the Formula Evaluation Begin Date and Begin Hour.
If not found,
Set the Appropriate System or Component for Formula to "OILV", and return result B.
If the FormulaCode is equal to "N-GAS",
If EndDate is null,
Locate a Monitoring System record for the location where the SystemType is equal to "GAS" or "LTGS", the
BeginDate and BeginHour is on or before the Formula Evaluation End Date and End Hour, and the EndDate is
null or the EndDate and EndHour is on or after the Formula Evaluation Begin Date and Begin Hour, and the
Monitoring System record is linked during the formula evaluation period (via the System Component table) to at
least two concurrently active Component records with a ComponentTypeCode equal to "GFFM" or "BGFF".
If not found,
Set the Appropriate System or Component for Formula to "GAS or LTGS", and return result C.
If the FormulaCode is equal to "N-OIL",
If EndDate is null,
Locate a Monitoring System record for the location where the SystemType is equal to "OILM" or "OILV", the
BeginDate and BeginHour is on or before the Formula Evaluation End Date and End Hour, and the EndDate is
null or the EndDate and EndHour is on or after the Formula Evaluation Begin Date and Begin Hour, and the
Monitoring System record is linked during the formula evaluation period (via the System Component table) to at
least two concurrently active Component records with a ComponentTypeCode equal to "OFFM" or "BOFF".
If not found,
Set the Appropriate System or Component for Formula to "OILM or OILV", and return result C.
If the FormulaCode is equal to "X-FL" or "T-FL",
Locate a Monitoring System record for the location where the SystemType is equal to "FLOW", the BeginDate and
BeginHour is on or before the Formula Evaluation End Date and End Hour, and the EndDate is null or the EndDate and
EndHour is on or after the Formula Evaluation Begin Date and Begin Hour, and the Monitoring System record is linked
during the formula evaluation period (via the System Component table) to at least two concurrently active Component
records with a ComponentTypeCode equal to "FLOW".
Environmental Protection Agency
Page 134 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If not found,
Set the Appropriate System or Component for Formula to "FLOW", and return result C.
If the ParameterCode is equal to "H20",
Locate a Monitoring System record for the location where the SystemType is equal to "H20", the BeginDate and
BeginHour is on or before the Formula Evaluation End Date and End Hour, and the EndDate is null or the EndDate and
EndHour is on or after the Formula Evaluation Begin Date and Begin Hour.
If not found,
Set the Appropriate System or Component for Formula to "H20", and return result B.
Otherwise,
Locate all records in the Formula Parameter and Component Type and Basis to Formula Code cross check table where the
ParameterCode and FormulaCode are equal to the ParameterCode and FormulaCode in the Formula record and the
ComponentTypeAndBasis is not null.
If found,
If the ParameterCode is equal to "NOXR",
For each of the retrieved cross-check records where ComponentTypeAndBasis does not equal "02B",
If the ComponentTypeAndBasis begins with "02",
Locate a Monitoring System record for the location where the SystemType is equal to
"NOX", the BeginDate and BeginHour is on or before the Formula Evaluation End Date
and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the
Formula Evaluation Begin Date and Begin Hour, and the Monitoring System record is
linked during the formula evaluation period (via the System Component table) to
Component records with a concatenated ComponentTypeCode + BasisCode equal to the
ComponentTypeAndBasis in the cross-check record or "02B",
If not found,
Set the Appropriate System or Component for Formula to "NOX", and return
result B.
Otherwise,
Locate a Monitoring System record for the location where the SystemType is equal to
"NOX", the BeginDate and BeginHour is on or before the Formula Evaluation End Date
and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the
Formula Evaluation Begin Date and Begin Hour, and the Monitoring System record is
linked during the formula evaluation period (via the System Component table) to
Component records with a concatenated ComponentTypeCode + BasisCode equal to the
ComponentTypeAndBasis in the retrieved cross-check records.
If not found,
Set the Appropriate System or Component for Formula to "NOX", and return
result B.
If the ParameterCode is equal to "S02R",
For each of the retrieved cross-check records,
Environmental Protection Agency
Page 135 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If the ComponentTypeAndBasis begins with "02",
Locate a Monitoring System record for the location where the SystemType is equal to
"S02R", the BeginDate and BeginHour is on or before the Formula Evaluation End Date
and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the
Formula Evaluation Begin Date and Begin Hour, and the Monitoring System record is
linked during the formula evaluation period (via the System Component table) to
Component records with a concatenated ComponentTypeCode + BasisCode equal to the
ComponentTypeAndBasis in the cross-check record or "02B",
If not found,
Set the Appropriate System or Component for Formula to "S02R", and return
result B.
Otherwise,
Locate a Monitoring System record for the location where the SystemType is equal to
"S02R", the BeginDate and BeginHour is on or before the Formula Evaluation End Date
and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the
Formula Evaluation Begin Date and Begin Hour, and the Monitoring System record is
linked during the formula evaluation period (via the System Component table) to
Component records with a concatenated ComponentTypeCode + BasisCode equal to the
ComponentTypeAndBasis in the retrieved cross-check records.
If not found,
Set the Appropriate System or Component for Formula to "S02R", and return
result B.
Otherwise,
Locate a System Component record for the location where the concatenated ComponentTypeCode +
BasisCode is equal to the ComponentTypeAndBasis in any of the retrieved cross-check records, the
BeginDate and BeginHour is on or before the Formula Evaluation End Date and End Hour, and the
EndDate is null or the EndDate and EndHour is on or after the Formula Evaluation Begin Date and
Begin Hour.
If not found,
If the ComponentTypeAndBasis in any of the retreived cross-check records is equal to "GFFM"
or "BGFF",
Locate a Fuel Record for the location where the FuelGroup is equal to "GAS", the
IndicatorCode is equal to "I" or "E", BeginDate and BeginHour is on or before the
Formula Evaluation End Date and End Hour, and the EndDate is null or the EndDate
and EndHour is on or after the Formula Evaluation Begin Date and Begin Hour.
If found,
exit this check with no result.
If the ComponentTypeAndBasis in any of the retreived cross-check records is equal to "OFFM"
or "BOFF",
Locate a Fuel Record for the location where the FuelGroup is equal to "OIL", the
IndicatorCode is equal to "I" or "E", BeginDate and BeginHour is on or before the
Formula Evaluation End Date and End Hour, and the EndDate is null or the EndDate
and EndHour is on or after the Formula Evaluation Begin Date and Begin Hour.
Environmental Protection Agency
Page 136 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If found,
exit this check with no result.
Set the Appropriate System or Component for Formula to the list of ComponentTypeAndBasis
values in the retrieved cross-check records, and return result D.
Results:
Result
A
B
C
D
Usage:
1
Response
You reported [key], which is a [parameter] summation formula for multiple fuels, but
you did not report two [system type] systems during the evaluation period.
You reported [key], but you did not report a [system type] monitoring system that is
appropriate for a [parameter] [code] formula.
You reported a [parameter] formula for [key], but you have not reported a [system type]
system containing more than one component to measure flow.
You reported [key], but you did not report a component with a component type code
and basis code that is appropriate for the formula. A [parameter] [code] formula
requires a [component and basis] component.
Process/Category:
Conditions:
Monitoring Plan Evaluation Report -
Current Formula Active Equals true
¦ Formula Evaluation
Severity
Critical Error Level 1
Critical Error Level 2
Critical Error Level 1
Critical Error Level 2
Environmental Protection Agency
Page 137 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FORMULA-14
Check Name:
Formula Code Consistent with Fuel
Related Former Checks: NBP-32
Applicability:
Description:
General Check
This check determines if the formula is appropriate for the fuels burned at the location.
Specifications:
For a Formula record with a ParameterCode equal to "S02" and a FormulaCode equal to "F-23" or "D-5",
If FormulaCode is equal to "D-5",
Locate a Unit Fuel record linked to the location where the FuelCode is equal to "PNG" or "NNG", the BeginDate is on or
before the Formula Evaluation End Date, and the EndDate is null or on or after the Formula Evaluation Begin Date.
If not found,
return result A.
If FormulaCode is equal to "F-23",
Locate a Unit Fuel record linked to the location where the associated FuelGroup is equal to "GAS" or "OIL", the
BeginDate is on or before the Formula Evaluation End Date, and the EndDate is null or on or after the Formula
Evaluation Begin Date.
If not found,
return result A.
Results:
Result
A
Response
You reported [key], but you did not burn natural gas at the unit, which is required
when using a [Code] formula.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Formula Evaluation
Current Formula Active Equals true
Environmental Protection Agency
Page 138 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-15
Check Name: Required H20 Method Reported for Formula
Related Former Checks: ARP-46
Applicability: General Check
Description: This check determines if an H20 Method is reported for a location using a formula that has moisture as a
factor.
Specifications:
For a Monitor Formula record with a valid ParameterCode and a valid FormulaCode:
Set Moisture Default Required to false.
If Moisture Method Required equal to true:
Locate all Monitoring Method records for the location with a ParameterCode equal to "H20", a BeginDate and BeginHour
on or before the Formula Evaluation End Date and End Hour, and an EndDate that is null or an EndDate and EndHour
that is on or after the Formula Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If found,
If the MethodCode in any of the retrieved records is equal to "MMS", "MWD", or "MTB",
set Moisture Default Required to true.
If the BeginDate/BeginHour and EndDate/EndHour of the retrieved method records do not span the entire
formula evaluation period,
return result B.
Results:
Result
A
B
Response Severity
You have reported a [code] formula for [key] that requires moisture correction, but you Critical Error Level 1
have not defined a methodology that was active during the evaluation period for
determining H20.
You have reported a [code] formula for [key] which requires moisture correction, but Critical Error Level 1
you have not reported H20 method records that span the entire evaluation period.
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report -
Current Formula Active Equals true
¦ Formula Evaluation
Environmental Protection Agency
Page 139 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-16
Check Name: Required Formula Reported for F-Factor Formula
Related Former Checks:
Applicability: CEM Check
Description: This check determines if there are any concurrently active formulas which require F-factors, if an F-factor
formula is reported.
Validation Tables:
Formula Code to F-Factor Parameter (Cross Check Table)
Specifications:
For a Monitor Formula record with a ParameterCode equal to "FD", "FC", or "FW", and a valid FormulaCode:
Locate all records in the Formula Code to F-Factor Parameter cross-check table where the ParameterCode is equal to the
ParameterCode in the formula record.
Locate all Monitor Formula records for the location where the FormulaCode is equal to the FormulaCode in any of the retrieved
cross-check records, a BeginDate and BeginHour that is on or before the Formula Evaluation End Date and End Hour, and an
EndDate that is null or an EndDate and EndHour that is on or after the Formula Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved formula records do not span the entire formula
evaluation period,
return result B.
Results:
Result
A
B
Usage:
1
Response
You have reported an F-factor formula [Formula ID], but no corresponding formulas
that were active during the evaluation period that require the use of an F-factor.
You have reported an F-factor formula [Formula ID], but the corresponding formulas
that use the F-factor do not span the entire evaluation period.
Process/Category:
Conditions:
Monitoring Plan Evaluation Report -
Current Formula Active Equals true
¦ Formula Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 140 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FORMULA-17
Check Name:
Related Former Checks:
Required Defaults Reported for Formula
Applicability:
Description:
General Check
This check determines if a minimum 02 and H20 default values are reported for HI formulas.
Specifications:
For a Monitor Formula record with a ParameterCode equal to "HI" and a valid FormulaCode:
Set Missing Default for Formula to null.
Set Incomplete Default for Formula to null.
If 02 Component Required is equal to true.
Locate a MonitorDefault record for the location where the ParameterCode is equal to "02N", the BeginDate and
BeginHour is on or before the Formula Evaluation End Date and End Hour, and the End Date is null or the EndDate and
EndHour is on or after the Formula Evaluation Begin Date and Begin Hour.
If not found,
append "02N" to Missing Default for Formula.
If found, and the retrieved records do not span the entire formula evaluation periods,
append "02N" to Incomplete Default for Formula.
If Missing Default for Formula is not null, and Incomplete Default for Formula is null,
return result A.
If Missing Default for Formula is null, and Incomplete Default for Formula is not null,
return result B.
If Missing Default for Formula is not null, and Incomplete Default for Formula is not null,
return result C.
Results:
Result
A
Response
You did not report [missing] default record(s) that was/were active during the
evaluation period for this location. These defaults are required when using formula
code [code] to calculate HI during missing data situations.
You did not report [incomplete] default record(s) for this location for the entire
evaluation period. These defaults are required when using formula code [code] to
calculate HI during missing data situations.
You did not report [missing] default record(s) that was/were active during the
evaluation period for this location. Also, you did not report [incomplete] default
record(s) that are active for the entire evaluation period. These defaults are required
when using formula code [code] to calculate HI during missing data situations.
Severity
Critical Error Level 1
B
Critical Error Level 1
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Formula Evaluation
Current Formula Active Equals true
Environmental Protection Agency
Page 141 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-19
Check Name: MATS Apportionment/Summary Formula Validation
Related Former Checks:
Applicability: General Check
Description: Ensures that an "MS-1" equation is only used at a unit linked multiple stacks, and not linked to any other type
of location.
Specifications:
For a CurrentFormula record with a ParameterCode equal to "HGRE", "HCLRE", "HFRE", "S02RE", "HGRH", "HCLRH", "HFRH", or
"S02RH",
If CurrentFormula.FormuhCodc is equal to "MS-1",
Locate records in MethodRecords where:
1) ParameterCode is equal to CurrentFormula. Pa ra mctc rCodc.
2) MethodCode is equal to "CALC".
3) BeginDateHour is on or before FormulaEvaluationEndDate/Hour.
4) EndDateHour is null or is on or after FormulaEvaluationBeginDate/Hour.
If not found,
return result A.
/* Ensure the location is a unit linked to one or more stacks */
Else if LocationType is NOT equal to "US",
return result B.
/* Ensure the unit is only linked to MS and not to CS */
Else
Locate a record in UnitStackConfigurationRecords where:
1) unit location is the location of CurrentFormula.
2) StackPipelD does not begin with "MS".
3) BeginDate is on or before FormulaEvaluationEndD ate.
4) EndDate is null or is on or after FormulaEvaluationBeginDate.
If found,
return result B.
Results:
Result Response Severity
A The reported Formula Code of "MS-1" is must be associated with a unit level MATS Critical Error Level 1
reporting method of "CALC".
B The reported Formula Code of "MS-1" is only appropriate for multiple stack Critical Error Level 1
configurations.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Formula Evaluation
Environmental Protection Agency
Page 142 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-20
Check Name: Formula Valid for Location Type
Related Former Checks:
Applicability:
Description: Ensures that formulas codes that are limited to specific location types are only reported at locations of those
types.
Specifications:
Set ValidLocationTypes to
For CurrentFormula where FormulaCodeValid is equal to true:
If CurrentFormula.EquationCode is equal to "MS-2",
If LocationType is NOT equal to "MS",
Set ValidLocationTypes to "multiple stacks".
Return result A.
Results:
Result Response Severity
A [KEY] uses equation code [EQUATIONCD], which is only appropriate for Critical Error Level 1
[LOCATIONTYPE],
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Formula Evaluation
Environmental Protection Agency
Page 143 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FORMULA-18
Check Name: Duplicate Formula Records
Related Former Checks:
Applicability: General Check
Description: This check determines if there is another formula record with the same key fields.
Specifications:
For a Formula record:
Locate another Formula record for the location with a FormulalD that is equal to the FormulalD 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: Monitoring Plan Data Entry Screen Evaluation Formula Evaluation
Environmental Protection Agency
Page 144 of 457
-------
ECMPS Monitoring Plan Check Specifications
Check Category:
Fuel
9/8/2021 12:00:00AM
Environmental Protection Agency
Page 145 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUEL-39
Check Name: Fuel Active Status
Related Former Checks:
Applicability: General Check
Description: This check determines if the current fuel is active during the evaluation period using the Unit Fuel. Start Date
and the UnitFuel.EndDate and the Evaluation Begin and End Dates.
Specifications:
For a UnitFuelData record with consistent Dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Fuel Active to false.
Otherwise,
set Fuel Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the Fuel Evaluation Begin Date to the Evaluation Begin Date.
Otherwise,
set the Fuel Evaluation Begin Date to the BeginDate.
If the EndDate is null or is after the Evaluation End Date,
set the Fuel Evaluation End Date to the Evaluation End Date.
Otherwise,
set the Fuel Evaluation End Date to the EndDate.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Fuel Evaluation
Environmental Protection Agency
Page 146 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FUEL-40
Check Name:
Related Former Checks:
Unit Fuel Demonstration GCV Valid
Applicability:
Description:
General Check
This check determines whether or not the Unit Fuel DemGCV reported is Valid.
Validation Tables:
Dem Method Code (Lookup Table)
Dem Method Code (Lookup Table)
Specifications:
For the UnitFuelData record with a DemGCV that is not null:
Locate record in the Fuel Demonstration Method lookup table where the DEMPARAMETER is equal to 'GCV and the
Dem Method is equal to the DemGCV in the current UnitFuelData record.
If not found,
return result A.
If found, and the Fuel Group is not null,
If the Fuel Group is not equal to "GAS" or "OIL",
return result B.
Results:
Result
A
Response
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You have provided the demonstration method for GCV monthly fuel sampling or %S
daily or annual fuel sampling for [key] but this information is not appropriate for this
Severity
Critical Error Level 1
B
Critical Error Level 1
fuel.
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Unit Fuel Evaluation
Current Fuel Active Equals true
Monitoring Plan Data Entry Screen Evaluation Unit Fuel Evaluation
Environmental Protection Agency
Page 147 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FUEL-41
Check Name:
Unit Fuel Demonstration S02 Valid
Related Former Checks: ARP-32A
Applicability:
Description:
General Check
This check determines whether or not the Unit Fuel DemS02 reported is Valid.
Validation Tables:
Dem Method Code (Lookup Table)
Dem Method Code (Lookup Table)
Specifications:
For the UnitFuelData record with a DemS02 that is not null:
Locate record in the Fuel Demonstration Method lookup table where the DEMPARAMETER is equal to 'SULFUR' and the
Dem Method is equal to the DemS02 in the current UnitFuelData record.
If not found,
return result A.
If found, and the Fuel Group is not null,
If the Fuel Group is not equal to "GAS" or "OIL",
return result B.
Results:
Result
A
Response
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You have provided the demonstration method for GCV monthly fuel sampling or %S
daily or annual fuel sampling for [key] but this information is not appropriate for this
Severity
Critical Error Level 1
B
Critical Error Level 1
fuel.
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Unit Fuel Evaluation
Current Fuel Active Equals true
Monitoring Plan Data Entry Screen Evaluation Unit Fuel Evaluation
Environmental Protection Agency
Page 148 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FUEL-42
Check Name:
Related Former Checks:
Unit Fuel Begin Date Valid
Applicability:
Description:
General Check
This check determines whether or not the BeginDate in the UnitFuelData record is valid.
Specifications:
For the UnitFuelData record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1930 or later than Maximum Future Date,
return result B.
If either the Commence Operation Date or Commercial Operation Date of the unit is not null, and the BeginDate is prior to the
earlier of the Commence Operation Date or Commercial Operation Date,
return result C.
Results:
Result
A
B
Response
You have not reported the required value in the field [fieldname] for [key].
You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
You reported a BeginDate of [date], which is earlier than the date reported as the
commence operation (CO) or commence commercial operation (CCO) date. If the fuel
began to be used between the CO and CCO dates and you have only reported the CCO
date, use the CCO date as the BeginDate to eliminate this error.
Severity
Fatal
Critical Error Level 1
C
Non-Critical Error
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Fuel Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Fuel Evaluation
Environmental Protection Agency
Page 149 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: FUEL-43
Check Name: Unit Fuel End Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not End Date is valid.
Specifications:
For the UnitFuelData record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Unit Fuel Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Fuel Evaluation
Environmental Protection Agency
Page 150 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUEL-44
Check Name: Fuel Dates Consistent
Related Former Checks:
Applicability: General Check
Description: This check determines if the Fuel Start Date is prior to the Fuel End Date.
Specifications:
For the UnitFuelData record:
If the BeginDate is valid and the EndDate is valid,
If EndDate is not null, and the BeginDate is after the EndDate,
set Fuel Dates Consistent to false, and return result A.
Otherwise,
set Fuel Dates Consistent to true.
Otherwise,
set Fuel Dates Consistent to false.
Results:
Result Response Severity
A You reported [datefield2] which is prior to [datefieldl] for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Fuel Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Fuel Evaluation
Environmental Protection Agency
Page 151 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUEL-45
Check Name: Unit Fuel Code Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the FuelCode in the UnitFuelData record reported is Valid.
Validation Tables:
Fuel Code (Lookup Table)
Fuel Code (Lookup Table)
Specifications:
For the UnitFuelData record:
If the FuelCode is null,
return result A.
Otherwise,
Locate FuelCode in the Fuel Code Lookup Table.
If found,
set Fuel Group to the Fuel Group in the retrieved record.
If not found,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B 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: Monitoring Plan Evaluation Report Unit Fuel Evaluation
Conditions: Current Fuel Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Fuel Evaluation
Environmental Protection Agency
Page 152 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FUEL-46
Check Name:
Related Former Checks:
Fuel Consistent with Unit Type
Applicability:
Description:
General Check
This check determines if the fuel type is consistent with the Unit Type Reported.
Specifications:
For a Fuel record with a FuelCode equal to "C":
Locate all Unit Type records for the unit where the UnitTypeCode is equal to "CT", "CC", "ICE", or "OT", the BeginDate is on or
before the Fuel Evaluation End Date, and the EndDate is null or is on or after the Fuel Evaluation Start Date.
If found,
return result A.
Results:
Result
A
Response
The fuel type for [key] is not appropriate for this type of unit.
Severity
Non-Critical Error
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Unit Fuel Evaluation
Current Fuel Active Equals true
Environmental Protection Agency
Page 153 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FUEL-48
Check Name:
Fuel Demonstration Methods Consistent with Method
Related Former Checks: ARP-32B
Applicability:
Description:
General Check
This check determines if the presence of GCV and % S Dem Methods is consistent with the monitoring
method reported.
Specifications:
For the Unit Fuel record with a valid non-null DemGCV or a valid non-null DemS02:
Locate a MonitoringMethod record where the location is the unit in the fuel record, the MethodCode begins with "AD", a
BeginDate that is on or before the Fuel Evaluation End Date, and an EndDate that is null or is on or after the Fuel Evaluation
Start Date.
Locate all UnitStackConfiguration records where the unit location is unit in the Unit Fuel record, the associated
StackPipelD begins with "CP" or "MP", the BeginDate is on or before the Fuel Evaluation End Date, and the EndDate is
null or is on or after the Fuel Evaluation Start Date.
If no UnitStackConfiguration records are found,
return result A.
Locate MonitoringMethod records where the location is any stack/pipe location in the retrieved Unit Stack
Configuration records, the MethodCode begins with "AD", the BeginDate is on or before the Fuel Evaluation End
Date, and the EndDate is null or is on or after the Fuel Evaluation Start Date.
If no records are found,
return result A.
If not found,
Otherwise,
Results:
Result
A
Response
You have provided the demonstration method for GCV monthly fuel sampling or for
%S daily or annual fuel sampling for [key], but you did not indicate the use of
Appendix D for this unit.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Unit Fuel Evaluation
Current Fuel Active Equals true
Environmental Protection Agency
Page 154 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUEL-49
Check Name: Unit Fuel Ozone Season Indicator Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the ozone season indicator is consistent with the Primary/Secondary Fuel indicator.
Specifications:
For the UnitFuelData record:
If the OzoneSeasonlndicator is equal to "1" and the IndicatorCode is not equal to "S",
return result A.
Results:
Result Response Severity
A The ozone season indicator only applies to secondary fuels, but you have reported this Critical Error Level 1
indicator for a non-secondary fuel for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Fuel Evaluation
Conditions: Current Fuel Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Fuel Evaluation
Environmental Protection Agency
Page 155 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUEL-51
Check Name: Unit Fuel Primary/Secondary Indicator Code Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the Primary/Secondary Fuel indicator code is valid.
Validation Tables:
Indicator Code (Lookup Table)
Indicator Code (Lookup Table)
Specifications:
For the UnitFuelData record:
If the IndicatorCode is null,
return result A.
Otherwise,
Locate IndicatorCode in the Fuel Indicator Code Lookup Table.
If not found,
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 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: Monitoring Plan Evaluation Report Unit Fuel Evaluation
Conditions: Current Fuel Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Fuel Evaluation
Environmental Protection Agency
Page 156 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FUEL-52
Check Name:
Related Former Checks:
Duplicate Unit Fuel Records
Applicability:
Description:
Specifications:
General Check
This check determines if there is another UnitFuel record with the same key fields.
For a Unit Fuel record:
Locate another Fuel record for the location with a FuelCode equal to the FuelCode in the current record and BeginDate that is
equal to the BeginDate in the current record.
If found,
return result A.
If not found, and the EndDate in the current record is not null,
Locate another UnitFuel record for the unit with a FuelCode equal to the FuelCode in the current record and EndDate that
is equal to the EndDate 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: Monitoring Plan Data Entry Screen Evaluation Unit Fuel Evaluation
Environmental Protection Agency
Page 157 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Fuel Flow
Environmental Protection Agency
Page 158 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUELFLW-2
Check Name: Fuel Flow Maximum Fuel Flow Rate Valid
Related Former Checks:
Applicability: Appendix D Check
Description: This check determines if the Maximum Fuel Flow Rate reported is valid.
Specifications:
For a MonitoringSystemFuelFlowData record:
If the MaximumFuelFlowRate is null,
return result A.
Otherwise,
If the MaximumFuelFlowRate is not greater than zero,
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. This value must be greater than zero.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System FuelFlow Evaluation
Conditions: Current Fuel Flow Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System FuelFlow Evaluation
Environmental Protection Agency
Page 159 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FUELFLW-3
Check Name:
Related Former Checks:
Fuel Flow Begin Date Valid
Applicability:
Description:
Appendix D Check
Determines if fuel flow Begin date is valid.
Specifications:
For a MonitoringSystemFuelFlowData record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result
A
B
Response
You have not reported the required value in the field [fieldname] 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
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System FuelFlow Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation System FuelFlow Evaluation
Environmental Protection Agency
Page 160 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUELFLW-4
Check Name: Fuel Flow Begin Hour Valid
Related Former Checks:
Applicability: Appendix D Check
Description: Determines if monitoring system Begin hour is valid.
Specifications:
For a MonitoringSystemFuelFlowData record:
If BeginHour is null,
return result A.
If BeginHour is less than 0 or greater than 23
return result B.
Results:
Result
A
B
Usage:
1
1
Response
You have not reported the required value in the field [fieldname] for [key].
You reported a [Fieldname] of [Hour], which is outside the range of acceptable values
for this hour for [key].
Process/Category:
Process/Category:
Severity
Critical Error Level 1
Critical Error Level 1
Monitoring Plan Evaluation Report System FuelFlow Evaluation
Monitoring Plan Data Entry Screen Evaluation System FuelFlow Evaluation
Environmental Protection Agency
Page 161 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: FUELFLW-5
Check Name: Fuel Flow End Date Valid
Related Former Checks:
Applicability: Appendix D Check
Description: Determines if fuel flow end date is valid.
Specifications:
For a MonitoringSystemFuelFlowData record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report System FuelFlow Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System FuelFlow Evaluation
Environmental Protection Agency
Page 162 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUELFLW-6
Check Name: Fuel Flow End Hour Valid
Related Former Checks:
Applicability: Appendix D Check
Description: Determines if monitoring system end hour is valid.
Specifications:
For a MonitoringSystemFuelFlowData record:
If EndHour is not null, and is less than 0 or greater than 23
return result A.
Results:
Result Response Severity
A You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System FuelFlow Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System FuelFlow Evaluation
Environmental Protection Agency
Page 163 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUELFLW-7
Check Name: Fuel Flow Dates and Hours Consistent
Related Former Checks:
Applicability: Appendix D Check
Description: Fuel Flow Start Date and Hour should be prior to the Fuel Flow End Date and Hour. Also cannot report end
date without end hour, or vice versa.
Specifications:
For a MonitoringSystemFuelFlowData record:
If the EndDate is valid and not null, and the EndHour is null,
set System FuelFlow Dates and Hours Consistent to false, and return result A.
If the EndHour is valid and not null, and the EndDate is null,
set System FuelFlow Dates and Hours Consistent to false, and return result B.
If the BeginDate, BeginHour, EndDate, and EndHour are all valid,
If the EndDate is not null, and the BeginDate and BeginHour is after the EndDate and EndHour,
set System FuelFlow Dates and Hours Consistent to false, return result C.
Otherwise,
set System FuelFlow Dates and Hours Consistent to true.
Otherwise,
set System FuelFlow Dates and Hours Consistent to false.
Results:
Result
A
B
C
Usage:
1
1
Response
You reported [datefield2] but did not report an [hourfield2] for [key].
You reported [hourfield2] but did not report [datefield2] for [key].
You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and
[hourfieldl] for [key].
Process/Category:
Process/Category:
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Monitoring Plan Evaluation Report System FuelFlow Evaluation
Monitoring Plan Data Entry Screen Evaluation System FuelFlow Evaluation
Environmental Protection Agency
Page 164 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUELFLW-8
Check Name: Fuel Flow Maximum Fuel Flow Rate Source Code Valid
Related Former Checks:
Applicability: Appendix D Check
Description: This check determines if the Maximum Fuel Flow Rate Source Code reported is valid.
Validation Tables:
Max Rate Source Code (Lookup Table)
Max Rate Source Code (Lookup Table)
Specifications:
For a MonitoringSystemFuelFlowData record:
If the MaximumFuelFlowRateSourceCode is null,
return result A.
Otherwise,
Locate the MaximumFuelFlowRateSourceCode in the Fuel Flow Maximum Rate Source Code Lookup Table.
If not found,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Critical Error Level 1
B 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: Monitoring Plan Evaluation Report System FuelFlow Evaluation
Conditions: Current Fuel Flow Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System FuelFlow Evaluation
Environmental Protection Agency
Page 165 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUELFLW-10
Check Name: Fuel Flow Units of Measure Code Valid
Related Former Checks: NBP-67
Applicability: Appendix D Check
Description: This check determines if the MonitoringSystemFuelFlowData UnitsOfMeasure Code is valid.
Validation Tables:
Parameter UOM (Complex Lookup Table)
System Type Code (Complex Lookup Table)
Units Of Measure Code (Lookup Table)
Parameter UOM (Complex Lookup Table)
System Type Code (Complex Lookup Table)
Units Of Measure Code (Lookup Table)
Specifications:
For a MonitoringSystemFuelFlowData record:
If the UnitsOfMeasureCode is null,
return result A.
Otherwise,
Locate the MonitoringSystemFuelFlowData UnitsOfMeasureCode in the Parameter Units of Measure Lookup Table where
the ParameterCode is equal to the System Parameter Code and the UnitsOfMeasure is equal to the UnitsOfMeasure in the
MonitoringSystemFuelFlowData record.
If not found,
Locate the UnitsOfMeasure in the Units of Measure Code Lookup Table.
If not found,
return result B.
If found,
return result C.
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 You defined a Units of Measure of [value] that is inappropriate for the system type for
[key].
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Seventy
Fatal
Fatal
Critical Error Level 1
Monitoring Plan Evaluation Report System FuelFlow Evaluation
Current Fuel Flow Active Equals true
Monitoring Plan Data Entry Screen Evaluation System FuelFlow Evaluation
Environmental Protection Agency
Page 166 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: FUELFLW-11
Check Name: Fuel Flow Active Status
Related Former Checks:
Applicability: Appendix D Check
Description: This check determines if the Fuel Flow record is active within the Evaluation Period based on Fuel Flow Begin
Date and Fuel Flow End Date.
Specifications:
For a MonitoringSystemFuelFlowData record with consistent dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Current Fuel Flow Active to false.
Otherwise,
set Current Fuel Flow Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the Fuel Flow Evaluation Begin Date to the Evaluation Begin Date,
set the Fuel Flow Evaluation Begin Hour to 0.
Otherwise,
set the Fuel Flow Evaluation Begin Date to the BeginDate.
set the Fuel Flow Evaluation Begin Hour to the BeginHour.
If the EndDate is null or is after the Evaluation End Date,
set the Fuel Flow Evaluation End Date to the Evaluation End Date,
set the Fuel Flow Evaluation End Hour to 23.
Otherwise,
set the Fuel Flow Evaluation End Date to the EndDate.
set the Fuel Flow Evaluation End Hour to the EndHour.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System FuelFlow Evaluation
Environmental Protection Agency
Page 167 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FUELFLW-17
Check Name:
Related Former Checks:
Overlapping Fuel Flow Records
Applicability:
Description:
Appendix D Check
This check determines if for a valid MonitoringSystemFuelFlowData record if there is another
MonitoringSystemFuelFlowData record with the start and end dates for the second found overlapping with the
start and end dates for the first.
Specifications:
For a SystemFuelFlow record with consistent dates:
Locate another SystemFuelFlow record for the system with a BeginDate/BeginHour that is on or after the BeginDate/BeginHour in
the current record and is on or before the Fuel Flow Evaluation End Date/Hour, and an EndDate/EndHour that is null or is on or
after the Fuel Flow Evaluation Start Date/Hour.
If found,
return result A.
Results:
Result
A
Response
You have reported more than one associated fuel flow record for System ID [System
ID] with overlapping start and end times during the evaluation period.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report System FuelFlow Evaluation
Current Fuel Flow Active Equals true
Environmental Protection Agency
Page 168 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FUELFLW-18
Check Name:
Related Former Checks:
System and FuelFlow Dates Consistent
Applicability:
Description:
General Check
This check determines if the System FuelFlow Begin and End Date/Hour is consistent with its System Begin
and End Date/Hour.
Specifications:
For a MonitoringSystemFuelFlowData record with consistent dates and an associated Monitoring System record with consistent dates:
If the BeginDate in the current Monitoring System record is after the BeginDate in the current SystemFuelFlow record
If the BeginDate in the current Monitoring System record is equal to the BeginDate in the current SystemFuelFlow record, and the
BeginHour in the current Monitoring System record is after the BeginHour in the current SystemFuelFlow record,
return result A.
If the EndDate in the current Monitoring System record is not null, and the EndDate in the current SystemFuelFlow record is null,
return result A.
If the EndDate in the current Monitoring System record is prior to the EndDate in the current SystemFuelFlow record,
return result A.
If the EndDate in the current Monitoring System record is equal to the EndDate in the current SystemFuelFlow record, and the
EndHour in the current Monitoring System record is prior to the EndHour in the current SystemFuelFlow record,
return result A.
return result A.
Results:
Result
A
Response
The Start and End Date/Hour for [key] is inconsistent with the Start and End
Date/Hour for the associated monitoring system.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report System FuelFlow Evaluation
Current Fuel Flow Active Equals true
Environmental Protection Agency
Page 169 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
FUELFLW-19
Check Name:
Related Former Checks:
Duplicate System Fuel Flow Records
Applicability:
Description:
General Check
This check determines if there is another system fuel flow record with the same key fields.
Specifications:
For a System Fuel Flow record:
Locate another System Fuel Flow record for the system with a BeginDate/Hour equal to the BeginDate/Hour in the current record.
If found,
return result A.
If not found, and the EndDate in the current record is not null.,
Locate another System Fuel Flow record for the system with an End Date/Hour equal to the EndDate/Hour 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: Monitoring Plan Data Entry Screen Evaluation System FuelFlow Evaluation
Environmental Protection Agency
Page 170 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Load
Environmental Protection Agency
Page 171 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
LOAD-1
Check Name:
Load Analysis Date Valid
Related Former Checks: ARP-31A/B
Applicability:
Description:
Specifications:
General Check
This check determines whether or not the value reported for the Load Analysis Date is Valid.
For CurrentLoad:
If LoadLevelsRequired is equal to false,
If the CurrentL oad. Load A na ly s i sD a t c is not null,
If MethodRecords exist for the location where:
1) MethodCode in list "LME", "LTFF" or "MHHI".
2) If CurrentL«
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
D
E
Response
You have provided extraneous data in [fieldname] in the Monitor Load record for
[key]. This information is generally not required for a location without CEMs or for a
peaking unit or a stack serving only peaking units.
For [key] you have not provided required data in [fieldname] for a non-peaking unit.
You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
You reported [datefield2] which is prior to [datefieldl] for [key].
For [key] you have not provided required data in [fieldname] for a non-peaking unit.
You must provide this information as soon as you have conducted a load analysis.
You have provided extraneous data in [fieldname] in the Monitor Load record for
[key]. This information is generally not required for a location without CEMs or for a
peaking unit or a stack serving only peaking units.
Severity
Non-Critical Error
Critical Error Level 1
Critical Error Level 1
Informational Message
Informational Message
Informational Message
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Load Active Equals true
¦ Load Evaluation
Environmental Protection Agency
Page 173 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: LOAD-2
Check Name: Load Begin Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the MonitoringLoadData BeginDate is valid.
Specifications:
For the MonitoringLoadData record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] 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: Monitoring Plan Evaluation Report Load Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Environmental Protection Agency
Page 174 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-3
Check Name: Load Begin Hour Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the MonitoringLoadData BeginHour is valid.
Specifications:
For the MonitoringLoadData record:
If BeginHour is null,
return result A.
If BeginHour is less than 0 or greater than 23
return result B.
Results:
Result
A
B
Usage:
1
1
Response Severity
You have not reported the required value in the field [fieldname] for [key]. Fatal
You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Process/Category:
Process/Category:
Monitoring Plan Evaluation Report Load Evaluation
Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Environmental Protection Agency
Page 175 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: LOAD-4
Check Name: Load End Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the MonitoringLoadData EndDate is valid.
Specifications:
For the MonitoringLoadData record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Load Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Environmental Protection Agency
Page 176 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: LOAD-5
Check Name: Load End Hour Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the MonitoringLoadData EndHour is valid.
Specifications:
For the MonitoringLoadData record:
If EndHour is not null, and is less than 0 or greater than 23
return result A.
Results:
Result Response Severity
A You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Load Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Environmental Protection Agency
Page 177 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-6
Check Name: Load Dates and Hours Consistent
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the MonitoringLoadData Begin Date and Hour and End Date and Hour
are consistent.
Specifications:
For the MonitoringLoadData record:
If the EndDate is valid and not null, and the EndHour is null,
set Load Dates and Hours Consistent to false, and return result A.
If the EndHour is valid and not null, and the EndDate is null,
set Load Dates and Hours Consistent to false, and return result B.
If the BeginDate, BeginHour, EndDate, and EndHour are all valid,
If the EndDate is not null, and the BeginDate and BeginHour is after the EndDate and EndHour,
set Load Dates and Hours Consistent to false, return result C.
Otherwise,
set Load Dates and Hours Consistent to true.
Results:
Result
A
B
C
Usage:
1
1
Response
You reported [datefield2] but did not report an [hourfield2] for [key].
You reported [hourfield2] but did not report [datefield2] for [key].
You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and
[hourfieldl] for [key].
Process/Category:
Process/Category:
Monitoring Plan Evaluation Report Load Evaluation
Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 178 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-7
Check Name: Load Active Status
Related Former Checks:
Applicability: General Check
Description: This check determines if the Load is active within the Evaluation Period based on Load Begin Date and Load
End Date.
Specifications:
For a MonitoringLoadData record with consistent Dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Load Active to false.
Otherwise,
set Load Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the Load Evaluation Begin Date to the Evaluation Begin Date,
set the Load Evaluation Begin Hour to 0.
Otherwise,
set the Load Evaluation Begin Date to the BeginDate.
set the Load Evaluation Begin Hour to the BeginHour.
If the EndDate is null or is after the Evaluation End Date,
set the Load Evaluation End Date to the Evaluation End Date,
set the Load Evaluation End Hour to 23.
Otherwise,
set the Load Evaluation End Date to the EndDate.
set the Load Evaluation End Hour to the EndHour.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Load Evaluation
Environmental Protection Agency
Page 179 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-8
Check Name: Maximum Load Value Valid
Related Former Checks: ARP-70A
Applicability: General Check
Description: This check determines whether or not the value reported for the Maximum Load Value is Valid.
Specifications:
For a MonitoringLoadData Record:
If the Non Load Based Indicator is equal to 1,
If the MaximumLoadValue is not null,
return result A.
Otherwise,
If the MaximumLoadValue is null,
return result B.
Otherwise,
If the MaximumLoadValue is less than or equal to zero,
return result C.
Results:
Result
A
B
C
Response
You have indicated that this unit/stack is a non-load-based unit/stack, but you have
reported maximum hourly load information. Non-load-based units and stacks should
not report maximum hourly load.
You have indicated that this unit/stack is a load-based unit/stack, but you have not
reported maximum hourly load information. Load-based units and stacks must report
maximum hourly load.
The value [value] in the field [fieldname] for [key] is not within the range of valid
values. This value must be greater than zero.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
1
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report Load Evaluation
Current Load Active Equals true
Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Environmental Protection Agency
Page 180 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
LOAD-9
Check Name:
Load Upper Operation Boundary Valid
Related Former Checks: ARP-30
Applicability:
Description:
General Check
This check determines whether or not the value reported for the MonitoringLoadData
UpperOperationBoundary is Valid.
Specifications:
For the MonitoringLoadData Record:
If Range of Operation Required is equal to true,
If the UpperOperationBoundary is null,
return result A.
Otherwise,
If the UpperOperationBoundary is not greater than zero,
return result B.
If the UpperOperationBoundary is greater than the MaximumLoadValue and MaximumLoadValue is greater than
0,
return result C.
Results:
Result
A
B
Response
You have not reported the required value in the field [fieldname] 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.
The Upper Boundary Range provided for [key] exceeds the maximum hourly gross
load in Monitor Load record data.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Load Evaluation
Current Load Active Equals true
Environmental Protection Agency
Page 181 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
LOAD-10
Check Name:
Related Former Checks:
Load Lower Operation Boundary Valid
Applicability:
Description:
General Check
This check determines whether or not the value reported for the MonitoringLoadData
LowerOperationBoundary is Valid.
Specifications:
For the MonitoringLoadData Record:
If Range of Operation Required is equal to true,
If the LowerOperationBoundary is null,
return result A.
Otherwise,
If the LowerOperationBoundary is less than zero,
return result B.
If the LowerOperationBoundary is greater than or equal to the UpperOperationBoundary and
UpperOperationBoundary is greater than 0,
return result C.
Results:
Result
A
B
Response
You have not reported the required value in the field [fieldname] 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.
The Lower Boundary Range provided for [key] exceeds the Upper Boundary Range in
Monitor Load record data.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Load Evaluation
Current Load Active Equals true
Environmental Protection Agency
Page 182 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-11
Check Name: Load Normal Level Code Valid
Related Former Checks: ARP-31A/B
Applicability: General Check
Description: This check determines whether or not the value reported for the MonitoringLoadData Normal Level Code is
Valid.
Specifications:
For a MonitoringLoadData Record:
If Load Levels Required is equal to false,
If the NormalLevelCode is not null,
return result A.
Otherwise,
If NormalLevelCode is null,
If the current system date is more than 180 days after the earliest CommenceCommercialOperationDate in the
Current Location record,
return result B.
Otherwise,
return result D.
Otherwise,
If the NormalLevelCode is not equal to "H", "L", or "M",
return result C.
Results:
Result
A
B
C
D
Response
You have provided extraneous data in [fieldname] in the Monitor Load record for
[key]. This information is generally not required for a location without CEMs or for a
peaking unit or a stack serving only peaking units.
For [key] you have not provided required data in [fieldname] for a non-peaking unit.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
For [key] you have not provided required data in [fieldname] for a non-peaking unit.
You must provide this information as soon as you have conducted a load analysis (or
prior to the completion of any certification RATA).
Severity
Non-Critical Error
Critical Error Level 1
Critical Error Level 1
Informational Message
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Load Active Equals true
¦ Load Evaluation
Environmental Protection Agency
Page 183 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-12
Check Name: Load Second Level Code Valid
Related Former Checks: ARP-31A/B
Applicability: General Check
Description: This check determines whether or not the value reported for the MonitoringLoadData Second Level Code is
Valid.
Specifications:
For a MonitoringLoadData Record:
If Load Levels Required is equal to false,
If the SecondLevelCode is not null,
return result A.
Otherwise,
If SecondLevelCode is null,
If NormalLevelCode is not null
return result B.
Otherwise,
If the SecondLevelCode is not equal to "H", "L", or "M",
return result C.
Otherwise,
If SecondLevelCode is equal to the NormalLevelCode,
return result D.
Results:
Result
A
B
C
D
Response
You have provided extraneous data in [fieldname] in the Monitor Load record for
[key]. This information is generally not required for a location without CEMs or for a
peaking unit or a stack serving only peaking units.
For [key] you have not provided required data in [fieldname] for a non-peaking unit.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You reported the same value [value] for both the NormalLevelCode and
SecondLevelCode for [key]. The NormalLevelCode and the SecondLevelCode cannot
be the same.
Severity
Non-Critical Error
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Load Active Equals true
¦ Load Evaluation
Environmental Protection Agency
Page 184 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-13
Check Name: Maximum Load Units of Measure Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the value reported for the MonitoringLoadData Maximum Load Units of
Measure is Valid.
Validation Tables:
Parameter UOM (Complex Lookup Table)
Parameter UOM (Complex Lookup Table)
Specifications:
For a MonitoringLoadData record:
Set Maximum Load Units of Measure Valid to true.
If the Non Load Based Indicator is 1,
If the MaximumLoadUnitsOfMeasureCode is not null,
set Maximum Load Units of Measure Valid to false, and return result A.
Otherwise,
If the MaximumLoadUnitsOfMeasureCode is null,
set Maximum Load Units of Measure Valid to false, and return result B.
Otherwise,
Locate the MaximumLoadUnitsOfMeasureCode in the Parameter Units of Measure Lookup Table where the
ParameterCode is equal to "LOAD" and the UnitsOfMeasure is equal to the MaximumLoadUnitsOfMeasure.
If not found,
set Maximum Load Units of Measure Valid to false, and return result C.
Results:
Result
A
B
C
Usage:
1
1
Response
You have reported a Maximum Load Units of Measure value for [key]. However, this
value should only be reported for load based locations.
You have not reported the required value 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].
Process/Category: Monitoring Plan Evaluation Report Load Evaluation
Conditions: Current Load Active Equals true
Process/Category: Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 185 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
LOAD-17
Check Name:
Overlapping Loads
Related Former Checks: ARP-29B
Applicability:
Description:
General Check
This check determines if for the monitoring location if is there another load record with the start and end dates
for the second matching load found overlapping with the start and end dates of the first matching load found.
Specifications:
For a MonitoringLoadData record with consistent dates:
Locate another MonitoringLoad record for the location with a BeginDate/BeginHour that is on or after the BeginDate/BeginHour
in the current record and is on or before the Load Evaluation End Date/EndHour, and an EndDate/EndHour that is null or is on or
after the Load Evaluation Begin Date/BeginHour.
If found,
return result A.
Results:
Result
A
Response
You have submitted overlapping active Load records for [key] defining the Range of
Operation for a CEMS unit/stack. There may only be one active Load record at any
time within the evaluation period.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Load Evaluation
Current Load Active Equals true
Environmental Protection Agency
Page 186 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-19
Check Name: Load Units of Measure Consistent Across Linked Locations
Related Former Checks: NBP-5
Applicability: General Check
Description: This check determines if the MaximumLoadUnitsOfMeasure is Consistent Across Locations at a Common
Stack or Pipe or Multiple Stack or Pipe in situations where all associated units are load based units.
Specifications:
For a Load record with a valid maximum load Units of Measure:
If the Location Type does not begin with "U", the Location Non Load Based Indicator is not equal to 1,
Locate all MpUnitStackConfiguration records where the stack location is the location in the Load record, the BeginDate is
on or before the Load Evaluation End Date and the EndDate is null or is on or after the Load Evaluation Start Date.
For each MpUnitStackConfiguration record found,
Locate all Load records where the location is the unit location in the MpUnitStackConfiguration record, the
BeginDate/Hour is on or before the Load Evaluation End Date and End Hour and the EndDate is null or the
EndDate/Hour is on or after the Load Evaluation Start Date and Start Hour.
For any record found:
If the MaximumLoadUnitsOfMeasure for the unit is not null, and is not equal to
MaximumLoadUnitsOfMeasure for the stack or pipe,
return result A.
Results:
Result Response Severity
A You reported the units of measure for maximum load for this stack or pipe as [value], Critical Error Level 1
but the units of measure for maximum load(s) for the associated unit(s) were not
reported with the same units of measure. The maximum load for stacks or pipes and
associated units must be reported with the same units of measure.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Load Evaluation
Conditions: Current Load Active Equals true
Environmental Protection Agency
Page 187 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-20
Check Name: Determine Load Requirement
Related Former Checks:
Applicability: General Check
Description: This check determines what data location must report in the load record.
Specifications:
For the Monitor Load record:
Set Range of Operation Required and Load Levels Required to false.
Locate a Monitoring System record for the location where the SystemTypeCode is equal to "S02", "S02R", "NOX", "NOXC",
"C02", "02", "FLOW","HG", "HCL", or "HF" the BeginDate/Hour is on or before the Load Evaluation End Date and End Hour,
and the EndDate is null or the EndDate/Hour is on or after the Load Evaluation Start Date and Start Hour.
If found,
set Range of Operation Required to true.
If Location Type begins with "U",
Locate all MonitorQualification records where the location is the location in the Monitor Load record
QualificationTypeCode is equal to "PK" or "SK", the BeginDate is on or before the Load Evaluation End Date
and the EndDate is null or is on or after the Load Evaluation Start Date.
If not found, or if the Begin and End Dates of the retrieved records do not span the entire evaluation period,
set Load Levels Required to true.
Otherwise,
Locate all UnitStackConfiguration records where the stack location is the location in the Load record, the
BeginDate is on or before the Load Evaluation End Date and the EndDate is null or is on or after the Load
Evaluation Start Date.
For each UnitStackConfiguration record found,
Locate all MonitorQualification records where the location is the unit location in the
UnitStackConfiguration record, the QualificationTypeCode is equal to "PK" or "SK", the BeginDate is on
or before the Load Evaluation End Date and the EndDate is null or is on or after the Load Evaluation
Start Date.
If not found for any unit, or if the Begin and End Dates of the retrieved records for any unit do not span
the entire evaluation period,
set Load Levels Required to true.
If not found,
Locate a QA Supp record for the location where the TestTypeCode is equal to "FF2LTST", the last day of the Quarter/Year
is on or before the Load Evaluation End Date and End Hour, and the first day of the Quarter/Year is on or after the Load
Evaluation Start Date and Start Hour.
If found,
set Range of Operation Required to true.
Results:
Result Response Severity
Environmental Protection Agency
Page 188 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Load Evaluation
Conditions: Current Load Active Equals true
Environmental Protection Agency
Page 189 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-21
Check Name: Second Normal Indicator Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether the SecondNormallndicator in the MonitoringLoadData record is valid.
Specifications:
For a MonitoringLoadData Record:
If Load Levels Required is equal to false,
If the SecondLevellndicator is not null,
return result A.
Otherwise,
If the SecondLevellndicator is null,
If SecondLevelCode is not null,
return result B.
Results:
Result Response Severity
A You have provided extraneous data in [fieldname] in the Monitor Load record for Non-Critical Error
[key]. This information is generally not required for a location without CEMs or for a
peaking unit or a stack serving only peaking units.
B For [key] you have not provided required data in [fieldname] for a non-peaking unit. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Load Evaluation
Conditions: Current Load Active Equals true
Environmental Protection Agency
Page 190 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
LOAD-22
Check Name:
Related Former Checks:
Duplicate Load Records
Applicability:
Description:
Specifications:
General Check
This check determines if there is another load record with the same key fields.
For a Load record:
Locate another Load record for the location with a BeginDate/Hour equal to the BeginDate/Hour in the current record.
If found,
return result A.
If not found, and the EndDate in the current record is not null.,
Locate another Load record for the location with an End Date/Hour equal to the EndDate/Hour 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: Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Environmental Protection Agency
Page 191 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-23
Check Name: Load Analysis Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the value reported for the Load Analysis Date is Valid.
Specifications:
For a MonitoringLoadData Record:
If the LoadAnalysisDate is not null,
If LoadAnalysisDate is prior to 1/1/1993,
return result A.
If the BeginDate is not null and the LoadAnalysisDate is later than the BeginDate,
return result B.
Results:
Result Response
A You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
B You reported [datefield2] which is prior to [datefieldl] for [key].
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 192 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-24
Check Name: Load Upper Operation Boundary Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the value reported for the MonitoringLoadData
UpperOperationBoundary is Valid.
Specifications:
For the MonitoringLoadData Record:
If the UpperOperationBoundary is not null,
If the UpperOperationBoundary is not greater than zero,
return result A.
If the UpperOperationBoundary is greater than the MaximumLoadValue and MaximumLoadValue is greater than 0,
return result B.
Results:
Result Response Severity
A You defined an invalid [fieldname] for [key]. This value must be greater than zero and Critical Error Level 1
less than 20,000.
B The Upper Boundary Range provided for [key] exceeds the maximum hourly gross Critical Error Level 1
load in Monitor Load record data.
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Environmental Protection Agency
Page 193 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: LOAD-25
Check Name: Load Lower Operation Boundary Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the value reported for the MonitoringLoadData
LowerOperationBoundary is Valid.
Specifications:
For the MonitoringLoadData Record:
If the LowerOperationBoundary is not null,
If the LowerOperationBoundary is less than zero,
return result A.
If the LowerOperationBoundary is greater than or equal to the UpperOperationBoundary and UpperOperationBoundary is
greater than 0,
return result B.
Results:
Result Response Severity
A You defined an invalid [fieldname] for [key]. This value must be greater than zero and Critical Error Level 1
less than 20,000.
B The Lower Boundary Range provided for [key] exceeds the Upper Boundary Range in Critical Error Level 1
Monitor Load record data.
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Environmental Protection Agency
Page 194 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
LOAD-26
Check Name:
Load Level Codes Valid
Related Former Checks:
Applicability:
General Check
Description:
Specifications:
For a MonitoringLoad record with either a NormalLevelCode or SecondLevelCode that is not null:
If both NormalLevelCode and SecondLevelCode are not null and SecondLevelCode is equal to the NormalLevelCode,
return result A.
If SecondNormallndicator is null,
return result B.
Results:
Result
A
Response
You reported the same value [value] for both the NormalLevelCode and
SecondLevelCode for [key]. The NormalLevelCode and the SecondLevelCode cannot
be the same.
You did not provide [fieldname], which is required for [key].
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Load Evaluation
Environmental Protection Agency
Page 195 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Location
Environmental Protection Agency
Page 196 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-2
Check Name:
Related Former Checks:
Location Type
Applicability:
Description:
General Check
This check determines the type of stack, pipes, or unit associated with the monitor location.
Specifications:
For the monitoring location:
Set Location Type to
Set Location Type Description to
If the UnitID of the monitoring location is not null,
Locate all Unit Stack Configuration records where the unit location is the monitoring location, the BeginDate is on or
before the Evaluation End Date, and an EndDate that is null or on or after the Evaluation Begin Date.
If there is at least one record with an associated StackPipelD that begins with "CS" or "MS", and at least one record with
a StackPipelD that begins with "CP" or "MP",
set Location Type to "UB" and Location Type Description to "unit with associated stacks and pipes".
If there is at least one record with an associated StackPipelD that begins with "CS" or "MS", and no records with a
StackPipelD that begins with "CP" or "MP",
set Location Type to "US" and Location Type Description to "unit with associated stacks but no pipes".
If there is at least one record with an associated StackPipelD that begins with "CP" or "MP", and no records with a
StackPipelD that begins with "CS" or "MS",
set Location Type to "UP" and Location Type Description to "unit with associated pipes but no stacks".
If there are no records found,
set Location Type to "U" and Location Type Description to "unit without associated stacks or pipes".
If the StackPipelD of the monitoring location begins with "CS",
set Location Type to "CS" and Location Type Description to "common stack".
If the StackPipelD of the monitoring location begins with "CP",
set Location Type to "CP" and Location Type Description to "common pipe".
If the StackPipelD of the monitoring location begins with "MS",
set Location Type to "MS" and Location Type Description to "multiple stack".
If the StackPipelD of the monitoring location begins with "MP",
set Location Type to "MP" and Location Type Description to "multiple pipe".
Results:
Result
Response
Severity
Environmental Protection Agency
Page 197 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Location Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Default Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Load Evaluation
3 Process/Category: Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
4 Process/Category: Monitoring Plan Data Entry Screen Evaluation Method Evaluation
5 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Evaluation
Environmental Protection Agency
Page 198 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-3
Check Name:
Related Former Checks:
Location Attribute Active Status
Applicability:
Description:
CEM Check
This check determines whether or not the monitor location attribute record is active during the Evaluation
Period.
Specifications:
For a Location Attribute record with consistent dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Current Location Attribute Active to false.
Otherwise,
set Current Location Attribute Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the Attribute Evaluation Begin Date to the Evaluation Begin Date.
Otherwise,
set the Attribute Evaluation Begin Date to the BeginDate.
If the EndDate is null or is after the Evaluation End Date,
set the Attribute Evaluation End Date to the Evaluation End Date.
Otherwise,
set the Attribute Evaluation End Date to the EndDate.
Set Stack Information Required to false.
If Location Type is equal to "CS" or "MS",
set Stack Information Required to true.
Else if Location Type begins with "U",
Locate all Unit Stack Configuration linked to the unit and a common or multiple stack during the Location Attribute
Elevauation period
If not found or if does not span Location Attribute Eval period,
set Stack Information Required to true
Results:
Result
Response
Severity
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Location Attribute Evaluation
Location Attribute Record Valid Equals true
Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 199 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-5
Check Name: Stack Ground Elevation Valid
Related Former Checks: ARP-16A, B
Applicability: CEM Check
Description: This check determines whether or not Ground Elevation is valid.
Specifications:
For a Location Attribute record:
If the GroundElevation is not null
If GroundElevation is less than -100 or greater than 15000,
return result A.
Otherwise
If Stack Information Required equals true,
return result B.
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].
B You have not reported the required value in the field [fieldname] for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Location Attribute Evaluation
Conditions: Current Location Attribute Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 200 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-6
Check Name:
Stack Cross Area Flow Valid
Related Former Checks: ARP-17, 19
Applicability:
Description:
CEM Check
This check determines whether or not Cross Area Flow is valid.
Specifications:
For a Location Attribute record:
If the CrossAreaFlow is not null,
If the Flow System Active Present is false,
return result A.
If the CrossAreaFlow is less than 5 or is greater than 1700,
return result B.
If the CrossAreaFlow is null, and the Post2008 Flow System Present equals true,
return result C.
Results:
Result
A
Response
You provided the cross-sectional area at the flow monitor location for this location, but
there is no flow monitoring system currently used to report data defined.
The value [value] in the field [fieldname] for [key] is not within the range of valid
values from [minvalue] to [maxvalue].
You have not reported the required value in the field [fieldname] for [key].
Severity
Non-Critical Error
B
Critical Error Level 1
C
Non-Critical Error
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Location Attribute Evaluation
Current Location Attribute Active Equals true
Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 201 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-7
Check Name: Stack Cross Area Exit Valid
Related Former Checks: ARP-16A, B
Applicability: CEM Check
Description: This check determines whether or not Cross Area Stack Exit is valid.
Specifications:
ElseFor a Location Attribute record:
If the CrossAreaStackExit is not null,
If CrossAreaStackExit is less than 5 or greater than 1700,
return result A.
If StackHeight is not null,
Set stackHeightToDiameterRatio = StackHeight / (SQRT(CrossAreaStackExit / pi) * 2)
If StackHeightToDiameterRatio is greater than 85,
return result B.
If StackHeightToDiameterRatio is less than 5,
Locate all Unit Type records for the location where the BeginDate is on or before the Attribute Evaluation
Begin Date and the EndDate is null or is on or after the Attribute Evaluation Begin Date.
If found, and any UnitTypeCode is not equal to "CC", "CT", or "OT",
return result B.
Else if Stack Information Required equals true,
return result C.
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].
B The ratio of the stack height to the stack diameter for [key] is outside the range of valid Informational Message
values from 5 to 85.
C You did not provide [fieldname], which is required for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Location Attribute Evaluation
Conditions: Current Location Attribute Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 202 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-8
Check Name: Stack Height Valid
Related Former Checks: ARP-16A, B
Applicability: CEM Check
Description: This check determines whether or not Stack Height is valid.
Specifications:
For a Location Attribute record:
If the StackHeight is not null,
If is less than 20 or greater than 1600,
return result A.
Otherwise,
If Stack Information Required equals true,
return result B.
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].
B You have not reported the required value in the field [fieldname] for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Location Attribute Evaluation
Conditions: Current Location Attribute Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 203 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-9
Check Name: Stack Shape Code Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not Shape Code is valid.
Specifications:
For a Location Attribute record:
If the ShapeCode is not null, and is not in the list of valid Shape Codes,
return result A.
If the ShapeCode is null, and Flow System Active Present is true,
return result B.
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].
B You have not reported the required value in the field [fieldname] for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Location Attribute Evaluation
Conditions: Current Location Attribute Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 204 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-IO
Check Name: Stack Material Code Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not Material Code is valid.
Specifications:
For a Location Attribute record:
If the MaterialCode is not null, and is not in the list of valid Material Codes,
return result A.
If the MaterialCode is null, and the Flow System Active Present is true,
return result B.
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].
B You have not reported the required value in the field [fieldname] for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Location Attribute Evaluation
Conditions: Current Location Attribute Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 205 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-11
Check Name: Location Attribute Begin Date Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not Begin Date is valid.
Specifications:
For a Location Attribute record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] 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: Monitoring Plan Evaluation Report Location Attribute Evaluation
Conditions: Location Attribute Record Valid Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 206 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-12
Check Name: Location Attribute End Date Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not the End Date is valid.
Specifications:
For a Location Attribute record:
If EndDate is not null and is greater than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Location Attribute Evaluation
Conditions: Location Attribute Record Valid Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 207 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-13
Check Name: Flow System Active Present
Related Former Checks: ARP-17, 19
Applicability: CEM Check
Description: This check will determine if there is an active CEM and flow system present at the unit or stack during the
evaluation period.
Specifications:
For the location attribute record:
Set Flow System Active Present to false and Post2008 Flow System Present to false.
If Location Type is not equal to "CP" or "MP",
Locate a MonitorSystem record for the location with a SystemType equal to "FLOW", a BeginDate on or before the
Attribute Evaluation End Date, and an EndDate that is null or on or after the Attribute Evaluation Begin Date.
If found,
set Flow System Active Present to true.
If any of the retrieved system records have an EndDate that is null or is on or after the ECMPS MP Begin Date,
set Post2008 Flow System Present to true.
Results:
Result Response
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Severity
Monitoring Plan Evaluation Report Location Attribute Evaluation
Current Location Attribute Active Equals true
Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 208 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-14
Check Name:
Location Type Consistent with Number of Linked Locations
Related Former Checks: ARP-56
Applicability:
Description:
General Check
This check will determine if the correct number of associated units, stacks, or pipes are linked to a location
during the entire evaluation period.
Specifications:
For a monitoring location:
If Location Type that begins with "C",
Locate all MP Unit Stack Configuration records where the stack/pipe location is the monitoring location, the BeginDate is
on or before the Location Evaluation End Date and the EndDate null or on or after the Location Evaluation Begin Date.
If less than two records are found,
return result A.
else if Location Type is equal to "CP",
Locate all Monitor Location records for the facility other than the current monitoring location with a
LocationName beginning with "CP":
For each location found,
Locate all Facility Unit Stack Configuration records where the stack/pipe location is the retrieved
monitoring location, the BeginDate is on or before the Location Evaluation Begin Date and the EndDate
null or on or after the Location Evaluation End Date.
If the list of units in the Facility Unit Stack Configuration records for the retrieved location is the exact
same list of units in the MP Unit Stack Configurations for the location being evaluated,
return result C.
If Location Type begins with "M",
Locate all MP Unit Stack Configuration records where the stack/pipe location is the monitoring location.
If there is more or less than one retrieved MP Unit Stack Configuration record, or if the BeginDate of the retrieved record
is after the Location Evaluation Begin Date or the EndDate of the retrieved record is before the Location Evaluation End
Date,
return result B.
Results:
Result
A
Response
You have identified a common stack or pipe [stack/pipe ID] that is not linked to at least
two units for the entire evaluation period.
You have identified a multiple stack or pipe [stack/pipe ID] that is not linked to one
and only one unit for the entire evaluation period.
You have defined a common pipe [stack/pipe ID] that is linked to the same group of
units as another common pipe. If you have multiple fuel sources that feed the same
group of units, you should define multiple fuel flow systems at a single common pipe.
Severity
Critical Error Level 1
B
Critical Error Level 1
C
Critical Error Level 2
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report — Location Evaluation
Abort Location Evaluation Equals false
Environmental Protection Agency
Page 209 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-19
Check Name:
Related Former Checks:
Location Stack Pipe ID Valid
Applicability:
Description:
General Check
Determines if the Stack Pipe ID of the Location is valid.
Specifications:
If the location is a stack or pipe:
Set Stack Pipe ID Format Valid to true.
If the StackPipelD is null,
set Stack Pipe ID Format Valid to false, and return result A.
If the StackPipelD is less than 3 characters, contains non-alphanumeric characters other than or does not begin with "CS",
"MS", "CP", or "MP",
set Stack Pipe ID Format Valid to false, and return result B.
Otherwise,
If StackPipelD containsand is less than 4 characters,
set Stack Pipe ID Format Valid to false, and return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported a Stack/Pipe ID [Stack Pipe ID], which has an invalid format.
Severity
Fatal
Fatal
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Location Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Stack/Pipe Evaluation
Environmental Protection Agency
Page 210 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-74
Check Name: Stack Bypass Indicator Valid
Related Former Checks:
Applicability: CEM Check
Description: Bypass Indicator cannot be reported for a unit, but can be reported for a stack.
Specifications:
For a Location Attribute record:
If Bypasslndicator is equal to 1,
If Location Type is not equal to either "CS" or "MS",
return result A.
Results:
Result Response Severity
A You reported a value in field [fieldname] for [key], but this value is only valid for a Critical Error Level 1
stack.
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Location Attribute Evaluation
Current Location Attribute Active Equals true
Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 211 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-76
Check Name: Location Attribute Dates Consistent
Related Former Checks:
Applicability: CEM Check
Description: This check determines if the Location Attribute Start Date is prior to the Location Attribute End Date.
Specifications:
For a Location Attribute record:
If the BeginDate and EndDate are valid,
If the EndDate is not null and the BeginDate is after the EndDate,
set Location Dates consistent to false, and return result A.
Otherwise,
set Location Dates consistent to true.
Otherwise,
set Location Dates consistent to false.
Results:
Result Response Severity
A You reported [datefield2] which is prior to [datefieldl] for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Location Attribute Evaluation
Conditions: Location Attribute Record Valid Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 212 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-77
Check Name:
Related Former Checks:
Determine Location Evaluation Period
Applicability:
Description:
Specifications:
General Check
Determines the evaluation period for the location.
For the location:
If the Location Type begins with "U",
set Affected Unit to false.
set Location Evaluation Begin Date to null.
set Location Evaluation End Date to 1/1/1993.
Locate all Location Program records for the location with an EndDate that is null or is on or after to the Evaluation Begin
Date.
For each record found,
If the ClassCode is not equal to "N", "NA", or "NB",
set Affected Unit to true.
If the EmissionsRecordingBeginDate is not null,
If Location Evaluation Begin Date is null,
set Location Evaluation Begin Date to the EmissionsRecordingBeginDate.
else if the EmissionsRecordingBeginDate is prior to the Location Evaluation Begin Date,
set Location Evaluation Begin Date to the EmissionsRecordingBeginDate.
else if the UnitMonitorCertBeginDate is not null,
if the Location Evaluation Begin Date is null,
set Location Evaluation Begin Date to the UnitMonitorCertBeginDate.
else if the UnitMonitorCertBeginDate is prior to the Location Evaluation Begin Date
set Location Evaluation Begin Date to the UnitMonitorCertBeginDate.
If the EndDate is null,
set Location Evaluation End Date to null.
else if Location Evaluation End Date is not null and EndDate is after the Location Evaluation End Date,
set Location Evaluation End Date to the EndDate.
If the Evaluation Begin Date is not null and the Location Evaluation Begin Date is prior to the Evaluation Begin Date,
set Location Evaluation Begin Date to the Evaluation Begin Date.
If the Location Evaluation End Date is equal to 1/1/1993 or the Location Evaluation End Date is null,
set Location Evaluation End Date to the Evaluation End Date.
else if the Evaluation End Date is not null and the Location Evaluation End Date is after the Evaluation End Date,
set Location Evaluation End Date to the Evaluation End Date.
Locate the latest Unit Operating Status record for the unit where the Begin Date is on or prior to the Location Evaluation
End Date, and the End Date is null or is on or after the Location Evaluation Begin Date,
Environmental Protection Agency Page 213 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If found, and the Op Status Code is equal to "LTCS",
set the Location Evaluation End Date to the day before the Begin Date.
Otherwise,
Locate the earliest Unit Program Exemption records for the unit where the Exempt Type is equal to "RUE", the
Exemption Begin Date is on or prior to the Location Evaluation End Date, and the Exemption End Date is null.
If found,
set the Location Evaluation End Date to the day before the Exemption Begin Date.
Otherwise,
If the ProgramCode in all the retrieved Location Program records are only equal to "NBP", "OTC",
"NHNOX", or "SIPNOX",
Locate the latest Unit Operating Status records for the unit, the Begin Date is on or prior to the
Location Evaluation End Date, and the End Date is null or is on or after the Location Evaluation
Begin Date,
If found, and the Op Status Code is equal to "RET",
If the Begin Date is between May 1 and September 30,
set the Location Evaluation End Date to September 30 of the year of the Begin
Date.
Otherwise,
set the Location Evaluation End Date to the day before the Begin Date.
Otherwise,
If the Stack ActiveDate is null or is prior to the Evaluation Begin Date,
set the Location Evaluation Begin Date to the Evaluation Begin Date,
Otherwise,
set the Location Evaluation Begin Date to the Stack ActiveDate.
Locate all Location Program records for the location with an EndDate that is null or is on or after to the Evaluation Begin
Date.
If found, and the earliest UnitMonitorCertBeginDate in the retrieved records is after the Location Evaluation Begin Date,
set Location Evaluation Begin Date to the earliest UnitMonitorCertBeginDate in the retrieved records.
If the Stack RetirementDate is not null and is prior to the Evaluation End Date,
set the Location Evaluation End Date to the Stack RetirementDate.
Otherwise,
set the Location Evaluation End Date to the Evaluation End Date.
If the Location Evaluation Begin Date is on or before than the Location Evaluation End Date,
set Abort Location Evaluation to false,
Otherwise,
set Abort Location Evaluation to true, abort the evaluation of the location, and return result A.
Environmental Protection Agency
Page 214 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result Response Severity
A [Location] does not appear to have been operational during the evaluation period. It Informational Message
will not be evaluated.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Location Evaluation
Environmental Protection Agency
Page 215 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-80
Check Name:
Related Former Checks:
Required Location Attribute Reported for Location
Applicability:
Description:
Specifications:
CEM Check
This check determines if the location attribute record is reported for the entire evaluation period.
For the location:
Locate all Location Attribute records for this location where the BeginDate is on or before the Location Evaluation End Date, and
the EndDate is null or is on or after the Location Evaluation Begin Date.
If Location Type is equal to "CP" or "MP",
set Location Attribute Record Valid to false, and return result A.
Otherwise,
Set Location Attribute Record Valid to true.
If the BeginDate and EndDate of all the retrieved records does not span the entire location evaluation period,
Locate all MonitorSystem records for the location with a SystemType equal to "S02", "S02R", "NOX",
"NOXC", "C02", "02", "H20", "H20M", or "FLOW".
If the BeginDate and EndDate of all the retrieved location attribute records does not span the entire
intersection between the location evaluation period and the earliest system begin date and the latest
system end date,
return result B.
If Location Type is equal to "CS", "MS", "U", or "UP",
return result C.
Else if Location Type equals 'US' or 'UB'
Locate Unit Stack Configuration Records for the unit with a BeginDate on or before the Location Evaluation End
Date, and a EndDate that is null or on or after the Location Evaluation Begin Date, and the Stack/Pipe Name
begins with 'CS' or 'MS'.
If not found or the records do not span the later of the Location Evaluation Begin Date and January 1st,
2009 through the Location Evaluation End Date,
return result to C
Locate a MonitorSystem record for the location with a SystemType equal to "S02", "S02R", "NOX", "NOXC",
"C02", "02", "H20", "H20M", or "FLOW", a BeginDate on or before the Location Evaluation End Date, and a
EndDate that is null or on or after the ECMPS MP Begin Date.
If found,
return result C.
If found,
If none are found,
If result is null,
Environmental Protection Agency
Page 216 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
Usage:
1
Response
You have reported a monitor location attribute record for [key]. This record should
only be reported for stacks, units that are not linked to stacks, or units with CEMS.
You have not reported monitor location attribute records that span the entire evaluation
period for [key].
You have not reported a monitor location attribute record that was active during the
evaluation period for [key].
Process/Category:
Conditions:
Monitoring Plan Evaluation Report — Location Evaluation
Abort Location Evaluation Equals false
Severity
Non-Critical Error
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 217 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: MONLOC-81
Check Name: Stack Pipe Active Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if the stack/pipe active date is valid.
Specifications:
If the location is a stack or pipe:
If ActiveDate is null,
return result A.
If ActiveDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] 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: Monitoring Plan Evaluation Report — Location Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Stack/Pipe Evaluation
Environmental Protection Agency
Page 218 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: MONLOC-82
Check Name: Stack Pipe Retire Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the Stack Retire Date is valid.
Specifications:
If the location is a stack or pipe:
If RetireDate is not null and is greater than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report — Location Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Stack/Pipe Evaluation
Environmental Protection Agency
Page 219 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: MONLOC-83
Check Name: Stack Pipe Dates Consistent
Related Former Checks:
Applicability: General Check
Description: Stack Active Date must be prior to Stack Retire Date.
Specifications:
If the location is a stack or pipe:
If Stack ActiveDate and Stack RetireDate are both valid,
If the RetireDate is not null and the ActiveDate is after the RetireDate,
return result A.
Results:
Result Response Severity
A You reported [datefield2] which is prior to [datefieldl] for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Location Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Stack/Pipe Evaluation
Environmental Protection Agency
Page 220 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-85
Check Name: Unit Stack Begin Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not Begin Date is valid.
Specifications:
For a Unit Stack Configuration record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B You reported a [Fieldname] of [Date], which is outside the range of acceptable values Fatal
for this date for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Stack Configuration Evaluation
Conditions: Not Location Type Begins With U
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Stack Configuration Evaluation
Environmental Protection Agency
Page 221 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-86
Check Name: Unit Stack End Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the Unit Stack Configuration End Date is valid.
Specifications:
For a Unit Stack Configuration record:
If EndDate is not null and is greater than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Unit Stack Configuration Evaluation
Conditions: Not Location Type Begins With U
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Stack Configuration Evaluation
Environmental Protection Agency
Page 222 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-87
Check Name: Unit Stack Configuration Dates Consistent
Related Former Checks:
Applicability: General Check
Description: This check determines if the Unit Stack Configuration Start Date is prior to the End Date, and consistent with
the Stack Active and Retire Dates.
Specifications:
For the Unit Stack Configuration record:
If the BeginDate and EndDate are both valid, the EndDate is not null, and the BeginDate is after the EndDate,
return result A.
If the Location Type is equal to "CS", "MS", "CP", "MP",
If the BeginDate and the Stack ActiveDate are valid, and the BeginDate is before the ActiveDate,
return result B.
If the EndDate and the Stack RetireDate are valid, the RetireDate is not null, and the EndDate is null or is after the
RetireDate,
return result C.
Results:
Result Response
A You reported [datefield2] which is prior to [datefieldl] for [key].
B You reported [datefieldl] as prior to the Stack Active Date for [key].
C You have not reported [datefield2] or you have reported it as later than the Stack Retire
Date for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Stack Configuration Evaluation
Conditions: Not Location Type Begins With U
Seventy
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 223 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-88
Check Name:
Related Former Checks:
Determine Non Load Based Indicator for Location
Applicability:
Description:
Specifications:
General Check
Determines whether location is linked to non-load-based units.
For a monitoring location:
If the Location Type begins with "U",
set the Location Non Load Based Indicator to the NonLoadBasedlndicator for the unit.
Otherwise,
Locate all MP Unit Stack Configuration records where the stack/pipe location is the monitoring location.
If the NonLoadBasedlndicator in all of the retrieved records is equal to 1,
set the Location Non Load Based Indicator to 1.
If the NonLoadBasedlndicator in all of the retrieved records is equal to 0,
set the Location Non Load Based Indicator to 0.
Otherwise,
set the Location Non Load Based Indicator to 0, and return result A.
Results:
Result
A
You have reported that common stack or pipe [key] is linked to both a non-load-based Critical Error Level 1
unit and a load-based unit. This is invalid.
Response
Severity
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report — Location Evaluation
Abort Location Evaluation Equals false
Monitoring Plan Data Entry Screen Evaluation Load Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Environmental Protection Agency
Page 224 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-97
Check Name: Unit Type Consistent with Non Load Based Indicator
Related Former Checks: ARP-67
Applicability: General Check
Description: This check determines if the Boiler Type is consistent with the Non Load Based Indicator reported for the
Unit.
Specifications:
If the Location Type begins with "U", and the NonLoadBasedlndicator is null or equal to 0,
Locate all Unit Type records for the location where the BeginDate is null or is on or before the Evaluation End Date and the End
Date is null or is on or after the Evaluation Begin Date,
If the Unit Type in any of the retrieved is equal to "KLN" or "PRH",
return result A.
Results:
Result Response Severity
A Based on the unit type, the unit does not generate load, but you did not report that Unit Critical Error Level 2
ID [key] was a non-load-based unit.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Location Evaluation
Conditions: Abort Location Evaluation Equals false
Environmental Protection Agency
Page 225 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-98
Check Name: Overlapping Unit Capacity Records Reported
Related Former Checks:
Applicability: General Check
Description: This check determines if non-overlapping unit capacity record is reported for the entire evaluation period.
Specifications:
If Location Type begins with "U",
Locate all Unit Capacity records for this location where the BeginDate is on or before the Location Evaluation End Date, and the
EndDate is null or is on or after the Location Evaluation Begin Date.
If there is more than one record active at any time during the location evaluation period,
return result A.
Results:
Result Response Severity
A You have reported more than one unit capacity record for [unit] during the evaluation Critical Error Level 1
period.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Location Evaluation
Conditions: Abort Location Evaluation Equals false
Environmental Protection Agency
Page 226 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-99
Check Name:
Related Former Checks:
Required Unit Capacity Record Reported for Unit
Applicability:
Description:
General Check
This check determines if a unit capacity record is reported for the entire evaluation period.
Specifications:
If Location Type begins with "U",
Locate all Unit Capacity records for this location where the BeginDate is null or is on or before the Location Evaluation End Date,
and the EndDate is null or is on or after the Location Evaluation Begin Date.
If none are found,
return result A.
Otherwise,
If the BeginDate and EndDate of all the retrieved records does not span the entire location evaluation period,
return result B.
Results:
Result
A
Response
You have not reported a unit capacity record that was active during the evaluation
period for [key].
You have not reported unit capacity records for [key] that span the entire evaluation
period.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report — Location Evaluation
Abort Location Evaluation Equals false
Environmental Protection Agency
Page 227 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-lOO
Check Name: Overlapping Location Attribute Records Reported
Related Former Checks:
Applicability: CEM Check
Description: This check determines if no more than one location attribute record is active at any time during the evaluation
period.
Specifications:
For the location:
Locate all Location Attribute records for this location where the BeginDate is on or before the Location Evaluation End Date, and
the EndDate is null or is on or after the Location Evaluation Begin Date.
If there is more than one record active at any time during the location evaluation period,
return result A.
Results:
Result Response Severity
A You have reported overlapping Location Attribute records for [key] during the Critical Error Level 1
evaluation period.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Location Evaluation
Conditions: Abort Location Evaluation Equals false
Environmental Protection Agency
Page 228 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-lOl
Check Name:
Required Load Record Reported for Location
Related Former Checks: ARP-10, ARP-29A, NBP-50, NBP-51
Applicability:
Description:
Specifications:
General Check
This check determines if an active load record for each load-based location.
For any location:
Locate all Monitor Load records for this location where the BeginDate is on or before the Location Evaluation End Date, and the
EndDate is null or is on or after the Location Evaluation Begin Date.
If none are found,
If Location Non Load Based Indicator is null or is equal to 0,
Locate all Test Summary records for this location where TestTypeCode is equal to "FF2LBAS", the BeginDate is
on or before the Location Evaluation End Date, and the EndDate is null or is on or after the Location Evaluation
Begin Date.
If any are found,
return result A.
Locate a MonitorSystem record for the location with a SystemType equal to "S02", "S02R", "NOX",
"NOXC", "C02", "02", "H20", "H20M", or "FLOW", a BeginDate on or before the Location Evaluation
End Date, and a EndDate that is null or on or after the Location Evaluation Begin Date.
If found,
return result A.
If the BeginDate/BeginHour and EndDate/EndHour of all the retrieved records does not span the entire location
evaluation period,
return result B.
return result A.
Otherwise,
Otherwise,
Otherwise,
Results:
Result
A
Response
You did not define load information that was active during the evaluation period for
[key]. You must submit this information for each load-based monitoring location.
You did not define load information for [key] for the entire evaluation period. You
must submit this information for each load-based monitoring location.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report — Location Evaluation
Abort Location Evaluation Equals false
Environmental Protection Agency
Page 229 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-103
Check Name: Required Primary Fuel Record Reported for Unit
Related Former Checks:
Applicability: General Check
Description: This check determines if a primary fuel is reported for the entire evaluation period.
Specifications:
If Location Type begins with "U", and Affected Unit is equal to true,
Locate all Unit Fuel records for this unit where the IndicatorCode is equal to "P", the BeginDate is on or before the Location
Evaluation End Date, and the EndDate is null or is on or after the Location Evaluation Begin Date.
If none are found,
return result A.
Otherwise,
If the BeginDate and EndDate of all the retrieved records does not span the entire location evaluation period,
return result B.
Results:
Result Response Severity
A You did not report a primary fuel that was active during the evaluation period for [key]. Critical Error Level 1
B You did not report a primary fuel to span the entire evaluation period for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Location Evaluation
Conditions: Abort Location Evaluation Equals false
Environmental Protection Agency
Page 230 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-104
Check Name: Overlapping Primary Fuels Reported
Related Former Checks: NBP-65
Applicability: General Check
Description: This check determines whether or not one and only one primary fuel has been reported.
Specifications:
If Location Type begins with "U",
Locate all Unit Fuel records for this unit where the IndicatorCode is equal to "P", the BeginDate is on or before the Location
Evaluation End Date, and the EndDate is null or is on or after the Location Evaluation Begin Date.
If there is more than one record active at any time during the location evaluation period,
return result A.
Results:
Result Response Severity
A You have defined overlapping primary fuel types for the current period for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Location Evaluation
Conditions: Abort Location Evaluation Equals false
Environmental Protection Agency
Page 231 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-105
Check Name: Multiple Pipe Valid
Related Former Checks:
Applicability: Appendix D Check
Description:
Specifications:
If Location Type is equal to "MP",
return result A.
Results:
Result Response Severity
A Most configurations do not require the definition of a multiple pipe. You should Informational Message
consult CAMD prior to defining a multiple pipe.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Location Evaluation
Conditions: Abort Location Evaluation Equals false
Environmental Protection Agency
Page 232 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC- 111
Check Name: Monitoring Plan Contains All Used IDs for Location
Related Former Checks:
Applicability: General Check
Description: This check ensures that no system, component, and formula records has been deleted which contains a system,
component, or formula ID which has previously been reported in a QA or EM record.
Specifications:
For the location:
Set Unused IDs to null.
Locate all Used Identifier records for the location.
For each record with Table Code equal to "S":
Locate a Monitoring System record for the location where the Monitoring System ID is equal to the Identifier in the Used
Identifier record.
If not found,
append "System ID: " + Identifier to Unused IDs.
For each record with Table Code equal to "C":
Locate a Component record for the location where the Component ID is equal to the Identifier in the Used Identifier
record.
If not found,
append "Component ID: " + Identifier to Unused IDs.
For each record with Table Code equal to "F":
Locate a Monitoring Formula record for the location where the Formula ID is equal to the Identifier in the Used Identifier
record.
If not found,
append "Formula ID: " + Identifier to Unused IDs.
If Unused IDs is not null,
return result A.
Results:
Result Response Severity
A You have inappropriately deleted records for the location from the MP with the Fatal
following IDs: [list]. You cannot delete these records because QA and emissions data
have already been reported using these IDs.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Location Evaluation
Environmental Protection Agency
Page 233 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-106
Check Name:
Related Former Checks:
Duplicate Stack Pipe Records
Applicability:
Description:
General Check
This check determines if there is another stack pipe record with the same key fields.
Specifications:
For a StackPipe record with a valid StackPipelD format:
Locate another StackPipe record for the location with a StackPipelD equal to the StackPipelD 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: Monitoring Plan Data Entry Screen Evaluation Stack/Pipe Evaluation
Environmental Protection Agency
Page 234 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONLOC-107
Check Name: Unit Stack Configuration Record Valid
Related Former Checks:
Applicability: General Check
Description: This check determines if there is another UnitStackConfiguration record with the same key fields.
Specifications:
For a UnitStackConfiguration record:
If the UnitID is null,
return result A.
Otherwise,
Locate another UnitStackConfiguration record with an associated StackPipelD and UnitID equal to the StackPipelD and
UnitID in the current record.
If found,
return result B.
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Fatal
B Another [recordtype] record already exists with the same [fieldnames]. Fatal
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Unit Stack Configuration Evaluation
Environmental Protection Agency
Page 235 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONLOC-109
Check Name:
Related Former Checks:
Location Attribute Record Valid
Applicability:
Description:
General Check
This check determines if there is another MonitoringLocationAttribute record is for a unit and stack and is not
a duplicate.
Specifications:
For a Location Attribute record:
Locate another MonitoringLocationAttribute record for the location with a BeginDate that is equal to the BeginDate in the current
record.
If found,
return result A.
If not found, and the EndDate in the current record is not null,
Locate another Location Attribute record for the location with an EndDate that is equal to the EndDate in the current
record.
If found,
return result A.
Otherwise,
If the location is a pipe (the StackPipelD of the monitoring location begins with "CP" or "MP"),
return result B.
Otherwise,
If the location is a pipe (the StackPipelD of the monitoring location begins with "CP" or "MP"),
return result B.
Results:
Result
A
B
Response
Another [recordtype] record already exists with the same [fieldnames].
You have reported a monitor location attribute record for [key]. This record should
only be reported for stacks, units that are not linked to stacks, or units with CEMS.
Severity
Fatal
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
Environmental Protection Agency
Page 236 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
MATS Supplemental Method
Environmental Protection Agency
Page 237 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MATSMTH-1
Check Name: Begin Date
Related Former Checks:
Applicability:
Description: Ensures the Begin Date is valid.
Specifications:
Set CurrentBeginDateValid to false.
If MatsSupplementalComplianceMethodRecord.BeginDate is null,
return result A.
Else if MatsEvaluationBeginDate is NOT null, AND MatsSupplementalComplianceMethodRecord.BeginDate is earlier than
MatsEvalucition Begin Date.
return result B.
Else if MaximumFutureDate is NOT null, AND MatsSupplementalComplianceMethodRecord.BeginDate is later than
MaximumFutureDate,
return result C.
Else
Set CurrentBeginDateValid to true.
Results:
Result Response Severity
A The Supplemental MATS Compliance Method Begin Date is blank. Fatal
B The Supplemental MATS Compliance Method Begin Date is prior to the beginning of Critical Error Level 1
the program.
C The Supplemental MATS Compliance Method Begin Date is later the the maximum Critical Error Level 1
allowable date.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report MATS Supplemental Method Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Supplemental MATS Method Data
Environmental Protection Agency
Page 238 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MATSMTH-2
Check Name:
Related Former Checks:
Begin Hour
Applicability:
Description:
Ensures the Begin Hour is valid.
Specifications:
Set CurrentBeginDateAndHour to null.
Set CurrentBeginDateAndHourValid to false.
If MatsSupplementalComplianceMethodRecord.BeginRom: is null,
return result A.
Else if MatsSupplementalComplianceMethodRecord.Be^vSiour is less than 0 or greater than 23,
return result B.
Else if CurrentBeginDateValid
Set CurrentBeginDateAndHour to MatsSupplementalComplianceMethodRecord. .Begi riDate/Begi riHour
Set CurrentBeginDateAndHourValid to true.
Results:
Result
A
B
Response
The Supplemental MATS Compliance Method Begin Hour is blank.
The Supplemental MATS Compliance Method Begin Hour is not between 0 and 23.
Severity
Fatal
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report MATS Supplemental Method Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Supplemental MATS Method Data
Environmental Protection Agency
Page 239 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MATSMTH-3
Check Name:
Related Former Checks:
End Date
Applicability:
Description:
Ensures the End Date is valid.
Specifications:
Set CurrentEndDateValid to false.
If MatsSupplementalComplianceMethodRecord.EndDate is not null,
If MatsEvaluationBeginDate is NOT null, AND MatsSupplementalComplianceMethodRecord. E ndDa tc is earlier than
MatsEvaluationBeginDate,
return result A.
Else if MaximumFutureDate is NOT null, AND MatsSupplementalComplianceMethodRecord. E ndDa tc is later than
MaximumFutureDate,
return result B.
Else
Set CurrentEndDateValid to true.
Else
Set CurrentEndDateValid to true.
Results:
Result Response Severity
A You have reported a Supplemental MATS Compliance Method End Date that is prior Critical Error Level 1
B
to the beginning of MATS .
You have reported a Supplemental MATS Compliance Method End Date that is
invalid.
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report MATS Supplemental Method Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Supplemental MATS Method Data
Environmental Protection Agency
Page 240 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MATSMTH-4
Check Name:
Related Former Checks:
End Hour
Applicability:
Description:
Ensures the End Hour is valid.
Specifications:
Set CurrentEndDateAndHour to null.
Set CurrentEndDateAndHourValid to false.
If MatsSupplementalComplianceMethodRecord.EndHour is not null,
If MatsSupplementalComplianceMethodRecord.EndDate is null,
return result A.
Else if MatsSupplementalComplianceMethodRecord.EndHour is less than 0 or greater than 23,
return result B.
Else if CurrentEndDateValid
Set CurrentEndDateAndHour to MatsSupplementalComplianceMethodRecord.EndD'Mc/EndHour.
Set CurrentEndHourValid to true.
If MatsSupplementalComplianceMethodRecord.EndDate is not null,
return result C.
Else if CurrentEndDateValid
Set CurrentEndDateAndHour to null.
Set CurrentEndDateAndHourValid to true.
Else
Results:
Result
Response
The Supplemental MATS Compliance Method End Date is blank.
The Supplemental MATS Compliance Method End Hour is not between 0 and 23.
You have reported a Supplemental MATS Compliance Method End Date that is
invalid.
Severity
A
B
C
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report MATS Supplemental Method Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Supplemental MATS Method Data
Environmental Protection Agency
Page 241 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: MATSMTH-5
Check Name: Consistent Dates and Hours
Related Former Checks:
Applicability:
Description: Ensures that the Begin Date/Hour is on or before the End Date/Hour.
Specifications:
Set CurrentDatesAndHoursConsistent to false.
If the CurrentBeginDateAndHourValid and CurrentEndDateAndHourValid,
If the CurrentEndDateAndHour is not null, and the CurrentBeginDateAndHour is after the CurrentEndDateAndHour,
return result A.
Otherwise,
Set CurrentDatesAndHoursConsistent to true.
Results:
Result Response Severity
A The Supplemental MATS Compliance Method Begin Date/Hour is not on or before the Critical Error Level 1
End Date/Hour.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report MATS Supplemental Method Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Supplemental MATS Method Data
Environmental Protection Agency
Page 242 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MATSMTH-6
Check Name:
Related Former Checks:
Parameter Code
Applicability:
Description:
Ensures that the Supplemental MATS Parameter code is not null and in the corresponding lookup table.
Validation Tables:
Mats Method Parameter Code (Lookup Table)
Mats Method Parameter Code (Lookup Table)
Specifications:
Set CurrentParameterValid to false.
If the MatsSupplementalComplianceMethodRecord.SwpplementalMatsParameterCode is null,
return result A.
Else
If MatsSupplementalComplianceMethodRecord.SwpplementalMatsParameterCode is not in
MatsMeth odParameterCodeLookup,
return result B.
Else
Set CurrentParameterValid to true.
Results:
Result
A
B
Response
The Supplemental MATS Compliance Method Parameter Code is blank.
You have not reported a valid Supplemental MATS Compliance Method Parameter
Code.
Severity
Fatal
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report MATS Supplemental Method Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Supplemental MATS Method Data
Environmental Protection Agency
Page 243 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MATSMTH-7
Check Name:
Related Former Checks:
Method Code
Applicability:
Description:
Ensures that the Supplemental MATS Compliance Method Code is not null and in the corresponding lookup
table.
Validation Tables:
Mats Method Code (Lookup Table)
Mats Method Code (Lookup Table)
Specifications:
Set CurrentMethodValid to false.
If the MatsSupplementalComplianceMethodRecord.SwpplementalMatsComplianceMethodCode is null,
return result A.
Else
If MatsSupplementalComplianceMethodRecord.SwpplementalMatsComplianceMethodCode is not in MatsMethodCodeLookup,
return result B.
Else
Set CurrentMethodValid to true.
Results:
Result
A
B
Response
The Supplemental MATS Compliance Method Code is blank.
You have not reported a valid Supplemental MATS Compliance Method Code.
Severity
Fatal
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report MATS Supplemental Method Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Supplemental MATS Method Data
Environmental Protection Agency
Page 244 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MATSMTH-8
Check Name:
Related Former Checks:
Parameter and Method Cross Check
Applicability:
Description:
Ensures that the Supplemental MATS
Validation Tables:
[MATS Supplemental Compliance Parameter to Method] (Cross Check Table)
[MATS Supplemental Compliance Parameter to Method] (Cross Check Table)
Specifications:
If CurrentParameterValid and CurrentMeth od I alid.
Locate a MatsSupplementalComplianceParameterToMethodCrossCheck record where:
1) ParameterCode is equal toMatsSupplementalComplianceMethodRecord.SwpplementalMatsParameterCode, and
2) MethodCode is equal toMatsSupplementalComplianceMethodRecord.SwpplementalMatsComplianceMethodCode.
If not found,
return result A.
Results:
Result
A
Response
You have not reported a valid Supplemental MATS Compliance Method.
Severity
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report MATS Supplemental Method Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Supplemental MATS Method Data
Environmental Protection Agency
Page 245 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MATSMTH-9
Check Name: Hg Spans Evaluation Range
Related Former Checks:
Applicability:
Description: Ensures that Monitor Method or MATS Method for Hg is active for the MATS evaluation period, and that the
set of active records span the MATS evaluation period.
Specifications:
Locate records in MatsCombineilMethodRecordsByLocation where:
1) ParameterGroup is equal to "HG", and
2) BeginDate is on or before EvaluationEndDate, and
3) EndDate is null, or is on or after MatsEvaluationBeginDate, and
If found and the BeginDate/Hours and EndDate/Hours for the located records do not span the period from hour 23 on
MatsEvaluationBeginDate through hour 0 on EvaluationEndDate,
return result B.
Results:
Result Response
A You have not reported a valid Method or Supplemental MATS Compliance Method for
[ParameterGroup].
B You have not reported a valid Method or Supplemental MATS Compliance Method for
[ParameterGroup] for the entire evaluation period.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report MATS Supplemental Method Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 246 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MATSMTH-10
Check Name: HC1 Spans Evaluation Range
Related Former Checks:
Applicability:
Description: Ensures that Monitor Method or MATS Method for HC1 is active for the MATS evaluation period, and that the
set of active records span the MATS evaluation period.
Specifications:
Locate records in MatsCombineilMethodRecordsByLocation where:
1) ParameterGroup is equal to "HCL", and
2) BeginDate is on or before EvaluationEndDate, and
3) EndDate is null, or is on or after MatsEvaluationBeginDate, and
If found and the BeginDate/Hours and EndDate/Hours for the located records do not span the period from hour 23 on
MatsEvaluationBeginDate through hour 0 on EvaluationEndDate,
return result B.
Results:
Result Response
A You have not reported a valid Method or Supplemental MATS Compliance Method for
[ParameterGroup].
B You have not reported a valid Method or Supplemental MATS Compliance Method for
[ParameterGroup] for the entire evaluation period.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report MATS Supplemental Method Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 247 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MATSMTH-11
Check Name: HF Spans Evaluation Range
Related Former Checks:
Applicability:
Description: Ensures that Monitor Method or MATS Method for HF is active for the MATS evaluation period, and that the
set of active records span the MATS evaluation period.
Specifications:
Locate records in MatsCombineilMethodRecordsByLocation where:
1) ParameterGroup is equal to "HF", and
2) BeginDate is on or before EvaluationEndDate, and
3) EndDate is null, or is on or after MatsEvaluationBeginDate, and
If found and the BeginDate/Hours and EndDate/Hours for the located records do not span the period from hour 23 on
MatsEvaluationBeginDate through hour 0 on EvaluationEndDate,
return result B.
Results:
Result Response
A You have not reported a valid Method or Supplemental MATS Compliance Method for
[ParameterGroup].
B You have not reported a valid Method or Supplemental MATS Compliance Method for
[ParameterGroup] for the entire evaluation period.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report MATS Supplemental Method Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 248 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Method
Environmental Protection Agency
Page 249 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: METHOD-1
Check Name: Method Begin Date Valid
Related Former Checks:
Applicability: General Check
Description: To ensure that the Method Begin Date is valid.
Specifications:
For the Monitoring Method record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B You reported a [Fieldname] of [Date], which is outside the range of acceptable values Fatal
for this date for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Environmental Protection Agency
Page 250 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-2
Check Name:
Related Former Checks:
Method Begin Hour Valid
Applicability:
Description:
General Check
To ensure that the Method Begin Hour is valid.
Specifications:
For the Monitoring Method record:
If BeginHour is null,
return result A.
If BeginHour is less than 0 or greater than 23
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Environmental Protection Agency
Page 251 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: METHOD-3
Check Name: Method End Date Valid
Related Former Checks:
Applicability: General Check
Description: To ensure that the Method End Date is valid.
Specifications:
For the Monitoring Method record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Method Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Environmental Protection Agency
Page 252 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: METHOD-4
Check Name: Method End Hour Valid
Related Former Checks:
Applicability: General Check
Description: To ensure that the Method End Hour is valid.
Specifications:
For the Monitoring Method record:
If EndHour is not null, and is less than 0 or greater than 23
return result A.
Results:
Result Response Severity
A You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Environmental Protection Agency
Page 253 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-5
Check Name: Method Dates and Hours Consistent
Related Former Checks:
Applicability: General Check
Description: To ensure that the Method Start Date, Start Hour, End Date, and End Hour are consistent.
Specifications:
For the Monitoring Method record:
If the EndDate is valid and not null, and the EndHour is null,
set Method Dates and Hours Consistent to false, and return result A.
If the EndHour is valid and not null, and the EndDate is null,
set Method Dates and Hours Consistent to false, and return result B.
If the BeginDate, BeginHour, EndDate, and EndHour are all valid,
If the EndDate is not null, and the BeginDate and BeginHour is after the EndDate and EndHour,
set Method Dates and Hours Consistent to false, return result C.
Otherwise,
set Method Dates and Hours Consistent to true.
Otherwise,
set Method Dates and Hours Consistent to false.
Results:
Result Response Severity
A You reported [datefield2] but did not report an [hourfield2] for [key]. Critical Error Level 1
B You reported [hourfield2] but did not report [datefield2] for [key]. Critical Error Level 1
C You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and Critical Error Level 1
[hourfieldl] for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Environmental Protection Agency
Page 254 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-6
Check Name: Method Active Status
Related Former Checks:
Applicability: General Check
Description: This check determines if the current method is active during the evaluation period using the
MonitorMethod.StartDate, Montior_Method.Start_Hour, MonitorMethod.EndDate, Monitor Method End
Hour, and the Evaluation Begin and End Dates. If the program begin or end date has an invalid date format,
the record will be considered inactive.
Specifications:
For a Monitor Method record with consistent dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Current Method Active to false.
Otherwise,
set Current Method Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the Method Evaluation Begin Date to the Evaluation Begin Date.
Set the Method Evaluation Begin Hour to 0.
Otherwise,
set the Method Evaluation Begin Date to the BeginDate.
Set the Method Evaluation Begin Hour to the BeginHour.
If the EndDate is null or is after the Evaluation End Date,
set the Method Evaluation End Date to the Evaluation End Date.
Set the Method Evaluation End Hour to 23.
Otherwise,
set the Method Evaluation End Date to the EndDate.
Set the Method Evaluation End Hour to the EndHour.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Environmental Protection Agency
Page 255 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-7
Check Name: Method Parameter Code Valid
Related Former Checks: ARP-12 (old)
Applicability: General Check
Description: Ensures that the Method Parameter Code is valid.
Validation Tables:
[Parameter to Category] (Cross Check Table)
[Parameter to Category] (Cross Check Table)
Specifications:
For the Monitoring Method record:
Set Method Parameter Valid to true.
If the Method ParameterCode is null,
set Method Parameter Valid to false, and return result A.
If the ParameterCode is equal to "H20" "OP", "NOX", "NOXR", "NOXM", "HGRE", "HGRH", "HCLRE", "HCLRH", "HFRE",
"HFRH", "S02RE" or "S02RH", and the Location Type is equal to "CP" or "MP",
set Method Parameter Valid to false, and return result B.
Otherwise,
Locate a record in the List of Method Parameter Codes (Parameter to Category Cross Check Table) where the
ParameterCode is equal to the ParameterCode in the current Method record and the CategoryCode is equal to
"METHOD".
If not found,
set Method Parameter Valid to false, and return result C.
Results:
Result
A
B
C
Usage:
1
1
Response
You have not reported the required value in the field [fieldname] for [key].
You have reported a methodology for [key], which is inappropriate for a [Location
Type],
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report Method Evaluation
Current Method Active Equals true
Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Severity
Fatal
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 256 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-8
Check Name:
Method Method Code Valid
Related Former Checks: NBP-59, old ARP-13, ARP-78A
Applicability:
Description:
General Check
Determines if method code is valid.
Validation Tables:
Method Parameter to Method to System Type (Cross Check Table)
Method Code (Lookup Table)
Method Parameter to Method to System Type (Cross Check Table)
Method Code (Lookup Table)
Specifications:
For the Monitoring Method record:
Set Method Method Code Valid to true
Set Method Substitute Data Code Valid to true
If the Method Code is null,
set Method Method Code Valid to false, and return result A.
If the Method Code is not in the Method Code Lookup Table,
set Method Method Code Valid and Method Substitute Data Code Valid to false, and return result B.
If the Method Code is equal to "EXP", and the Parameter Code is equal to "HI"
If the Location Type does not begin with "U",
set Method Method Code Valid and Method Substitute Data Code Valid to false, and return result C.
If the Method Code is equal to "CEMNOXR", and the Parameter Code is equal to "NOX",
If the EndDate is null or is on or after the ECMPS MP Begin Date,
return result D.
Otherwise,
Locate a record in the Parameter to Method Cross Check table where the ParameterCode is equal to the ParameterCode in
the current Method record and the MethodCode is equal to the MethodCode in the current Method record.
If found,
If the Location Type is equal to "CS", and the MethodCode begins with "AD", or is equal to "EXP", "AE", "FSA",
"LTFF", "MHHI", or "LME",
set Method Method Code Valid to false, and return result C.
If the Location Type is equal to "MS", and the MethodCode begins with "AD" or is equal to "EXP", "AE", "FSA",
"LTFF", "MHHI", "CALC", or "LME",
set Method Method Code Valid to false, and return result C.
If the Location Type is equal to "CP", and the MethodCode contains "CEM" or "CALC" or is equal to "EXP",
"LME", "MHHI", "NOXR", "AE", "F23", or "ST",
set Method Method Code Valid to false, and return result C.
If the Location Type is equal to "MP", and the MethodCode contains "CEM" or "CALC" or is equal to "EXP",
"LME", "MHHI", "LTFF" "F23", or "ST",
set Method Method Code Valid to false, and return result C.
If Location Type is equal to "U", and the MethodCode contains "CALC",
Environmental Protection Agency
Page 257 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
set Method Method Code Valid and Method Substitute Data Code Valid to false, and return result C.
If not found,
set Method Method Code Valid and Method Substitute Data Code Valid to false, and return result E.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] for [key]. Fatal
B You reported the value [value], which is not in the list of valid values, in the field Fatal
[fieldname] for [key].
C You have reported a methodology for [key], which is inappropriate for a [Location Critical Error Level 1
Type],
D You have reported a methodology for [key], which has previously been a valid Critical Error Level 1
methodology, but is no longer allowed.
E You have reported a monitoring methodology [value], which is not appropriate for the Critical Error Level 1
parameter [parameter].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Conditions: Current Method Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Environmental Protection Agency
Page 258 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-9
Check Name: Method Substitute Data Code Valid
Related Former Checks:
Applicability: General Check
Description: Determine if the Substitute Data Code is valid.
Validation Tables:
Method to Substitute Data Code (Cross Check Table)
Substitute Data Code (Lookup Table)
Method to Substitute Data Code (Cross Check Table)
Substitute Data Code (Lookup Table)
Specifications:
For the Monitoring Method record with a valid MethodCode:
Set Method Substitute Data Code Valid to true.
If ParameterCode is equal to "HGRE", "HGRH", "HCLRE", "HCLRH", "HFRE", "HFRH", "S02RE", or "S02RH",
If the SubstituteDataCode is not null,
set Method Substitute Data Code Valid to false, and return result C.
else
If the SubstituteDataCode is null,
Locate a record in the Method to Substitute Data Code cross check table for the MethodCode in the current
MonitoringMethod record.
If found,
set Method Substitute Data Code Valid to false, and return result A.
Otherwise,
If the SubstituteDataCode is not in the Substitute Data Code Lookup table,
set Method Substitute Data Code Valid to false, and return result B.
Otherwise,
Locate all records in the Method to Substitute Data Code cross check table for the MethodCode and
SubstituteDataCode in the current MonitoringMethod record.
If not found,
set Method Substitute Data Code Valid to false, and return result C.
If more than one record is found, or one record is found and the ParameterCode in the cross check record
is not null,
If the ParameterCode in the current MonitoringMethod record is valid,
If the ParameterCode in the current MonitoringMethod record is not equal to the
ParameterCode in any of the retrieved cross check records,
set Method Substitute Data Code Valid to false, and return result C.
Environmental Protection Agency
Page 259 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result Response
A You have not reported the required value in the field [fieldname] for [key].
B You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
C You reported substitute data code [value], which is not appropriate for the monitoring
methodology for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Conditions: Current Method Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 260 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-10
Check Name: Method Bypass Approach Code Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines if Method Bypass Approach Code is valid.
Validation Tables:
Bypass Approach Code (Lookup Table)
Bypass Approach Code (Lookup Table)
Specifications:
For the Monitoring Method record:
Set Method Bypass Approach Code Valid to true.
If the BypassApproachCode is not null,
Locate BypassApproachCode in the Bypass Approach Code Lookup Table.
If not found,
set Method Bypass Approach Code Valid to false, and return result A.
If found,
If the Method Parameter Code is valid and is not equal "S02", "NOX" or "NOXR", or the Method Method Code
is valid and is not equal to "AMS", "NOXR", "CEM", or "CEMF23",
set Method Bypass Approach Code, Valid to false, and return result B
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].
B You reported a bypass methodology for [key]. A bypass methodology does not apply to Critical Error Level 1
this parameter.
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Method Evaluation
Current Method Active Equals true
Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Environmental Protection Agency
Page 261 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-11
Check Name:
Overlapping Methods
Related Former Checks: NBP-58, ARP-76 (LME)
Applicability:
Description:
General Check
This check determines if for the monitoring location and parameter if is there another method for the same
parameter and method with the start and end dates for the second matching method found overlapping with
the start and end dates of the first matching method found.
Specifications:
For a Monitoring Method record with a valid ParameterCode and consistent dates:
Locate another Monitoring Method record for the location with a ParameterCode equal to the ParameterCode in the current record
and a BeginDate/BeginHour that is on or after the BeginDate/BeginHour in the current record and is on or before the Method
Evaluation End Date/Hour, and a EndDate/EndHour that is null or is on or after the Method Evaluation Begin Date/Hour.
If found,
return result A.
Results:
Result
A
Response
You have reported two monitoring methodologies for [parameter] with overlapping
start and end times during the evaluation period.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Method Evaluation
Current Method Active Equals True
Environmental Protection Agency
Page 262 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-12
Check Name:
HI Methods Valid for Linked Locations
Related Former Checks: ARP-78B
Applicability:
Description:
Specifications:
General Check
Ensure consistency of Heat Input Methods among locations linked to same unit.
For a Monitoring Method record with a ParameterCode equal to "HI" or "HIT", a valid MethodCode, and consistent dates:
If the MethodCode contains "CALC" or the Location Type does not begin with "U",
Locate all Unit Stack Configuration records for the location where the BeginDate is on or before the Method Evaluation
End Date and the EndDate is null or is on or after the Method Evaluation Begin Date.
If the MethodCode is equal to "LTFF",
For each Unit Stack Configuration record,
Locate all Monitoring Method records where the location is the unit location in the Unit Stack
Configuration record, the ParameterCode is equal to "HIT", the MethodCode contains "CALC", the
BeginDate/BeginHour is on or before the Method Evaluation End Date/End Hour and the EndDate is null
or the EndDate/EndHour is on or after the Method Evaluation Begin Date/Begin Hour.
If not found for all units, or if found for any unit, and the BeginDate/BeginHour and EndDate/EndHour of the
retrieved method records do not span the entire intersection between the method evaluation period and the
BeginDate and EndDate of the Unit Stack Configuration record,
If the Location Type is equal to "CP" or "MP", and the MethodCode is equal to "AD",
For each Unit Stack Configuration record,
Locate all Monitoring Method records where the location is the unit location in the Unit Stack
Configuration record, the ParameterCode is equal to "HI", the MethodCode contains "CALC", the
BeginDate/BeginHour is on or before the Method Evaluation End Date/End Hour and the EndDate is null
or the EndDate/EndHour is on or after the Method Evaluation Begin Date/Begin Hour.
If not found for all units or if found for any unit, and the BeginDate/BeginHour and EndDate/EndHour of the
retrieved method records do not span the entire intersection between the method evaluation period and the
BeginDate and EndDate of the Unit Stack Configuration record,
If the Location Type is equal to "CS" or "MS", and the MethodCode is equal to "CEM" or "AMS",
For each Unit Stack Configuration record,
Locate all Monitoring Method records where the location is the unit location in the Unit Stack
Configuration record, the ParameterCode is equal to "HI", the MethodCode contains "CALC", the
BeginDate/BeginHour is on or before the Method Evaluation End Date/End Hour and the EndDate is null
or the EndDate/EndHour is on or after the Method Evaluation Begin Date/Begin Hour.
If not found for at least one unit, or if found for any unit, and the BeginDate/BeginHour and EndDate/EndHour of
the retrieved method records do not span the entire intersection between the method evaluation period and the
BeginDate and EndDate of the Unit Stack Configuration record,
return result A.
return result B.
return result C.
If the Location Type is equal to "CS", and the MethodCode is equal to "CALC",
For each Unit Stack Configuration record,
Environmental Protection Agency
Page 263 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Locate all Monitoring Method records where the location is the unit location in the Unit Stack
Configuration record, the ParameterCode is equal to "HI", the MethodCode begins with "AD" or is equal
to "CEM", "AMS", or "CALC", the BeginDate/BeginHour is on or before the Method Evaluation End
Date/End Hour and the EndDate is null or the EndDate/EndHour is on or after the Method Evaluation
Begin Date/Begin Hour.
If not found for all units, or if found for any unit, and the BeginDate/BeginHour and EndDate/EndHour of the
retrieved method records do not span the entire intersection between the method evaluation period and the
BeginDate and EndDate of the Unit Stack Configuration record,
return result D.
If the Location Type begins with "U", and the MethodCode contains "CALC",
Set Method Found to false.
For any Unit Stack Configuration record with an associated StackPipelD beginning with "CS",
Locate all Monitoring Method records where the location is the stack/pipe location in the Unit Stack
Configuration record, the ParameterCode is equal to "HI", the MethodCode is equal to "CEM" or "AMS",
the BeginDate/BeginHour is on or before the Method Evaluation End Date/End Hour and the EndDate is
null or the EndDate/EndHour is on or after the Method Evaluation Begin Date/Begin Hour.
If found,
If the Non Load Based Indicator for the unit is equal to true,
return result E.
Otherwise,
set Method Found to true.
If Method Found is false,
For any Unit Stack Configuration record with an associated StackPipelD beginning with "CP",
Locate all Monitoring Method records where the location is the stack/pipe location in the Unit
Stack Configuration record, the ParameterCode is equal to "HI" or "HIT", the MethodCode
begins with "AD" or is equal to "LTFF", the BeginDate/BeginHour is on or before the Method
Evaluation End Date/End Hour and the EndDate is null or the EndDate/EndHour is on or after
the Method Evaluation Begin Date/Begin Hour.
If found,
If the Non Load Based Indicator for the unit is equal to true,
return result E.
Otherwise,
set Method Found to true.
If Method Found is false, or the BeginDate/BeginHour and EndDate/EndHour of all of the method records
retrieved above do not span the method evaluation period,
Set Method Found to null.
For each Unit Stack Configuration record with an associated StackPipelD beginning with "MS":
Locate a Monitoring Location Attribute record where the location is the stack/pipe location in the
Unit Stack Configuration record, the Bypasslndicator is equal to 1, the BeginDate is on or before
the Method Evaluation End Date, and the EndDate is null or is on or after the Method
Evaluation Begin Date.
Environmental Protection Agency
Page 264 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If not found,
Locate all Monitoring Method records where the location is the stack/pipe location in the
Unit Stack Configuration record, the ParameterCode is equal to "HI", the MethodCode is
equal to "CEM" or "AMS", the BeginDate/BeginHour is on or before the Method
Evaluation End Date/End Hour and the EndDate is null or the EndDate/EndHour is on
or after the Method Evaluation Begin Date/Begin Hour.
If found,
If Method Found is equal to false, or the BeginDate/BeginHour and
EndDate/EndHour of all of the method records retrieved above do not span the
entire intersection between the method evaluation period and the BeginDate and
EndDate of the Unit Stack Configuration record,
return result F.
Otherwise,
set Method Found to true.
If not found,
If Method Found is equal to true,
return result F.
Otherwise,
set Method Found to false.
If Method Found is null or is equal to false,
set Method Found to null.
For each Unit Stack Configuration record with an associated StackPipelD beginning with "MP":
Locate all Monitoring Method records where the location is the stack/pipe location in the
Unit Stack Configuration record, the ParameterCode is equal to "HI", the MethodCode
begins with "AD", the BeginDate/BeginHour is on or before the Method Evaluation End
Date/End Hour and the EndDate is null or the EndDate/EndHour is on or after the
Method Evaluation Begin Date/Begin Hour.
If found,
If Method Found is equal to false, or the BeginDate/BeginHour and
EndDate/EndHour of all of the method records retrieved above do not span the
entire intersection between the method evaluation period and hour 23 of the
BeginDate and hour 0 of the EndDate of the Unit Stack Configuration record,
return result F.
Otherwise,
set Method Found to true.
If not found,
If Method Found is equal to true,
return result F.
Otherwise,
Environmental Protection Agency
Page 265 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
set Method Found to false.
If Method Found is null or is equal to false,
return result F.
Results:
Result
A
B
C
D
Response Severity
You have reported a Heat Input methodology of "LTFF" for [location], but you have not Critical Error Level 1
reported a Heat Input methodology of "CALC" for all units linked to this pipe for the
entire evaluation period.
You have reported an Appendix D Heat Input methodology for [location], but you have Critical Error Level 1
not reported a Heat Input methodology of "CALC" for all units linked to this pipe for
the entire evaluation period.
You have reported a Heat Input methodology of "CEM" or "AMS" for [location], but
you have not reported a Heat Input methodology of "CALC" for at least one unit linked
to this stack for the entire evaluation period.
You have reported a Heat Input methodology of "CALC" for [location], but you have
not reported an appropriate Heat Input methodology for all units linked to this stack for
the entire evaluation period.
You have reported a Heat Input methodology indicating that heat input for [location] is
apportioned from heat input measured at a common stack or pipe, but the unit is a
non-load-based unit. You cannot apportion heat input for a non-load-based unit.
You have reported a Heat Input methodology of "CALC" for [location], but you have
not reported an appropriate Heat Input methodology for the stacks or pipes linked to
this unit for the entire evaluation period.
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Method Active Equals true
- Method Evaluation
Environmental Protection Agency
Page 266 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-14
Check Name: Method Consistent with Program
Related Former Checks:
Applicability: General Check
Description: Ensures that Method Parameter and Method are consistent with the program affiliated with the location.
Validation Tables:
[Program Parameter to Method Parameter] (Cross Check Table)
Specifications:
For a Monitoring Method record with consistent dates:
Matching Program Parameter Cd List = List of lookup Program Parameter Cd from Cross-Check Table "Program Parameter To
Method Parameter" where MethodParameterList contains Current Method. ParameterCd.
Locate all Location Program Parameter Records linked to the location with a ClassCode not equal to "N", "NA", or "NB"; an
UnitMonitorCertBeginDate that is on or before the Method Evaluation End Date and is not null, and a ParameterCd in Matching
Program Parameter Cd List.
If not found,
return result A.
If found,
If the ParameterCode is equal to "HI" and the MethodCode is equal to "EXP",
Locate a Unit Program Record linked to the location with a ProgramCode equal to "ARP", a ClassCode not equal
to "NA" or "N", an UnitMonitorCertBeginDate that is on or before the Method Evaluation End Date and is not
null, and an EndDate that is null or is on or after the Method Evaluation Begin Date.
If found,
return result A.
Otherwise,
If the EndDate in the current Method record is null,
return result B.
Else
If the Method Evaluation Begin Date is earlier than the earlier of the EmissionsRecordingBeginDate and January
1 of the year of the UnitMonitorCertBeginDate in the retrieved record with the earliest
UnitMonitorCertBeginDate,
return result C.
else if the EndDates in all the retrieved records are not null and the latest End Date is prior to the Method
Evaluation End Date,
return result G.
else if the BeginDates of the BeginReportPeriodlds and the EndDates of the EndReportPeridoIds for the retrieved
Program Parameter Records do not span the Method Evaluation Period,
return result H
else if the ParameterCode is equal to "C02" or "C02M",
From the Location Program Parameter Records previously located, locate records with Requiredlnd
equal to 1.
Environmental Protection Agency
Page 267 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If not found, or if the Method Evaluation Begin Date is earlier than the earlier of the
EmissionsRecordingBeginDate and January 1 of the year of the UnitMonitorCertBeginDate in the
retrieved record with the earliest UnitMonitorCertBeginDate,
Locate all Monitor Plan Reporting Frequency records linked to the location where the
ReportingFrequency is equal to "OS"; and the BeginQuarter is on or before the quarter of the
Method Evaluation End Date; and the EndQuarter is null or is on or after the quarter of the
Method Evaluation Begin Date.
If found,
return result D.
Otherwise,
If the month/day of the Method Evaluation Begin Date is not January 1,
Locate another Method record for the location where the BeginDate is prior to
the Method Evaluation Begin Date and the End Date is null or is on or after
January 1 of the year of the Method Evaluation Begin Date.
If found,
return result E.
Results:
Result
A
B
C
D
H
Response
You reported a monitoring methodology for [key], but this methodology is not
appropriate for the active programs associated with this location.
You have indicated that this unit is exempt from reporting heat input.
You reported a monitoring methodology for [key], but the BeginDate is not consistent
with the dates in the Unit Program records (or Unit Stack Configuration records)
associated with this location. If you believe that this error is incorrect, and has been
caused by an inaccurate date in the Unit Program record, please contact Craig Hillock
at Hillock.Craig@epa.gov.
You reported a monitoring methodology for [key], but according to the reporting
frequency records in this montioring plan, this location was an ozone-season only
reporter for all or part of the time that this method record was active. A C02
monitoring methodology is only appropriate for locations that report on an annual
basis.
You reported a monitoring methodology for [key] that does not span the entire
reporting year. A C02 monitoring methodology must be reported for an entire
reporting year.
Based on the dates in this record and in the unit program records associated with this
location, the monitoring methodology for [key] should only be reported if you are using
this software to report C02 emissions as part of the Greenhouse Gas Mandatory
Reporting Rule. If that is not the case, you should either not report this methodology
or should correct the dates in this record to be consistent with the ARP or RGGI unit
program records.
You reported a monitoring methodology for [key] with an End Date that is not
consistent with the End Date in the Unit Program records (or Unit Stack Configuration
records) associated with this location. If you believe that this error is incorrect, and
has been caused by an inaccurate date in the Unit Program record, please contact Craig
Hillock at Hillock.Craig@epa.gov.
You reported a monitoring methodology for [key] that is not appropriate for the entire
evaluation period.
Severity
Critical Error Level 1
Informational Message
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
Informational Message
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 268 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Conditions: Current Method Active Equals true
Environmental Protection Agency
Page 269 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-15
Check Name: Method Consistent with Fuels
Related Former Checks: ARP-14B, 72B, old ARP-61, ARP-42, ARP-51
Applicability: General Check
Description: This check determines if monitoring method is appropriate for the fuels burned.
Validation Tables:
Fuel Code (Lookup Table)
Specifications:
For a Monitoring Method record with a valid ParameterCode, a valid MethodCode, and consistent dates:
If the ParameterCode is equal to "OP" and the MethodCode is equal to "EXP",
Locate all Unit Control records linked to the location where the ControlCode is equal to "WL", "WLS", or "WS", the
InstallDate is null, and the OriginalCode is equal to 1.
If not found,
Locate all Unit Control records linked to the location where the ControlCode is equal to "WL", "WLS", or "WS",
the InstallDate is on or before Method Evaluation End Date, and the RetireDate is null or is on or after Method
Evaluation Begin Date).
If not found,
Locate all Unit Fuel records linked to the location where BeginDate is on or before Method Evaluation
End Date and EndDate is null or is on or after Method Evaluation Begin Date.
For each record found,
If FuelCode is not equal to "DSL",
Locate FuelCode in Fuel Code lookup table.
If FuelGroupCode is not equal to "GAS" or "OIL",
return result A.
If FuelGroupCode is equal to "OIL",
Locate a Monitor Qualification record for the location where
QualificationTypeCode is equal to "GF", the BeginDate is on or before the
Method Evaluation End Date, and the EndDate is null or is on or after the
Method Evaluation Begin Date,
If not found,
return result A.
If the MethodCode begins with "AD", or "LTF", or is equal to "AE", "PEM", or "LME",
Locate all Unit Fuel records linked to the location where BeginDate is on or before Method Evaluation End Date and
EndDate is null or is on or after Method Evaluation Begin Date.
For each record found,
Locate FuelCode in Fuel Code lookup table.
Environmental Protection Agency
Page 270 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If FuelGroupCode is equal to "COAL" or "OTHER",
set Invalid Method Fuel to "coal or other solid fuels", and return result B.
If MethodCode is equal to "FSA",
Locate all Unit Fuel records linked to the location where the FuelCode is equal to "W" or "OSF", the BeginDate is on or
before Method Evaluation End Date and EndDate is null or is on or after Method Evaluation Begin Date.
If found,
set Invalid Method Fuel to "wood or other solid fuel", and return result B.
Results:
Result Response Severity
A You have reported [key], but this methodology is not appropriate unless the unit is only Critical Error Level 1
burning gas or diesel, or is a gas-fired unit that is burning only gas or oil.
B You have reported [key], but this methodology is not appropriate when the unit is Critical Error Level 1
burning [invalid fuel].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Conditions: Current Method Active Equals true
Environmental Protection Agency
Page 271 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-16
Check Name: Substitute Data Code Consistent with Non Load Based Indicator
Related Former Checks:
Applicability: General Check
Description: This Check determines whether or not a non load based indicator is reported for a location that is reporting
NLB or NLBOP as a missing data approach.
Specifications:
For a Monitoring Method record with a valid SubstituteDataCode that begins with "NLB",
If the Location Non Load Based Indicator is not equal to I,
return result A.
Results:
Result Response Severity
A You have reported a substitute data approach of NLB or NLBOP for [key]. This Critical Error Level 1
approach is only appropriate for use by non load-based units.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Conditions: Current Method Active Equals True
Environmental Protection Agency
Page 272 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-17
Check Name:
Substitute Data Code Consistent with Program and Reporting Frequency
Related Former Checks: ARP-73E
Applicability:
Description:
General Check
This check ensures that locations using the OZN75 substitute data approach are Subpart H year-round
reporters.
Specifications:
For a Monitor Method record with a valid Substitute Data Code equal to "OZN75" and consistent dates:
Locate all Monitor Plan Reporting Frequency records linked to the location where the ReportingFrequency is equal to "Q"; and the
BeginQuarter is on or before the quarter of the Method Evaluation End Date; and the EndQuarter is null or is on or after the
quarter of the Method Evaluation Begin Date.
If found, and the EndQuarter of all the retrieved records are not null, and the latest EndQuarter of the retrieved records is prior to
the quarter of the Method Evaluation End Date,
return result B.
If not found,
return result A.
Results:
Result
A
Response
You have reported a substitute data approach of OZN75 for [key]. This approach is
only appropriate for use by Subpart H units that report on a year-round basis.
You have reported a substitute data approach of OZN75 for [key]. This approach is
only appropriate for use by Subpart H units that report on a year-round basis, but you
have not reported the appropriate reporting frequency records that span the entire
evaluation period.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Method Evaluation
Current Method Active Equals true
Environmental Protection Agency
Page 273 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-18
Check Name: Required Unit Control for Bypass Approach
Related Former Checks:
Applicability: CEM Check
Description: This check determines if the use of an unmonitored bypass stack is appropriate due to the presence of control
equipment.
Specifications:
For a Monitoring Method record with a valid BypassApproachCode that is not null and consistent dates:
Locate all Unit Type records linked to this location where the UnitTypeCode is equal to "CC", and the BeginDate is null or is on or
before the Method Evaluation End Date and the EndDate is null or on or after the Method Evaluation Begin Date.
If no Unit Type records are found, or there are no Unit Type records with a null End Date, or the latest EndDate of the retrieved
record is prior to the Method Evaluation End Date,
If the Method ParameterCode is equal to "NOXR",
Locate all Unit Control records linked to this location where the ParameterCode is equal to "NOX", the
BeginDate is null or is on or before the Method Evaluation End Date and the EndDate is null or on or after the
Method Evaluation Begin Date.
Otherwise,
Locate all Unit Control records linked to this location where the ParameterCode is equal to the Method
ParameterCode, the BeginDate is null or is on or before the Method Evaluation End Date and the EndDate is null
or on or after the Method Evaluation Begin Date.
If no Unit Type records are found, and no Unit Control records are found,
return result A.
If the there are no Unit Type or Unit Control records with a null EndDate or the latest EndDate of all the retrieved Unit Type and
Unit Control records is prior to the Method Evaluation End Date,
return result B.
Results:
Result
A
B
Response
You have reported a Bypass Stack Approach Code for [key], which indicates that
emissions normally monitored at this location are sometimes emitted through an
unmonitored bypass stack when unit controls are not working. However, this location
does not have any unit controls defined that were active during the evaluation period.
You have reported a Bypass Stack Approach Code for [key], which indicates that
emissions normally monitored at this location are sometimes emitted through an
unmonitored bypass stack when unit controls are not working. However, you have not
reported unit controls records for this location that span the entire evaluation period.
Severity
Non-Critical Error
Non-Critical Error
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Method Active Equals true
- Method Evaluation
Environmental Protection Agency
Page 274 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-19
Check Name: Bypass Approach Code Consistent with Bypass Stack Indicator
Related Former Checks:
Applicability: CEM Check
Description: This check determines if a Bypass Stack Approach Code has been inappropriately reported for a Bypass Stack.
Specifications:
For a Monitoring Method record with a valid BypassApproachCode that is not null, consistent dates, and a Location Type equal to "CS" or
"MS":
Locate a Location Attribute record for the location where the Bypasslndicator is equal to 1 and the BeginDate is on or before the
Monitor Evaluation End Date and the EndDate is null or is on or after the Monitor Evaluation Begin Date.
If found,
return result A.
Results:
Result Response Severity
A You have reported a Bypass Stack Approach Code for [key], which indicates that Critical Error Level 1
emissions normally monitored at this location are sometimes emitted through an
unmonitored bypass stack. However, this location is defined as a bypass stack. A
Bypass Stack Approach Code is not appropriate for a monitoring method at a bypass
stack.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Conditions: Current Method Active Equals True
Environmental Protection Agency
Page 275 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-20
Check Name:
Related Former Checks:
CEM Methods Consistent
Applicability:
Description:
CEM Check
This check determines if monitoring locations reporting emissions using CEMs are reporting the correct
methods for all parameters.
Specifications:
For a Monitoring Method record with consistent dates:
If the ParameterCode is equal to "H20",
Locate all Monitoring Method records for the location where the MethodCode is equal to "CEM" or "AMS", the
BeginDate and BeginHour is on or before the Method Evaluation End Date and End Hour, and the EndDate is null or the
EndDate and EndHour is on or after the Method Evaluation Begin Date and Begin Hour.
return result A.
If found, the BeginDate/Hour and EndDate/Hour of all the retrieved records do not span the entire method evaluation
period,
return result B.
If the MethodCode is equal to "CEM",
If ParameterCode is equal to "NOX" or "NOXR",
Locate all Monitoring Method records for the location where the MethodCode begins with "PEM" or "LTF"
or is equal to "AE", "LME", or "MHHI", the BeginDate and BeginHour is on or before the Method Evaluation
End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the Method
Evaluation Begin Date and Begin Hour.
If found,
add all ParameterCodes in the retrieved records to the Invalid Parameters for CEM Method, and return
result C.
Locate all Monitoring Method records for the location where the MethodCode begins with "AD", "PEM", or
"LTF" or is equal to "AE", "LME", or "MHHI", the BeginDate and BeginHour is on or before the Method
Evaluation End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the
Method Evaluation Begin Date and Begin Hour.
If found,
add all ParameterCodes in the retrieved records to the Invalid Parameters for CEM Method, and return
result C.
If not found,
Otherwise,
Environmental Protection Agency
Page 276 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
Response
You have reported a H20 monitoring methodology for [key], but no corresponding
CEM/AMS methodology for this location.
You have reported a H20 monitoring methodology for [key], but you have not reported
corresponding CEM/AMS method records that span the entire evaluation period for
this location.
You reported a CEM monitoring methodology for [key], but you reported an
inappropriate non-CEM methodology for [parameters].
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report -
Current Method Active Equals True
- Method Evaluation
Environmental Protection Agency
Page 277 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-22
Check Name: Appendix E Method Consistent with HI Method
Related Former Checks:
Applicability: Appendix E Check
Description: This check determines if monitoring locations reporting a NOX Appendix E methodology is reporting a
corresponding Heat Input Appendix D methodology.
Specifications:
For a MonitoringMethod record with a ParameterCode equal to "NOXR", "C02", or "S02", and a valid MonitoringMethodCode equal to
"AE" or "AD":
If MonitoringMethodCode is equal to "AD",
Locate all Method records for the location where the ParameterCode is equal to "HI" and the MonitoringMethodCode
begins with "AD", a BeginDate and BeginHour that is on or before the Method Evaluation End Date and End Hour, and
an EndDate and EndHour that is null or is on or after the Method Evaluation End Date and End Hour.
Locate all Method records for the location where the ParameterCode is equal to "HI" and the MonitoringMethodCode is
equal to "AD" or "CALC", a BeginDate and BeginHour that is on or before the Method Evaluation End Date and End
Hour, and an EndDate and EndHour that is null or is on or after the Method Evaluation End Date and End Hour.
If not found,
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire period from the
Method Evaluation Begin Date/Begin Hour to the Method Evaluation End Date/End Hour,
return result B.
Results:
Result Response Severity
A You have reported [key], but you have not reported an active corresponding Heat Input Critical Error Level 1
Appendix D methodology.
B You have reported [key], but you have not reported corresponding Heat Input Appendix Critical Error Level 1
D methodology records that span the entire evaluation period.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Conditions: Current Method Active Equals True
Environmental Protection Agency
Page 278 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-23
Check Name:
LME Methods Consistent
Related Former Checks: ARP-59, 60
Applicability:
Description:
LME Check
This check determines if LME units are reporting the correct methods for all parameters.
Specifications:
For a Monitoring Method record with consistent dates and a valid method code equal to "LME", "MHHI", or "LTFF":
Locate a Monitoring Method record for the facility where the location is the current location; the MethodCode begins with "CEM"
or "AD" or is equal to "PEM", "AE", "FSA", or "AMS"; the BeginDate and BeginHour is on or before the Method Evaluation End
Date and End Hour; and the EndDate is null or the EndDate and EndHour is on or after the Method Evaluation Begin Date and
Begin Hour.
set Invalid Parameters for LME Method to all the Parameter Codes in the retrieved records, and return result A.
If not found, and the Location Type is equal to "CP".
Locate all Unit Stack Configuration records for the location where the BeginDate is on or before the Method Evaluation
End Date and the EndDate is null or is on or after the Method Evaluation Begin Date.
For each Unit Stack Configuration record:
Locate a Monitoring Method record for the facility where the location is the unit in the retrieved Unit Stack
Configuration records; the MethodCode begins with "CEM" or "AD" or is equal to "PEM", "AE", "FSA", or
"AMS"; the BeginDate and BeginHour is on or before the Method Evaluation End Date and End Hour; and the
EndDate is null or the EndDate and EndHour is on or after the later of the Unit Stack Configuration Begin Date
Hour 23 and the Method Evaluation Begin Date and Begin Hour.
If found,
append all the ParameterCodes in the retrieved records to Invalid Parameters for LME Method.
If Invalid Parameters for LME Method is not null,
return result A.
If found,
Results:
Result
A
Response
You reported an LME monitoring methodology for [key], but you reported an
inappropriate non-LME methodology for [parameters].
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Method Evaluation
Current Method Active Equals true
Environmental Protection Agency
Page 279 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-24
Check Name:
Related Former Checks:
Required Methods Reported for NOX/NOXR Method
Applicability:
Description:
General Check
This check determines if, for a location for which the method parameter NOX and the method code NOXR
have been reported, a concurrently active NOXR and HI methodology have been reported for the entire
evaluation period.
Specifications:
For a Monitor Method record with a ParameterCode equal to "NOX", a MethodCode equal to "NOXR", and consistent dates:
Locate a Monitor Method record for the location with a ParameterCode equal to "NOXR", a BeginDate and BeginHour that is on
or before the Method Evaluation End Date and End Hour, and an EndDate and EndHour that is null or is on or after the Method
Evaluation End Date and End Hour.
set Missing Method Parameters for NOX/NOXR Method to "NOXR".
Also, Locate a Monitor Method record for the location with a ParameterCode equal to "HI", a BeginDate and BeginHour that is on
or before the Method Evaluation End Date and End Hour, and an EndDate and EndHour that is null or is on or after the Method
Evaluation End Date and End Hour.
append "HI" to Missing Method Parameters for NOX/NOXR Method.
If either record is not found,
return result A.
Otherwise,
If any NOXR records are found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved NOXR records do
not span the entire method evaluation period,
set Missing Method Parameters for NOX/NOXR Method to "NOXR".
If any HI records are found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved HI records do not span
the entire method evaluation period,
append "HI" to Missing Method Parameters for NOX/NOXR Method.
If the Missing Method Parameters for NOX/NOXR Method is not null,
return result B.
If not found,
If not found,
Results:
Result
A
Response
You reported [key], which indicates that NOx Mass is calculated using NOx Rate and
Heat Input. However, you have not reported a methodology that was active during the
evaluation period for [missing] at this location.
You reported [key], which indicates that NOx Mass is calculated using NOx Rate and
Heat Input. However, you have not reported a methodology for [missing] at this
location that span the entire evaluation period.
Severity
Critical Error Level 1
B
Critical Error Level 1
Environmental Protection Agency
Page 280 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Conditions: Current Method Active Equals true
Environmental Protection Agency
Page 281 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-25
Check Name:
Required NFS System Reported for Method
Related Former Checks: ARP-11, ARP-53A, NBP-57
Applicability:
Description:
General Check
This check determines if there is an active primary monitoring system associated with the Method for the
entire evaluation period.
Validation Tables:
Method Parameter to Method to System Type (Cross Check Table)
Specifications:
For a Monitoring Method record with a valid ParameterCode, a valid MethodCode, and consistent dates:
If the ParameterCode is equal to "HI", and the MethodCode is equal to "CEM",
Locate all Monitor System records for the location where the SystemTypeCode is equal to "C02" or "02", the
SystemDesignationCode is equal to "P", the BeginDate/BeginHour is null or is on or before the Method Evaluation End
Date/End Hour, and the EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found, and the Method Evaluation Begin Date is on or after the ECMPS MP Begin Date,
set Required System for Method to "C02 or 02", and return result A.
If not found and the Method Evaluation Begin Date is prior to the ECMPS MP Begin Date, or if the
BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire method evaluation period,
Locate a Unit Program record linked to the location where the ProgramCode is equal to "ARP", the ClassCode is
not equal to "NA", and the UnitMonitorCertBeginDate is prior to the ECMPS MP Begin Date,
If no Monitor System records were found,
set Required System for Method to "C02 or 02", and return result A.
If the BeginDate/BeginHour and EndDate/EndHour of the retrieved Monitor System records do not span
the portion of the method evaluation period on or after the UnitMonitorCertBeginDate hour 0,
set Required System for Method to "C02 or 02", and return result B.
If not found, and the Method Evaluation End Date is on or after the ECMPS MP Begin Date,
If no Monitor System records were found,
set Required System for Method to "C02 or 02", and return result A.
If the BeginDate/BeginHour and EndDate/EndHour of the retrieved Monitor System records do not span
the portion of the method evaluation period on or after ECMPS MP Begin Date hour 0,
set Required System for Method to "C02 or 02", and return result B.
If the ParameterCode is not equal to "HI", and the MethodCode contains "CEM" or contains "ST" or is equal to "PEM", "MTB",
"MMS", "MWD",
Locate a record in the Parameter and Method to System Type Cross Check table where the ParameterCode is equal to the
ParameterCode in the current Method record, the MethodCode is equal to the MethodCode in the current Method record,
and the SystemTypeCode is not null,
If one record is found,
Locate all Monitor System records for the location where the SystemTypeCode is equal to the SystemTypeCode in
If found,
Environmental Protection Agency
Page 282 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
the cross check table, the SystemDesignationCode is equal to "P" or "PB", the BeginDate/BeginHour is null or is
on or before the Method Evaluation End Date/End Hour, and the EndDate/EndHour is null or is on or after the
Method Evaluation Begin Date/Begin Hour.
If not found,
set Required System for Method to the SystemTypeCode in the cross check table, and return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire
method evaluation period,
set Required System for Method to the SystemTypeCode in the cross check table, and return result B.
If more than one record is found,
Set Required System for Method to null.
Set Incomplete System for Method to null.
Set primary to null.
For each cross check table record found:
Locate all Monitor System records for the location where the SystemTypeCode is equal to the
SystemTypeCode in the cross check table record, the BeginDate/BeginHour is null or is on or before the
Method Evaluation End Date/End Hour, and the EndDate/EndHour is null or is on or after the Method
Evaluation Begin Date/Begin Hour.
If not found,
append SystemTypeCode in the cross check table to Required System for Method.
If found,
If the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the
entire method evaluation period,
append SystemTypeCode in the cross check table to Incomplete System for Method.
Otherwise,
If the SystemDesignationCodes in all the retrieved records are equal to "P" or "PB",
If primary is equal to "FOUND",
set primary to "BOTH".
Otherwise,
set primary to "FOUND".
If Required System for Method is not null, and Incomplete System for Method is null,
return result C.
If Required System for Method is null, and Incomplete System for Method is not null,
return result D.
If Required System for Method is not null, and Incomplete System for Method is not null,
return result E.
If primary is equal to "BOTH",
return result F.
If primary is null,
Locate all Monitor System records for the location where the SystemTypeCode is equal to any of the
SystemTypeCodes in the retrieved cross check table records, the SystemDesignationCode is equal to "P"
or "PB", the BeginDate/BeginHour is null or is on or before the Method Evaluation End Date/End Hour,
Environmental Protection Agency
Page 283 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
and the EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found, or if the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span
the entire method evaluation period,
return result G.
Results:
Result
A
B
C
D
E
Usage:
1
Response
You reported a monitoring methodology for [key], but there is no primary [system]
monitoring system that was active during the evaluation period, which is required for
this method.
You reported a monitoring methodology for [key], but there is no primary [system]
monitoring system that is active for the entire evaluation period.
You reported a monitoring methodology for [key], but there is no [system] monitoring
system that was active during the evaluation period, which is required for this method.
You reported a monitoring methodology for [key], but there is no [incomplete]
monitoring system that is active for the entire evaluation period.
You reported a monitoring methodology for [key], but there is no [system] monitoring
system that was active during the evaluation period, which is required for this method.
Also, you did not report a [incomplete] monitoring system that was active for the entire
evaluation period.
You reported concurrently active primary HG and ST monitoring systems. If you use
the CEMST methodology to measure Hg, you must designate either the HG or the ST
system to be the primary system.
You reported a monitoring methodology for [key], but you did not designate an HG or
HGK monitoring system to be the primary monitoring system for the entire evaluation
period.
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:
Conditions:
Monitoring Plan Evaluation Report -
Current Method Active Equals True
- Method Evaluation
Environmental Protection Agency
Page 284 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-26
Check Name:
Required Flow System Reported for Method
Related Former Checks: ARP-11, NBP-57
Applicability:
Description:
General Check
This check determines if there is the appropriate number of active primary flow monitoring system associated
with the Method for the entire evaluation period.
Specifications:
For a Monitoring Method record with a valid ParameterCode, a valid MethodCode, and consistent dates:
If the ParameterCode is equal to "S02", "HI", "C02", or "NOX", and the MethodCode contains "CEM"; OR the ParameterCode is
equal to "HGRE", "HCLRE", "HFRE", or "S02RE", and the MethodCode does NOT equal "CALC",
Locate a Monitor System for the location where the SystemTypeCode is equal to "FLOW", the SystemDesignationCode is
equal to "P", the BeginDate/BeginHour is null or is on or before the Method Evaluation End Date/End Hour, and the
EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire method
evaluation period,
return result B.
Results:
Result
A
Response
You reported a monitoring methodology for [key], but there is no primary [system]
monitoring system that was active during the evaluation period, which is required for
this method.
You reported a monitoring methodology for [key], but there is no primary [system]
monitoring system that is active for the entire evaluation period.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Method Evaluation
Current Method Active Equals true
Environmental Protection Agency
Page 285 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-27
Check Name: Required Formula Reported for Method
Related Former Checks: ARP-2, ARP-3, ARP-4, ARP-25, ARP-48, NBP-27, NBP-25, old NBP-22
Applicability: General Check
Description: This check will determine if required formulas are reported for the method for the entire evaluation period.
Specifications:
For a Monitoring Method record where MethodParameterCodeValid, MethodMethodCodeValid, and MethodDatesAndHoursConsistent
equal to true:
Locate a record in ParameterAndMethodAndLocationToFormulaCrossCheck table where:
1) ParameterCode and MethodCode are equal to the ParameterCode and MethodCode in CurrentMethod, and
2) LocationTypeList is null or LocationTypeList contains LocationType.
If found,
If SystemTypeList is null in the located ParameterAndMethodAndLocationToFormulaCrossCheck record,
Locate a Monitor Formula for the location where:
1) ParameterCode is equal to CurrentMethod. Pa ra mctc rCodc.
2) FormulaCode is listed in FormulaList of the located
ParameterAndMethodAndLocation ToFormulaCrossCheck record,
3) BeginDate/BeginHour is null or is on or before the Method Evaluation End Date/End Hour, and
4) EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
Set MissingFormulaForMethod to CurrentMethod. Pa ra mctc rCodc concatenated with
FormulaList of the located ParameterAndMethodAndLocationToFormulaCrossCheck record.
Return result in NotFoundResult for the located
ParameterA ndMeth odA ndL ocation ToFormulaCrossCheck record.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the
entire method evaluation period,
Set MissingFormulaFor Method to CurrentMethod. Pa ra mctc rCodc concatenated with
FormulaList of the located ParameterAndMethodAndLocationToFormulaCrossCheck record.
Return result B.
Else
If EcmpsOnly of the located ParameterAndMethodAndLocationToFormulaCrossCheck record is equal
to "Yes",
Set FormulaRangeBeginDateAndHour to the later of Method Evaluation Begin Date/Begin
Hour, and the ECMPS MP Begin Date.
Else
Set FormulaRangeBeginDateAndHour to Method Evaluation Begin Date/Begin Hour.
Locate all Monitor System records for the location where:
1) SystemTypeCode is in SystemTypeList of the located
ParameterA ndMeth odA ndL ocation ToFormulaCrossCheck record.
2) BeginDate/BeginHour is on or before the Method Evaluation End Date/End Hour,
3) EndDate/EndHour is null or is on or after the later of the luirmulaRangelieginDatek ndHour.
Environmental Protection Agency
Page 286 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If more than one record is found, and for any two records the FuelCode is different, and the BeginDate
and EndDate of the records overlap the period between FormulaRangeBeginDateAndHour and Method
Evaluation End Date,
Locate a Monitor Formula for the location where:
1) ParameterCode is equal to CurrentMethod. Pa ra mctc rCodc.
2) FormulaCode is in FormulaList of the located
ParameterAndMethodAndLocation ToFormulaCrossCheck record,
3) BeginDate/BeginHour is null or is on or before the Method Evaluation End Date/End Hour,
and
4) EndDate/EndHour is null or is on or after the FormulaRangeBeginDateAndHour.
If not found,
Set MissingFormulaForMethod to CurrentMethocI. Pa ra mctc rCodc concatenated with
FormulaList of the located ParameterAndMethodAndLocationToFormulaCrossCheck
record.
Return result in NotFoundResult for the located
ParameterA ndMeth odA ndL ocation ToFormulaCrossCheck record.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not
span the overlapping period in the Monitor System records that also overlaps the period between
FormulaRangeBeginDateAndHour and Method Evaluation End Date/End Hour,
Set MissingFormulaFor Method to CurrentMethod. Pa ra mctc rCodc concatenated with
FormulaList of the located ParameterAndMethodAndLocationToFormulaCrossCheck
record.
Return result B.
Results:
Result
A
Response
You have reported [key], but you have not reported a [formula] formula that was active
during the evaluation period, which is required when using this monitoring
methodology.
You have reported [key], but you have not reported the required [formula] formula to
span the entire evaluation period.
You have reported [key], but you have not reported a [formula] formula that was active
during the evaluation period, which is required when using this monitoring
methodology with fuel flow systems measuring more than one fuel.
You reported [key], but you have not reported a [formula] formula that was active
during the evaluation period, which is required when using this monitoring
methodology with multiple NOXE systems for different fuels.
Severity
Critical Error Level 1
B
Critical Error Level 1
C
Critical Error Level 1
D
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Method Evaluation
Current Method Active Equals True
Environmental Protection Agency
Page 287 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-28
Check Name: Required Defaults Reported for Method
Related Former Checks: ARP-47
Applicability: General Check
Description: This check will determine if there is there a concurrently active default reported for the monitoring location for
the indicated method and purpose for the entire evaluation period.
Specifications:
For a Monitoring Method record with a valid ParameterCode, a valid MethodCode, and consistent dates:
set Missing Default for Method and Incomplete Default for Method to null.
If the ParameterCode is equal to "H20" and the MethodCode is equal to "MDF",
Locate a Monitor Default for the location where the ParameterCode is equal to "H20", the DefaultPurposeCode is equal to
"PM", the BeginDate/BeginHour is on or before the Method Evaluation End Date/End Hour, and the EndDate/EndHour is
null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
add "H20 PM" to Missing Default for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire method
evaluation period,
add "H20 PM" to Incomplete Default for Method.
If the ParameterCode is equal to "S02" and the MethodCode contains "F23",
Locate a Monitor Default for the location where the ParameterCode is equal to "S02R", the DefaultPurposeCode is equal
to "F23", the BeginDate/BeginHour is on or before the Method Evaluation End Date/End Hour, and the
EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
add "S02R F23" to Missing Default for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire method
evaluation period,
add "S02R F23" to Incomplete Default for Method.
If the ParameterCode is equal to "NOXR", and MethodCode begins with "CEM",
Locate a Monitor Default for the location where the ParameterCode is equal to "NORX", the DefaultPurposeCode is equal
to "MD", the FuelCode is not equal to "NFS", the BeginDate/BeginHour is on or before the Method Evaluation End
Date/End Hour, and the EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
add "NORX MD" to Missing Default for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire method
evaluation period,
add "NORX MD" to Incomplete Default for Method.
If the MethodCode is equal to "S02R",
Locate a Monitor Default for the location where the ParameterCode is equal to "SORX", the DefaultPurposeCode is equal
to "MD", the FuelCode is equal to "NFS", the BeginDate/BeginHour is on or before the Method Evaluation End Date/End
Hour, and the EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
Environmental Protection Agency
Page 288 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If not found,
add "SORX MD" to Missing Default for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire method
evaluation period,
add "SORX MD" to Incomplete Default for Method.
If the MethodCode is equal to "PEM",
Locate a Monitor Default for the location where the ParameterCode is equal to "NOCX", the DefaultPurposeCode is equal
to "MD", the FuelCode is equal to "NFS", the BeginDate/BeginHour is on or before the Method Evaluation End Date/End
Hour, and the EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
add "NOCX MD" to Missing Default for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire method
evaluation period,
add "NOCX MD" to Incomplete Default for Method.
Locate a Monitor Default for the location where the ParameterCode is equal to "NORX", the DefaultPurposeCode is equal
to "MD", the FuelCode is equal to "NFS", the BeginDate/BeginHour is on or before the Method Evaluation End Date/End
Hour, and the EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
add "NORX MD" to Missing Default for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire method
evaluation period,
add "NORX MD" to Incomplete Default for Method.
If the ParameterCode is equal to "HIT" and the MethodCode is equal to "MHHI",
Locate a Monitor Default for the location where the ParameterCode is equal to "MHHI", the DefaultPurposeCode is equal
to "LM", the BeginDate/BeginHour is on or before the Method Evaluation End Date/End Hour, and the
EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
add "MHHI LM" to Missing Default for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire method
evaluation period,
add "MHHI LM" to Incomplete Default for Method.
If Missing Default for Method is not null, and Incomplete Default for Method is null,
return result A.
If Missing Default for Method is null, and Incomplete Default for Method is not null,
return result B.
If Missing Default for Method is not null, and Incomplete Default for Method is not null,
return result C.
If the MethodCode is equal to "AE",
Locate all Unit Fuel records linked to the location where the IndicatorCode is equal to "E", the BeginDate is on or before
Environmental Protection Agency
Page 289 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
the Method Evaluation End Date, and the EndDate is null or is on or after the Method Evaluation Begin Date.
For each Location Fuel record found,
Locate a Monitor Default for the location where the ParameterCode is equal to "NOCX", the DefaultPurposeCode
is equal to "MD", the associated UnitFuel is equal to the FuelCode in the fuel record, the BeginDate/BeginHour is
on or before the earlier of the Method Evaluation End Date/End Hour and the End Date and End Hour in the fuel
record, and the EndDate/EndHour is null or is on or after the later of the Method Evaluation Begin Date/Begin
Hour and the Begin Date and Begin Hour in the fuel record.
If not found for any fuel,
add "NOCX MD" to Missing Default for Method.
If, for any fuel, the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire
intersection of the method evaluation period and active fuel record period,
add "NOCX MD" to Incomplete Default for Method.
Locate a Monitor Default for the location where the ParameterCode is equal to "NORX", the DefaultPurposeCode
is equal to "MD", the associated UnitFuel is equal to the FuelCode in the fuel record, the BeginDate/BeginHour is
on or before the earlier of the Method Evaluation End Date/End Hour and the End Date and End Hour in the fuel
record, and the EndDate/EndHour is null or is on or after the later of the Method Evaluation Begin Date/Begin
Hour and the Begin Date and Begin Hour in the fuel record.
If not found for any fuel,
add "NORX MD" to Missing Default for Method.
If, for any fuel, the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire
intersection of the method evaluation period and active fuel record period,
add "NORX MD" to Incomplete Default for Method.
If Missing Default for Method is not null, and Incomplete Default for Method is null,
return result D.
If Missing Default for Method is null, and Incomplete Default for Method is not null,
return result E.
If Missing Default for Method is not null, and Incomplete Default for Method is not null,
return result F.
If the MethodCode is equal to "LME",
Set Missing Default Fuel for Method and Incomplete Default Fuel for Method to null.
Locate all Unit Fuel records linked to the location where the BeginDate is on or before the Method Evaluation End Date,
and the EndDate is null or is on or after the Method Evaluation Begin Date.
For each Location Fuel record found,
If ParameterCode is equal to "NOXM",
Locate a Monitor Default for the location where the ParameterCode is equal to "NOXR", the
DefaultPurposeCode begins with "LM", the associated UnitFuel is equal to the FuelCode in the unit fuel
record, an OperatingConditionCode equal to "A", "C", or "B", and the BeginDate/BeginHour is on or
before the Method Evaluation End Date/End Hour, and the EndDate/EndHour is null or is on or after the
Method Evaluation Begin Date/Begin Hour.
If not found for any fuel,
Environmental Protection Agency
Page 290 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
add FuelCode in Unit Fuel record to Missing Default Fuel for Method,
add "NOXR LM" to Missing Default for Method.
If, for any fuel, the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the
entire intersection of the method evaluation period and active fuel record period,
add FuelCode in Unit Fuel record to Incomplete Default Fuel for Method,
add "NOXR LM" to Incomplete Default for Method.
If ParameterCode is equal to "C02M",
Locate a Monitor Default for the location where the ParameterCode is equal to "C02R", the
DefaultPurposeCode begins with "LM", the associated UnitFuel is equal to the FuelCode in the unit fuel
record, an OperatingConditionCode equal to "A", and the BeginDate/BeginHour is on or before the
Method Evaluation End Date/End Hour, and the EndDate/EndHour is null or is on or after the Method
Evaluation Begin Date/Begin Hour.
If not found for any fuel,
add FuelCode in Unit Fuel record to Missing Default Fuel for Method,
add "C02R LM" to Missing Default for Method.
If, for any fuel, the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the
entire intersection of the method evaluation period and active fuel record period,
add FuelCode in Unit Fuel record to Incomplete Default Fuel for Method,
add "C02R LM" to Incomplete Default for Method.
If ParameterCode is equal to "S02M",
Locate a Monitor Default for the location where the ParameterCode is equal to "S02R", the
DefaultPurposeCode begins with "LM", the associated UnitFuel is equal to the FuelCode in the unit fuel
record, an OperatingConditionCode equal to "A", and the BeginDate/BeginHour is on or before the
Method Evaluation End Date/End Hour, and the EndDate/EndHour is null or is on or after the Method
Evaluation Begin Date/Begin Hour.
If not found for any fuel,
add FuelCode in Unit Fuel record to Missing Default Fuel for Method,
add "S02R LM" to Missing Default for Method.
If, for any fuel, the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the
entire intersection of the method evaluation period and active fuel record period,
add FuelCode in Unit Fuel record to Incomplete Default Fuel for Method,
add "S02R LM" to Incomplete Default for Method.
If Missing Default for Method is not null, and Incomplete Default for Method is null,
return result G.
If Missing Default for Method is null, and Incomplete Default for Method is not null,
return result H.
If Missing Default for Method is not null, and Incomplete Default for Method is not null,
return result I.
Environmental Protection Agency
Page 291 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
D
E
F
H
I
Response
You have reported [key], but you have not reported a [default parameter] default record
that was active during the evaluation period, which is required when using this
monitoring methodology.
You have reported [key], but you have not reported [incomplete default parameter]
default records that are active for the entire evaluation period.
You have reported [key], but you have not reported a [default parameter] default record
that was active during the evaluation period, which is required when using this
monitoring methodology. Also, you have not reported [incomplete default parameter]
default records that are active for the entire evaluation period.
You have reported [key], but you have not reported a [default parameter] default record
that was active during the evaluation period for every emergency fuel, which is
required when using this methodology.
You have reported [key], but you have not reported [incomplete default parameter]
default records that are active for the entire evaluation period for every emergency fuel.
You have reported [key], but you have not reported a [default parameter] default record
that was active during the evaluation period for every emergency fuel, which is
required when using this methodology. Also, you have not reported [incomplete
default parameter] default records that are active for the entire evaluation period.
You have reported [key], but you have not reported a valid [default parameter] default
record that was active during the evaluation period for [fuels], which is required when
using an LME methodology.
You have reported [key], but you have not reported [incomplete default parameter]
default records that are active for the entire evaluation period for [incomplete fuels].
You have reported [key], but you have not reported a valid [default parameter] default
record that was active during the evaluation period for [fuels], which is required when
using an LME methodology. Also, you have not reported [incomplete default
parameter] default records for [incomplete fuels] that are active for the entire
evaluation period.
Usage:
1
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
Process/Category:
Conditions:
Monitoring Plan Evaluation Report -
Current Method Active Equals True
- Method Evaluation
Environmental Protection Agency
Page 292 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-29
Check Name:
Required Defaults Reported for Missing Data Approach
Related Former Checks: ARP-74, 75B/D
Applicability:
Description:
CEM Check
This check determines if required defaults are reported for fuel-specific bypass approach or substitute data
code.
Validation Tables:
Method Parameter to Maximum Default Parameter to Component Type (Cross Check Table)
Specifications:
For a Monitoring Method record with consistent dates:
If the SubstituteDataCode is valid and equal to "FSP75C",
If the MethodCode is equal to "S02R",
Locate all records in the Method Parameter to Maximum Default Parameter and Component Type lookup table
with a Method Parameter Code equal to the ParameterCode in the method record and a Default Parameter Code
not equal to "S02X".
Locate all records in the Method Parameter to Maximum Default Parameter and Component Type lookup table
with a Method Parameter Code equal to the ParameterCode in the method record and a Default Parameter Code
not equal to "SORX".
For each retrieved cross check record,
Locate all Monitor Default records for the location where the ParameterCode is equal to the Maximum Default
Parameter Code in the retrieved cross check records, a DefaultPurposeCode equal to "MD", FuelCode not equal to
"NFS", a BeginDate and BeginHour that is on or before the Method Evaluation End Date and End Hour, and a
EndDate that is null or an EndDate and EndHour that is on or after the Method Evaluation Begin Date and Begin
Hour.
If not found, or none of the retrieved records has a FuelCode equal to "MIX",
add Maximum Default Parameter Code to Missing Maximum Default.
If the ComponentTypeCode in the retrieved cross-check record is equal to "NOX" or "S02",
Locate a Monitor Span record for the location where the ComponentTypeCode is equal to the
ComponentTypeCode in the cross-check record, the SpanScaleCode is equal to "H", the
MaximumPotentialConcentration is equal to the highest Default Value in the retrieved default
records, a StartDate and StartHour that is on or before the Method Evaluation End Date and End
Hour, and a EndDate that is null or an EndDate and EndHour that is on or after the Method
Evaluation Begin Date and Begin Hour.
If not found,
add the ComponentTypeCode in the cross-check record to Invalid Maximum Default.
If the ComponentTypeCode in the retrieved cross-check record is equal to "FLOW",
Locate a Monitor Span record for the location where the ComponentTypeCode is equal to
"FLOW", the MaximumPotentialFlow is equal to the highest Default Value in the retrieved
Otherwise,
If found,
Environmental Protection Agency
Page 293 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
default records, a StartDate and StartHour that is on or before the Method Evaluation End Date
and End Hour, and a EndDate that is null or an EndDate and EndHour that is on or after the
Method Evaluation Begin Date and Begin Hour.
If not found,
add "FLOW" to Invalid Maximum Default.
If the ComponentTypeCode in the retrieved cross-check record is null
Locate a Monitor Default record for the location where the ParameterCode is equal to the Default
Parameter Code in the retrieved cross check records, a DefaultPurposeCode equal to "MD",
FuelCode equal to "NFS", a Default Value equal to the highest Default Value in the retrieved
default records, StartDate and StartHour that is on or before the Method Evaluation End Date
and End Hour, and a EndDate that is null or an EndDate and EndHour that is on or after the
Method Evaluation Begin Date and Begin Hour.
If not found,
add the Maximum Default Parameter Code in the cross-check record to Invalid
Maximum Default.
If the SubstituteDataCode is valid and equal to "FSP75",
If the MethodCode is equal to "S02R",
Locate all records in the Method Parameter to Maximum Default Parameter and Component Type lookup table
with a Method Parameter Code equal to the ParameterCode in the method record and a Default Parameter Code
not equal to "S02X".
Otherwise,
Locate all records in the Method Parameter to Maximum Default Parameter and Component Type lookup table
with a Method Parameter Code equal to the ParameterCode in the method record and a Default Parameter Code
not equal to "SORX".
For each retrieved cross check record,
Locate all Monitor Default records for the location where the ParameterCode is equal to the Default Parameter
Code in the retrieved cross check records, a DefaultPurposeCode equal to "MD", a FuelCode equal to "NFS" or
"MIX", a BeginDate and BeginHour that is on or before the Method Evaluation End Date and End Hour, and a
EndDate that is null or an EndDate and EndHour that is on or after the Method Evaluation Begin Date and Begin
Hour.
If less than two records are found, or if there is only one FuelCode in the retrieved default records,
add Maximum Default Parameter Code to Missing Maximum Default.
Otherwise,
If the ComponentTypeCode in the retrieved cross-check record is equal to "NOX" or "S02",
Locate a Monitor Span record for the location where the ComponentTypeCode is equal to the
ComponentTypeCode in the cross-check record, the SpanScaleCode is equal to "H", the
MaximumPotentialConcentration is equal to the highest Default Value in the retrieved default
records, a StartDate and StartHour that is on or before the Method Evaluation End Date and End
Hour, and a EndDate that is null or an EndDate and EndHour that is on or after the Method
Evaluation Begin Date and Begin Hour.
If not found,
Environmental Protection Agency
Page 294 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
add the ComponentTypeCode in the cross-check record to Invalid Maximum Default.
If the ComponentTypeCode in the retrieved cross-check record is equal to "FLOW",
Locate a Monitor Span record for the location where the ComponentTypeCode is equal to
"FLOW", the MaximumPotentialFlow is equal to the highest Default Value in the retrieved
default records, a StartDate and StartHour that is on or before the Method Evaluation End Date
and End Hour, and an EndDate that is null or an EndDate and EndHour that is on or after the
Method Evaluation Begin Date and Begin Hour.
If not found,
add "FLOW" to Invalid Maximum Default.
If the ComponentTypeCode in the retrieved cross-check record is null,
Locate a Monitor Default record for the location where the ParameterCode is equal to the Default
Parameter Code in the retrieved cross check records, a DefaultPurposeCode equal to "MD",
FuelCode equal to "NFS", a Default Value equal to the highest Default Value in the retrieved
default records, StartDate and StartHour that is on or before the Method Evaluation End Date
and End Hour, and a EndDate that is null or an EndDate and EndHour that is on or after the
Method Evaluation Begin Date and Begin Hour.
If not found,
add the Maximum Default Parameter Code in the cross-check record to Invalid
Maximum Default.
If the MethodCode is valid, and the BypassApproachCode is valid and equal to "BYMAXFS",
If the MethodCode is equal to "S02R",
Locate the record in the Method Parameter to Maximum Default Parameter and Component Type lookup table
with a Method Parameter Code equal to the ParameterCode in the method record and a Default Parameter Code
not equal to "S02X" or "FLOX".
Otherwise,
Locate the record in the Method Parameter to Maximum Default Parameter and Component Type lookup table
with a Method Parameter Code equal to the ParameterCode in the method record and a Default Parameter Code
not equal to "SORX" or "FLOX".
Locate all Monitor Default records for the location where the ParameterCode is equal to the Default Parameter Code in
the retrieved cross check records, a DefaultPurposeCode equal to "MD", a FuelCode not equal to "NFS", a BeginDate and
BeginHour that is on or before the Method Evaluation End Date and End Hour, and a EndDate that is null or an EndDate
and EndHour that is on or after the Method Evaluation Begin Date and Begin Hour.
If found, and there are either more than one FuelCode in the retrieved records or the FuelCode in the retrieved record(s) is
equal to "MIX",
If the ComponentTypeCode in the retrieved cross-check record is equal to "NOX" or "S02",
Locate a Monitor Span record for the location where the ComponentTypeCode is equal to the
ComponentTypeCode in the cross-check record, the SpanScaleCode is equal to "H", the
MaximumPotentialConcentration is equal to the highest Default Value in the retrieved default records, a
StartDate and StartHour that is on or before the Method Evaluation End Date and End Hour, and a
EndDate that is null or an EndDate and EndHour that is on or after the Method Evaluation Begin Date
and Begin Hour.
Environmental Protection Agency
Page 295 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If not found,
add the ComponentTypeCode in the cross-check record to Invalid Maximum Default.
If the ComponentTypeCode in the retrieved cross-check record is null,
Locate a Monitor Default record for the location where the ParameterCode is equal to the Default
Parameter Code in the retrieved cross check records, a DefaultPurposeCode equal to "MD", FuelCode
equal to "NFS", a Default Value equal to the highest Default Value in the retrieved default records,
StartDate and StartHour that is on or before the Method Evaluation End Date and End Hour, and an
EndDate that is null or an EndDate and EndHour that is on or after the Method Evaluation Begin Date
and Begin Hour.
If not found,
add the Maximum Default Parameter Code in the cross-check record to Invalid Maximum
Default.
Otherwise,
add Maximum Default Parameter Code to Missing Maximum Default.
If the Missing Maximum Default is not null, and the Invalid Maximum Default is null,
return result A.
If the Invalid Maximum Default is not null, and the Missing Maximum Default is null,
return result B.
If both the Missing Maximum Default and the Invalid Maximum Default are not null,
return result C.
If the SubstituteDataCode is valid and equal to "MHHI",
Locate a Monitor Default for the location where the ParameterCode is equal to "MHHI", the DefaultPurposeCode is equal
to "LM", the BeginDate/BeginHour is on or before the Method Evaluation End Date/End Hour, and the
EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
return result D.
Results:
Result
A
B
C
D
Response
You reported a substitute data or bypass approach code in the monitoring methodology
record for [key] indicating the use of fuel-specific missing data, but you have not
reported the appropriate default records that were active during the evaluation period
for [missingdefault].
You reported a substitute data or bypass approach code in the monitoring methodology
record for [key] indicating the use of fuel-specific missing data, but you have not
reported a default value for [invalid default] that is equal to the MPC/MPF in the
corresponding span record or the MER in the corresponding NFS default record.
You reported a substitute data or bypass approach code in the monitoring methodology
record for [key] indicating the use of fuel-specific missing data, but you have not
reported the appropriate default records that were active during the evaluation period
for [missing default]. Also, you have not reported a default value for [invalid default]
that is equal to the MPC/MPF in the corresponding span record or the MER in the
corresponding NFS default record.
You reported a SubstituteDataCode of [code] for [key], but you did not report a [param]
default record in your monitoring plan that is required for missing data purposes.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 296 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Conditions: Current Method Active Equals true
Environmental Protection Agency
Page 297 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-30
Check Name: Required FuelFlow System Reported for Method
Related Former Checks: ARP-11, NBP-57
Applicability: Appendix D Check
Description: This check determines if there is the appropriate number of active primary FuelFlow system associated with
the Method for the entire evaluation period.
Validation Tables:
Fuel Code (Lookup Table)
Specifications:
For a Monitoring Method record with a ParameterCode equal to "HI" or "HIT", a valid MethodCode, and consistent dates:
If the MethodCode begins with "AD", and the Location Type begins with "U",
Locate all Unit Stack Configuration records where the unit location is the location in the Method record, the associated
StackPipelD begins with "CP" or "MP", the BeginDate is on or before the Method Evaluation End Date, and the EndDate
is null or is on or after the Method Evaluation Begin Date.
Locate all Unit Fuel records for the unit where the associated FuelGroup is equal to "OIL", the IndicatorCode is equal to
"P" or "S", the BeginDate is on or before the Method Evaluation End Date, and the EndDate is null or is on or after the
Method Evaluation Begin Date.
For each Unit Fuel record found,
Locate all records in the Fuel Code Lookup table where the UnitFuel is equal to the FuelCode in the Unit Fuel
record.
Locate all Monitor Systems where the location is the unit or any of the stack/pipe locations in the retrieved Unit
Stack Configuration records, the SystemTypeCode is equal to "OILM" or "OILV", the SystemDesignationCode is
equal to "P", the FuelCode is any of the FuelCode in the retrieved Fuel Code Lookup table records, the
BeginDate/BeginHour is null or is on or before the Method Evaluation End Date/End Hour, and the
EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
add the FuelCode in the Location Fuel Record to the Missing Fuel System for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire
intersection between the method evaluation period and the location fuel start date hour 23 and end date hour 0.
add the FuelCode in the Location Fuel Record to the Incomplete Fuel System for Method.
Locate all Unit Fuel records for the unit where the associated FuelGroup is equal to "GAS", the IndicatorCode is equal to
"P" or "S", the BeginDate is on or before the Method Evaluation End Date, and the EndDate is null or is on or after the
Method Evaluation Begin Date.
For each record found,
Locate all records in the Fuel Code Lookup table where the UnitFuel is equal to the FuelCode in the Unit Fuel
record.
Locate all Monitor Systems where the location is the unit or any of the stack/pipe locations in the retrieved Unit
Stack Configuration records, the SystemTypeCode is equal to "GAS", the SystemDesignationCode is equal to "P",
the FuelCode is any of the FuelCode in the retrieved Fuel Code Lookup table records, the BeginDate/BeginHour
is null or is on or before the Method Evaluation End Date/End Hour, and the EndDate/EndHour is null or is on or
after the Method Evaluation Begin Date/Begin Hour.
Environmental Protection Agency
Page 298 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If not found,
add the FuelCode in the Location Fuel Record to the Missing Fuel System for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire
intersection between the method evaluation period and the location fuel start date hour 23 and end date hour 0.
add the FuelCode in the Location Fuel Record to the Incomplete Fuel System for Method.
If the MethodCode begins with "LTF", and the Location Type begins with "U",
Locate all Unit Stack Configuration records where the unit location is the location in the Method record, the associated
StackPipelD begins with "CP", the BeginDate is on or before the Method Evaluation End Date, and the EndDate is null or
is on or after the Method Evaluation Begin Date.
Locate all Unit Fuel records for the unit where the associated FuelGroup is equal to "OIL", the IndicatorCode is equal to
"P" or "S", the BeginDate is on or before the Method Evaluation End Date, and the EndDate is null or is on or after the
Method Evaluation Begin Date.
For each Unit Fuel record found,
Locate all records in the Fuel Code Lookup table where the UnitFuel is equal to the FuelCode in the Unit Fuel
record.
Locate all Monitor Systems where the location is the unit or any of the stack/pipe locations in the retrieved Unit
Stack Configuration records, the SystemTypeCode is equal to "LTOL", the SystemDesignationCode is equal to
"P", the FuelCode is any of the FuelCode in the retrieved Fuel Code Lookup table records, the
BeginDate/BeginHour is null or is on or before the Method Evaluation End Date/End Hour, and the
EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
add the FuelCode in the Location Fuel Record to the Missing Fuel System for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire
intersection between the method evaluation period and the location fuel start date hour 23 and end date hour 0.
add the FuelCode in the Location Fuel Record to the Incomplete Fuel System for Method.
Locate all Unit Fuel records for the unit where the associated FuelGroup is equal to "GAS", the IndicatorCode is equal to
"P" or "S", the BeginDate is on or before the Method Evaluation End Date, and the EndDate is null or is on or after the
Method Evaluation Begin Date.
For each record found,
Locate all records in the Fuel Code Lookup table where the UnitFuel is equal to the FuelCode in the Unit Fuel
record.
Locate all Monitor Systems where the location is the unit or any of the stack/pipe locations in the retrieved Unit
Stack Configuration records, the SystemTypeCode is equal to "LTGS", the SystemDesignationCode is equal to
"P", the FuelCode is any of the FuelCode in the retrieved Fuel Code Lookup table records, the
BeginDate/BeginHour is null or is on or before the Method Evaluation End Date/End Hour, and the
EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
add the FuelCode in the Location Fuel Record to the Missing Fuel System for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire
intersection between the method evaluation period and the location fuel start date hour 23 and end date hour 0.
Environmental Protection Agency
Page 299 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
add the FuelCode in the Location Fuel Record to the Incomplete Fuel System for Method.
If Missing Fuel System for Method is not null, and the Incomplete Fuel System for Method is null,
return result A.
else if Incomplete Fuel System for Method is not null, and the Missing Fuel System for Method is null,
return result B.
else if both the Missing Fuel System for Method and the Incomplete Fuel System for Method are not null,
return result C.
otherwise,
If the MethodCode begins with "AD",
Locate all Monitor Systems for the location where the SystemTypeCode is equal to "OILM", "OILV", or "GAS",
the SystemDesignationCode is equal to "P", the BeginDate/BeginHour is null or is on or before the Method
Evaluation End Date/End Hour, and the EndDate/EndHour is null or is on or after the Method Evaluation Begin
Date/Begin Hour.
If not found,
return result D.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire
method evaluation period,
return result E.
If the MethodCode begins with "LTF",
Locate all Monitor Systems for the location where the SystemTypeCode is equal to "LTOL" or "LTGS", the
SystemDesignationCode is equal to "P", the BeginDate/BeginHour is null or is on or before the Method
Evaluation End Date/End Hour, and the EndDate/EndHour is null or is on or after the Method Evaluation Begin
Date/Begin Hour.
If not found,
return result D.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire
method evaluation period,
return result E.
Results:
Result
A
B
C
D
Response
You reported a monitoring methodology for [key], but there is no primary FuelFlow
system that was active during the evaluation period to measure [missing fuel] at the
unit or at a pipe linked to the unit, which is required for this method.
You reported a monitoring methodology for [key], but there is no primary FuelFlow
system to measure [incomplete fuel] that is active for the entire evaluation period.
You reported a monitoring methodology for [key], but there is no primary FuelFlow
system that was active during the evaluation period to measure [missing fuel] at the
unit or at a pipe linked to the unit. Also, there is no primary FuelFlow system to
measure [incomplete fuel] that is active for the entire evaluation period.
You reported a monitoring methodology for [key], but there is no primary FuelFlow
system that was active during the evaluation period at the location, which is required
for this method.
You reported a monitoring methodology for [key], but there is no primary FuelFlow
system at the location, which is active for the entire evaluation period.
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 300 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Conditions: Current Method Active Equals true
Environmental Protection Agency
Page 301 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-31
Check Name:
Required Peaking Qualification Reported for Appendix E Method
Related Former Checks: ARP-15
Applicability:
Description:
Appendix E Check
This check determines if there is a qualification record reported with the Qualification Type of PK or SK for
years during the evaluation period.
Specifications:
For a Monitoring Method record with a ParameterCode equal to "NOXR", a MethodCode equal to "AE", and consistent dates:
If Location Type is equal to "MP",
Locate a UnitStackConfiguration record for the stack/pipe location.
Locate Monitor Qualification records where the location is the unit location in the UnitStackConfiguration record, the
QualificationTypeCode is equal to "PK" or "SK", the BeginDate is on or before the Method Evaluation End Date, and the
EndDate is null or is on or after the Method Evaluation Begin Date.
Otherwise,
Locate Monitor Qualification records for the location in the Method record where the QualificationTypeCode is equal to
"PK" or "SK", the BeginDate is on or before the Method Evaluation End Date, and the EndDate is null or is on or after
the Method Evaluation Begin Date.
If not found,
return result A.
If found, and the BeginDate and EndDate in the retrieved records do not span the entire method evaluation period,
return result B.
Results:
Result
A
Response
You reported a method for [key], but there are no Monitor Qualification records that
were active during the evaluation period indicating that the unit is a peaking unit. The
Appendix E method can only be used for peaking units.
You reported a method for [key], but the Monitor Qualification records do not indicate
that the unit was a peaking unit for the entire evaluation period.
Severity
Critical Error Level 2
B
Critical Error Level 2
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Method Evaluation
Current Method Active Equals True
Environmental Protection Agency
Page 302 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-32
Check Name: Required Appendix E System Reported for Method
Related Former Checks: ARP-11, NBP-57
Applicability: Appendix E Check
Description: This check determines if there is the appropriate number of active primary NOX Appendix E system
associated with the Method for the entire evaluation period.
Validation Tables:
Fuel Code (Lookup Table)
Specifications:
For a Monitoring Method record with a ParameterCode equal to "NOXR", a MethodCode equal to "AE", and consistent dates:
set "NOXE" to NOX System Type.
Locate a Monitor System for the location where the SystemTypeCode is equal to "NOXE", the SystemDesignationCode is equal to
"P", the FuelCode is equal to "MIX", the BeginDate/BeginHour is null or is on or before the Method Evaluation End Date/End
Hour, and the EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
Locate all Unit Fuel records linked to the location where the associated FuelGroup is equal to "OIL" or "GAS", the
IndicatorCode is equal to "P" or "S", the BeginDate is on or before the Method Evaluation End Date, and the EndDate is
null or is on or after the Method Evaluation Begin Date.
For each record found,
Locate all records in the Fuel Code Lookup table where the UnitFuel is equal to the FuelCode in the Unit Fuel
record.
Locate a Monitor System for the location where the SystemTypeCode is equal to "NOXE", the
SystemDesignationCode is equal to "P", the FuelCode is any of the FuelCode in the Fuel Code Lookup table
records retrieved above, the BeginDate/BeginHour is null or is on or before the Method Evaluation End Date/End
Hour, and the EndDate/EndHour is null or is on or after the Method Evaluation Begin Date/Begin Hour.
If not found,
add the FuelCode in the Location Fuel Record to the Missing NOX System for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire
intersection between the method evaluation period and the location fuel start/end dates.
add the FuelCode in the Location Fuel Record to the Incomplete NOX System for Method.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire intersection between
the method evaluation period and the location fuel start/end dates,
add "MIX" to the Incomplete NOX System for Method.
If Missing NOX System for Method is not null, and the Incomplete NOX System for Method is null,
return result A.
If Incomplete NOX System for Method is not null, and the Missing NOX System for Method is null,
return result B.
If both Missing NOX System for Method and the Incomplete NOX System for Method are not null,
return result C.
Environmental Protection Agency
Page 303 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
Response
You reported a monitoring methodology for [key], but there is no primary [system type]
system that was active during the evaluation period to measure [missing fuel], which is
required for this method.
You reported a monitoring methodology for [key], but there is no primary [system type]
system to measure [incomplete fuel] that is active for the entire evaluation period.
You reported a monitoring methodology for [key], but there is no primary [system type]
system that was active during the evaluation period to measure [missing fuel]. Also,
there is no primary [system type] system to measure [incomplete fuel] that is active for
the entire evaluation period.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Method Active Equals true
- Method Evaluation
Environmental Protection Agency
Page 304 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-33
Check Name: Required LME Qualification Reported for LME Method
Related Former Checks:
Applicability: LME Check
Description: If the method reported is LME, this check will determine whether or not this is an LME Location.
Specifications:
For a Monitoring Method record with a valid MethodCode equal to "LME" and consistent dates:
If ParameterCode is equal to "C02M" or "S02M",
Locate Monitor Qualification records for the location in the Method record where the QualificationTypeCode is equal to
"LMEA", the BeginDate is on or before the Method Evaluation End Date, and the EndDate is null or is on or after the
Method Evaluation Begin Date.
If not found,
Set Missing Qualification for Method to "LMEA", and return result A.
If found,
If the EndDate in the Method record is null,
If the BeginDate and EndDate in the retrieved records do not span the period from the Method
Evaluation Begin Date to the Method Evaluation End Date,
Set Incomplete Qualification for Method to "LMEA", and return result B.
Otherwise,
If the BeginDate and EndDate in the retrieved records do not span the period from the Method
Evaluation Begin Date through December 31 of the year prior to the EndDate in the method record.
Set Incomplete Qualification for Method to "LMEA", and return result B.
Otherwise,
Set Missing Qualification for Method to null.
Set Incomplete Qualification for Method to null.
Locate a Reporting Frequency record for the location where the ReportingFrequencyCode is equal to "Q" and the first day
of the BeginQuarter is on or before the Method Evaluation End Date, and the EndQuarter is null or the last day of the
EndQuarter is on or after the Method Evaluation Begin Date.
If found,
Locate Monitor Qualification records for the location in the Method record where the QualificationTypeCode is
equal to "LMEA", the BeginDate is on or before the Method Evaluation End Date, and the EndDate is null or is
on or after the later of the Method Evaluation Begin Date and the first day of the BeginQuarter in the reporting
frequency record.
If not found,
Set Missing Qualification for Method to "LMEA".
If found,
If the EndDate in the Method record is null,
If the BeginDate and EndDate in the retrieved records do not span the entire period from the
later of the Method Evaluation Begin Date and the first day of the BeginQuarter in the reporting
frequency record until the Method Evaluation End Date,
Environmental Protection Agency
Page 305 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Set Incomplete Qualification for Method to "LMEA".
Otherwise,
If the BeginDate and EndDate in the retrieved records do not span the entire period from the
later of the Method Evaluation Begin Date and the first day of the BeginQuarter in the reporting
frequency record through December 31 of the year prior to the EndDate in the method record,
Set Incomplete Qualification for Method to "LMEA".
If Reporting Frequency record found,
Locate a Location Program Parameter record for the location where the ParameterCode is equal to 'NOX1, the
ProgramCode in ProgramlsOzoneSeasonList, the Requiredlnd is equal to 1, the ClassCode is equal to "A" or
"B", and the UnitMonitorCertBeginDate is on or before the Method Evaluation End Date, and the EndDate is null
or is on or after the Method Evaluation Begin Date.
Otherwise, // Require LMES Qualification for OS programs that require and optionally require NOX when the location is
not an annual reporter.
Locate a Location Program Parameter record for the location where the ParameterCode is equal to 'NOX1, the
ProgramCode in ProgramlsOzoneSeasonList, the ClassCode is equal to "A" or "B", and the
UnitMonitorCertBeginDate is on or before the Method Evaluation End Date, and the EndDate is null or is on or
after the Method Evaluation Begin Date.
If Location Program Parameter record found,
Locate Monitor Qualification records for the location in the Method record where the QualificationTypeCode is
equal to "LMES", the BeginDate is on or before the Method Evaluation End Date, and the EndDate is null or is
on or after the later of the Method Evaluation Begin Date and the earliest UnitMonitorCertBeginDate in the unit
program record.
If not found,
append "LMES" to Missing Qualification for Method.
If found,
Set LMES Begin Date to the the later of the Method Evaluation Begin Date and the earliest
UnitMonitorCertBeginDate in the retrived Unit Program records.
If LMES Begin Date is prior to May 1,
Set LMES Begin Date to May 1 of the year of the LMES Begin Date.
If the EndDate in the Method record is null,
If the BeginDate and EndDate in the retrieved records do not span the entire period from the
LMES Begin Date to the Method Evaluation End Date,
append "LMES" to Incomplete Qualification for Method.
Otherwise,
If the BeginDate and EndDate in the retrieved records do not span the entire period from the
LMES Begin Date to September 30 of the year prior to the EndDate in the method record,
append "LMES" to Incomplete Qualification for Method.
If Missing Qualification for Method is not null, and Incomplete Qualification for Method is null,
return result A.
If Missing Qualification for Method is null, and Incomplete Qualification for Method is not null,
return result B.
Environmental Protection Agency
Page 306 of 457
-------
ECMPS Monitoring Plan Check Specifications
If Missing Qualification for Method is not null, and Incomplete Qualification for Method is not null,
return result C.
9/8/2021 12:00:00AM
Results:
Result
A
B
C
Response
You have reported a [param] method record for this unit indicating the use of an LME
methodology, but you have not reported a [missing] Monitor Qualification record for
the unit that is active during the evaluation period.
You have reported a [param] method record for this unit indicating the use of an LME
methodology, but you have not reported an [incomplete] Monitor Qualification record
for the unit that spans the entire evaluation period.
You have reported a [param] method record for this unit indicating the use of an LME
methodology, but you have not reported an [missing] Monitor Qualification record for
the unit that is active during the evaluation period. Also, you have not reported an
[incomplete] Monitor Qualification record for the unit that spans the entire evaluation
period.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report -
Current Method Active Equals True
- Method Evaluation
Environmental Protection Agency
Page 307 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-34
Check Name:
Related Former Checks:
Alternative Monitoring Methodology Valid
Applicability:
Description:
General Check
This check validates the use of an alternative monitoring methodology at this monitoring location.
Specifications:
For a Method record with a valid Method Code:
If MethodCode is equal to "AMS", "PEM", or "S02R",
return result A.
Results:
Result Response Severity
A You have a reported a monitoring methodology for [key] that requires approval from Informational Message
EPA.
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Method Evaluation
Current Method Active Equals true
Environmental Protection Agency
Page 308 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-35
Check Name: Required Unit Control for MTB Method
Related Former Checks:
Applicability: CEM Check
Description: This check determines if the use of moisture lookup table is appropriate due to the presence of a wet scrubber.
This comes from 75.11(b)(2)
Specifications:
For a Monitoring Method record with a valid MethodCode equal to "MTB" and consistent dates:
Locate all Unit Control record linked to this location where the ControlCode is equal to "WL", "WLS", or "WS", the InstallDate is
null, the RetireDate is null or on or after the Method Evaluation End Date, and the OriginalCode is equal to 1,
If not found,
Locate all Unit Control record linked to this location where the ControlCode is equal to "WL", "WLS", or "WS", the
InstallDate is on or before the Method Evaluation End Date, and the RetireDate is null or on or after the Method
Evaluation Begin Date.
If not found,
return result A.
If found, and the InstallDate and RetireDate of the retrieved Unit Control records do not span the entire period between
the Method Evaluation Begin Date and Method Evaluation End Date,
return result B.
Results:
Result
A
B
Response
You have reported the use of a moisture lookup table in [key], but you have not
reported the use of a wet scrubber in a unit control record that was active during the
evaluation period. The use of a moisture lookup table is only appropriate for saturated
gas streams following wet scrubbers or other demonstrably saturated gas streams.
You have reported the use of a moisture lookup table in [key], but you have not
reported the use of a wet scrubber for the entire evaluation period. The use of a
moisture lookup table is only appropriate for saturated gas streams following wet
scrubbers or other demonstrably saturated gas streams.
Severity
Informational Message
Informational Message
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Method Active Equals true
- Method Evaluation
Environmental Protection Agency
Page 309 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-37
Check Name:
H20 Method Substitute Data Code Consistent with Formula
Related Former Checks:
Applicability:
CEM Check
Description:
Specifications:
For a Method record with a ParameterCode equal to "H20", a valid MethodCode that is not equal to "MDF", and a valid
SubstituteDataCode, and consistent dates:
Set Moisture Default Parameter to null.
Locate all Monitor Formula records for the location where the FormulaCode is equal to "19-3", "19-3D", "19-4", or "19-8", the
BeginDate and BeginHour is on or before the Method Evaluation End Date and End Hour, and the EndDate is null or the EndDate
and EndHour is on or after the Method Evaluation Begin Date and Begin Hour.
If SubstituteDataCode is equal to "REV75",
Locate all Monitor Formula records for the location where the FormulaCode is equal to "F-2", "F-14B", "F-16",
"F-17", "F-18", "F-26B", "19-5", or "19-9", the BeginDate and BeginHour is on or before the Method Evaluation
End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the Method
Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If found,
Set Moisture Default Parameter to "H20N".
else if SubstituteDataCode is equal to "SPTS",
Set Moisture Default Parameter to "H20X".
If SubstituteDataCode is equal to "SPTS",
Locate all Monitor Formula records for the location where the FormulaCode is equal to "F-2", "F-14B", "F-16",
"F-17", "F-18", "F-26B", "19-5", or "19-9", the BeginDate and BeginHour is on or before the Method Evaluation
End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the Method
Evaluation Begin Date and Begin Hour.
If found,
return result B.
If not found,
Set Moisture Default Parameter to "H20X".
else if SubstituteDataCode is equal to "REV75",
Set Moisture Default Parameter to "H20N".
If Moisture Default Parameter is not null,
Locate a MonitorDefault record for the location where the ParameterCode is equal to Moisture Default Parameter, the
BeginDate and BeginHour is on or before the Method Evaluation End Date and End Hour, and the End Date is null or the
If found,
If not found,
Environmental Protection Agency
Page 310 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
EndDate and EndHour is on or after the Method Evaluation Begin Date and Begin Hour.
If not found,
return result C.
If found, and the retrieved records do not span the entire method evaluation period,
return result D.
Results:
Result Response Severity
A You reported "REV75" as the SubstituteDataCode for [key], but based on your formula Critical Error Level 1
records, you should be using the Standard Part 75 missing data procedures.
B You reported "SPTS" as the SubstituteDataCode for [key], but based on your formula Critical Error Level 1
records, you should be using the Inverse Part 75 missing data procedures.
C You reported a SubstituteDataCode of [code] for [key], but you did not report a [param] Critical Error Level 1
default record in your monitoring plan that is required for missing data purposes.
D You reported a SubstituteDataCode of [code] for [key], but you did not report [param] Critical Error Level 1
default records in your monitoring plan, which is required for missing data purposes,
that span the entire evaluation period.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Conditions: Current Method Active Equals true
Environmental Protection Agency
Page 311 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-39
Check Name:
Related Former Checks:
Mutually Exclusive Method Parameters
Applicability:
Description:
Checks for overlapping methods with mutually exclusive parameter codes.
Validation Tables:
[Method Parameter Equivalent Crosscheck] (Cross Check Table)
Specifications:
Set OverlappingParameterList to null.
If MethodDatesAndHoursConsistent is true,
Locate MethodParameterEquivalentCrosscheck records where ParameterCode is equal to CurrentMethocl PnramctcrCodc.
If found,
For each MethodParameterEquivalentCrosscheck record found,
Set EquivalentCd to the EquivalentCode value for the MethodParameterEquivalentCrosscheck record.
Locate MethodRecords for the location where:
a) ParameterCode is equal to EquivalentCd .
b) BeginDateHour is on or after the CurrentMethod. Begi liDateHour.
c) BeginDateHour is on or before MethodEvaluationEndDate/Hour.
d) EndDateHour is null OR is on or after MethodEvaluationBeginDate/Hour.
If found,
Append EquivalentCd to OverlappingParameterList.
If OverlappingParameterList is NOT null,
return result A.
Results:
Result
A
Response
You have reported a monitoring methodology for [parameter], but equivalent
parameters for [equivalent] were reported with overlapping start and end times during
the evaluation period.
Severity
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Environmental Protection Agency
Page 312 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: METHOD-40
Check Name: Require Fuel Specific Defaults for FSP75
Related Former Checks:
Applicability: General Check
Description: For a method with a substitute data code of FSP75, require a fuel-specific default for each primary and
secondary fuel active during the evaluation period for the method.
Validation Tables:
Fuel Code (Lookup Table)
Method Parameter to Maximum Default Parameter to Component Type (Cross Check Table)
Specifications:
Set FuelsWithMissingDefaults to
Set FuelsWithlncompleteDefaults to
When MethodDatesAndHoursConsistent is true, AND CurrentMeth w/. S ub s t i t u t e D a a C ode is equal to "FSP75" or "FSP75C":
Locate records in LocationFuelRecords where:
1) IndicatorCode is equal to "P" or "S".
2) BeginDate is on or before MethodEvaluationEndDate.
3) EndDate is null, OR is on or after MethodEvaluationBeginDate.
For each LocationFuelRecord located:
Locate records in FuelCodeLookupTable where UnitFuelCode is equal to LocationFuelRecord.FuelCode.
If no records were located,
Append LocationFuelRecord .FuelCode to FuelsWithMissingDefaults.
Else
Locate the record in MethodParameterToMaximumDefaultParameterLookupTable where:
1) MethodParameterCode is equal to CurrentMethod.ParameterCode.
2) ComponentTypeCode is null.
If record located,
Set RangeBeginDateHour to the later of the MethodEvaluationBeginDate/BeginHour and hour 23 of
LocationFuelRecord .BeginDate.
Set RangeEndDateHour to the earlier of the MethodEvaluationEndDate/EndHour and hour 0 of
LocationFuelRecord EndDate.
Locate records in DefaultRecords where:
1) DefaultPurposeCode is equal to "MD".
2) ParameterCode is equal to the DefaultParameterCode in the located
MethodParameter ToMaximumDefaultParameterLookupTable record.
3) FuelCode is equal to the FuelCode in one of the located FuelCodeRecords.
4) BeginDateHour is on or before RangeEndDateHour.
5) EndDateHour is null, OR is on or after RangeBeginDateHour.
if no records where located,
Environmental Protection Agency
Page 313 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Append LocationFuelRecord.FuelCode to FuelsWithMissingDefaults.
Else if the located records do not span the period between RangeBeginDateHour and
RangeEndDateHour,
Append LocationFuelRecord.FuelCode to Fuels WithlncompleteDefaults.
If both FuelsWithMissingDefaults and FuelsWithlncompleteDefaults are NOT empty,
return result A.
Else if FuelsWithMissingDefaults is NOT empty,
return result B.
Else if FuelsWithlncompleteDefaults is NOT empty,
return result C.
Results:
Result
A
B
C
Response
The monitoring methodology for [key] uses substitute data code FSP75 or FSP75C, but
fuel specific defaults are missing for [missing fuel] and, are incomplete for [incomplete
fuel].
The monitoring methodology for [key] uses substitute data code FSP75 or FSP75C, but
fuel specific defaults are missing for [missing fuel].
The monitoring methodology for [key] uses substitute data code FSP75 or FSP75C, but
fuel specific defaults are incomplete for [incomplete fuel].
Severity
Informational Message
Informational Message
Informational Message
Usage:
1
Process/Category: Monitoring Plan Evaluation Report Method Evaluation
Environmental Protection Agency
Page 314 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
METHOD-36
Check Name:
Related Former Checks:
Duplicate Method Records
Applicability:
Description:
General Check
This check determines if there is another method record with the same key fields.
Specifications:
For a Monitoring Method record:
Locate another Monitoring Method record for the location with a ParameterCode equal to the ParameterCode in the current record
and a BeginDate/BeginHour that is equal to the BeginDate/BeginHour in the current record.
If found,
return result A.
If not found, and the EndDate in the current record is not null,
Locate another Monitoring Method record for the location with a ParameterCode equal to the ParameterCode in the
current record and an EndDate/EndHour that is equal to the EndDate/EndHour in the current record.
If found,
return result A.
Results:
Result
A
Response
Another [recordtype] record already exists with the same [fieldnames].
Severity
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Environmental Protection Agency
Page 315 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Monitoring Plan
Environmental Protection Agency
Page 316 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONPLAN-1
Check Name: Monitoring Plan Has Affected Unit
Related Former Checks:
Applicability:
Description: This check will determine whether or not the Monitoring Plan has at least one Unit that is affected by a
Program during the evaluation period.
Specifications:
For the monitoring plan:
Locate a Unit Program record for any location in the monitoring plan with an EndDate that is null or is on or after the Evaluation
Begin Date.
If no records are found,
return result A, and discontinue the evaluation of this plan.
Results:
Result Response Severity
A There are no locations in this monitoring plan that were active during the evaluation Informational Message
period. Further evaluation of this monitoring plan will not be performed.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Monitoring Plan Evaluation
Environmental Protection Agency
Page 317 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: MONPLAN-4
Check Name: Monitor Plan Comment Begin Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not Monitor Plan Comment Begin Date is valid.
Specifications:
For a Monitor Plan Comment record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future 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: Monitoring Plan Evaluation Report — Monitor Plan Comment Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitor Plan Comment Evaluation
Environmental Protection Agency
Page 318 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: MONPLAN-5
Check Name: Monitor Plan Comment End Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the Monitor Plan Comment End Date is valid.
Specifications:
For a Monitor Plan Comment record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report — Monitor Plan Comment Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitor Plan Comment Evaluation
Environmental Protection Agency
Page 319 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: MONPLAN-6
Check Name: Monitor Plan Comment Dates Consistent
Related Former Checks:
Applicability: General Check
Description: This check determines if the Monitor Plan Comment Begin Date is prior to the End Date.
Specifications:
For the Monitor Plan Comment record:
If the BeginDate and EndDate are both valid, the EndDate is not null, and the BeginDate is after the EndDate,
return result A.
Results:
Result Response Severity
A You reported [datefield2] which is prior to [datefieldl] for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report — Monitor Plan Comment Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitor Plan Comment Evaluation
Environmental Protection Agency
Page 320 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: MONPLAN-8
Check Name: Initialize Variables
Related Former Checks:
Applicability: General Check
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.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Monitoring Plan Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Location Attribute Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Method Evaluation
Environmental Protection Agency
Page 321 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONPLAN-9
Check Name: Monitoring Plan Has Actively Reporting Units
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Monitoring Plan:
If the End Reporting Period of the monitoring plan is null:
Locate all Unit Op Status record for all units in the monitoring plan with an Op Status Code equal to "RET" or "LTCS",
and an End Date that is null.
If at least one record is found, and the monitoring plan contains a common stack or a common pipe,
Locate all Unit Op Status record for all units in the monitoring plan with an Op Status Code equal to "OPR", and
an End Date that is null.
If at least one record is found,
return result A.
Otherwise,
If End Reporting Period of the monitoring plan is prior to the Begin Reporting Period of the monitoring plan,
return result B.
Otherwise,
Locate an Emissions Submission Access record for the monitoring plan where the Reporting Period is after the
End Reporting Period of the monitoring plan.
If found,
retun result C.
Otherwise,
Locate all Unit Op Status records for all units in the monitoring plan with an Op Status Code equal to
"RET" or "LTCS", a Begin Date that is in the year prior to the year of the End Reporting Period of the
monitoring plan, and an End Date that is null or is after the End Reporting Period of the monitoring
plan.
If at least one record is found, and the monitoring plan contains a common stack or a common pipe,
return result A.
Results:
Result
A
B
C
Response
The monitoring plan contains at least one unit that should not be reporting because it
has retired or is in long-term cold storage. You should enter an End Date in the Unit
Stack Configuration record that indicates the date when the unit no longer had to
report.
The end reporting period is prior to the begin reporting period for the monitoring plan.
Please contact ECMPS technical support to resolve this problem.
The end reporting period of the monitoring plan is inconsistent with the emissions data
reported for the monitoring configuration. If the unit is linked to a stack, be sure that
you have reported an End Date in the Unit Stack Configuration record that indicates
the date when the unit no longer had to report.
Severity
Critical Error Level 2
Critical Error Level 2
Critical Error Level 2
Environmental Protection Agency
Page 322 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Monitoring Plan Evaluation
Environmental Protection Agency
Page 323 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONPLAN-10
Check Name: Determine If Monitoring Plan Can Be Submitted
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the monitoring plan:
If the first day of the Begin Reporting Period of the monitoring plan is more than 60 days prior to the current date,
return result A.
Results:
Result Response Severity
A You cannot submit a monitoring plan more than 60 days prior to when the monitoring Critical Error Level 1
plan becomes active. If the monitoring plan contains a single unit, the monitoring plan
normally becomes active on the first day of the quarter of the earliest BeginDate in the
MonitoringMethod records for the unit. If the monitoring plan contains one or more
stack/pipes, the monitoring plan normally becomes active on the first day of the quarter
of the latest BeginDate in the UnitStackConfiguration records associated with the
units, stacks, and pipes in the monitoring plan.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Monitoring Plan Evaluation
Environmental Protection Agency
Page 324 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONPLAN-11
Check Name: Monitoring Plan Has Valid MATS Methods
Related Former Checks:
Applicability:
Description: Check to determine the MATS required check parameter. Set it to TRUE if MATS method exists in
Monitoring Plan.
Validation Tables:
Vw System Parameter (Lookup Table)
Vw System Parameter (Lookup Table)
Specifications:
Set MatsRequiredCheck to false.
Set MatsEvaluationBeginDate to null.
Set MatsMonitorMethodEarliestDate to null.
Locate the earliest record by BeginDate in MpMethodRecords where ParameterCode is equal to "HGRE" "HGRH", "HCLRE", "HCLRH",
"HFRE", "HFRH", "S02RE", or "S02RH",
If a record was located,
Set MatsMonitorMethodEarliestDate to BeginDate in the located record.
Set MatsRequiredCheck to true.
Set MatsSupplementalMethodEarliestDate to null.
Locate the earliest record by BeginDate/Hour in MatsMpMethodRecords,
If a record was located,
Set MatsSupplementalMethodEarliestDate to BeginDate in the located record.
Set MatsRuleComplianceDate to null.
Locate System Parameter lookup table record where SysParamName = 'MATSRULE'.
If a record was located,
Set MatsRuleComplianceDate to Param Valuel in the located record.
If (MatsSupplementalMethodEarliestDate is not null) AND (MatsMonitorMethodEarliestDate is not null)
Set MatsEvaluationBeginDate to the earlier of MatsSupplementalMethodEarliestDate and MatsMonitorMethodEarliestDate.
Else if (MatsSupplementalMethodEarliestDate is not null)
Set MatsEvaluationBeginDate to MatsSupplementalMethodEarliestDate.
Else if (MatsMonitorMethodEarliestDate is not null)
Set MatsEvaluationBeginDate to MatsMonitorMethodEarliestDate.
Environmental Protection Agency
Page 325 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If (MatsRuleComplianceDate is not null) AND ((MatsEvaluationBeginDate is null) OR (MatsEvaluationBeginDate is after to
MatsRuleComplianceDate))
// Override the date based on methods if it is after the MATS compliance date.
Set MatsEvaluationBeginDate to MatsRuleComplianceDate.
If {MatsEvaluationBeginDate is not null) AND {MatsEvaluationBeginDate is prior to EvaluationBeginDate)
// Override the date based on methods and the MATS compliance date if it is prior to the evaluation begin date.
Set MatsEvaluationBeginDate to EvaluationBeginDate.
Results:
Result
Response
Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Monitoring Plan Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Evaluation
Environmental Protection Agency
Page 326 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
MONPLAN-12
Check Name:
Related Former Checks:
Initialize Check Engine Values
Applicability:
Description:
Initializes the parameters that hold the values passed or determined by the Check Engine.
Specifications:
Set EvaluationBeginDate to the CheckEngine.EvalDefaultedBeganDate.
Set EvaluationEndDate to the CheckEngine.EvalDefaultedEndDate.
Set MaximumFutureDate to the CheckEngine.MaximumFutureDate.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Monitoring Plan Evaluation
Environmental Protection Agency
Page 327 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONPLAN-13
Check Name: Initialize Program Lists
Related Former Checks:
Applicability:
Description: Initializes the program code list for programs that are ozone season programs
Specifications:
Set ProgramlsOzoneSeasonList to ""
For each ProgramCodeRow in ProgramCodeTable,
If l'rogram( V«/c/^;\r,OzoncScasonIndicator is equal to 1,
Append ProgramCodeRow.ProgramCode to ProgramlsOzoneSeasonList.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Monitoring Plan Evaluation
Environmental Protection Agency
Page 328 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONPLAN-3
Check Name: Duplicate Monitoring Plan Comment Records
Related Former Checks:
Applicability: General Check
Description: This check determines if there is another MonitoringPlanComment record with the same key fields.
Specifications:
For a Monitoring Plan Comment record:
If the SubmissionAvailabilityCode in the current record is not equal to "UPDATED",
Locate another MonitoringPlanComment record for the location with a MonitoringPlanComment equal to the
MonitoringPlanComment in the current record and a Begin Date equal to the BeginDate in the current record.
If found,
return result A.
If not found and the EndDate in the current record is not null,
Locate another MonitoringPlanComment record for the location with a MonitoringPlanComment equal to the
MonitoringPlanComment in the current record and an EndDate equal to the EndDate in the current record.
If found,
return result A.
Otherwise,
return result B.
Results:
Result Response
A Another [recordtype] record already exists with the same [fieldnames].
B This comment has already been submitted and cannot be changed. If you wish change
this comment to resubmit it, please contact EPA for approval.
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitor Plan Comment Evaluation
Seventy
Fatal
Fatal
Environmental Protection Agency
Page 329 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: MONPLAN-7
Check Name: Monitor Plan Comment Valid
Related Former Checks:
Applicability: General Check
Description:
Specifications:
For the Monitoring Plan Comment record:
If MonitorPlanComment 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: Monitoring Plan Data Entry Screen Evaluation Monitor Plan Comment Evaluation
Environmental Protection Agency
Page 330 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Program
Environmental Protection Agency
Page 331 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: PROGRAM-1
Check Name: Program Active Status
Related Former Checks:
Applicability: General Check
Description: Determines if current unit program record is active.
Specifications:
For the CurrentProgram record:
If the UnitMonitorCertBeginDate is not null,
set Current ProgramActive to true.
If the UnitMonitorCertBeginDate is after the current date, or the EndDate is before EvaluationBeginDate, or the end
reporting period of the MP is not null and is prior to the UnitMonitorCertBeginDate,
set Current ProgramActive to false.
Else if (ProgramCode is equal to "MATS") AND (MatsEvaluationBeginDate is NOT null)
If (EndDate is NOT null, AND EndDate is on or before MatsEvaluationBeginDate)
set Current ProgramActive to false.
Else if (EvaluationEndDate is on or before MatsEvaluationBeginDate)
set Current ProgramActive to false.
If Current ProgramActive is equal to true,
If EmissionsRecordingBeginDate is not null and is after the EvaluationBeginDate
set the ProgramEvaluationBeginDate to the EmissionsRecordingBeginDate.
else if the UnitMonitorCertBeginDate +180 days is after to the EvaluationBeginDate,
set the ProgramEvaluationBeginDate to the UnitMonitorCertBeginDate +180 days.
Otherwise,
set the ProgramEvaluationBeginDate to the EvaluationBeginDate.
If CurrentProgram. ProgramCode is MATS, and MatsRequiredCheck is equal to true, and
MatsEvaluationBeginDate is after the ProgramEvaluationBeginDate,
set ProgramEvaluationBeginDate to MatsEvaluationBeginDate.
If the EndDate is null or the EndDate is after the EvaluationEndDate,
set the ProgramEvaluationEndDate to the EvaluationEndDate,
Otherwise,
set the ProgramEvaluationEndDate to the EndDate.
Locate a record in UnitOperatingStatusRecords for the unit where the OpStatusCode is equal to "RET" and the
EndDate is null.
If found, and the BeginDate of the record in UnitOperatingStatusRecords is on or prior to the
ProgramEvaluationEndDate,
Environmental Protection Agency
Page 332 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
set the ProgramEvaluationEndDate to the day before the BeginDate of the Operating Status record.
Otherwise,
set CurrentProgramActive to false.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Program Evaluation
Environmental Protection Agency
Page 333 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: PROGRAM-10
Check Name: Program Parameter Active Status
Related Former Checks:
Applicability: General Check
Description: This check determines whether an affected unit has the methods required by a parameter for the program at
the unit or a linked location during the entire evaluation period.
Specifications:
For the Current Program Parameter record:
Set CurrentProgramParameterActive to true.
Set ProgramParameterEvaluationBeginDate to null.
Set ProgramParameterEvaluationEndDate to null.
If (Current Program Active is false)
Set Current ProgramParameterActive to false.
Else if (CurrentProgramParameter. Para mctc rEScgi nDate is on or after ProgramEvaluationEndDate)
Set CurrentProgramParameter Active to false.
Else if (CurrentProgramParameter. Pa ra mctc rE ndDate is NOT null) AND (CurrentProgram Parameter. Pa ra m c t c r E n d D a t c is on
or before ProgramEvaluationBeginDate)
Set CurrentProgramParameter Active to false.
Else if (CurrentProgramParameter.ProgramCode is equal to "MATS") AND (MatsEvaluationBeginDate is NOT null)
If (ProgramEvaluationEndDate is on or before MatsEvaluationBeginDate)
Set CurrentProgramParameter Active to false.
Else if (CurrentProgramParameter. Pa ra mete rE ndDate is NOT null) AND
(CurrentProgram Parameter. Pa ra m c t c r E n d D a t c is on or before MatsEvaluationBeginDate)
Set CurrentProgramParameter Active to false.
If (CurrentProgramParameterActive is true)
If (ProgramEvaluationBeginDate is after the CurrentProgramParameter. Pa ra mctc rEScgi n Date)
Set ProgramParameterEvaluationBeginDate = ProgramEvaluationBeginDate
Else
Set ProgramParameterEvaluationBeginDate = CurrentProgramParameter . Pa ra mctc rEScgi n Date.
If (CurrentProgramParameter.ProgramCode is equal to "MATS") AND (MatsEvaluationBeginDate is after
ProgramParameterEvaluationBeginDate)
Set ProgramParameterEvaluationBeginDate to MatsEvaluationBeginDate .
If (CurrentProgram Parameter. Pa ra m c t c r E n d D a t c is null) OR (ProgramParameterEvaluationEndDate is before
CurrentProgramParameter . ?c\ ra mctc rE ndDate)
Set ProgramParameterEvaluationEndDate = ProgramEvaluationEndDate
Else
Set ProgramParameterEvaluationEndDate = CurrentProgramParameter. Pa ra mctc rE ndDate
Environmental Protection Agency
Page 334 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Program Parameter Evaluation
Environmental Protection Agency
Page 335 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: PROGRAM-11
Check Name: Required Method Reported for Program
Related Former Checks: Replaces Program 2, 3, 5, 6, 8 and 9.
Applicability: General Check
Description: This check determines whether an affected unit has the methods required by a parameter for the program at
the unit or a linked location during the entire evaluation period.
Validation Tables:
[Program Parameter to Location Type] (Cross Check Table)
[Program Parameter to Method Code] (Cross Check Table)
[Program Parameter to Method Parameter] (Cross Check Table)
[Program Parameter to Severity] (Cross Check Table)
Specifications:
For the CurrentProgramParameter record when Requiredlnd equals 1, ProgramCode is NOT equal to "MATS" or "NSPS4T", and
ClassCode is not equal to "N", "NA" or "NB":
If CurrentProgramParameter Active is equal to true,
ResultType = null
MethodParameterList = Lookup Method Parameter List from Cross-Check Table "Program Parameter To Method
Parameter" where ProgramParameterCd equals the CurrentProgramParameter. ParamctcrCd.
ProgramMethodParameterDescription = Lookup Method Parameter Description from Cross-Check Table "Program
Parameter To Method Parameter" where ProgramParameterCd equals the CurrentProgram Parameter. Pa ra m c t c rCd.
CommonTypeList = Lookup Common Location Type List from Cross-Check Table "Program Parameter To Location
Type" where ProgramParameterCd equals the CurrentProgramParameter.ParameterCd.
MultipleTypeList = Lookup Multiple Location Type List from Cross-Check Table "Program Parameter To Location
Type" where ProgramParameterCd equals the CurrentProgramParameter.ParameterCd.
MethodCodeList = Lookup Method Code List from Cross-Check Table "Program Parameter To Method Code" where
ProgramParameterCd equals the CurrentProgram Parameter. Pa ra m c t c rCd.
SeverityCode = Lookup Severity Code from Cross-Check Table "Program Parameter To Severity" where
ProgramParameterCd equals the CurrentProgram Parameter. Pa ra m c t c rCd.
/*
Locate all locations that can satisfy the method requirement for a program by themselves.
For Part 75, an MS location cannot satisfy the method requirement by itself if another active MS location exists. The
other active MS must also have a method.
*/
Locate UnitAndCommonConfigurationRecords in UnitStackConfigurationRecords where:
1) Unit is the CurrentProgramParameter unit.
2) Stack/Pipe Location has a StackPipelD beginning with one of the items in CommonTypeList
3) BeginDate is on or prior to the ProgramParameterEvaluationEndDate.
4) End Date is null or is on or after the ProgramParameterEvaluationBeginDate.
Locate UnitAndCommonMethodRecords in FacilityMethodRecords where:
1) The location is either the CurrentProgramParameter unit or any of the stack/pipe locations in
UnitAndCommonConfigurationRecords.
2) ParameterCode is in MethodParameterList OR MethodCode is in MethodCodeList.
Environmental Protection Agency
Page 336 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
3) BeginDate is on or prior to the ProgramParameterEvaluationEndDate.
4) End Date is null or is on or after the ProgramParameterEvaluationBeginDate.
If no UnitAndCommonMethodRecords are found, or the BeginDate/BeginHour and EndDate/EndHour of the
UnitAndCommonMethodRecords do not span the entire Program Evaluation period,
Locate MultipleConfigurationRecords in UnitStackConfigurationRecords where:
1) Unit is the Current Program Parameter unit.
2) Stack/Pipe Location has a StackPipelD beginning with one of the items in MultipleTypeList
3) BeginDate is on or prior to the ProgramParameterEvaluationEndDate.
4) End Date is null or is on or after the ProgramParameterEvaluationBeginDate.
If no MultipleConfigurationRecords are found,
If no UnitAndCommonMethodRecords were found,
ResultType = 'MISSING".
Else
ResultType = "INCOMPLETE".
Else
Set MissingUnitAndCommonMethodRangeList to the hour ranges between hour 23 of
ProgramParameterEvaluationBeginDate and hour 0 of ProgramParameterEvaluationEndDate that are
not covered by the UnitAndCommonMethodRecords.
If MissingUnitAndCommonMethodRangeList does NOT contain ranges,
If no UnitAndCommonMethodRecords were found,
ResultType = 'MISSING".
Else
ResultType = "INCOMPLETE".
Else
For eachMissingUnitAndCommonMethodRange inMissingUnitAndCommonMethodRangeList.
Set CompleteRangeCoveredAtLeastOnce to false.
Locate MultipleConfigurationRecordsForMissingRange in
UnitStackConfigurationRecords where:
1) Unit is the Current Program Parameter unit.
2) Stack/Pipe Location has a StackPipelD beginning with one of the items in
Multipie TypeList
3) BeginDate is on or prior toMissingUnitAndCommonMethodRange.EndDate.
4) End Date is null or is on or after
MissingUnitAndCommonMethodRange. BeginDate.
For each UnitStackConfigurationRecord located in
Environmental Protection Agency
Page 337 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
MultipleConfigurationRecordsForMissingRange.
Set CompleteRangeBeginHour to
MissingUnitAndCommonMethodRangeBegiiaDateiiom.
Set CompleteRangeEndHour
MissingUnitAndCommonMethodRangeEndDateiiour.
Set ConfigurationRangeBeginHour to hour 23 of
UnitStackConfigurationRecordBegiinDate.
Set ConfigurationRangeEndHour to hour 0 of
UnitStackConfigurationRecord.EndDate.
If ConfigurationRangeBeginHour <= CompleteRangeEndHour AND
ConfigurationRangeEndHour >= CompleteRangeBeginHour
If CompleteRangeBeginHour > ConfigurationRangeBeginHour
Set ConfigurationRangeBeginHour to
CompleteRangeBeginHour.
If CompleteRangeEndHour < ConfigurationRangeEndHour
Set ConfigurationRangeEndHour to CompleteRangeEndHour .
Locate MultipleMethodRecordsForMissingRange in
FacilityMethodRecords where:
1) The location is the stack/pipe location in
Uni tStackConfigurati onRecord
2) ParameterCode is in MethodParameterList OR MethodCode
is in MethodCodeList..
3) BeginDateHour is on or prior to CompleteRangeEndHour.
4) EndDateHour is null or is on or after
CompleteRangeBeginHour.
If no MultipleMethodRecordsForMissingRange were located
If ResultType is equal to "INCOMPLETE", or "SPANS"
Set ResultType to "INCOMPLETE".
Else
Set ResultType to "MISSING".
Else if the MultipleMethodRecordsForMissingRange BeginDateHour
and EndDateHour span the period from ConfigurationRangeBeginHour
through ConfigurationRangeEndHour,
If ResultType is equal to "INCOMPLETE", or "MISSING"
Set ResultType to "INCOMPLETE".
Else
Set ResultType to "SPANS".
/* Previous span check only covers the known Unit Stack
Configuration hour range. This span check ensures that at leat
one MS covers the whole hour range. */
If CompleteRangeCoveredAtLeastOnce is false AND the
MultipleMethodRecordsForMissingRange BeginDateHour and
EndDateHour span the period from CompleteRangeBeginHour
Environmental Protection Agency
Page 338 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
through CompleteRangeEndHour,
Set CompleteRangeCoveredAtLeastOnce to true.
Else
Set ResultType to "INCOMPLETE".
If CompleteRangeCoveredAtLeastOnce is false AND ResultType is equal to "SPANS",
Set ResultType to "INCOMPLETE".
If ResultType is equal to "MISSING" OR null, AND UnitAndCommonMethodRecords were
found,
Set ResultType to "INCOMPLETE".
Else If ResultType is equal to null AND UnitAndCommonMethodRecords were NOT found,
Set ResultType to "MISSING".
If ResultType is equal to "MISSING",
If SeverityCode equals 'NONCRIT',
Return result C
Else if SeverityCode equals 'INFORM',
Return result E
Else
Return result A
Else if ResultType is equal to "INCOMPLETE",
If SeverityCode equals 'NONCRIT',
Return result D
Else if SeverityCode equals 'INFORM',
Return result F
Else
Return result B
Environmental Protection Agency
Page 339 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
D
Usage:
1
Response
Although Unit ID [Unit ID] is a [program] affected unit, no monitoring method(s) for
[method] have been reported that was/were active during the evaluation period for the
unit, for a common stack or pipe linked to the unit, or for all multiple stacks or pipes
linked to the unit.
Although Unit ID [Unit ID] is a [program] affected unit, monitoring method(s) for
[method] have not been reported for the unit, for a common stack or pipe linked to the
unit, or for all multiple stacks or pipes linked to the unit for the entire evaluation
period. If you believe that this error is incorrect, and has been caused by an inaccurate
date in the Unit Program record, please contact Craig Hillock at
Hillock.Craig@epa.gov.
Although Unit ID [Unit ID] is a [program] affected unit, no monitoring method(s) for
[method] have been reported that was/were active during the evaluation period for the
unit, for a common stack or pipe linked to the unit, or for all multiple stacks or pipes
linked to the unit.
Although Unit ID [Unit ID] is a [program] affected unit, monitoring method(s) for
[method] have not been reported for the unit, for a common stack or pipe linked to the
unit, or for all multiple stacks or pipes linked to the unit for the entire evaluation
period. If you believe that this error is incorrect, and has been caused by an inaccurate
date in the Unit Program record, please contact Craig Hillock at
Hillock.Craig@epa.gov.
Although Unit ID [Unit ID] is a [program] affected unit, no monitoring method(s) for
[method] have been reported that was/were active during the evaluation period for the
unit, for a common stack or pipe linked to the unit, or for all multiple stacks or pipes
linked to the unit.
Although Unit ID [Unit ID] is a [program] affected unit, monitoring method(s) for
[method] have not been reported for the unit, for a common stack or pipe linked to the
unit, or for all multiple stacks or pipes linked to the unit for the entire evaluation
period. If you believe that this error is incorrect, and has been caused by an inaccurate
date in the Unit Program record, please contact Craig Hillock at
Hillock.Craig@epa.gov.
Severity
Critical Error Level 1
Critical Error Level 1
Non-Critical Error
Non-Critical Error
Informational Message
Informational Message
Process/Category: Monitoring Plan Evaluation Report ¦
- Unit Program Parameter Evaluation
Environmental Protection Agency
Page 340 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: PROGRAM-12
Check Name: Required Method Reported for MATS
Related Former Checks:
Applicability: General Check
Description: For units with a MATS Program record that is active during the MP Evaluation Period, the following
conditions must exist for each MATS parameter:
1) MATS methods for the parameter must exists.
2) The methods must span the Program Parameter Evaluation Period.
3) A method is only required at one stack to cover a period of time, even when multiple stacks exist.
Note that the Program Paramete Evaluation Begin Date cannot be earlier than the Evaluation Begin Date, but
is otherwise the earlier of the:
1) Monitoring Method begin dates for MATS parameters.
2) MATS Supplemental Method begin dates.
3) The MATS Rule Compliance Date from the System Parameters.
Specifications:
For the CurrentProgram record when ProgramCode is equals to "MATS" AND ClassCode is equal to "A":
If CurrentProgramActive is equal to true,
Locate all Unit Stack Configuration records where:
1) Unit Locationld is equal to the CurrentProgram. Locat ion Id
2) StackPipeldentifierbegins with "CS" or "MS".
3) BeginDate is on or prior to the ProgramEvaluationEndDate.
4) End Date is null or is on or after the ProgramEvaluationBeginDate.
Locate all CombinedFacilityMethodRecords where:
1) Locationld is equal to CurrentProgram.Locationld or the stack Locationld in the located
UnitStackConfigurationRecords.
2) CrosscheckParameter is equal to "HGRE", "HGRH", "HCLRE", "HCLRH", "HFRE", "HFRH", "S02RE", "S02RH", or
"MATSSUP"
3) BeginDate is on or prior to the ProgramEvaluationEndDate,
4) EndDate is null or is on or after the ProgramEvaluationBeginDate.
If no method records are found,
Return result A
Else if the BeginDate/BeginHour and EndDate/EndHour of the retrieved Method records do not span the entire Program
Parameter Evaluation period,
Return result B
Environmental Protection Agency
Page 341 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
Usage:
1
Response
Although Unit ID [Unit ID] is a [program] affected unit, no monitoring method(s) for
[method] have been reported that was/were active during the evaluation period for the
unit, for a common stack or pipe linked to the unit, or for all multiple stacks or pipes
linked to the unit.
Although Unit ID [Unit ID] is a [program] affected unit, monitoring method(s) for
[method] have not been reported for the unit, or for a common or multiple stack linked
to the unit for the entire evaluation period. If you believe that this error is incorrect,
and has been caused by an inaccurate date in the Unit Program record, please contact
Craig Hillock at Hillock.Craig@epa.gov.
Process/Category: Monitoring Plan Evaluation Report Unit Program Evaluation
Severity
Informational Message
Informational Message
Environmental Protection Agency
Page 342 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: PROGRAM-14
Check Name: Required NOx controls reported for ARP affected combustion turbines
Related Former Checks:
Applicability:
Description: This check requires that all Acid Rain Program affected, combustion turbines that have NOx contrails, fill-in
the NOx control fields in the Part 75 monitoring plan.
Specifications:
When the ProgramCode for CurrentProgram equals "ARP" AND CurrentProgramActive is true,
If C.'M/7*6'rt?/.occ/?iVw.CoinincrcialOpcrationDatc is after 1984,
Count the records in LocationUnitTypeRecords for the unit where:
1) UnitTypeCode equals "CC" or "CT".
2) EndDate is null.
If the count is greater than zero,
Count the records in LocationControlRecords for the unit where:
1) ParameterCode (CEPARAM) is equal to "NOX".
2) EndDate is null.
If the count equals zero,
return result A.
Results:
Result Response Severity
A Combustion Turbines, including combined-cycle units, constructed after 1977 must Informational Message
have NOx controls. The NOx controls field in the monitoring plan for this unit is
blank. Dry-low NOx burners, water injection, and steam injection are all considered
NOx controls as well as SCR and SNCR. Please add a code for NOx controls in the
appropriate field in the monitoring plan.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Unit Program Evaluation
Environmental Protection Agency
Page 343 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Qualification
Environmental Protection Agency
Page 344 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-1
Check Name: Monitoring Qualification Type Consistent with Non Load Based Indicator
Related Former Checks:
Applicability: General Check
Description: This check determines whether the monitor qualification is appropriate for a non-load-based unit.
Specifications:
For a Monitor Qualification record with a valid QualificationTypeCode equal to "LMEA", "LMES", or "COMPLEX":
If the Location Non Load Based Indicator is equal to I,
return result A.
Results:
Result Response Severity
A You have reported an invalid Monitor Qualification record for [key] This Critical Error Level 1
qualification type does not apply to non-load based units.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Qualification Evaluation
Conditions: Current Qualification Active Equals true
Environmental Protection Agency
Page 345 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-3
Check Name: Monitoring Qualification Type Consistent with Fuel
Related Former Checks: LME-1
Applicability: General Check
Description: This check determines if a monitoring qualification record is appropriate for the fuel reported.
Specifications:
For a Monitor Qualification record with a valid Qualification Type Code is equal to "GF", "LMEA", or "LMES",
Locate a Fuel record for the location where the associated Fuel Group is not equal to "GAS" or "OIL", the BeginDate is on or
before the Qualification Evaluation End Date, and the EndDate is null or is on or after the Qualification Evaluation Start Date.
If found,
return result A.
Results:
Result Response Severity
A You have reported an invalid Monitor Qualification record for [key]. This type of Critical Error Level 1
qualification is only valid for units burning oil and/or gas fuels.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Qualification Evaluation
Conditions: Current Qualification Active Equals true
Environmental Protection Agency
Page 346 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Check Code:
QUAL-5
Monitoring Qualification Type Consistent with Program and Reporting Frequency
Related Former Checks: LME-4A
Applicability:
Description:
General Check
This check determines if a monitoring qualification record is appropriate for the program and reporting
frequency.
Specifications:
Set Qualification Consistent with Program and Reporting Frequency to true.
For a Monitor Qualification record with a valid QualificationTypeCode equal to "LMEA", "LMES", "PK", or "SK":
If Qualification Type Code is equal to "SK":
Locate a Monitor Plan Reporting Frequency record for the location where ReportingFrequency is equal to "Q", the
BeginQuarter is on or before the quarter of the Qualification Evaluation End Date, and the EndQuarter is null or is on or
after the quarter of the Qualification Evaluation Start Date.
If found,
Set Qualification Consistent with Program and Reporting Frequency to false,
return result A.
If Qualification Type Code is equal to "PK" or "LMEA":
Locate a Monitor Plan Reporting Frequency record for the location where ReportingFrequency is equal to "Q", the Begin
Quarter is on or before the quarter of the Qualification Evaluation End Date, and the EndQuarter is null or is on or after
the quarter of the Qualification Evaluation Start Date.
If not found,
Set Qualification Consistent with Program and Reporting Frequency to false,
return result B.
If Qualification Type Code is equal to "LMES":
Locate a Location Program Parameter record for the unit where the ParameterCode is equal to 'NOX', the ProgramCode in
ProgramlsOzoneSeasonList, the ClassCode is equal to "A" or "B", the UnitMonitorCertBeginDate is on or before the
Qualification Evaluation End Date, and the EndDate is null or is on or after the Qualification Evaluation Start Date.
If not found,
Set Qualification Consistent with Program and Reporting Frequency to false,
return result C.
Environmental Protection Agency Page 347 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
Usage:
1
Response
You have reported an invalid Monitoring Qualification record for [key]. A
Qualification Type of SK is not appropriate for units reporting on a quarterly basis.
You have reported an invalid Monitoring Qualification record for [key]. A
Qualification Type of [type] is only appropriate for units reporting on a quarterly basis.
You have reported an invalid Monitoring Qualification record for [key]. A
Qualification Type of LMES is only appropriate for units that belong to an
ozone-season program.
Process/Category:
Conditions:
Monitoring Plan Evaluation Report Qualification Evaluation
Current Qualification Active Equals true
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 348 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
QUAL-7
Monitoring Qualification Percent Qualification Year Valid
Applicability:
Description:
Specifications:
General Check
This check determines if the Qualification Year in the Monitor Qualification Percent record is valid.
For the Monitor Qualification Percent record:
If the QualificationYear is null,
return result A.
If the dates in the associated Monitor Qualification record are consistent and the QualificationYear is prior to the year of the
BeginDate,
return result B.
If the EndDate in the associated Monitor Qualification record is null,
If the QualificationYear is greater than the current year and the YrlQualificationDataTypeCode is not equal to "P",
return result B.
Otherwise,
If the dates in the associated Monitor Qualification record are consistent and the QualificationYear is more than one year
after the year of the EndDate,
return result B.
Results:
Result
A
B
The QualificationYear for [key] does not correspond to the BeginDate and EndDate in Critical Error Level 1
the Monitoring Qualification record.
Response
You did not provide [fieldname], which is required for [key].
Severity
Fatal
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Qualification PCT Evaluation
Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
1
Process/Category:
Environmental Protection Agency
Page 349 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Check Code:
QUAL-8
Monitoring Qualification Percent Average Percent Value Valid
Related Former Checks: NBP-11A
Applicability:
Description:
General Check
This check determines if the Average Percent Value in the Monitor Qualification Percent record is valid.
Specifications:
For the Monitor Qualification Percent record:
Set Calculated Average Percent Value to null.
If AveragePercentValue is null,
return result A.
If AveragePercent Value is less than 0 or greater than 100,
return result B.
If YrlPercentage Value, Yr2Percentage Value, and Yr3 Percentage Value are all between 0 and 100,
Calculate Calculated Average Percent Value = (YrlPercentageValue + Yr2PercentageValue + Yr3PercentageValue) / 3,
and round the result to 1 decimal place.
If AveragePercent Value is not equal to Calculated Average Percent Value,
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 average percent capacity or percent heat input from gas reported for [key] is not
consistent with the average recalculated from the Year 1, 2 and 3 values.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Qualification PCT Evaluation
Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
1
Process/Category:
Environmental Protection Agency
Page 350 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Check Code:
QUAL-11
PCT Qualification Eligibility Valid
Related Former Checks: NBP-11B/C/D/E
Applicability:
Description:
General Check
This check determines eligibility for qualification type based on the values reported.
Specifications:
For the Monitor Qualification Percent record:
If the associated EndDate is null, or the QualificationYear and associated EndDate are both valid and the Qualification Year is less
than the year of the EndDate,
If the associated QualificationTypeCode is equal to "GF",
If either the YrlPercentage Value, Yr2Percentage Value, and Yr3 Percentage Value is greater than or equal to 0 and
less than 85.0,
return result A.
If the Calculated Average Percent Value is less than 90.0,
return result B.
If either the YrlPercentage Value, Yr2Percentage Value, and Yr3 Percentage Value is greater than 20.0 and less than
or equal to 100.0,
return result C.
If the Calculated Average Percent Value is greater than 10.0,
return result D.
If the associated EndDate is not null, and the QualificationYear and associated EndDate are both valid and the Qualification Year
is one greater than the year of the EndDate,
If the associated QualificationTypeCode is equal to "GF",
If the YrlPercentage Value, Yr2Percentage Value, and Yr3 Percentage Value are all between 85.0 and 100, and the
Calculated Average Percent Value is greater than or equal to 90.0,
return result E.
Otherwise,
If the YrlPercentage Value, Yr2Percentage Value, and Yr3 Percentage Value are all between 0 and 20.0, and the
Calculated Average Percent Value is less than or equal to 10.0,
return result F.
Otherwise,
Environmental Protection Agency
Page 351 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
D
E
F
Usage:
1
Response
The percent heat input from gas for one or more years reported for [key] is less than
85%, which is the minimum required percentage to qualify as a gas-fired unit.
The average of the reported yearly percent heat input from gas reported for [key] is less
than 90%, which is the minimum required percentage to qualify as a gas-fired unit.
The reported % capacity factor for one or more years reported for [key] is more than
20%, which is the maximum allowable capacity factor to qualify as a peaking unit.
The average of the reported yearly percent capacity factors reported for [key] is greater
than 10%, which is the maximum allowable capacity factor to qualify as a peaking
unit.
You have reported that the unit has lost its status as a gas-fired unit, yet the % heat
input for gaseous fuel values reported for [key] do not indicate this.
You have reported that the unit has lost its status as a peaking unit, yet the % capacity
factors reported for [key] do not indicate this.
Severity
Critical Error Level 2
Critical Error Level 2
Critical Error Level 2
Critical Error Level 2
Non-Critical Error
Non-Critical Error
Process/Category:
Conditions:
Monitoring Plan Evaluation Report Qualification PCT Evaluation
Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Environmental Protection Agency
Page 352 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-12
Check Name: Required LME Qualification for Program and Reporting Frequency
Related Former Checks: LME-4C/D/F
Applicability: LME Check
Description: This check determines the presence of both Annual and Ozone Season LME Qualification records.
Specifications:
For a Monitor Qualification record with a valid QualificationTypeCode that begins with "LME":
If Qualification Type Code is equal to "LMES",
Set NOX LME Unit to true.
Set S02 LME Unit to false.
Locate a Monitor Plan Reporting Frequency record for the location where the ReportingFrequency is equal to "Q", the
BeginQuarter is on or before the quarter of the Qualification Evaluation End Date, and the EndQuarter is null or is on or
after the quarter of the Qualification Evaluation Start Date.
If found,
Locate a Monitor Qualification record for the unit where the QualificationTypeCode is equal to "LMEA" and the
Begin Date is on or before the later of the BeginDate in the current Monitor Qualification record and the first day
of the BeginQuarter in the Reporting Frequency record.
If not found,
return result A.
If Qualification Type Code is equal to "LMEA",
Set NOX LME Unit to false.
Set S02 LME Unit to false.
Locate a Monitoring Method record for the location where the MethodCode is equal to "LME", the ParameterCode is
equal to NOXM, the BeginDate is on or before the Qualification Evaluation End Date, and the EndDate is null or is on or
after the Qualification Evaluation Start Date.
If found,
set NOX LME Unit to true.
Locate a Monitoring Method record for the location where the MethodCode is equal to "LME", the ParameterCode is
equal to 'S02M', the BeginDate is on or before the Qualification Evaluation End Date, and the EndDate is null or is on or
after the Qualification Evaluation Start Date.
If found,
set S02 LME Unit to true.
If NOX LME Unit is equal to false and S02 LME Unit is equal to false.
Locate a Unit Program record for the unit where the ProgramCode is equal "RGGI", the ClassCode is not equal to
"N", the UnitMonitorCertBeginDate is on or before the Qualification Evaluation End Date, and the EndDate is
null or is on or after the Qualification Evaluation Start Date.
If found,
set S02 LME Unit and NOX LME Unit to true.
Environmental Protection Agency
Page 353 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Locate a Location Program Parameter record for the location where the ParameterCode is equal to 'NOX1, the
ProgramCode in ProgramlsOzoneSeasonList, the Requiredlnd is equal to 1, the ClassCode is equal to "A" or "B", the
UnitMonitorCertBeginDate is on or before the Qualification Evaluation End Date, and the EndDate is null or is on or
after the Qualification Evaluation Start Date.
If found,
Locate a Monitor Qualification record for the unit where the QualificationTypeCode is equal to "LMES" and the
Begin Date is on or before the later of the BeginDate in the current Monitor Qualification record, May 1 of the
year of the BeginDate in the the current Monitor Qualification record, and the earliest UnitMonitorCertBeginDate
in the UnitProgram record.
If not found,
return result B.
Results:
Result
A
B
Response
You reported Monitor Qualification record for [key], but you did not report a LMEA
qualification record that was active during the evaluation period. Units in a seasonal
NOx program that report on a year-round basis must report LME qualification data on
both an annual and ozone-season basis.
You reported Monitor Qualification record for [key], but you did not report an LMES
qualification record that was active during the evaluation period. Units that report on a
year-round basis that belong to a seasonal NOx program must report LME
qualification data on both an annual and ozone-season basis.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report Qualification Evaluation
Current Qualification Active Equals true
Environmental Protection Agency
Page 354 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
QUAL-14
Required Monitoring System for Qualification
Applicability:
Description:
CEM Check
This check determines if the appropriate monitoring system has been reported for the qualification.
Specifications:
For a Monitor Qualification record with a QualificationTypeCode equal to "PRATA1", "PRATA2", "COMPLEX", or "LOWSULF":
If QualificationTypeCode is equal to "LOWSULF",
set Qualification System Type to "S02".
Otherwise,
set Qualification System Type to "FLOW".
Locate a Monitor System record for the location where the SystemTypeCode begins with the Qualification System Type, the
BeginDate is on or before the Qualification Evaluation End Date, and the EndDate is null or is on or after the Qualification
Evaluation Start Date.
If not found,
return result A.
Results:
Result
A
Response
You have reported a Monitor Qualification record for [key], but no [type] system that
was active during the evaluation period has been reported at this location.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Qualification Evaluation
Current Qualification Active Equals true
Environmental Protection Agency
Page 355 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-16
Check Name: Monitoring Qualification Qualification Type Code Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether the Qualification Type Code reported in the Monitoring Qualification Data
Element is valid.
Validation Tables:
Qual Type Code (Lookup Table)
Qual Type Code (Lookup Table)
Specifications:
For the CurrentQualification record:
If the QualificationTypeCode is null,
return result A.
Otherwise,
If QualificationTypeCode is equal to "LMEA", "LMES", "PK", "SK", "GF", or "HGAVG",
If Location Type does not begin with "U",
return result C.
Else if QualificationTypeCode is equal to "LEE"
Find a record in LocationProgramRecords where:
1) ProgramCode is equal to "MATS".
2) The earlier of UnitMonitorCertBeginDate and EmissionReportingBeginDate (if it exists) is less than or equal
to CurrentQualification5LwSD'<\\c.
3) EndDate is null or is greater than or equal to CurrcntOualificationBcginDMc.
If found,
If Location Type is equal to "MS", "CP" or "MP"
return result D.
Else
return result E
Otherwise,
Locate QualificationTypeCode in the QualificationTypeCode Lookup Table.
If not found,
return result B.
Environmental Protection Agency
Page 356 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 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 have reported an invalid Monitor Qualification record for [key]. This type of
qualification only applies to units.
You have reported an invalid Monitor Qualification Record for [key]. This type of
qualification only applies to units and common stacks.
You have reported an invalid Monitor Qualification Record for [key]. An LEE
qualification only applies to MATS program affected units.
Severity
Fatal
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: Monitoring Plan Evaluation Report Qualification Evaluation
Conditions: Current Qualification Active Equals true
Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Evaluation
Environmental Protection Agency
Page 357 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
QUAL-18
Monitoring Qualification Begin Date Valid
Applicability:
Description:
General Check
This check determines whether or not the Monitoring Qualification Data Start Date is valid. This value is
required and there is a range check for the date.
Specifications:
For the Monitoring Qualification Data record:
If BeginDate is null,
return result A.
If Qualification Type Code is equal to "LMEA" or "LMES",
set Earliest Begin Date to "01/01/2000".
If Qualification Type Code is equal to "PK", "SK", or "GF",
set Earliest Begin Date to "01/01/1996".
Otherwise,
set Earliest Begin Date to "01/01/1993".
If BeginDate is earlier than the Earliest Begin Date or later than Maximum Future Date,
return result B.
Else if Qualification Type Code is equal to "SK" or "LMES", and the BeginDate is not between May and September,
return result B.
Results:
Result
A
B
Response
You have not reported the required value in the field [fieldname] for [key].
You reported a [Fieldname] of [Date], which is outside the range of acceptable values
for this date for [key].
Severity
Fatal
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Qualification Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
Environmental Protection Agency
Page 358 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: QUAL-19
Check Name: Monitoring Qualification End Date Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether or not the Monitoring Qualification Data End Date is valid.
Specifications:
For the Monitoring Qualification Data record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Qualification Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
Environmental Protection Agency
Page 359 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-20
Check Name: Monitoring Qualification Dates Consistent
Related Former Checks:
Applicability: General Check
Description: Start Date should be prior to the End Date.
Specifications:
For the Monitoring Qualification Data record:
If the Monitoring Qualification Data Start Date is valid and the Monitoring Qualification Data End Date is valid,
If the BeginDate is after the EndDate,
set Monitor Qualification Dates Consistent to false, and return result A.
Otherwise,
set Monitor Qualification Dates Consistent to true.
Otherwise,
set Monitor Qualification Dates Consistent to false.
Results:
Result
A
Response
You reported [datefield2] which is prior to [datefieldl] for [key].
Severity
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Qualification Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
Environmental Protection Agency
Page 360 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-22
Check Name: Monitoring Qualification LME Data Qualification Year Valid
Related Former Checks: LME-2
Applicability: LME Check
Description: This check determines whether the Qualification Year reported in the Monitoring Qualification LME Data
Element is valid.
Specifications:
For a Monitor Qualification LME record:
If QualificationDataYear is null,
return result A.
If QualificationDataYear is more than two years after the year of the BeginDate in the current qualification record or more than 3
years prior to the year of the BeginDate in the current qualification record,
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.
Severity
Fatal
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report Qualification LME Evaluation
Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification LME Evaluation
Environmental Protection Agency
Page 361 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-23
Check Name: Monitoring Qualification LME Data S02 Tons Valid
Related Former Checks: LME-3B, 3F, 4E
Applicability: LME Check
Description: This check determines whether the S02 Tons reported in the Monitoring Qualification LME Data Element is
valid.
Specifications:
For a Monitor Qualification LME record:
If S02 LME Unit is true,
If S02Tons is null,
return result A.
If S02Tons is less than 0,
return result B.
If S02Tons is greater than 25.0
return result C.
Otherwise,
If S02Tons is not null,
return result D.
Results:
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. This value must be greater than or equal to zero.
C You reported a value for [fieldname] for [key], which exceeds allowable value to
qualify as an LME unit.
D You reported a value for [fieldname] for [key], but this value is not appropriate for the Critical Error Level 1
affected programs and/or qualification type.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Qualification LME Evaluation
Conditions: Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 362 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Check Code:
QUAL-24
Monitoring Qualification LME Data NOx Tons Valid
Related Former Checks: LME-3A, 3C, 3D, 3E, 3G
Applicability:
Description:
LME Check
This check determines whether the NOx Tons reported in the Monitoring Qualification LME Data Element is
valid.
Specifications:
For a Monitor Qualification LME record:
If NOX LME Unit is true,
If NOxTons is null,
return result A.
If NOxTons is less than 0,
return result B.
If the associated QualificationTypeCode is equal to "LMES",
If the year of the BeginDate in the associated Monitor Qualification record is before 2002,
Otherwise,
If the year of the BeginDate in the associated Monitor Qualification record is before 2002,
If NOxTons is greater than 25.0
return result C.
Otherwise,
If NOxTons is greater than 50.0
return result C.
If NOxTons is greater than 50.0
return result C.
Otherwise,
If NOxTons is greater than 100.0
return result C.
Otherwise,
If NOxTons is not null,
return result D.
Environmental Protection Agency
Page 363 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
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 You reported a value for [fieldname] for [key], which exceeds allowable value to Critical Error Level 1
qualify as an LME unit.
D You reported a value for [fieldname] for [key], but this value is not appropriate for the Critical Error Level 1
affected programs and/or qualification type.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Qualification LME Evaluation
Conditions: Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Environmental Protection Agency
Page 364 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
QUAL-25
Monitoring Qualification LME Data Operating Hours Valid
Applicability:
Description:
LME Check
This check determines whether the Operating Hours reported in the Monitoring Qualification LME Data
Element is valid.
Specifications:
For a Monitor Qualification LME record:
If OperatingHours is null,
return result A.
If OperatingHours is less than 0 or greater than 8784,
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:
Conditions:
Monitoring Plan Evaluation Report Qualification LME Evaluation
Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification LME Evaluation
1
Process/Category:
Environmental Protection Agency
Page 365 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-27
Check Name: Monitoring Qualification Percent Year 1 Data Type Code Valid
Related Former Checks: NBP-10
Applicability: General Check
Description: This check determines whether the Year 1 Data Type Code reported in the Monitoring Qualification Percent
Data Element is valid.
Specifications:
For the Monitor Qualification Percent record:
If the YrlQualificationDataTypeCode is null,
return result A.
If YrlQualificationDataTypeCode is equal "P",
If YrlQualificationDataYear and QualificationYear are both valid, and YrlQualificationDataYear is before the
QualificationYear,
return result B.
If YrlQualificationDataTypeCode is equal "A",
If YrlQualificationDataYear and QualificationYear are both valid, and YrlQualificationDataYear is on or after the
QualificationYear,
return result C.
If YrlQualificationDataTypeCode is equal "D",
If the associated QualificationTypeCode is not equal to "GF",
return result D.
If YrlQualificationDataYear and QualificationYear are both valid, and YrlQualificationDataYear is not equal to the
QualificationYear,
return result E.
Otherwise,
return result D.
Results:
Result
A
B
C
D
E
Usage:
1
Response
You did not provide [fieldname], which is required for [key].
You have reported that the data for [key] was projected data, but the [fieldname2] is
prior to the QualificationYear.
You have reported that the data for [key] was historical data, but the [fieldname2] is
not prior to the QualificationYear.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You have reported that the data for [key] was demonstration data, but
YrlQualificationDataYear is not equal to the QualificationYear.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report Qualification PCT Evaluation
Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
Environmental Protection Agency
Page 366 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-28
Check Name: Monitoring Qualification Percent Year 1 Data Year Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether the Qualification Year 1 Data Year reported in the Monitoring Qualification
Percent Data Element is valid.
Specifications:
For the Monitoring Qualification Percent record:
If Yr 1 QualificationDataYear is null,
return result A.
If YrlQualificationDataYear is less than 1990,
return result B.
If QualificationYear is valid, and Yrl QualificationDataYear is after the QualificationYear or is more than 3 years prior to the
QualificationYear
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.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report Qualification PCT Evaluation
Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
Environmental Protection Agency
Page 367 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-29
Check Name: Monitoring Qualification Percent Year 1 Percentage Value Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether the Year 1 Percentage Value reported in the Monitoring Qualification Percent
Data Element is valid.
Specifications:
For the Monitor Qualification Percent record:
If YrlPercentageValue is null,
return result A.
If YrlPercentage Value is less than 0 to greater than 100,
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: Monitoring Plan Evaluation Report Qualification PCT Evaluation
Conditions: Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
Environmental Protection Agency
Page 368 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-34
Check Name: Monitoring Qualification Data Active
Related Former Checks:
Applicability: General Check
Description: This check determines whether the Monitor Qualification Data record being evaluated is active during the
evaluation period.
Specifications:
For a Monitoring Qualification Data record with consistent dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Monitoring Qualification Data Active to false.
Otherwise,
set Monitoring Qualification Data Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the Monitoring Qualification Data Evaluation Begin Date to the Evaluation Begin Date.
Otherwise,
set the Monitoring Qualification Data Evaluation Begin Date to the BeginDate.
If the EndDate is null or is after the Evaluation End Date,
set the Monitoring Qualification Data Evaluation End Date to the Evaluation End Date.
Otherwise,
set the Monitoring Qualification Data Evaluation End Date to the EndDate.
Response Severity
Process/Category: Monitoring Plan Evaluation Report Qualification Evaluation
Results:
Result
Usage:
1
Environmental Protection Agency
Page 369 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Check Code:
QUAL-38
Monitoring Qualification Child Records Valid
Related Former Checks: ARP-39C, 44; LME-2
Applicability:
Description:
General Check
This check determines if all required Monitor Qualification Percent and Monitor Qualification LME records
are reported with the correct years.
Specifications:
For a valid Monitor Qualification record with consistent dates and a QualificationTypeCode equal to "PK", "SK", "GF", "LMEA",
"LMES", or "LEE":
If QualificationTypeCode is equal to "PK", "SK", or "GF",
Set Previous Data Year to the year of the BeginDate in the current record.
For each QualificationYear from the year of the BeginDate in the current record through the year of the EndDate in the
current record (if EndDate is not null) or the current year (if EndDate is null):
Locate the Monitor Qualification Percent record for the current qualification and QualificationYear.
If YrlQualificationDataYear is after the year of the BeginDate in the current qualification record,
If YrlQualificationDataYear is not equal to Previous Data Year + 1,
return result A.
Otherwise,
set Previous Data Year to the YrlQualificationDataYear.
If YrlQualificationDataYear is equal to the QualificationYear or is one or 2 years prior to the
QualificationYear, and Initial Qualification is equal to false,
return result B.
If QualificationYear is prior to the current year; or if QualificationYear is equal to the current year and
the current month is later than June,
return result C.
If QualificationYear is equal to the current year and the current month is later than March,
Locate a Monitor Program Reporting Frequency record for the location where the
ReportingFrequency is equal to "Q", the BeginQuarter is on or before the quarter of the
Qualification Evaluation End Date, and the EndQuarter is null or is on or after the quarter of the
Qualification Evaluation Start Date.
If found,
return result C.
If found,
Otherwise,
If not found,
If QualificationTypeCode begins with "LME",
Count the number of Monitor Qualification LME record for the current qualification.
Environmental Protection Agency
Page 370 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If the number of records is not equal to 3,
return result D.
Otherwise,
Proceed through the retrieved Monitor Qualification LME records in ascending QualificationDataYear order.
If this is first Monitor Qualification LME record,
If QualificationDataYear is greater than the year of the BeginDate in the current qualification record or
more than 3 years prior to the year of the BeginDate in the current qualification record,
return result E.
Otherwise,
set Previous Data Year to the QualificationDataYear.
Otherwise,
If QualificationDataYear is not equal to Previous Data Year + 1,
return result E.
Otherwise,
set Previous Data Year to the QualificationDataYear.
If QualificationTypeCode is equal to "LEE",
If QualificationTypeCodeValid,
Count the number of Monitor Qualification LEE records for the current qualification.
If the number of records is equal to 0,
return result F.
Results:
Result
A
B
C
D
E
F
Response
The sequence of actual and projected qualification data years in the Monitor
Qualification Percent records for [key] is not valid.
You have reported projected data in the Monitor Qualification Percent records for
[key], but this is not allowed when requalifying for this status.
You have not reported all the required Monitor Qualification Percent records for [key].
You have reported more or less than the three required Monitor Qualification LME
records for [key].
The qualification data years in the Monitor Qualification LME records for [key] are not
valid.
You have not reported at least one required Monitor Qualification Data Record for
LEE.
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
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report Qualification Evaluation
Current Qualification Active Equals true
Environmental Protection Agency
Page 371 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-39
Check Name: Overlapping Monitoring Qualification Record
Related Former Checks:
Applicability: General Check
Description: This check determines if there are overlapping or previous Monitor Qualification records for the location with
the same QualificationTypeCode.
Specifications:
For a Monitoring Qualification record:
If Qualification Type Code Valid is equal to false, or Qualification Consistent with Non Load Based Indicator is equal to false (not
null), or Qualification Consistent with Fuel is equal to false (not null), or Qualification Consistent with Program and Reporting
Frequency is equal to false (not null),
set Monitor Qualification Valid to false.
Otherwise,
set Monitor Qualification Valid to true.
Locate another Monitor Qualification record for this location with the same Qualification Type Code, and a BeginDate
that is before the BeginDate in the current record.
If found,
Set Initial Qualification to false.
If the EndDate of any retrieved record is null or the EndDate is on or after the BeginDate of the current record,
set Monitor Qualification Valid to false, and return result A.
If not found,
set Initial Qualification to true.
Results:
Result Response Severity
A You have reported overlapping [type] monitoring qualification records for this location. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Qualification Evaluation
Conditions: Current Qualification Active Equals true
Environmental Protection Agency
Page 372 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-40
Check Name: Monitoring Qualification Percent Year 2 Data Type Code Valid
Related Former Checks: NBP-10
Applicability: General Check
Description: This check determines whether the Year 2 Data Type Code reported in the Monitoring Qualification Percent
Data Element is valid.
Specifications:
For the Monitor Qualification Percent record:
If the Yr2QualificationDataTypeCode is null,
return result A.
If Yr2QualificationDataTypeCode is equal "P",
If Yr2QualificationDataYear and QualificationYear are both valid, and Yr2QualificationDataYear is before the
QualificationYear,
return result B.
If Yr2QualificationDataTypeCode is equal "A",
If Yr2QualificationDataYear and QualificationYear are both valid, and Yr2QualificationDataYear is on or after the
QualificationYear,
return result C.
Otherwise,
return result D.
Results:
Result
A
B
C
D
Usage:
1
Response
You did not provide [fieldname], which is required for [key].
You have reported that the data for [key] was projected data, but the [fieldname2] is
prior to the QualificationYear.
You have reported that the data for [key] was historical data, but the [fieldname2] is
not prior to the QualificationYear.
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
Critical Error Level 1
Critical Error Level 1
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report Qualification PCT Evaluation
Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
Environmental Protection Agency
Page 373 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-41
Check Name: Monitoring Qualification Percent Year 2 Percentage Value Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether the Year 2 Percentage Value reported in the Monitoring Qualification Percent
Data Element is valid.
Specifications:
For the Monitor Qualification Percent record:
If Yr2Percentage Value is null,
return result A.
If Yr2Percentage Value is less than 0 to greater than 100,
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: Monitoring Plan Evaluation Report Qualification PCT Evaluation
Conditions: Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
Environmental Protection Agency
Page 374 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
QUAL-42
Monitoring Qualification Percent Year 2 Data Year Valid
Applicability:
Description:
General Check
This check determines whether the Qualification Year 2 Data Year reported in the Monitoring Qualification
Percent Data Element is valid.
Specifications:
For the Monitoring Qualification Percent record:
If Yr2QualificationDataYear is null,
return result A.
If Yr2QualificationDataYear is less than 1990,
return result B.
If YrlQualificationDataYear is valid, and Yr2QualificationDataYear is not one year after YrlQualificationDataYear,
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.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Qualification PCT Evaluation
Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
1
Process/Category:
Environmental Protection Agency
Page 375 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-43
Check Name: Monitoring Qualification Percent Year 3 Data Type Code Valid
Related Former Checks: NBP-10
Applicability: General Check
Description: This check determines whether the Year 3 Data Type Code reported in the Monitoring Qualification Percent
Data Element is valid.
Specifications:
For the Monitor Qualification Percent record:
If the Yr3QualificationDataTypeCode is null,
return result A.
If Yr3QualificationDataTypeCode is equal "P",
If Yr3QualificationDataYear and QualificationYear are both valid, and Yr3QualificationDataYear is before the
QualificationYear,
return result B.
If Yr3QualificationDataTypeCode is equal "A",
If Yr3QualificationDataYear and QualificationYear are both valid, and Yr3QualificationDataYear is on or after the
QualificationYear,
return result C.
Otherwise,
return result D.
Results:
Result
A
B
C
D
Usage:
1
Response
You did not provide [fieldname], which is required for [key].
You have reported that the data for [key] was projected data, but the [fieldname2] is
prior to the QualificationYear.
You have reported that the data for [key] was historical data, but the [fieldname2] is
not prior to the QualificationYear.
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
Critical Error Level 1
Critical Error Level 1
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report Qualification PCT Evaluation
Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
Environmental Protection Agency
Page 376 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-44
Check Name: Monitoring Qualification Percent Year 3 Percentage Value Valid
Related Former Checks:
Applicability: General Check
Description: This check determines whether the Year 3 Percentage Value reported in the Monitoring Qualification Percent
Data Element is valid.
Specifications:
For the Monitor Qualification Percent record:
If Yr3PercentageValue is null,
return result A.
If Yr3 Percentage Value is less than 0 to greater than 100,
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: Monitoring Plan Evaluation Report Qualification PCT Evaluation
Conditions: Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
Environmental Protection Agency
Page 377 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
QUAL-45
Monitoring Qualification Percent Year 3 Data Year Valid
Applicability:
Description:
General Check
This check determines whether the Qualification Year 3 Data Year reported in the Monitoring Qualification
Percent Data Element is valid.
Specifications:
For the Monitoring Qualification Percent record:
If Yr3QualificationDataYear is null,
return result A.
If Yr3QualificationDataYear is less than 1990,
return result B.
If Yr2QualificationDataYear is valid, and Yr3QualificationDataYear is not one year after Yr2QualificationDataYear,
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.
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Qualification PCT Evaluation
Current Qualification Active Equals true
And Monitor Qualification Valid Equals true
Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
1
Process/Category:
Environmental Protection Agency
Page 378 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
QUAL-35
Duplicate Monitoring Qualification Records
Applicability:
Description:
General Check
This check determines if there is another qualification record with the same key fields.
Specifications:
For a Monitoring Qualification record:
Locate another Qualification record for the location with a QualificationTypeCode equal to the QualificationTypeCode in the
current record and a BeginDate/Hour equal to the BeginDate/Hour in the current record.
If found,
return result A.
If not found, and the EndDate in the current record is not null.,
Locate another Qualification record for the location with a QualificationTypeCode equal to the QualificationTypeCode in
the current record and an End Date/Hour equal to the EndDate/Hour 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: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Evaluation
Environmental Protection Agency
Page 379 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-36
Check Name: Duplicate Monitoring Qualification Percent Records
Related Former Checks:
Applicability: General Check
Description: This check determines if there is another QualPercent record with the same key fields.
Specifications:
For a Monitoring Qualification Percent record:
Locate another Monitoring Qualification Percent record for the qualification with a QualificationYear equal to the
QualificationYear 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: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification Percent Evaluation
Environmental Protection Agency
Page 380 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-37
Check Name: Duplicate Monitoring Qualification LME Records
Related Former Checks:
Applicability: General Check
Description: This check determines if there is another QualLME record with the same key fields.
Specifications:
For a Monitoring Qualification LME record:
Locate another Monitoring Qualification LME record for the qualification with a QualificationDataYear equal to the
QualificationDataYear 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: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification LME Evaluation
Environmental Protection Agency
Page 381 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-46
Check Name: Monitoring Qualification LME Data NOx Tons Valid
Related Former Checks:
Applicability: LME Check
Description: This check determines whether the NOx Tons reported in the Monitoring Qualification LME Data Element is
valid.
Specifications:
For a Monitor Qualification LME record:
If Nox Tons is not null,
If NOxTons is less than 0,
return result A.
If the associated QualificationTypeCode is equal to "LMES",
If the year of the BeginDate in the associated Monitor Qualification record is before 2002,
If NOxTons is greater than 25.0
return result B
Otherwise,
If NOxTons is greater than 50.0
return result B.
Otherwise,
If the year of the BeginDate in the associated Monitor Qualification record is before 2002,
If NOxTons is greater than 50.0
return result B.
Otherwise,
If NOxTons is greater than 100.0
return result B.
Results:
Result
A
B
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 value for [fieldname] for [key], which exceeds allowable value to
qualify as an LME unit.
Usage:
1
Severity
Critical Error Level 1
Critical Error Level 1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification LME Evaluation
Environmental Protection Agency
Page 382 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUAL-47
Check Name: Monitoring Qualification LME Data S02 Tons Valid
Related Former Checks:
Applicability: LME Check
Description: This check determines whether the S02 Tons reported in the Monitoring Qualification LME Data Element is
valid.
Specifications:
For a Monitor Qualification LME record:
If S02Tons is not null,
If the associated QualificationTypeCode is equal to "LMES",
return result C.
If S02Tons is less than 0,
return result A.
If S02Tons is greater than 25.0
return result B.
Results:
Result
A
B
C
Usage:
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 value for [fieldname] for [key], which exceeds allowable value to
qualify as an LME unit.
You reported a value for [fieldname] for [key], but this value is not appropriate for the
affected programs and/or qualification type.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification LME Evaluation
Environmental Protection Agency
Page 383 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Qualification LEE
Environmental Protection Agency
Page 384 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
QUALLEE-1
Qualification Test Type Valid
Applicability:
Description:
Determines whether the Qualification Test Type has a valid value.
Validation Tables:
Vw Qual Lee Test Type Cd (Lookup Table)
Vw Qual Lee Test Type Cd (Lookup Table)
Specifications:
Locate a record in QualificationLeeTestTypeCodeLookupTable where QualLeeTestTypeCode is equal to
CurrentQualiJicationLee.QaalLeeTestTypeCode.
If not found,
return result A.
Results:
Result Response Severity
A You have reported an invalid Qualification Test Type. Fatal
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Qualification LEE Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification LEE Evaluation
Environmental Protection Agency
Page 385 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: QUALLEE-2
Check Name: Qualification Test Date
Related Former Checks:
Applicability:
Description: Returns a result if the current Qualification LEE record is from an initial test but the test date for a sibling
Qualification LEE record proceeds the test date of the current record. Also returns a result if the current
record is for a retest, but no proceeding sibling record exists, or the most recent proceeding sibling's test date is
more than a year prior to the current record's test date.
Specifications:
Locate the most recent record in QualificationLeeRecords for the current qualification where QualificationTestDate is before
CurrentQualificationLee.QualificationTestDate.
If found,
If CurrentQualificationLee.QaalificationTestType is equal to "INITIAL",
return result A.
Else if the QualificationTestDate in the located QualificationLeeRecords record is more than a year prior to
CurrentQualificationLee. QualificationTestDate,
return result B.
Otherwise,
If CurrentQualificationLee.QaalificationTestType is equal to "RETEST",
return result C.
Results:
Result Response Severity
A You have reported a Qualification Test Type of "INITIAL" however prior qualification Critical Error Level 1
test records exist.
B You have reported a qualification test date that is greater than one year prior to the Critical Error Level 1
Qualification Record.
C You have reported a Qualification Test Type of "RETEST", an "INITIAL" test type Critical Error Level 1
must be reported for the first test.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Qualification LEE Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification LEE Evaluation
Environmental Protection Agency
Page 386 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
QUALLEE-3
Qualification Values
Applicability:
Description:
Returns a result if all four Qualification LEE value fields are null, if both the one Potential Emissions and at
least one of the three Emission Standard fields are not null, or if one but not all three of the Emission Standard
fields is not null.
Basically, the record should contain either Potential Emissions or Emission Standard information but not both,
and if it contains Emission Standard information it should contain complete information.
Specifications:
For CurrentQualiJicationLee:
IfPotentialAnnualHgMassEmissions, ApplicableEmissionStandard, UnitsOfStandard, and PercentageOfEmissionStandard are
NULL,
return result A.
Else if PotentialAnnualHgMassEmissions is NOT NULL, and at least one of ApplicableEmissionStandard, UnitsOfStandard, and
PercentageOfEmissionStandard is NOT NULL,
return result B.
Else if PotentialAnnualHgMassEmissions is NULL, and at least one of ApplicableEmissionStandard, UnitsOfStandard, and
PercentageOfEmissionStandard is NULL,
return result C.
Results:
Result
A
Response
You have reported an incomplete Qualification LEE record. Potential Annual Hg Mass
Emissions, Applicable Emission Standard, UnitsOfStandard, and Percentage Of
Emission Standard are blank.
You have reported an incomplete Qualification LEE record.
You have reported an incomplete Qualification LEE record.
Severity
Critical Error Level 1
B
C
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Qualification LEE Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Monitoring Qualification LEE Evaluation
Environmental Protection Agency
Page 387 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
Span
Environmental Protection Agency
Page 388 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-1
Check Name: Span MPC Value Valid
Related Former Checks: NBP-37
Applicability: CEM Check
Description: This check determines if the MPC (Maximum Potential Concentration) value reported is valid.
Validation Tables:
NOX MPC to Fuel Category and Unit Type (Cross Check Table)
Specifications:
For a Span record with a valid ComponentTypeCode:
If the MPCValue is null,
If the ComponentTypeCode is not equal to "FLOW" or "02", and the SpanScaleCode is equal to "H",
set Span MPC Value Valid to false, and return result A.
If the MPCValue is not null,
If the ComponentTypeCode is equal to "FLOW" or "02", or the SpanScaleCode is equal to "L"
set Span MPC Value Valid to false, and return result B.
Otherwise,
If the MPCValue is less than or equal to 0,
set Span MPC Value Valid to false, and return result C.
Otherwise,
If the ComponentTypeCode is equal to "NOX" and the SpanMethodCode is equal to "TB",
set Natural Gas Location to false.
Locate all Unit Fuel records linked to the location where the BeginDate is on or before the Span
Evaluation End Date and the EndDate is null or is on or after the Span Evaluation Start Date.
If the FuelCode of any of the retrieved records is equal to "C",
set Location Fuel Category to "COAL".
If the Fuel Code of all of the retrieved records is equal to "NNG" or "PNG",
set Location Fuel Category to "GAS" and Natural Gas Location to true.
If the associated Fuel Group of all of the retrieved records is equal to "GAS",
set Location Fuel Category to "GAS".
If the associated Fuel Group of all of the retrieved records is equal to "OIL",
set Location Fuel Category to "OIL".
If the associated Fuel Group of all of the retrieved records is equal to "OIL" or "GAS",
set Location Fuel Category to "OIL/GAS".
Locate the NOX MPC to Fuel Category and Unit Type cross check record where NOXMPC is equal to the
MPCValue in the current Span record, the FuelCategory is equal to the Location Fuel Category, and the
UnitTypeCode is null.
If not found,
Environmental Protection Agency
Page 389 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Locate all UnitType records linked to the location where the BeginDate is on or before the Span
Evaluation End Date and the EndDate is null or is on or after the Span Evaluation Begin Date.
If NaturalGasLocation is equal to true,
Locate the NOX MPC to Fuel Category and Unit Type cross check record where
NOXMPC is equal to the MPCValue in the current Span record, the FuelCategory is
equal to the Location Fuel Category, "NG", or null, and the UnitTypeCode is any of the
UnitTypeCodes in the retrieved records.
Otherwise,
Locate the NOX MPC to Fuel Category and Unit Type cross check record where
NOXMPC is equal to the MPCValue in the current Span record, the FuelCategory is
equal to the Location Fuel Category or null, and the UnitTypeCode is any of the
UnitTypeCodes in the retrieved records.
If not found,
If MPCValue is not equal to 50, or the EndDate in the current Span record is null or is
after 3/31/2003, or none of the UnitTypeCodes in the retrieved records is equal to "CT",
return result D.
If the ComponentTypeCode is equal to "HG" and the SpanMethodCode is equal to "TB",
If the MPCValue is not null and is not equal to 10, or 16,
return result E.
If the ComponentTypeCode is equal to "C02" and the SpanMethodCode is equal to "TB",
Locate all Unit Type records linked to this location where the BeginDate is on or before the Span
Evaluation End Date and the EndDate is null or is on or after the Span Evaluation Begin Date.
If the Unit Type in none of the retrieved records are equal to "KLN" or "PRH",
If MPCValue is not equal to 6 or 14,
return result F.
Otherwise,
If the Unit Type in aft of the retrieved records are equal to "CC", "CT", "ICE", "OT", or
"IGC", and the MPCValue is not equal to 6,
return result F.
If the Unit Type in none of the retrieved records are equal to "CC", "CT", "ICE", "OT",
or "IGC", and the MPCValue is not equal to 14,
return result F.
Environmental Protection Agency
Page 390 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
D
Usage:
1
Response
You did not report an MPCValue for [key].
You have reported an MPCValue for [key], but an MPCValue is not appropriate for this
ComponentTypeCode and SpanScaleCode.
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 SpanMethodCode of "TB" for [key], which indicates that you used a
standard MPCValue based on fuel type and unit type. However, the MPCValue that
you reported is not consistent with the fuel type(s) and unit type(s) at this location.
You reported a SpanMethodCode of "TB" for [key], which indicates that you used a
standard MPCValue based on fuel type. However, the MPCValue that you reported is
not a standard value.
You reported a SpanMethodCode of "TB" for [key], which indicates that you used a
standard MPCValue based on unit type. However, the MPCValue that you reported is
not consistent with the unit type(s) at this location.
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Span Active Equals true
¦ Span Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
Critical Error Level 2
Critical Error Level 2
Environmental Protection Agency
Page 391 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-2
Check Name: Span MEC Value Valid
Related Former Checks: NBP-37, NBP-38
Applicability: CEM Check
Description: This check determines if the MEC (Maximum Expected Concentration) value reported is valid.
Specifications:
For a Span record with a valid ComponentTypeCode:
If the MECValue is null,
If the ComponentTypeCode is equal to "S02" or "NOX", and SpanScaleCode is equal to "L",
set Span MEC Value Valid to false, and return result A.
If the ComponentTypeCode is equal to "S02" or "NOX, the SpanScaleCode is equal to "H", and the DefaultHighRange is
not null,
set Span MEC Value Valid to false, and return result B.
If the ComponentTypeCode is equal to "S02" and the SpanScaleCode is equal to "H",
Locate a Location Control record for the location where the ParameterCode is equal to "S02", the InstallDate is
180 days before the Span Evaluation End Date, and the RetireDate is null or is after the Span Evaluation Begin
Date,
If found,
Locate a Location Attribute record for the location where the Bypasslndicator is equal to 1, the BeginDate
is on or before the Span Evaluation End Date, and the EndDate is null or is on or after the Span
Evaluation Begin Date,
If not found,
return result C.
If the ComponentTypeCode is equal to "NOX" and the SpanScaleCode is equal to "H",
Locate a Unit Control record linked to the location where the ParameterCode is equal to "NOX", the ControlCode
is equal to "H20", "STM", "SCR", "SNCR", "DLNB", or "NH3", the InstallDate is 180 days before the Span
Evaluation End Date, and the RetireDate is null or is after the Span Evaluation Begin Date,
If found,
Locate a Location Attribute record for the location where the Bypasslndicator is equal to 1, the BeginDate
is on or before the Span Evaluation End Date, and the EndDate is null or is on or after the Span
Evaluation Begin Date,
If not found,
return result E.
If the MECValue is not null,
If the ComponentTypeCode is equal to "FLOW", "02", "HG" or "HCL",
set Span MEC Value Valid to false, and return result F.
If the MECValue is less than or equal to 0,
set Span MEC Value Valid to false, and return result G.
Environmental Protection Agency
Page 392 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
E
F
G
H
Response
You did not report an MECValue for [key]. This value is required in a non-flow
low-scale span record.
You did not report an MECValue for [key], but you defined a DefaultHighRange value.
You must determine a maximum expected concentration when using a default high
range value.
You did not report an MECValue for [key], but you have reported S02 controls at this
location. You must determine an MEC for S02 if controls are used.
You did not report an MECValue for [key], but you have reported add-on NOX controls
at this location. You must determine an MEC for NOX if add-on controls are used.
You have inappropriately reported an MECValue 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 an MECValue for [key], but you have not reported any add-on NOX
controls at this location. You should only determine an MEC for NOX if add-on
controls are used.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
Critical Error Level 2
Critical Error Level 1
Critical Error Level 1
Critical Error Level 2
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Span Active Equals true
¦ Span Evaluation
Environmental Protection Agency
Page 393 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-3
Check Name: Span MPF Value Valid
Related Former Checks: NBP-37
Applicability: CEM Check
Description: This check determines if the MPF (Maximum Potential Flow) value reported is valid.
Specifications:
For a Span record with a valid ComponentTypeCode:
If the ComponentTypeCode is equal to "FLOW",
If the MPFValue is null,
return result A.
Otherwise,
If the MPFValue is less than 500,000,
return result B.
If the ComponentTypeCode is not equal to "FLOW", and the MPFValue is not null,
return result C.
Results:
Result
A
B
C
Usage:
1
1
Response
You have not reported a [fieldname] for [key], which is a required field for flow span.
You have reported an MPF for [key], which is lower than the expected minimum value
of 500,000 scfh.
You have reported a value in [fieldname] for [key], which is inappropriate for a
non-flow span record.
Process/Category:
Conditions:
Process/Category:
Monitoring Plan Evaluation Report Span Evaluation
Current Span Active Equals true
Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 394 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SPAN-4
Check Name:
Related Former Checks:
Span Scale Transition Point Value Valid
Applicability:
Description:
Specifications:
CEM Check
This check determines if the Scale Transition Point value reported is valid.
For a Monitoring Span record with a valid ComponentTypeCode not equal to "HG", and a SpanScale equal to "H":
If ScaleTransitionPoint is not null,
If Span Value is null and DefaultHighRange Value is not null,
return result A.
If the dates are consistent in the Span record,
Locate all Span records for the location where the ComponentTypeCode is equal to the ComponentTypeCode in
the current span record, the SpanScale is equal to "L", the BeginDate and BeginHour is on or before Span
Evaluation End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the Span
Evaluation Begin Date and Begin Hour.
If found,
If the ScaleTransitionPoint in all the retrieved records equal to the ScaleTransitionPoint in the current
span record,
If, for any retrieved record where the FullScaleRangeValue is not null, the ScaleTransitionPoint
is not between 1/2 and 1 times the FullScaleRange Value in the retrieved record,
return result B.
Otherwise,
return result C.
Locate an AnalyzerRange record for the location where the associated ComponentTypeCode is equal to the
ComponentTypeCode in the current span record, the DualRangelndicator is equal to 1, the BeginDate and
BeginHour is on or before Span Evaluation End Date and End Hour, and the EndDate is null or the EndDate and
EndHour in on or after the Span Evaluation Begin Date and Begin Hour.
If found,
return result D.
If ScaleTransitionPoint is null, and the dates are consistent in the Span record,
If EndDate is null or the EndDate is on or after the ECMPS MP Begin Date,
Environmental Protection Agency
Page 395 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
D
Response
You have reported a ScaleTransitionPoint for [key], but you have indicated that you
used a DefaultHighRangeValue. You should only report a ScaleTransitionPoint when
using a dual-range analyzer.
You have reported a ScaleTransitionPoint for [key] that is not within the valid range of
values. The ScaleTransitionPoint should be between one-half and one times the
FullScaleRangeValue in the corresponding low-scale span record.
You have reported a ScaleTransitionPoint for [key], but you have not reported the same
ScaleTransitionPoint in the corresponding low-scale span records.
You have not reported a ScaleTransitionPoint for [key], but you have indicated that you
used a dual-range [type] component. You should report a ScaleTransitionPoint when
you use a dual-range analyzer.
Severity
Critical Error Level 1
Critical Error Level 2
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Span Active Equals true
¦ Span Evaluation
Environmental Protection Agency
Page 396 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SPAN-6
Check Name:
Span Value Valid
Related Former Checks: NBP-43, ARP-57
Applicability:
Description:
CEM Check
This check determines if the span value reported is valid.
Specifications:
For a Span record with a valid ComponentTypeCode:
If the Span Value is null,
If the ComponentTypeCode is not equal to "NOX" or "S02", or the SpanScaleCode is not equal to "H",
return result A.
If the Span Value is not null,
If ComponentTypeCode is equal to "FLOW", and UnitsOfMeasure is not equal to "SCFH",
set Minimum Span Value to .001
If ComponentTypeCode is equal to "FLOW", and UnitsOfMeasure equal to "SCFH",
set Minimum Span Value to 500,000
If ComponentTypeCode is equal to "S02", "NOX", "HG" or "HCL",
set Minimum Span Value to 1
If ComponentTypeCode is equal to "C02" or "02",
set Minimum Span Value to 0.1
If the Span Value is less than the Minimum Span Value,
return result B.
If Maximum Span Value is not null, and the Span Value is greater than the Maximum Span Value,
return result C.
If the ComponentTypeCode is not equal to "FLOW", "HG" or "HCL",
If the SpanScaleCode is equal to "H" and the MPCValue is valid,
set MPC or MEC to "MPC".
If the Span Value is less than the MPCValue,
return result D.
If the ComponentTypeCode is equal to "S02","NOX", and the MPCValue * 1.25 (and rounded up to the
next highest multiple of 100 ppm) is less than the Span Value,
return result E.
If the SpanScaleCode is equal to "L" and the MECValue is valid,
set MPC or MEC to "MEC".
If the Span Value is less than the MECValue,
return result D.
If the ComponentTypeCode is equal to "S02","NOX", and MECValue * 1.25 (and rounded up to the next
highest multiple of 100 ppm) is less than the Span Value,
return result E.
Environmental Protection Agency
Page 397 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result Response Severity
A You did not provide [fieldname], which is required for [key]. Critical Error Level 1
B The span value for [key] is less than [minvalue], which is the lowest span value Critical Error Level 2
specified in Part 75 for this parameter.
C The span value for [key] exceeds the highest reasonable span value of [maxvalue]. Critical Error Level 1
D You reported a Span Value that is less than the [MPC/MEC] for [key]. Critical Error Level 1
E You reported a Span Value that is greater than 1.25 times the [MPC/MEC] (rounded up Critical Error Level 2
to the next highest multiple of 100 ppm) for [key].
F You reported a Span Value that is not equal to the MPC (rounded up to the next highest Critical Error Level 2
multiple of 10 ug/scm) for [key].
G You reported a Span Value that is not equal to 10 ug/scm for [key]. Critical Error Level 2
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Span Evaluation
Conditions: Current Span Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 398 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SPAN-7
Check Name:
Related Former Checks:
Span Full Scale Range Value Valid
Applicability:
Description:
CEM Check
This check determines if the Full Scale Range value reported is valid.
Specifications:
For a Span record with a valid ComponentTypeCode:
If the FullScaleRange is null,
If the ComponentTypeCode is not equal to "NOX" or "S02", or the DefaultHighRange is null, or the SpanScaleCode is
equal to "L",
return result A.
If the FullScaleRange is not null, the Span Value is valid, and the FullScaleRange is less than the Span Value,
return result B.
Results:
Result
A
B
Response
You did not provide [fieldname], which is required for [key].
You reported a FullScaleRange value that is less than the Span Value for [key].
Severity
Critical Error Level 1
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Span Evaluation
Current Span Active Equals true
Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 399 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: SPAN-8
Check Name: Span Begin Date Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not the Span Begin Date reported is valid.
Specifications:
For the Span record:
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result Response Severity
A You have not reported the required value in the field [fieldname] 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: Monitoring Plan Evaluation Report Span Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 400 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-9
Check Name: Span Begin Hour Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not the Span Begin Hour reported is valid.
Specifications:
For the Span record:
If BeginHour is null,
return result A.
If BeginHour is less than 0 or greater than 23
return result B.
Results:
Result
A
B
Usage:
1
1
2
Response
You have not reported the required value in the field [fieldname] for [key].
You reported a [Fieldname] of [Hour], which is outside the range of acceptable values
for this hour for [key].
Process/Category:
Process/Category:
Process/Category:
Monitoring Plan Evaluation Report Span Evaluation
Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Severity
Fatal
Critical Error Level 1
Environmental Protection Agency
Page 401 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: SPAN-10
Check Name: Span End Date Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not the Span End Date reported is valid.
Specifications:
For the Span record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report Span Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 402 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: SPAN-11
Check Name: Span End Hour Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines whether or not the Span End Hour reported is valid.
Specifications:
For the Span record:
If EndHour is not null, and is less than 0 or greater than 23
return result A.
Results:
Result Response Severity
A You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Span Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 403 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-12
Check Name: Span Dates and Hours Consistent
Related Former Checks:
Applicability: CEM Check
Description: Monitoring Span Start Date and Hour should be prior to the Monitor Span End Date and Hour. Also cannot
report end date without end hour, or vice versa.
Specifications:
For the Span record:
If the EndDate is valid and not null, and the EndHour is null,
set Span Dates and Hours Consistent to false, and return result A.
If the EndHour is valid and not null, and the EndDate is null,
set Span Dates and Hours Consistent to false, and return result B.
If the BeginDate, BeginHour, EndDate, and EndHour are all valid,
If the EndDate is not null, and the BeginDate and BeginHour is after the EndDate and EndHour,
set Span Dates and Hours Consistent to false, return result C.
Otherwise,
set Span Dates and Hours Consistent to true.
Otherwise,
set Span Dates and Hours Consistent to false.
Results:
Result
A
B
C
Usage:
1
Response
You reported [datefield2] but did not report an [hourfield2] for [key].
You reported [hourfield2] but did not report [datefield2] for [key].
You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and
[hourfieldl] for [key].
Process/Category: Monitoring Plan Evaluation Report Span Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 404 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-13
Check Name: Span Active Status
Related Former Checks:
Applicability: CEM Check
Description: This check determines if the Span is active within the Evaluation Period based on Span Begin Date and Spam
End Date.
Specifications:
For a Span record with consistent dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Current Span Active to false.
Otherwise,
set Current Span Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the Span Evaluation Begin Date to the Evaluation Begin Date,
set the Span Evaluation Begin Hour to 0.
Otherwise,
set the Span Evaluation Begin Date to the BeginDate.
set the Span Evaluation Begin Hour to the BeginHour.
If the EndDate is null or is after the Evaluation End Date,
set the Span Evaluation End Date to the Evaluation End Date,
set the Span Evaluation End Hour to 23.
Otherwise,
set the Span Evaluation End Date to the EndDate.
set the Span Evaluation End Hour to the EndHour.
Results:
Result
Response
Severity
Usage:
1
Process/Category: Monitoring Plan Evaluation Report Span Evaluation
Environmental Protection Agency
Page 405 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-16
Check Name: Flow Span Value Valid
Related Former Checks: ARP-41
Applicability: CEM Check
Description: This check determines if the reported Flow Span Value is valid.
Specifications:
For a Span record with a valid ComponentTypeCode:
If the ComponentTypeCode is equal to "FLOW",
If the FlowSpanValue is null,
return result A.
If the MPFValue is greater than 0 and not null, and the FlowSpan Value is not between 1.0 and 1.25 times the MPFValue
(rounded to the nearest 1000 scfh),
return result B.
If the Span Value is valid,
If the UnitsOfMeasure is equal to "SCFH", and the Span Value is not equal to the FlowSpan Value,
return result C.
If the UnitsOfMeasure is equal to "KSCFH", and the FlowSpan Value / 1000 (rounded to the nearest integer) is not
equal to the Span Value (rounded to the nearest integer),
return result C.
If the UnitsOfMeasure is equal to "MSCFH", and the FlowSpan Value / 1000000 (rounded to the nearest integer)
is not equal to the Span Value (rounded to the nearest integer),
return result C.
If the UnitsOfMeasure is equal to "SCFM", and the FlowSpan Value / 60 (rounded to the nearest integer) is not
equal to the Span Value (rounded to the nearest integer),
return result C.
If the UnitsOfMeasure is equal to "KSCFM", and the FlowSpan Value / 60000 (rounded to the nearest integer) is
not equal to the Span Value (rounded to the nearest integer),
return result C.
If the ComponentTypeCode is not equal to "FLOW", and the FlowSpan Value is not null,
return result D.
Results:
Result Response
A You have not reported a [fieldname] for [key], which is a required field for flow span.
B The Flow Span Value is not between 100 and 125% of the MPF for [key].
C The Span Value reported for [key], which was reported in [uom], is inconsistent with
the FlowSpan Value reported in scfh.
D You have reported a value in [fieldname] for [key], which is inappropriate for a
non-flow span record.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Span Evaluation
Conditions: Current Span Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
Severity
Critical Error Level 1
Critical Error Level 2
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 406 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Check Code:
SPAN-17
Flow Span Full Scale Range Value Valid
Related Former Checks: ARP-41
Applicability:
Description:
CEM Check
This check determines if the reported Flow Full Scale Range is valid.
Specifications:
For a Span record with a valid ComponentTypeCode:
If the ComponentTypeCode is equal to "FLOW",
If the FlowFullScaleRange is null,
return result A.
If the FlowSpanValue is valid, and the FlowFullScaleRange is not greater than or equal to the FlowSpanValue,
return result B.
If the ComponentTypeCode is not equal to "FLOW", and the FlowFullScaleRange is not null,
return result C.
Results:
Result
A
B
Response
You have not reported a [fieldname] for [key], which is a required field for flow span.
You reported a Flow Full Scale Range Value that is not greater than or equal to the
Flow Span Value for [Key].
You have reported a value in [fieldname] for [key], which is inappropriate for a
non-flow span record.
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Span Evaluation
Current Span Active Equals true
Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
Environmental Protection Agency
Page 407 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SPAN-18
Check Name:
Span Scale Code Valid
Related Former Checks: NBP-35
Applicability:
Description:
CEM Check
This check determines if the Span Scale Code reported is valid.
Specifications:
For the Span record with a valid ComponentTypeCode:
set SpanScaleCodeValid equal to true.
If the ComponentTypeCode is not equal to "FLOW",
If the SpanScaleCode is null,
set SpanScaleCodeValid equal to false,
return result A.
If the SpanScaleCode is not equal to "H" or "L",
set SpanScaleCodeValid equal to false,
return result B.
If ComponentTypeCode is equal to "HG" or "HCL",
If the SpanScaleCode is not equal to "H",
set SpanScaleCodeValid equal to false,
return result D.
If the ComponentTypeCode is equal to "FLOW", and the SpanScaleCode is not null,
set SpanScaleCodeValid equal to false,
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 a span scale in the span record for [key], but this is not appropriate for
flow span record.
The [fieldname] [value] is invalid for [condition].
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
D
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Span Evaluation
Current Span Active Equals true
Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 408 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SPAN-20
Check Name:
Related Former Checks:
Span Component Type Code Valid
Applicability:
Description:
CEM Check
This check determines if the Span Component Type Code reported is valid.
Validation Tables:
Component Type Code (Complex Lookup Table)
Component Type Code (Complex Lookup Table)
Specifications:
For the Span record:
Set Span MPC Valid and Span MEC Valid to true.
If the ComponentTypeCode is null,
return result A.
Otherwise,
Locate ComponentTypeCode in the Component Type Code Lookup Table where Span Indicator is equal to 1.
If not found,
return result B.
If found,
set Component Parameter Code to the ParameterCode in the lookup table record.
Results:
Result
A
B
Response
You have not reported the required value 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
Fatal
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Span Evaluation
Current Span Active Equals true
Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 409 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SPAN-21
Check Name:
Span Units of Measure Code Valid
Related Former Checks: NBP-44, NBP-45, NBP-46
Applicability:
Description:
CEM Check
This check determines if the Span Units of Measure (UOM) Code reported is valid.
Validation Tables:
Parameter UOM (Complex Lookup Table)
Units Of Measure Code (Lookup Table)
Parameter UOM (Complex Lookup Table)
Units Of Measure Code (Lookup Table)
Specifications:
For the Span record with a valid ComponentTypeCode:
If the UnitsOfMeasure is null,
return result A.
Otherwise,
Locate a record in the Parameter Units of Measure lookup table where the ParameterCode is equal to the Component
Parameter Code and the UnitsOfMeasure is equal to the UnitsOfMeasure in the span record.
If found,
set Maximum Span Value to Max Value in lookup table record.
If not found,
Locate the UnitsOfMeasure in the Units of Measure Code Lookup Table.
If not found,
return result B.
If found,
return result C.
Results:
Result
A
B
Response
You have not reported the required value 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].
You defined a units of measure of [value] that is inappropriate for the component type
in the span record for [key].
Severity
Critical Error Level 1
Fatal
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Span Evaluation
Current Span Active Equals true
Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 410 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SPAN-36
Check Name:
Span Default High Range Value Valid
Related Former Checks: ARP-26 A, B, E
Applicability:
Description:
CEM Check
This check determines if the Span Dual Range Indicator is Consistent with the Default High Range.
Specifications:
For a Span record with a valid ComponentTypeCode:
If the DefaultHighRange is not null,
If ComponentTypeCode is not equal to "S02" or "NOX", or the SpanScaleCode is equal to "L",
return result A.
If DefaultHighRange is less than or equal to 0,
return result B.
If the MPCValue is greater than 0 and not null, and the DefaultHighRange is not equal to two times the MPCValue,
If the ComponentTypeCode is not equal to "NOX", or the MPCValue is not equal to 50, or the DefaultHighRange
is not equal to 200, or the EndDate is null or is after 3/31/2003,
return result C.
If the DefaultHighRange is null and the Span Value is null,
If the SpanScaleCode is equal to "H", and the ComponentTypeCode is equal to "NOX" or "S02",
return result D.
Results:
Result
A
Response
You have defined a default high range value for [key]. You should only report the
default value in a high-scale S02 or NOX span record.
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 have indicated the use of a default high range value for [key], but the value
defined as the default in the span record is not 200% of the MPC.
You have not defined a Span Value or a DefaultHighRange for [key]. You must report
either a Span Value or a DefaultHighRange in a high-scale [type] span record.
Severity
Critical Error Level 1
B
Critical Error Level 1
C
Critical Error Level 1
D
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report Span Evaluation
Current Span Active Equals true
Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 411 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-37
Check Name: Default High Range Value Consistent with Span Value and Full Scale Range
Related Former Checks: ARP-26C/D
Applicability: CEM Check
Description: This check determines if the Default High Range Value is reported in a record with a Span Value or Full Scale
Range.
Specifications:
For a Span record with a ComponentTypeCode equal to "S02" or "NOX", and a SpanScaleCode equal to "H",
If the DefaultHighRange is not null, and either the Span Value or the FullScaleRange are not null,
return result A.
Results:
Result Response Severity
A You have indicated the use of a default high range for [key], but you have defined a Critical Error Level 1
span value and/or a full scale range value. You should not define a span value or full
scale range if you are using a default high-range value.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Span Evaluation
Conditions: Current Span Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 412 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SPAN-47
Check Name:
High Scale Span Consistent with Low Scale Span
Related Former Checks: NBP-42A
Applicability:
Description:
CEM Check
This check determines if a High Scale Span record is reported and is consistent with the values in the Low
Scale Span record.
Specifications:
For a Span record with a valid ComponentTypeCode and a SpanScaleCode equal to "L":
Locate all Span records for the location where the ComponentTypeCode is equal to the ComponentTypeCode in the current Span
record, the SpanScaleCode is equal to "H", the BeginDate and BeginHour is on or before the Span Evaluation End Date and End
Hour, and the EndDate is null or the EndDate and EndHour is on or after the Span Evaluation Begin Date and Begin Hour.
If the Span Value in the current span record is valid,
If, for any high-scale record found, the Span Value is greater than 0, but less than the Span Value in the current low-scale
span,
return result A.
If the MECValue in the current span record greater than 0 and not null,
If, for any high-scale record found, the MECValue is greater than 0, but is not equal to the MECValue in the current
low-scale span,
return result B.
Results:
Result
A
Response
You reported a Span Value for [key] that is greater than the Span Value in the
corresponding high-scale span record. The high-scale span value must be greater than
the low-scale span value.
You reported an MEC for [key] that is not equal to the MEC in the corresponding
high-scale span record. The MEC values in these records should be the same.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Span Evaluation
Current Span Active Equals true
Environmental Protection Agency
Page 413 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SPAN-48
Check Name:
Required Low Scale Span Record Reported for Low MEC or Default High Range
Related Former Checks: ARP-26G
Applicability:
Description:
CEM Check
This check determines if, in situations for S02 or NOx where the MEC is less than 20% of MPC, if there is a
concurrently active low span scale record reported.
Specifications:
For a Span record with a SpanScaleCode equal to "H":
IF the ComponentTypeCode equal to "S02" or "NOX",
If the FullScaleRange is valid and non-null and the MECValue is valid and non-null:
If the MECValue is less than 20% of the FullScaleRange,
Locate all Span records for the location where the ComponentTypeCode is equal to the
ComponentTypeCode in the current Span record, the SpanScaleCode is equal to "L", the BeginDate and
BeginHour is on or before the Span Evaluation End Date and End Hour, and the EndDate is null or the
EndDate and EndHour is on or after the Span Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If the DefaultHighRange is valid and non-null,
Locate all Span records for the location where the ComponentTypeCode is equal to the ComponentTypeCode in
the current Span record, the SpanScaleCode is equal to "L", the BeginDate and BeginHour is on or before the
Span Evaluation End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the
Span Evaluation Begin Date and Begin Hour.
If not found,
return result B.
If found, and the MECValue is not null, is greater than 0, and (rounded up to next highest lOppm) is less than
20% of the FullScaleRange (if not null) in any record,
return result C.
Environmental Protection Agency
Page 414 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Results:
Result
A
B
C
D
Response
The MEC reported is less than 20% of Full-Scale Range for [key], but no
corresponding low span scale record that was active during the evaluation period has
been reported.
You have reported a DefaultHighRange value for [key], but no corresponding low span
scale record that was active during the evaluation period has been reported.
You have indicated the use of a default high range value for [key], but this is not
allowed, because the full scale range in the low-scale span record is more than five
times the MEC.
The MEC reported is less than 20% of the Span Value for [key], but no corresponding
low span scale record that was active during the evaluation period has been reported.
Severity
Critical Error Level 2
Critical Error Level 1
Critical Error Level 2
Critical Error Level 2
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Span Active Equals true
¦ Span Evaluation
Environmental Protection Agency
Page 415 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SPAN-50
Check Name:
Span Method Code Valid
Related Former Checks: NBP-36
Applicability:
Description:
CEM Check
This check determines if the Span Method Code reported is valid.
Validation Tables:
Component Type and Span Scale to Span Method (Cross Check Table)
Span Method Code (Lookup Table)
Component Type and Span Scale to Span Method (Cross Check Table)
Span Method Code (Lookup Table)
Specifications:
For the Span record with a valid ComponentTypeCode and the ComponentTypeCode is equal to "FLOW" or Span Scale Code Valid is true:
If ComponentTypeCode is equal to "FLOW"
Locate a record in the Component Type and Span Scale to Span Method Cross Check Table where the
ComponentTypeCode and SpanMethodCode are equal to ComponentTypeCode and SpanMethodCode in the span record.
Otherwise,
Locate record in the Component Type and Span Scale to Span Method Cross Check Table for the ComponentTypeCode,
SpanScaleCode, and SpanMethodCode in the span record.
If not found,
If the SpanMethodCode is null,
If ComponentTypeCode is not equal to "02",
return result A.
If the SpanMethodCode is not null,
Locate SpanMethodCode in the SpanMethodCode Lookup Table.
If not found,
return result B.
Otherwise,
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 defined a SpanMethodCode of [value], which is an invalid method of establishing
the MPC/MEC/MPF for [key].
Severity
Critical Error Level 1
Critical Error Level 1
C
Critical Error Level 1
Environmental Protection Agency
Page 416 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Span Evaluation
Conditions: Current Span Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 417 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-52
Check Name: Required Component Reported for Span
Related Former Checks: NBP-34
Applicability: CEM Check
Description: This check determines if a component type/and range is reported for the associated span component type and
scale.
Specifications:
For a Span record with a valid ComponentTypeCode and a valid SpanScaleCode and a DefaultHighRange that is null:
If the ComponentTypeCode is equal to "FLOW"
Locate all System Component records for the location where the associated ComponentTypeCode is equal to "FLOW", the
BeginDate and BeginHour is on or before the Span Evaluation End Date and End Hour, and the EndDate is null or the
EndDate and EndHour is on or after the Span Evaluation Begin Date and Begin Hour.
Otherwise,
Locate all Analyzer Range records for the location where the associated ComponentTypeCode is equal to the
ComponentTypeCode in the current Span record, the AnalyzerRangeCode is equal to "A" or is equal to the
SpanScaleCode in the current Span record, the BeginDate and BeginHour is on or before the Span Evaluation End Date
and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the Span Evaluation Begin Date and
Begin Hour.
If not found,
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire span evaluation
period,
return result B.
Results:
Result Response Severity
A You reported a span record for [key], but you did not report a component that was Critical Error Level 1
active during the evaluation period with the same component type (and range).
B You reported a span record for [key], but you did not report a component with the same Critical Error Level 1
component type (and range) that is active for the entire evaluation period.
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Span Evaluation
Conditions: Current Span Active Equals true
Environmental Protection Agency
Page 418 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SPAN-53
Check Name:
Overlapping Span Records
Related Former Checks: ARP-66
Applicability:
Description:
Specifications:
CEM Check
This check identifies duplicate Span Records based on Component Type Code and Span Scale.
For a Span record with a valid ComponentTypeCode and a valid SpanScaleCode:
Locate another Span record for the location where the ComponentTypeCode and SpanTypeCode is equal to the
ComponentTypeCode and SpanScaleCode in the current span record, the BeginDate and BeginHour is on or after the BeginDate
and BeginHour of the current record and is on or before the Span Evaluation End Date and End Hour, and the EndDate is null or
the EndDate and EndHour is on or after the Span Evaluation Begin Date and Begin Hour.
If found,
return result A.
Results:
Result
A
Response
You have reported [key], but you have reported another span record with the same
ComponentTypeCode (and SpanScaleCode) that was active at the same time.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report Span Evaluation
Current Span Active Equals true
Environmental Protection Agency
Page 419 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-54
Check Name: Required High-Scale Span Record Reported
Related Former Checks: NBP-42B
Applicability: CEM Check
Description: This check determines if there is an active and concurrent high-scale span record for a low-scale span record.
Specifications:
For a Span record with a valid ComponentTypeCode and a SpanScaleCode equal to "L":
Locate all Span records for the location where the ComponentTypeCode is equal to the ComponentTypeCode in the current Span
record, the SpanScaleCode is equal to "H", the BeginDate and BeginHour is on or before the Span Evaluation End Date and End
Hour, and the EndDate is null or the EndDate and EndHour is on or after the Span Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire span evaluation
period,
return result B.
Results:
Result
A
B
Usage:
1
Response
You defined a span record for [key], but you have not reported a corresponding
high-scale span record that was active during the evaluation period. If the unit/stack
has a dual range monitor or uses a default high range value the high-scale must also be
defined. If the unit/stack has a single-scale monitor, define only a high-scale span
record.
You defined a span record for [key], but you have not reported corresponding
high-scale span records that span the entire evaluation period.
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current Span Active Equals true
¦ Span Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 420 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-60
Check Name: Span MPC MEC Value Consistency Check
Related Former Checks: New
Applicability: CEM Check
Description: This check ensures the if the MPC (Maximum Potential Concentration) value reported is less than the MEC
(Maximum Expected Concentration)
Specifications:
For a Span record with a valid ComponentTypeCode, and a null EndDate:
If EndDate is null
If the MPCValue is not null and MECValue is not null
If the MECValue is equal to or greater than the MPCValue
return result A.
Results:
Result Response Severity
A You have reported a MECValue equal to or greater than the MPCValue for [key]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Span Evaluation
Conditions: Current Span Active Equals true
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 421 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Check Code: SPAN-61
Check Name: Span Scale Transition Point for HG
Related Former Checks:
Applicability:
Description: Verify that the Span Scale Transition Point is null for HG
Specifications:
For a Monitoring Span record with a valid ComponentTypeCode equal to "HG" or "HCL":
If ScaleTransitionPoint is not null,
return result A
Results:
Result Response Severity
A You reported a value for [fieldname], which is not appropriate for [condition]. Critical Error Level 1
Usage:
1 Process/Category: Monitoring Plan Evaluation Report Span Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 422 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
SPAN-55
Duplicate Span Records
Applicability:
Description:
Specifications:
General Check
This check determines if there is another span record with the same key fields.
For a Span record with a valid ComponentTypeCode:
If ComponentTypeCode is equal to "FLOW",
Locate another Span record for the location with a ComponentTypeCode that is equal to the ComponentTypeCode in the
current record and a BeginDate/Hour equal to the BeginDate/Hour in the current record.
If found,
return result A.
If not found, and the EndDate in the current record is not null.,
Locate another Span record for the location with a ComponentTypeCode that is equal to the ComponentTypeCode
in the current record and an End Date/Hour equal to the EndDate/Hour in the current record.
If found,
return result A.
Locate another Span record for the location with a ComponentTypeCode that is equal to the ComponentTypeCode in the
current record and a SpanScaleCode equal to the SpanScaleCode in the current record and a BeginDate/Hour equal to the
BeginDate/Hour in the current record.
If found,
return result A.
If not found, and the EndDate in the current record is not null.,
Locate another Span record for the location with a ComponentTypeCode that is equal to the ComponentTypeCode
in the current record and a SpanScaleCode equal to the SpanScaleCode in the current record and an End
Date/Hour equal to the EndDate/Hour in the current record.
If found,
return result A.
Otherwise,
Results:
Result
A
Response
Another [recordtype] record already exists with the same [fieldnames].
Severity
Fatal
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Flow Span Evaluation
2 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 423 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-56
Check Name: Span MPC Value Valid
Related Former Checks: NBP-37
Applicability: CEM Check
Description: This check determines if the MPC (Maximum Potential Concentration) value reported is valid.
Specifications:
For a Span record with a valid ComponentTypeCode:
If the MPCValue is null,
If the ComponentTypeCode is not equal to "FLOW" or "02", and the SpanScaleCode is equal to "H",
set Span MPC Value Valid to false, and return result A.
If the MPCValue is not null,
If the ComponentTypeCode is equal to "FLOW" or "02", or the SpanScaleCode is equal to "L"
set Span MPC Value Valid to false, and return result B.
Otherwise,
If the MPCValue is less than or equal to 0,
set Span MPC Value Valid to false, and return result C.
Results:
Result
A
B
C
Response Severity
You did not report an MPCValue for [key]. Critical Error Level 1
You have reported an MPCValue for [key], but an MPCValue is not appropriate for this Critical Error Level 1
ComponentTypeCode and SpanScaleCode.
You defined an invalid [fieldname] for [key]. This value must be greater than zero and Critical Error Level 1
less than 20,000.
Usage:
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 424 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-57
Check Name: Span MEC Value Valid
Related Former Checks: NBP-37, NBP-38
Applicability: CEM Check
Description: This check determines if the MEC (Maximum Expected Concentration) value reported is valid.
Specifications:
For a Span record with a valid ComponentTypeCode:
If the MECValue is null,
If the ComponentTypeCode is not equal to "FLOW" or "02", and the SpanScaleCode is equal to "L",
set Span MEC Value Valid to false, and return result A.
If the ComponentTypeCode is equal to "S02", "HG" or "NOX", the SpanScaleCode is equal to "H", and the
DefaultHighRange is not null,
set Span MEC Value Valid to false, and return result B.
If the MECValue is not null,
If the ComponentTypeCode is equal to "FLOW", "HG" or "02",
set Span MEC Value Valid to false, and return result C.
Results:
Result
A
B
C
D
If the MECValue is less than or equal to 0,
set Span MEC Value Valid to false, and return result D.
Response
You did not report an MECValue for [key]. This value is required in a non-flow
low-scale span record.
You did not report an MECValue for [key], but you defined a DefaultHighRange value.
You must determine a maximum expected concentration when using a default high
range value.
You have inappropriately reported an MECValue for [key].
You defined an invalid [fieldname] for [key]. This value must be greater than zero and
less than 20,000.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 425 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-58
Check Name: High Span Scale Transition Point Valid
Related Former Checks:
Applicability: CEM Check
Description: This check determines if the Scale Transition Point value reported is valid.
Specifications:
For a Monitoring Span record with a valid ComponentTypeCode and a SpanScale equal to "H":
If ScaleTransitionPoint is not null,
If Span Value is null and DefaultHighRange Value is not null,
return result A.
Results:
Result Response Severity
A You have reported a ScaleTransitionPoint for [key], but you have indicated that you Critical Error Level 1
used a DefaultHighRange Value. You should only report a ScaleTransitionPoint when
using a dual-range analyzer.
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 426 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SPAN-59
Check Name: Low Span Scale Transition Point Valid
Related Former Checks:
Applicability: CEM Check
Description:
Specifications:
For a Monitoring Span record with a valid ComponentTypeCode and a SpanScale equal to "L":
If ScaleTransitionPoint is not null,
If FullScaleRangeValue is not null, and the ScaleTransitionPoint is not between 1/2 and 1 times the FullScaleRangeValue,
return result A.
Results:
Result Response Severity
A You have reported a ScaleTransitionPoint for [key] that is not within the valid range of Critical Error Level 2
values. The ScaleTransitionPoint should be between one-half and one times the
FullScaleRange Value.
Usage:
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation Span Evaluation
Environmental Protection Agency
Page 427 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Category:
System
Environmental Protection Agency
Page 428 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SYSTEM-1
Check Name:
Related Former Checks:
System Begin Date Valid
Applicability:
Description:
General Check
Determines if monitoring system Begin Date is valid.
Specifications:
For the Monitoring System record:
Set System Record Valid to false.
If BeginDate is null,
return result A.
If BeginDate is earlier than 01/01/1993 or later than Maximum Future Date,
return result B.
Results:
Result
A
B
Response
You have not reported the required value in the field [fieldname] 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
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System Evaluation
1
Process/Category: Monitoring Plan Data Entry Screen Evaluation System Evaluation
Environmental Protection Agency
Page 429 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SYSTEM-2
Check Name: System Begin Hour Valid
Related Former Checks:
Applicability: General Check
Description: Determines if monitoring system begin hour is valid.
Specifications:
For the Monitoring System record:
If BeginHour is null,
return result A.
If BeginHour is less than 0 or greater than 23
return result B.
Results:
Result
A
B
Usage:
1
1
Response
You have not reported the required value in the field [fieldname] for [key].
You reported a [Fieldname] of [Hour], which is outside the range of acceptable values
for this hour for [key].
Process/Category:
Process/Category:
Monitoring Plan Evaluation Report System Evaluation
Monitoring Plan Data Entry Screen Evaluation System Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 430 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SYSTEM-3
Check Name: System End Date Valid
Related Former Checks:
Applicability: General Check
Description: Determines if monitoring system end date is valid.
Specifications:
For the Monitoring System record:
If EndDate is not null, and is earlier than 01/01/1993 or later than Maximum Future Date,
return result A.
Results:
Result Response Severity
A 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: Monitoring Plan Evaluation Report System Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System Evaluation
Environmental Protection Agency
Page 431 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SYSTEM-4
Check Name: System End Hour Valid
Related Former Checks:
Applicability: General Check
Description: Determines if monitoring system end date is valid.
Specifications:
For the Monitoring System record:
If EndHour is not null, and is less than 0 or greater than 23
return result A.
Results:
Result Response Severity
A You reported a [Fieldname] of [Hour], which is outside the range of acceptable values Critical Error Level 1
for this hour for [key].
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System Evaluation
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System Evaluation
Environmental Protection Agency
Page 432 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SYSTEM-5
Check Name: System Dates and Hours Consistent
Related Former Checks:
Applicability: General Check
Description: This check determines if the System Start and End dates and hours are consistent.
Specifications:
For the Monitoring System record:
If the EndDate is valid and not null, and the EndHour is null,
set Monitoring System Dates and Hours Consistent to false, and return result A.
If the EndHour is valid and not null, and the EndDate is null,
set Monitoring System Dates and Hours Consistent to false, and return result B.
If the BeginDate, BeginHour, EndDate, and EndHour are all valid,
If the EndDate is not null, and the BeginDate and BeginHour is after the EndDate and EndHour,
set Monitoring System Dates and Hours Consistent to false, return result C.
Otherwise,
set Monitoring System Dates and Hours Consistent to true.
Otherwise,
set Monitoring System Dates and Hours Consistent to false.
Results:
Result
A
B
C
Usage:
1
1
Response
You reported [datefield2] but did not report an [hourfield2] for [key].
You reported [hourfield2] but did not report [datefield2] for [key].
You reported [datefield2] and [hourfield2], which is prior to [datefieldl] and
[hourfieldl] for [key].
Process/Category:
Process/Category:
Monitoring Plan Evaluation Report System Evaluation
Monitoring Plan Data Entry Screen Evaluation System Evaluation
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 433 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SYSTEM-6
Check Name: System Active Status
Related Former Checks:
Applicability: General Check
Description: This check determines if the System is active within the Evaluation Period based on System Begin Date and
System End Date.
Specifications:
For a Monitor System record with consistent dates:
If BeginDate is after Evaluation End Date or EndDate is before Evaluation Begin Date,
set Current System Active to false.
Otherwise,
set Current System Active to true.
If the BeginDate is prior to the Evaluation Begin Date,
set the System Evaluation Begin Date to the Evaluation Begin Date,
set the System Evaluation Begin Hour to 0.
Otherwise,
set the System Evaluation Begin Date to the BeginDate.
set the System Evaluation Begin Hour to the BeginHour.
If the EndDate is null or is after the Evaluation End Date,
set the System Evaluation End Date to the Evaluation End Date,
set the System Evaluation End Hour to 23.
Otherwise,
set the System Evaluation End Date to the EndDate.
set the System Evaluation End Hour to the EndHour.
Results:
Result Response Severity
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System Evaluation
Environmental Protection Agency
Page 434 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
SYSTEM-7
Monitoring System ID Valid
Applicability:
Description:
General Check
Determines if the MonitoringSystemID is valid.
Specifications:
For the Monitoring System record:
If the MonitoringSystemID is null,
return result A.
If the MonitoringSystemID does not consist of 3 alphanumeric characters:
return result B.
Results:
Result
A
B
Response
You have not reported the required value in the field [fieldname] for [key].
The MonitoringSystemID [ID] has an invalid format. A MonitoringSystemID must
contain three alphanumeric characters.
Severity
Fatal
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report System Evaluation
Current System Active Equals True
Monitoring Plan Data Entry Screen Evaluation System Evaluation
Environmental Protection Agency
Page 435 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SYSTEM-8
Check Name:
Related Former Checks:
System Type Code Valid
Applicability:
Description:
General Check
Determines if SystemTypeCode is present and in lookup table.
Validation Tables:
System Type Code (Complex Lookup Table)
System Type Code (Complex Lookup Table)
Specifications:
For the Monitoring System record:
If the SystemTypeCode is null,
return result A.
Otherwise,
Locate SystemTypeCode in the System Type Lookup Table.
If not found,
return result B.
If found,
set System Parameter Code to the ParameterCode in the lookup table record,
set System Record Valid to true.
Locate a Used Identifier record for the location where the Table Code is equal to "S" and the Identifier is equal to
the Monitoring System ID in the Monitoring System record.
If found,
If the SystemTypeCode is not equal to the Type or Parameter Code in the retrieved record,
If the SystemTypeCode begins with "H20" and the Type or Parameter Code begins with "H20",
return result C.
Otherwise,
return result D.
Results:
Result
A
B
Response
You have not reported the required value 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].
You have changed the SystemTypeCode for [key] from its previously reported value.
You should only do this to correct invalid data. If you are installing a system with a
different system type, you should add a new system.
You have changed the SystemTypeCode for [key] from its previously reported value.
You should only do this to correct invalid data. If you are installing a system with a
different system type, you should add a new system.
Severity
Fatal
Critical Error Level 1
C
Informational Message
D
Critical Error Level 2
Environmental Protection Agency
Page 436 of 457
-------
ECMPS Monitoring Plan Check Specifications
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System Evaluation
Conditions: Current System Active Equals True
1 Process/Category: Monitoring Plan Data Entry Screen Evaluation System Evaluation
9/8/2021 12:00:00AM
Environmental Protection Agency
Page 437 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SYSTEM-9
Check Name:
System Designation Code Valid
Related Former Checks: ARP-68
Applicability:
Description:
General Check
This check determines if the SystemDesignationCode is valid.
Validation Tables:
System Designation Code (Lookup Table)
System Designation Code (Lookup Table)
Specifications:
For the Monitoring System record:
If the SystemDesignationCode is null,
return result A.
Locate SystemDesignationCode in System Designation Code Lookup table.
If not found,
return result C.
Else If SystemDesignationCode is equal to "CI" and SystemTypeCode is valid and SystemTypeCode is not equal to "S02", "NOX",
"NOXC", or "S02R",
return result B.
Else If SystemDesignationCode is equal to "RM" and SystemTypeCode is valid and SystemTypeCode is equal to "GAS", "OILM",
"OILV", "OP", "NOXP", "NOXE", "HG", "HCL", "HF", or "ST",
return result B.
Else If SystemDesignationCode is equal to "PB" and If SystemTypeCode is valid and SystemTypeCode is not equal to "NOX", or
"NOXC",
return result B.
Results:
Result
A
B
Response
You have not reported the required value in the field [fieldname] for [key].
You reported [value] as the SystemDesignationCode for [key], which is not appropriate
for the System Type [Monitor System Type].
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
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report System Evaluation
Current System Active Equals True
Monitoring Plan Data Entry Screen Evaluation System Evaluation
Environmental Protection Agency
Page 438 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SYSTEM-10
Check Name:
Related Former Checks:
System Fuel Code Valid
Applicability:
Description:
General Check
Determines if fuel code for monitoring system is valid.
Validation Tables:
Fuel Code (Lookup Table)
System Type to Fuel Group (Cross Check Table)
Fuel Code (Lookup Table)
System Type to Fuel Group (Cross Check Table)
Specifications:
For Monitoring System record:
Set System Fuel Code Valid to true and System Unit Fuel to null.
If the FuelCode in the Monitoring System record is null,
set System Fuel Code Valid to false, and return result A.
Otherwise,
Locate the FuelCode in the Fuel Code Lookup Table.
If not found,
set System Fuel Code Valid to false, and return result B.
If found, and the SystemTypeCode is valid,
Locate a record in the System Type to Fuel Group Cross Check table where the SystemTypeCode is equal to the
SystemTypeCode in the Monitoring System record and the Fuel Group Code is equal to Fuel Group in the
retrieved Fuel Code lookup table record.
If not found,
set System Fuel Code Valid to false, and return result C.
If found,
set System Unit Fuel to the UnitFuel in the retrieved Fuel Code lookup table.
Results:
Result
A
Response
You have not reported a Fuel Code for [key]. A Fuel Code is required for a [System
Type] system.
You reported the value [value], which is not in the list of valid values, in the field
[fieldname] for [key].
You have reported the Fuel Code [value] for [key], which is not appropriate for a
[System Type] system.
Severity
Critical Error Level 1
B
Critical Error Level 1
C
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
1 Process/Category:
Monitoring Plan Evaluation Report System Evaluation
Current System Active Equals true
Monitoring Plan Data Entry Screen Evaluation System Evaluation
Environmental Protection Agency
Page 439 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SYSTEM-12
Check Name:
System Type Consistent with Method
Related Former Checks: ARP-1
Applicability:
Description:
General Check
This check determines if the system has an appropriate method for the evaluation period.
Validation Tables:
Method Parameter to Method to System Type (Cross Check Table)
Specifications:
For Monitoring System record with a valid System Type Code and consistent dates:
If the System Type Code is equal to "OILV", "OILM", or "GAS",
Locate a Monitoring Method record for the location with a MethodCode that begins with "AD", a BeginDate and
BeginHour on or before the System Evaluation End Date and End Hour, and an EndDate that is null or an EndDate and
EndHour that is on or after the System Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If the System Type Code is equal to "LTGS" or "LTOL",
Locate a Monitoring Method record for the location with a MethodCode that begins with "LTF", a BeginDate and
BeginHour on or before the System Evaluation End Date and End Hour, and an EndDate that is null or an EndDate and
EndHour that is on or after the System Evaluation Begin Date and Begin Hour.
If not found,
return result A.
Otherwise,
Locate the SystemTypeCode in the Method Parameter and Method to System Type Cross Check table.
Locate a Monitoring Method record for the location with any ParameterCode and MethodCode combination
found in the cross check table, a BeginDate and BeginHour on or before the System Evaluation End Date and End
Hour, and an EndDate that is null or an EndDate and EndHour that is on or after the System Evaluation Begin
Date and Begin Hour.
If not found,
return result A.
If found,
Results:
Result
A
Response
You have not reported a method that is consistent with the system type [system type
code] for [key] during the evaluation period.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report System Evaluation
Current System Active Equals true
Environmental Protection Agency
Page 440 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SYSTEM-13
Check Name:
Related Former Checks:
System Type Consistent with Components
Applicability:
Description:
General Check
Determines if the system has the appropriate type and number of components during the evaluation period
based on system type.
Validation Tables:
System Type to Component Type (Cross Check Table)
Specifications:
For a Monitor System record with consistent dates and a valid SystemTypeCode:
If the SystemTypeCode is equal to "S02R", "NOX", or "C02",
Locate all System Component records for the system where the ComponentTypeCode is equal to "C02", the BeginDate
and BeginHour is on or before the System Evaluation End Date and End Hour, and the EndDate is null or the EndDate
and EndHour is on or after the System Evaluation Begin Date and Begin Hour.
For each record found,
Locate another System Component record for the system where the ComponentTypeCode is equal to "02", the
BeginDate and BeginHour is on or before the earlier of the System Evaluation End Date and End Hour and the
End Date and End Hour of the retrieved System Component record, and the EndDate is null or the EndDate and
EndHour is on or after the later of the System Evaluation Begin Date and Begin Hour and the Begin Date and
Begin Hour of the retrieved System Component record.
If the SystemTypeCode is equal to "S02", "S02R", "NOX", "NOXC", "C02", "02", "HG", "HF", "HCL", or "ST",
Locate all records in the System Type to Component Type cross-check table where the SystemTypeCode is equal to the
SystemTypeCode in the current system record.
For each of the retrieved records in the cross-check table:
Locate all System Component records for the system where the ComponentTypeCode is equal to the
ComponentTypeCode in the cross-check record, the ComponentID does not begin with "LK", the BeginDate and
BeginHour is on or before the System Evaluation End Date and End Hour, and the EndDate is null or the
EndDate and EndHour is on or after the System Evaluation Begin Date and Begin Hour.
If more than one record is found,
Locate all Analyzer Range records for the components in the retrieved system component records, the
AnalyzerRangeCode is equal to "H" or "A", the BeginDate and BeginHour is on or before the System
Evaluation End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after
the System Evaluation Begin Date and Begin Hour.
If more than one record is found, and the intersection between BeginDate/Hour and EndDate/Hour of any
analyzer range records and the associated system component record overlaps the intersection between
BeginDate/Hour and EndDate/Hour of any analyzer range records and the associated system component
record for a different component with a ComponentID that does not begin with "LK" at any time during
the system evaluation period,
If found,
return result A.
return result B.
Environmental Protection Agency
Page 441 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Otherwise,
Locate all Analyzer Range records for the location where the ComponentID is equal to the
ComponentID of any of the components in the retrieved system component records, the
AnalyzerRangeCode is equal to "L" or "A", the BeginDate and BeginHour is on or before the
System Evaluation End Date and End Hour, and the EndDate is null or the EndDate and
EndHour is on or after the System Evaluation Begin Date and Begin Hour.
If more than one record is found, and the intersection between BeginDate/Hour and
EndDate/Hour of any analyzer range records and the associated system component record
overlaps the intersection between BeginDate/Hour and EndDate/Hour of any analyzer range
records and the associated system component record for a different component with a
ComponentID that does not begin with "LK" at any time during the system evaluation period,
return result B.
If the SystemTypeCode is equal to "H20",
Locate all System Component records for the system where the associated ComponentTypeCode is equal to "02", the
ComponentID does not begin with "LK", the StartDate and StartHour is on or before the System Evaluation End Date and
End Hour, and the EndDate is null or the EndDate and EndHour is on or after the System Evaluation Begin Date and
Begin Hour.
If at least one record is found with an associated BasisCode equal to "B" and at least one record is found with an
associated BasisCode equal to "W" or "D",
If the time span between BeginDate/Hour and EndDate/Hour of any record with a BasisCode equal to "B"
overlaps with the time span between BeginDate/Hour and EndDate/Hour of any record with a BasisCode equal to
"W" or "D" at any time during the system evaluation period,
return result C.
If more than one record is found with the same non-null BasisCode,
For each BasisCode with more than one record found,
Locate all Analyzer Range records for the components with this BasisCode in the retrieved system
component records, the AnalyzerRangeCode is equal to "H" or "A", the BeginDate and BeginHour is on
or before the System Evaluation End Date and End Hour, and the EndDate is null or the EndDate and
EndHour is on or after the System Evaluation Begin Date and Begin Hour.
If more than one record is found, and the intersection between BeginDate/Hour and EndDate/Hour of any
analyzer range records and the associated system component record overlaps the intersection between
BeginDate/Hour and EndDate/Hour of any analyzer range records and the associated system component
record for a different component with the same basis code and a ComponentID that does not begin with
"LK" at any time during the system evaluation period,
return result B.
Otherwise,
Locate all Analyzer Range records for the location where the ComponentID is equal to the
ComponentID of any of the components with this BasisCode in the retrieved system component
records, the AnalyzerRangeCode is equal to "L" or "A", the BeginDate and BeginHour is on or
before the System Evaluation End Date and End Hour, and the EndDate is null or the EndDate
and EndHour is on or after the System Evaluation Begin Date and Begin Hour.
If more than one record is found, and the intersection between BeginDate/Hour and
EndDate/Hour of any analyzer range records and the associated system component record
overlaps the intersection between BeginDate/Hour and EndDate/Hour of any analyzer range
Environmental Protection Agency
Page 442 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
records and the associated system component record for a different component with the same
basis code and a ComponentID that does not begin with "LK" at any time during the system
evaluation period,
return result B.
Results:
Result
A
B
C
Response
You have reported a CEM system for [key] that contains an active C02 component and
a concurrently active 02 component. This is invalid.
You have reported a CEM or H20 system for [key] that contains more than one active
analyzer with the same component type (and basis) and analyzer range. This is an
invalid configuration of components.
You have reported an H20 system for [key] that contains an 02 component with a
basis code of "B", and a concurrently active 02 component with a basis code of "W" or
"D". This is an invalid configuration of components.
Severity
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current System Active Equals true
System Evaluation
Environmental Protection Agency
Page 443 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SYSTEM-14
Check Name: System Fuel Consistent with Unit Fuel
Related Former Checks:
Applicability: Appendix D Check
Description: This check determines if the system Fuel Code is consistent with the active fuels for the unit.
Specifications:
For Monitoring System record with a valid SystemTypeCode, a valid SystemFuelCode, and consistent dates:
If the FuelCode is not equal to "NFS" or "MIX",
Locate the latest Unit Fuel record linked to the location where the FuelCode is equal to the System Unit Fuel, the
BeginDate is on or before the System Evaluation End Date, and the EndDate is null or is on or after the System
Evaluation Begin Date.
If not found,
return result A.
If found,
If the EndDate of retrieved Unit Fuel record is not null, and either the EndDate of the Monitoring System record
is null or the End Date of the Monitoring System record is later than the EndDate of the retrieved Unit Fuel
record,
return result B.
Results:
Result
A
B
C
Response
The Fuel Code [Fuel Code] for [key] is inconsistent with the active fuels for the
associated unit.
According to the Unit Fuel (and Unit Stack Configuration) records, the FuelCode [Fuel
Code] for [key] is not being combusted for the entire evaluation period.
According to the Unit Fuel (and Unit Stack Configuration) records, the fuel flow
system for [key] may be measuring an emergency or ignition fuel. Although it is
permitted to define a fuel flow system for ignition or emergency fuels, it is not required
to do so.
Severity
Critical Error Level 1
Informational Message
Informational Message
Usage:
1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current System Active Equals true
System Evaluation
Environmental Protection Agency
Page 444 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
SYSTEM-16
RM System Consistent with Non-RM Systems
Applicability:
Description:
General Check
This check determines if for the RM system there is a concurrently active non-RM system with the same
system type with different components from those in the RM system.
Specifications:
For a Monitoring System record with a valid SystemDesignationCode equal to "RM", Required DAHS for System equal to true, and
Required Non-DAHS Components for System equal to true:
Locate another Monitor System record for the location with the same SystemTypeCode, a SystemDesignationCode not equal to
"RM", a BeginDate and BeginHour on or before the System Evaluation End Date and End Hour, and an EndDate that is null or an
EndDate and EndHour that is on or after the System Evaluation Begin Date and Begin Hour.
Locate all System Component records for all of the retrieved system where the associated ComponentTypeCode is not
equal to "DAHS", "PLC", "FLC", or "PRB", the BeginDate and BeginHour on or before the System Evaluation End Date
and End Hour, and an EndDate that is null or an EndDate and EndHour that is on or after the System Evaluation Begin
Date and Begin Hour.
For each of the retrieved System Component records.
Locate a System Component record for the current system with the same Component ID.
If any are found, and the BeginDate and BeginHour is on or before the System Evaluation End Date and End
Hour, and the EndDate is null or the EndDate and EndHour is on or after the System Evaluation Begin Date and
Begin Hour,
If not found,
return result A.
If found,
return result B.
Results:
Result
A
Response
You have reported a [System Type] RM System for [key], but you have not reported a
corresponding non-RM system at the location.
You have reported an RM [System Type] system for [key], which contains components
that are also part of a non-RM [System Type] system at the location.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report System Evaluation
Current System Active Equals true
Environmental Protection Agency
Page 445 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SYSTEM-17
Check Name:
Related Former Checks:
Backup System Consistent with Primary System
Applicability:
Description:
General Check
This check determines if a backup system has different non-D AHS components from those in the
corresponding concurrently active P system.
Specifications:
For a Monitoring System record with a valid SystemTypeCode, a SystemDesignationCode is equal to "B" or "RB", and consistent dates:
Locate all System Component records for the system where the associated ComponentTypeCode is not equal to "DAHS", "PLC",
or "FLC", the BeginDate and BeginHour in on or before the System Evaluation End Date and End Hour, and the EndDate is null
or the EndDate and EndHour in on or after the System Evaluation Begin Date and Begin Hour.
Locate another Monitoring System for the location where the SystemTypeCode is equal to the SystemTypeCode of the current
system, the SystemDesignationCode is equal to "P", the BeginDate and BeginHour in on or before the System Evaluation End
Date and End Hour, and the EndDate is null or the EndDate and EndHour in on or after the System Evaluation Begin Date and
Begin Hour.
For each of the retrieved system records:
Locate all System Component records for the location where the MonitoringSystemID is equal to the MonitoringSystemID
in the retrieved system record, the associated ComponentTypeCode is not equal to "DAHS", "PLC", or "FLC", the
BeginDate and BeginHour in on or before the System Evaluation End Date and End Hour, and the EndDate is null or the
EndDate and EndHour in on or after the System Evaluation Begin Date and Begin Hour.
If the list of ComponentlDs in the retrieved records is equal to the list of ComponentlDs in the System Component records
for the current system,
return result A.
Results:
Result
A
Response
You have reported a backup system [key] that has the same non-D AHS components
that are part of the primary [System Type] system at the location.
Severity
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report System Evaluation
Current System Active Equals true
Environmental Protection Agency
Page 446 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SYSTEM-18
Check Name:
Required DAHS Component Reported for System
Related Former Checks: NBP-12
Applicability:
Description:
General Check
This check determines if there is a DAHS component reported for a system for the evaluation period.
Specifications:
For a Monitoring System record with consistent dates:
Set Required DAHS for System to true.
Locate all System Component record for the system where the ComponentTypeCode is equal to "DAHS".
If not found,
set Required DAHS for System to false, and return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire system evaluation
period,
return result B.
Results:
Result
A
Response
The system does not contain a required DAHS component that was active during the
evaluation period for [key].
The system does not contain a required DAHS component records for [key] to span the
entire evaluation period.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report System Evaluation
Current System Active Equals true
Environmental Protection Agency
Page 447 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SYSTEM-19
Check Name:
Required Non-DAHS Components Reported for System
Related Former Checks: NBP-16, NBP-18
Applicability:
Description:
General Check
This check determines if the system contains the required non-D AHS component types during the evaluation
period.
Validation Tables:
System Type to Component Type (Cross Check Table)
Specifications:
For a Monitoring System record with a valid System Type and consistent dates:
Set Required Non-DAHS Components for System to true.
Set Required Probe to false.
If the SystemType is not equal to "H20" or "ST",
Locate the System Type in the System Type to Component Type Cross Check Table where Mandatory is equal to "Yes".
Locate all System Component records for the system where the ComponentTypeCode is equal to the
ComponentTypeCode in the retrieved cross check record; the ComponentID does not begin with "LK"; the
StartDate and StartHour is on or before the System Evaluation End Date and End Hour; and the EndDate is null
or the EndDate is on or after the System Evaluation Begin Date and Begin Hour.
If not found,
set Missing Components for System to the ComponentTypeCode in the cross check record.
If the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire system
evaluation period,
set Incomplete Components for System to the ComponentTypeCode in the cross check record.
If ComponentTypeCode is equal to "S02", "NOX", "C02", "02", "H20", "HCL", "HF", or "HG" and the
SampleAcquisitionMethodCode is equal to "DIL", "DOU", "DIN", "EXT", or "WXT",
set Required Probe to true.
Locate the System Type in the System Type to Component Type Cross Check Table where Mandatory is null.
Locate all System Component records for the system where the ComponentTypeCode is equal to any of the
ComponentTypeCodes in the retrieved cross check records; the ComponentID does not begin with "LK"; the
StartDate and StartHour is on or before the System Evaluation End Date and End Hour; and the EndDate is null
or the EndDate is on or after the System Evaluation Begin Date and Begin Hour.
If none are found,
append the ComponentTypeCodes in the retrieved cross check records to Missing Components for
System.
If the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire system
If found,
If found,
If found,
If found,
Environmental Protection Agency
Page 448 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
evaluation period,
append the ComponentTypeCodes in the retrieved cross check records to Incomplete Components
for System.
If ComponentTypeCode is equal to "S02", "NOX", "C02", "02", "H20", "HCL", "HF", or "HG" and the
SampleAcquisitionMethodCode is equal to "DIL", "DOU", "DIN", "EXT", or "WXT",
set Required Probe to true.
If Missing Components for System is not null, and Incomplete Components for System is null,
set Required Non-D AHS Components for System to false, and return result A.
If Incomplete Components for System is not null, and Missing Components for System is null,
return result B.
If both Missing Components for System and Incomplete Components for System are not null,
set Required Non-D AHS Components for System to false, and return result C.
If the SystemType is equal to "H20",
Locate all System Component records for the system where the ComponentTypeCode is equal to "02", the ComponentID
does not begin with "LK", the BasisCode is equal to "B" or "W", the StartDate and StartHour is on or before the System
Evaluation End Date and End Hour, and the EndDate is null or the EndDate is on or after the System Evaluation Begin
Date and Begin Hour.
If not found,
return result D.
If found,
If the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire system
evaluation period,
return result E.
If the SampleAcquisitionMethodCode is equal to "DIL", "DOU", "DIN", "EXT", or "WXT",
set Required Probe to true.
For each retrieved record with a BasisCode equal to " W":
Locate all System Component records for the system where the ComponentTypeCode is equal to "02",
the ComponentID does not begin with "LK", the BasisCode is equal to "D", the StartDate and StartHour
is on or before the System Evaluation End Date and End Hour in the retrieved record, and the EndDate is
null or the EndDate and EndHour is on or after the System Evaluation Begin Date and Begin Hour.
If not found,
return result D.
If found and the BeginDate/BeginHour and EndDate/EndHour of the retrieved "D" records do not span
the intersection of the system evaluation period and the time span between the BeginDate/BeginHour and
EndDate/EndHour of the retrieved "W" record,
return result E.
If the SystemType is equal to "ST",
Locate all System Component records for the system where the ComponentTypeCode is equal to "STRAIN"; the
ComponentID does not begin with "LK"; the StartDate and StartHour is on or before the System Evaluation End Date and
End Hour; and the EndDate is null or the EndDate is on or after the System Evaluation Begin Date and Begin Hour.
Environmental Protection Agency
Page 449 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
If less than two are found,
set Required Non-DAHS Components for System to false, and Missing Components for System to "STRAIN"
Otherwise,
For each retrieved System Component record,
Locate all System Component records for the system where the ComponentTypeCode is equal to
"STRAIN"; the ComponentID does not equal to ComponentID in the System Component record being
evaluated; the StartDate and StartHour is on or before the System Evaluation End Date and End Hour;
and the EndDate is null or the EndDate is on or after the System Evaluation Begin Date and Begin Hour.
If the BeginDate/BeginHour and EndDate/EndHour of the second set of retrieved records does not span
the entire system evaluation period,
set Missing Components for System to "STRAIN", exit for.
If Missing Components for System is not null,
return result F.
Results:
Result
A
B
C
D
E
F
Usage:
1
Response
You have not reported [missing component] component(s) that was/were active during
the evaluation period for [key]. This component type is required in a [system type]
monitoring system.
You have not reported [incomplete component] component(s) for [key] that is/are
active for the entire evaluation period. If the component(s) was/were not installed
during part of the evaluation period, you will not be allowed to report measured
emissions using this monitoring system during the period of time when the [incomplete
component] component(s) was/were not active.
You have not reported a(n) [missing component] component that was active during the
evaluation period for [key]. Also, you have not reported a [incomplete component]
component that is active for the entire evaluation period. These component types are
required in a [system type] monitoring system.
You have not reported wet-basis and dry-basis component(s) that was/were active
during the evaluation period for [key]. These components are required in an H20
monitoring system.
You have not reported active wet-basis and dry-basis component(s) for [key] for the
entire evaluation period. These components required in an H20 monitoring system.
You did not report two [missing component] that were concurrently active for the
entire evaluation period for [key]. Two ADSP components are required in a sorbent
trap monitoring system.
Severity
Critical Error Level 1
Informational Message
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current System Active Equals true
System Evaluation
Environmental Protection Agency
Page 450 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SYSTEM-20
Check Name:
Related Former Checks:
Required Formula Reported for System
Applicability:
Description:
Specifications:
General Check
This check determines if the correct formula has been reported for a system for the entire evaluation period.
For a Monitor System record with consistent dates and a valid SystemTypeCode:
If the SystemTypeCode is equal to "OILY" or "OILM",
Locate all System Component records for the system where the associated ComponentTypeCode is equal to "OFFM" or
"BOFF", the BeginDate and BeginHour is on or before the System Evaluation End Date and End Hour, and the EndDate
is null or the EndDate and EndHour is on or after the System Evaluation Begin Date and Begin Hour.
If more than one record is found, and they overlap at any time during the system evaluation period,
Locate all Formula records for the location with a ParameterCode equal to the "FOIL", a FormulaCode equal to
"N-OIL", a BeginDate and BeginHour on or before the System Evaluation End Date and End Hour, and an
EndDate that is null or and EndDate and EndHour that is on or after the System Evaluation Begin Date and
Begin Hour.
If the SystemTypeCode is equal to "GAS",
Locate all System Component records for the system where the associated ComponentTypeCode is equal to "GFFM" or
"BGFF", the BeginDate and BeginHour is on or before the System Evaluation End Date and End Hour, and the EndDate
is null or the EndDate and EndHour is on or after the System Evaluation Begin Date and Begin Hour.
If more than one record is found, and they overlap at any time during the system evaluation period,
Locate all Formula records for the location with a ParameterCode equal to the "FGAS", a FormulaCode equal to
"N-GAS", a BeginDate and BeginHour on or before the System Evaluation End Date and End Hour, and an
EndDate that is null or and EndDate and EndHour that is on or after the System Evaluation Begin Date and
Begin Hour.
If not found,
set Missing Formula for System to "FOIL N-OIL", and return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved formula records do not span the
entire time that the system component records overlap during the system evaluation period,
set Missing Formula for System to "FOIL N-OIL", and return result B.
If not found,
set Missing Formula for System to "FGAS N-GAS", and return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved formula records do not span the
entire time that the system component records overlap during the system evaluation period,
set Missing Formula for System to "FGAS N-GAS", and return result B.
If the SystemTypeCode is equal to "FLOW",
Locate all System Component records for the system where the associated ComponentTypeCode is equal to "FLOW", the
BeginDate and BeginHour is on or before the System Evaluation End Date and End Hour, and the EndDate is null or the
EndDate and EndHour is on or after the System Evaluation Begin Date and Begin Hour.
If more than one record is found, and they overlap at any time during the system evaluation period,
Environmental Protection Agency
Page 451 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Locate all Formula records for the location with a ParameterCode equal to the "FLOW", a BeginDate and
BeginHour on or before the System Evaluation End Date and End Hour, and an EndDate that is null or and
EndDate and EndHour that is on or after the System Evaluation Begin Date and Begin Hour.
If not found,
set Missing Formula for System to "FLOW", and return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved formula records do not span the
entire time that the system component records overlap during the system evaluation period,
set Missing Formula for System to "FLOW", and return result B.
If the SystemTypeCode is equal to "H20",
Locate all Formula records for the location with a ParameterCode equal to "H20", a FormulaCode equal to "F-31" or
"M-1K", a BeginDate and BeginHour on or before the System Evaluation End Date and End Hour, and an EndDate that is
null or and EndDate and EndHour that is on or after the System Evaluation Begin Date and Begin Hour.
If not found,
return result C.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved formula records do not span the entire
system evaluation period,
return result D.
Results:
Result
A
B
C
D
E
Usage:
1
Response
You reported [system type] [key], which has more than one concurrently active
flowmeter component, but you did not report a(n) [formula type] formula record that
was active during the evaluation period. If this system really has more than one
component that measures flow, this formula is required. Otherwise, you should correct
the system component records so that the dates/hours in these records do not overlap.
You reported [key], but you did not report [formula type] formula records that are
active for the entire evaluation period. These formulas are required when using a
[system type] system with more than one flowmeter.
You reported [key], but you did not report an H20 formula record that was active
during the evaluation period to compute emission values for this location. This
formula is required when using an H20 system.
You reported [key], but you did not report H20 formula records that are active for the
entire evaluation period. This formula is required when using an H20 system.
You reported [key], but you did not report an HGC formula record that was active
during the evaluation period to compute emission values for this location. This
formula is required when using an HGK system.
You reported [key], but you did not report HGC formula records that are active for the
entire evaluation period. This formula is required when using an HGK system.
Process/Category:
Conditions:
Monitoring Plan Evaluation Report ¦
Current System Active Equals true
System 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
Environmental Protection Agency
Page 452 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SYSTEM-21
Check Name: Required Defaults Reported for System
Related Former Checks:
Applicability: General Check
Description: This check will determine if a concurrently active maximum NOx emission rate default record was reported
for an Appendix E system.
Specifications:
For a Monitoring System record with a valid SystemTypeCode, a valid FuelCode, and consistent dates:
If the SystemTypeCode is equal to "NOXE",
Locate all Monitor Default records for the location with a ParameterCode equal to "NORX", a DefaultPurposeCode equal
to "MD", a FuelCode equal to the FuelCode in the system record, an OperatingConditionCode equal to "A" or "U, a
BeginDate and BeginHour that is on or before the System Evaluation End Date and End Hour, and an EndDate that is
null or an EndDate and EndHour that is on or after the System Evaluation Begin Date and Begin Hour,
If not found,
add "NORX MD" to Missing Default for System.
If found, and the Begin and End Dates for the retrieved record do not span the entire system evaluation period,
add "NORX MD" to Incomplete Default for System.
Locate all Monitor Default records for the location with a ParameterCode equal to "NOCX", a DefaultPurposeCode equal
to "MD", a FuelCode equal to the FuelCode in the system record, an OperatingConditionCode equal to "A" or "U, a
BeginDate and BeginHour that is on or before the System Evaluation End Date and End Hour, and an EndDate that is
null or an EndDate and EndHour that is on or after the System Evaluation Begin Date and Begin Hour,
If not found,
add "NOCX MD" to Missing Default for System.
If found, and the Begin and End Dates for the retrieved record do not span the entire system evaluation period,
add "NOCX MD" to Incomplete Default for System.
If Missing Default for System is not null, and Incomplete Default for System is null,
return result A.
If Missing Default for System is null, and Incomplete Default for System is not null,
return result B.
If Missing Default for System is not null, and Incomplete Default for System is not null,
return result C.
Results:
Result Response
A You did not report a [missing] default record that was active during the evaluation
period for fuel code [fuel], which is required when you defined a [system type]
monitoring system for [key] for this fuel.
B You did not report a [incomplete] default record for fuel code [fuel], which is active for
the entire evaluation period. This default is required when you define a [system type]
monitoring system for [key] for this fuel.
C You did not report a [missing] default record that was active during the evaluation
period for fuel code [fuel], which is required when you defined a [system type]
monitoring system for [key] for this fuel. Also, you did not report a [incomplete]
default record for fuel code [fuel], which is active for the entire evaluation period.
Seventy
Critical Error Level 1
Critical Error Level 1
Critical Error Level 1
Environmental Protection Agency
Page 453 of 457
-------
ECMPS Monitoring Plan Check Specifications 9/8/2021 12:00:00AM
Usage:
1 Process/Category: Monitoring Plan Evaluation Report System Evaluation
Conditions: Current System Active Equals true
Environmental Protection Agency
Page 454 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code:
SYSTEM-22
Check Name:
Required Fuel Flow Record Reported for Fuel System
Related Former Checks: NBP-52A
Applicability:
Description:
Appendix D Check
This check determines if a FuelFlow record was reported for fuel systems for the entire evaluation period.
Specifications:
For a Monitoring System record with consistent dates and a SystemTypeCode equal to "OILV", "OILM", or "GAS":
If the SystemTypeCode is equal to "OILV" or "OILM",
Locate a System Component record for the system where the ComponentTypeCode is equal to "OFFM", the BeginDate
and BeginHour is on or before the System Evaluation End Date and End Hour, and the EndDate is null or the EndDate
and EndHour is on or after the System Evaluation Begin Date and Begin Hour.
If the SystemTypeCode is equal to "GAS",
Locate a System Component record for the system where the ComponentTypeCode is equal to "GFFM", the BeginDate
and BeginHour is on or before the System Evaluation End Date and End Hour, and the EndDate is null or the EndDate
and EndHour is on or after the System Evaluation Begin Date and Begin Hour.
If the System Component record is found,
Locate a System FuelFlow record for the system where the BeginDate and BeginHour is on or before the System
Evaluation End Date and End Hour, and the EndDate is null or the EndDate and EndHour is on or after the System
Evaluation Begin Date and Begin Hour.
If not found,
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire system
evaluation period,
return result B.
Results:
Result
A
Response
You did not report a system fuel flow record that was active during the evaluation
period for [key].
You did not report system fuel flow records for [key] that span the entire evaluation
period.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report System Evaluation
Current System Active Equals true
Environmental Protection Agency
Page 455 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Name:
Related Former Checks:
Check Code:
SYSTEM-23
Required Probe Reported for CEM System
Applicability:
Description:
CEM Check
This check determines if there is a PRB component reported for a CEM system for the evaluation period.
Specifications:
For a Monitoring System record with a valid System Type and consistent dates:
If Required Probe is equal to true and the EndDate of the system is null or is on or after 1/1/2008,
Locate all System Component record for the system where the ComponentTypeCode is equal to "PRB".
If not found,
return result A.
If found, and the BeginDate/BeginHour and EndDate/EndHour of the retrieved records do not span the entire system
evaluation period on or after 1/1/2008,
return result B.
Results:
Result
A
Response
You have not reported [missing component] component(s) that was/were active during
the evaluation period for [key]. This component type is required in a [system type]
monitoring system.
You have not reported [incomplete component] component(s) for [key] that is/are
active for the entire evaluation period. This component type is required in a [system
type] monitoring system.
Severity
Critical Error Level 1
B
Critical Error Level 1
Usage:
1 Process/Category:
Conditions:
Monitoring Plan Evaluation Report System Evaluation
Current System Active Equals true
Environmental Protection Agency
Page 456 of 457
-------
ECMPS Monitoring Plan Check Specifications
9/8/2021 12:00:00AM
Check Code: SYSTEM-24
Check Name: Duplicate System Records
Related Former Checks:
Applicability: General Check
Description: This check determines if there is another system record with the same key fields.
Specifications:
For a System record:
Locate another System record for the location with a MonitoringSystemID that is equal to the 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: Monitoring Plan Data Entry Screen Evaluation System Evaluation
Environmental Protection Agency
Page 457 of 457
------- |