DRAFT

ECMPS Import
Check Specifications

United States Environmental Protection Agency
Office of Air and Radiation
Clean Air Markets Division

Ariel Rios Building
1200 Pennsylvania Avenue
Washington, DC 20460

December 10, 2014


-------

-------
Table of Contents

Import

LME

43


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Category:
Import

Environmental Protection Agency

Page 1 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-22

Check Name:

All EM Locations Present in Unique Monitoring Plan in the Production Database

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For the current Workspace Emission File record:

Count the number of UnitlDs and StackNames in the Workspace Daily Emissions, Summary Value, Daily Test Summary, Hourly
Operating, and Long Term Flow Fuel tables.

If the number is equal to 0,
return result A.

Otherwise,

Locate a Production MonitorPlan record for the ORISCode in the current record that is linked to MonitorPlanLocation
records containing all of the retrieved UnitlDs and StackNames and no other UnitlDs and StackNames.

If not found,

Set Invalid Import Location to the list of UnitlDs and StackNames, and return result B.

Otherwise,

Set Invalid Import Location to null.

For each UnitID in the above tables:

If UnitID begins with "CS", "MS", "CP", or "MP",

add the UnitStackPipelD to Invalid Import Location.

If Invalid Import Location is not null,
return result C.

Results:

Result

A

B

Response

There are no emissions data in the file. The file was not imported.

The Client Tool datbase does not contain a monitoring plan that contains the following

list of locations: [invalid]. The file was not imported.

The following stacks or pipes were misidentified as a unit: [invalid]. The file was not
imported.

Severity

Fatal

Fatal

C

Fatal

Usage:
1

Process/Category:	Emissions Data Import Hourly Emissions Data Integrity

Environmental Protection Agency

Page 2 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-23

Check Name:

Emission File Dates Valid

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For the current Workspace Emission File record:

Locate the earliest Date in the Workspace Daily Summary and Hourly Operating tables.
If the Date is not within the Year + Quarter in the current record,

Locate the latest Date in the Workspace Daily Summary, Daily Test Summary and Hourly Operating tables.

If the Date is not within the Year + Quarter in the current record,
return result A.

return result A.

Results:

Result
A

Response

You have reported a date in a Daily Summary, DailyTest Summary or Hourly Operating
record that does not fall within the reporting period. The emissions file will not be
imported.

Severity
Fatal

Usage:
1

Process/Category:	Emissions Data Import Hourly Emissions Data Integrity

Environmental Protection Agency

Page 3 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-25

Check Name:	EM Facility Present in the Production Facility Table

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace Emission File record:

Locate a Production Facility record where the ORIS CODE is equal to the ORIS CODE in the current record:

If not found,

return result A.

Results:

Result	Response	Severity

A	The Client Tool database does not contain ORIS Code [ORIS Code], This file was not	Fatal

imported.

Usage:

1	Process/Category:	Emissions Data Import Hourly Emissions Data Integrity

Environmental Protection Agency

Page 4 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-26

Check Name:

All EM Systems Present in the Production Database

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For each UnitID and StackName in the Workspace Daily Emission, Summary Value, Daily Test Summary, Hourly Operating, and Long
Term Fuel Flow tables.

Locate all Systemldentifiers for that location in the Workspace Monitor Hourly Value, Derived Hourly Value, and Hourly Fuel Flow
tables.

Set Missing EM Systems to null.

For each Systemldentifier:

Locate a Production MonitoringSystem record for the location and Systemldentifier.

If not found,

Set Invalid LTFF Systems to null.

Locate all Systemldentifiers for that location in the Long Term Fuel Flow tables.

For each Systemldentifier:

Locate a Production MonitoringSystem record for the location and Systemldentifier.
If not found,

add the Locationldentifier + Systemldentifier to Missing EM Systems.
If found, and the SystemTypeCode is not equal to "LTOL" or "LTGS",

add the Locationldentifier + Systemldentifier to Missing EM Systems.

add the Locationldentifier + Systemldentifier to Invalid LTFF Systems.

If Missing EM Systems is not null,
return result A.

else if Invalid LTFF Systems is not null,
return result B.

Results:

Result

A

B

Response

The Client Tool database does not contain [SystemID]. This file was not imported.
You have reported a LongTermFuelFlow record for [key], which has an inappropriate
system type. This record was not imported.

Severity

Fatal

Fatal

Usage:
1

Process/Category:	Emissions Data Import Hourly Emissions Location Data Integrity

Environmental Protection Agency

Page 5 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-27

Check Name:	All EM Components Present in the Production Database

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For each UnitID and StackName in the Workspace Daily Summary, Summary Value, Daily Test Summary and Hourly Operating tables.
Locate all Componentldentifiers for that location in the Workspace Monitor Hourly Value and Daily Test Summary tables.
Set Missing EM Components to null.

For each Componentldentifier:

Locate a Production Component record for the location and Componentldentifier.

If not found,

add the Location Identifier + Componentldentifier to Missing EM Component.

If Missing EM Component is not null,
return result A.

Results:

Result	Response	Severity

A	The Client Tool database does not contain [ComponentID]. This file was not imported.	Fatal

Usage:

1	Process/Category:	Emissions Data Import Hourly Emissions Location Data Integrity

Environmental Protection Agency

Page 6 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-28

Check Name:	All EM Formulas Present in the Production Database

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For each UnitID and StackName in the Workspace Daily Summary, Summary Value, Daily Test Summary and Hourly Operating tables.
Locate all Formulaldentifiers for that location in the Workspace Derived Hourly Value and Hourly Parameter Fuel Flow tables.
Set Missing EM Formulas to null.

For each Formulaldentifier:

Locate a Production MonitorFormula record for the location and Formulaldentifier.

If not found,

add the Locationldentifier + Formulaldentifier to Missing EM Formula.

If Missing EM Formula is not null,
return result A.

Results:

Result	Response	Severity

A	The Client Tool database does not contain [FormulalD], This file was not imported.	Fatal

Usage:

1	Process/Category:	Emissions Data Import Hourly Emissions Location Data Integrity

Environmental Protection Agency

Page 7 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-29

Check Name:	Inappropriate Children Records for Daily Test Summary

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace Daily Test Summary record:

If the TestTypeCode is not equal to "DAYCAL",

Locate a Workspace Daily Calibration record linked to the current record.
If found,

return result A.

Results:

Result	Response	Severity

A	You have reported a Daily Calibration record linked to a test for which the Test	Critical Error Level 1

Summary TestTypeCode is not "DAYCAL". It is not appropriate to report a Daily
Calibration record for a TestTypeCode other than "DAYCAL." This test was not
imported.

Usage:

1	Process/Category:	Emissions Data Import Hourly Emissions Test Data Integrity

Environmental Protection Agency

Page 8 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-1

Check Name:

MP Facility Present in the Production Facility Table

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For the current Workspace MonitoringPlan record:

Locate a Production Facility record where the ORIS CODE is equal to the ORIS CODE in the current record:

If not found,

return result A.

Otherwise,

Set the Workspace Unit Count equal to the number of units in the file.

If Workspace Unit Count is equal to 0,
return result B.

Results:

Result
A

Response

The Client Tool database does not contain ORIS Code [ORIS Code], This file was not
imported.

There are no units in the file. This file was not imported.

Severity
Fatal

B

Fatal

Usage:
1

Process/Category:	Monitoring Plan Import Monitoring Plan Facility Data Integrity

Environmental Protection Agency

Page 9 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-2

Check Name:	Unit Present in the Production Unit Table

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace Unit Record:

Locate a Production Unit record where the ORIS CODE + UNITID is equal to the ORIS CODE + UNITID in the current record.

If not found,

return result A.

Results:

Result	Response	Severity

A	The Client Tool database does not contain unit/stack/pipe [Unit ID] for ORIS Code	Fatal

[ORIS Code], This file was not imported.

Usage:

1	Process/Category:	Monitoring Plan Import Monitoring Plan Unit Data Integrity

Environmental Protection Agency

Page 10 of 54


-------
Draft ECMPS Import Check Specifications	12/10/2014 12:00:00AM

Check Code:	IMPORT-3

Check Name:	Stack/Pipe in the File Associated With at Least One Unit

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace Stack record:

Locate a Workspace Unit Stack Configuration record where the STACKNAME is equal to the STACKNAME in the current
record.

If not found,

return result A.

Results:

Result	Response	Severity

A	Each stack or pipe must be associated with at least one unit. Stack/pipe [Stack/Pipe ID]	Fatal

is not associated with any units. This file was not imported.

Usage:

1	Process/Category:	Monitoring Plan Import Monitoring Plan Stack/Pipe Data Integrity

Environmental Protection Agency

Page 11 of 54


-------
Draft ECMPS Import Check Specifications	12/10/2014 12:00:00AM

Check Code:	IMPORT-4

Check Name:	Unit in the File Associated With at Least One Stack/Pipe

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace Unit record:

If the Workspace Unit Count is greater than 1,

Locate a Workspace Unit Stack Configuration record where the UnitID is equal to the UnitID in the current record.

If not found,

Return result A.

Results:

Result	Response	Severity

A	Each unit pipe must be associated with at least one stack or pipe. Unit [Unit ID] is not	Fatal

associated with any units. This file was not imported.

Usage:

1	Process/Category:	Monitoring Plan Import Monitoring Plan Unit Data Integrity

Environmental Protection Agency

Page 12 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-5

Check Name:	System Type Consistency Check

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace System record:

Locate a production Monitoring System record for the location where the Systemldentifier is equal to the Systemldentifier in the
current record:

If found, and the SystemTypeCode in the retrieved record is not equal to the SystemTypeCode in the current record,
return result A.

Results:

Result	Response	Severity

A	The system type [System Type] for UnitStackPipelD [Unit ID] [Stack ID]	Critical Error Level 1

MonitoringSystemID [System ID] does not match the system type in the Client Tool
database. This record was not imported.

Usage:

1	Process/Category:	Monitoring Plan Import Monitoring Plan System Data Integrity

Environmental Protection Agency

Page 13 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-6

Check Name:	Component Type and Basis Consistency Check

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace Component record:

Locate a production Component record for the location where the Componentldentifier is equal to the Componentldentifier in the
current record:

If found, and the ComponentTypeCode in the retrieved record is not equal to the ComponentTypeCode in the current record,
return result A.

If found, and the BasisCode in the retrieved record is not null and is not equal to the BasisCode in the current record,
return result B.

Results:

Result	Response	Severity

A	The component type [Component Type] for ComponentID [Component ID] in	Critical Error Level 1

UnitStackPipelD [Unit ID] [Stack ID] does not match the component type in the Client
Tool database. This record was not imported.

B	The moisture basis [Basis Type] for ComponentID [Component ID] in UnitStackPipelD	Critical Error Level 1

[Unit ID][Stack ID] does not match the component type in the Client Tool database.

This record was not imported.

Usage:

1	Process/Category:	Monitoring Plan Import Monitoring Plan Component Data Integrity

Environmental Protection Agency

Page 14 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-7

Check Name:	Component in the System Component Record Present in Workspace Component Table

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace System Component record:

Locate a Workspace Component record for the location where the Componentldentifier is equal to the Componentldentifier in the
current record.

If not found,

set UnitStackPipelD + ComponentID to Missing Component for System Component, and return result A

Results:

Result	Response

A	The XML file does not contain a Component record for [ComponentID], The System

Component record containing this Component ID was not imported.

Usage:

1	Process/Category:	Monitoring Plan Import Monitoring Plan System Component Data Integrity

Severity

Critical Error Level 1

Environmental Protection Agency

Page 15 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-8

Check Name:	Unit Stack Configuration Record Must Be Linked to Unit and Stack/Pipe

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace Unit Stack Configuration record:

Locate a Workspace Stack record where the STACKNAME is equal to the STACKNAME in the current record.

If not found,

return result A.

Locate a Workspace Unit record where the UNITID is equal to the UNITID in the workspace unit stack configuration record.

If not found,

return result B.

Results:

Result

B

Response

Each Stack/Pipe and Unit in a unit stack configuration record must be linked to unit and
stack/pipe records that are also present in the file. StackPipelD [StackPipelD] was not
associated with a Stack/Pipe record in the file. This StackPipe Configuration Record
was not imported.

Each Stack/Pipe and Unit in a unit stack configuration record must be linked to unit and
stack/pipe records that are also present in the file. UnitID [UnitID] was not associated
with a Unit record in the file. This StackPipe Configuration Record was not imported.

Severity

Critical Error Level 1

Critical Error Level 1

Usage:
1

Process/Category:

Monitoring Plan Import Monitoring Plan Unit Stack Configuration Data Integrity

Environmental Protection Agency

Page 16 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-9

Check Name:	Formula Parameter and Code Consistency Check

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace Formula record:

Locate a production Formula record for the location where the Formulaldentifier is equal to the Formulaldentifier in the current
record:

If found,

If the ParameterCode in the retrieved record is not equal to the ParameterCode in the current record,
return result A.

If the FormulaCode in the retrieved record is not null and is not equal to the FormulaCode in the current record,
return result B.

Results:

Result
A

B

Response

The ParameterCode for Formula ID [FormulalD] in the Client Tool database is not
equal to the ParameterCode [ParameterCode] in the incoming record. This record was
not imported.

The FormulaCode for Formula ID [FormulalD] in the Client Tool database is not equal
to the FormulaCode [FormulaCode] in the incoming record. This record was not
imported

Severity

Critical Error Level 1

Critical Error Level 1

Usage:
1

Process/Category:

Monitoring Plan Import Monitoring Plan Formula Data Integrity

Environmental Protection Agency

Page 17 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-10

Check Name:

Extraneous Span Data Check

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For the current Workspace Span record:

set Extraneous Span Fields to null.

If the ComponentTypeCode is equal to "FLOW",

If MPCValue is not null,

add "MPCValue" to Extraneous Span Fields.

If MECValue is not null,

add "MECValue" to Extraneous Span Fields.

If DefaultHighRangeValue is not null,

add "DefaultHighRangeValue" to Extraneous Span Fields.

If ScaleTransitionPoint is not null,

add "ScaleTransitionPoint" to Extraneous Span Fields.

If SpanScaleCode is not null,

add "SpanScaleCode" to Extraneous Span Fields.

Otherwise,

If MPFValue is not null,

add "MPFValue" to Extraneous Span Fields.

If FlowSpanValue is not null,

add "FlowSpanValue" to Extraneous Span Fields.

If FlowFullScaleRange is not null,

add "FlowFullScaleRange" to Extraneous Span Fields.

If ExtraneousSpanFields is not null,

return result A.

Results:

Result
A

Response

An extraneous value has been reported for [fieldname] in the span record for [comptype]
[scale]. This value was not imported.

Severity

Non-Critical Error

Usage:
1

Process/Category:	Monitoring Plan Import Monitoring Plan Span Data Integrity

Environmental Protection Agency

Page 18 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-11

Check Name:	Extraneous LME Data Check

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace MonitorQualLME record:

If the associated Qualification Type Code is not equal to "LMEA":

If S02Tons is not null,
return result A.

Results:

Result	Response	Severity

A	A value has been reported for [fieldname] in the MonitorQualLME record for [key],	Non-Critical Error

This field should be blank. The value was not imported.

Usage:

1	Process/Category:	Monitoring Plan Import Monitoring Plan Qualification LME Data Integrity

Environmental Protection Agency

Page 19 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-12

Check Name:	Inappropriate Children Records for Monitor Qualification

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace MonitorQualification record:

If the QualificationTypeCode is not equal to "PK", "SK", or "GF",

Locate a Workspace MonitorQualPercent record linked to the current record.

If found,

return result A.

If the QualificationTypeCode is not equal to "LMEA" or "LMES",

Locate a Workspace MonitorQualLME record linked to the current record.

If found,

return result B.

Results:

Severity
Fatal

Fatal

Result	Response

A	You have reported a MonitorQualPercent record for a location with the Qualification

Type Code not equal to "PK," "SK" or "GF." A MonitorQualPercent record should not
be reported for qualification Codes other than "PK", "SK" or "GF." This file was not
imported.

B	You have reported a MonitorQualLME record for a location with the Qualification Type

Code not equal to "LMEA" or "LMES." A MonitorQualLME record should not be
reported for qualification Codes other than "LMEA" or "LMES." This file was not
imported.

Usage:

1	Process/Category:	Monitoring Plan Import Monitoring Plan Qualification Data Integrity

Environmental Protection Agency

Page 20 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-31

Check Name:

Inappropriate System Fuelflow for System

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For the current Workspace System Fuelflow record:

Locate a production System record for the location where the Systemldentifier is equal to the Systemldentifier linked to the current
record:

If found

If the SystemTypeCode in the current record is not equal to "LTGS", "LTOL", "OILM", "OILV", or "GAS",
return result A.

If not found,

Locate the associated System record in the workspace

If the SystemTypeCode in the current record is not equal to LTGS", "LTOL", "OILM", "OILV", or "GAS",
return result A.

Results:

Result
A

Response

You have reported a System Fuel Flow record for a system that is not a fuel flow system.
It is not appropriate to report a System Fuel Flow record for any other SystemTypeCode
than "OILM", "OILV", "GAS", "LTGS", or "LTOL". This record was not imported.

Severity

Critical Error Level 1

Usage:
1

Process/Category:	Monitoring Plan Import Monitoring Plan System Fuelflow Data Integrity

Environmental Protection Agency

Page 21 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-32

Check Name:

Inappropriate Analyzer Range for Component

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For the current Workspace Analyzer Range record:

Locate a production Component record for the location where the Componentldentifier is equal to the Componentldentifier linked to
the current record:

If found,

If the ComponentTypeCode in the retrieved record is not equal to "S02", "NOX", "C02", "02", "HG", "HCL", or "HF",

return result A.

If not found,

Locate the associated Component record in the workspace.

If the ComponentTypeCode in the retrieved record is not equal to "S02", "NOX", "C02", "02", "HG", "HCL", or "HF",
return result A.

Results:

Result
A

Response

You have reported an AnalyzerRange record for a component with an inappropriate
ComponentTypeCode. This record was not imported.

Severity

Critical Error Level 1

Usage:
1

Process/Category:	Monitoring Plan Import Monitoring Plan Analyzer Range Data Integrity

Environmental Protection Agency

Page 22 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-36

Check Name:

Inappropriate Calibration Standard for Component

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For the current Workspace Calibration Standard record:

Locate a production Component record for the location where the Componentldentifier is equal to the Componentldentifier linked to
the current record:

If found,

If the ComponentTypeCode in the retrieved record is not equal to "S02", "C02", "NOX", "02", or "HG",

return result A.

If not found,

Locate the associated Component record in the workspace.

If the ComponentTypeCode in the retrieved record is not equal to "S02", "C02", "NOX", "02", or "HG",
return result A.

Results:

Result
A

Response

You have reported a CalibrationStandardData record for a component with an
inappropriate ComponentTypeCode. This record was not imported.

Severity

Critical Error Level 1

Usage:
1

Process/Category:	Monitoring Plan Import Monitoring Plan Calibration Standard Data Integrity

Environmental Protection Agency

Page 23 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

Check Name:

Related Former Checks
Applicability:

Description:

Specifications:

For the QA file:

Count the number of UnitID and StackName in the Workspace TestSummary, QACertificationEvent, and TestExtensionExemption
tables.

If the number is equal to 0,
return result A.

Otherwise,

Set Missing QA Locations to null.

Set Invalid QA Locations to null.

For each UnitID and Stack Name in the above tables:

Locate a Production MonitorLocation record for that location.

If not found,

add the UnitID or Stack Name to Missing QA Locations.

else if UnitID is not null and begins with "CS", "MS", "CP", or "MP",
add the UnitID to Invalid QA Locations.

If Missing QA Locations is not null,
return result B.

else if Invalid QA Locations is not null,
return result C.

IMPORT-13

All Locations Present in the Production Database
Import Check

Results:

Result
A

B

C

Usage:

1

Response

There are no tests, certification events, or test extension/exemption records in the file.
The file was not imported.

The Client Tool database does not contain UnitStackPipelD [UnitStackID]. This file
was not imported.

The following stacks or pipes were misidentified as a unit: [invalid]. The file was not
imported.

Severity
Fatal

Fatal

Fatal

Process/Category:

QA and Certification Data Import QA and Certification Location Data Integrity

Environmental Protection Agency

Page 24 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-14

Check Name:

All QA Systems Present in the Production Database

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For each UnitID and StackName in the Workspace TestSummary, QACertificationEvent, and TestExtensionExemption tables:

Locate all Systemldentifiers for that location in the Workspace TestSummary, QACertificationEvent, and TestExtensionExemption
tables.

Set Missing QA Systems to null.

For each Systemldentifier:

Locate a Production MonitoringSystem record for the location and Systemldentifier.

If not found,

add the UnitStackPipelD + Systemldentifier to Missing QA Systems.

If Missing QA Systems is not null,
return result A.

Results:

Result
A

Response

The Client Tool database does not contain [SystemID]. This file was not imported.

Severity
Fatal

Usage:
1

Process/Category:	QA and Certification Data Import QA and Certification Location Data Integrity

Environmental Protection Agency

Page 25 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-15

Check Name:	All QA Components Present in the Production Database

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For each UnitID and StackName in the Workspace TestSummary, QACertificationEvent, and TestExtensionExemption tables:
Locate all Componentldentifiers for that location in the Workspace TestSummary and QACertificationEvent tables.
Set Missing QA Components to null.

For each Componentldentifier:

Locate a Production Component record for the location and Componentldentifier.

If not found,

add the UnitStackPipelD + Componentldentifier to Missing QA Component.

If Missing QA Components is not null,
return result A.

Results:

Result	Response	Severity

A	The Client Tool database does not contain [ComponentID]. This file was not imported.	Fatal

Usage:

1	Process/Category:	QA and Certification Data Import QA and Certification Location Data Integrity

Environmental Protection Agency

Page 26 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-16

Check Name:	Inappropriate Children Records for Test Summary

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace TestSummary record:

Set Inappropriate QA Children to null.

If the TestTypeCode is not equal to "RATA",

Locate a Workspace RATA record linked to the current record.

If found,

add "RATA" to Inappropriate QA Children.

Locate a Workspace TestQualification record linked to the current record.

If found,

add "TestQualification" to Inappropriate QA Children.

If the TestTypeCode is not equal to "7DAY",

Locate a Workspace Calibration Injection record linked to the current record.

If found,

add "Calibration Injection" to Inappropriate QA Children.

If the TestTypeCode is not equal to "LINE"

Locate a Workspace Linearity Summary record linked to the current record.

If found,

add "Linearity Summary" to Inappropriate QA Children.

If the TestTypeCode is not equal to "HGLINE" or "HGSI3",

Locate a Workspace Hg Summary Data record linked to the current record.

If found,

add "Hg Linearity or System Integrity Summary" to Inappropriate QA Children.
If the TestTypeCode is not equal to "F2LREF",

Locate a Workspace Flow to Load Reference record linked to the current record.

If found,

add "Flow to Load Reference" to Inappropriate QA Children.

If the TestTypeCode is not equal to "F2LCHK",

Locate a Workspace Flow to Load Check record linked to the current record.

If found,

add "Flow to Load Check" to Inappropriate QA Children.

Environmental Protection Agency

Page 27 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

If the TestTypeCode is not equal to "CYCLE",

Locate a Workspace Cycle Time Summary record linked to the current record.

If found,

add "Cycle Time Summary" to Inappropriate QA Children.

If the TestTypeCode is not equal to "ONOFF",

Locate a Workspace Online Offline Calibration record linked to the current record.

If found,

add "Online Offline Calibration" to Inappropriate QA Children.

If the TestTypeCode is not equal to "FFACC",

Locate a Workspace Fuel Flowmeter Accuracy record linked to the current record.

If found,

add "Fuel Flowmeter Accuracy" to Inappropriate QA Children.

If the TestTypeCode is not equal to "FFACCTT",

Locate a Workspace Transmitter Transducer record linked to the current record.

If found,

add "Transmitter Transducer" to Inappropriate QA Children.

If the TestTypeCode is not equal to "FF2LBAS",

Locate a Workspace Fuel Flow To Load Baseline record linked to the current record.

If found,

add "Fuel Flow to Load Baseline" to Inappropriate QA Children.

If the TestTypeCode is not equal to "FF2LTST",

Locate a Workspace Fuel Flow To Load Test record linked to the current record.

If found,

add "Fuel Flow to Load Test" to Inappropriate QA Children.

If the TestTypeCode is not equal to "APPE",

Locate a Workspace Appendix E Correlation Test Summary record linked to the current record.
If found,

add "Appendix E Correlation Test Summary" to Inappropriate QA Children.

If the TestTypeCode is not equal to "UNITDEF",

Locate a Workspace Unit Default Test record linked to the current record.

If found,

add "Unit Default Test" to Inappropriate QA Children.

If the TestTypeCode is not equal to "RATA", "LINE", "UNITDEF", or "APPE"

Environmental Protection Agency

Page 28 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Locate a Workspace ProtocolGas record linked to the current record.
If found,

add "ProtocolGas" to Inappropriate QA Children.

If the TestTypeCode is not equal to "UNITDEF", "RATA", or "APPE",

Locate a Workspace AirEmissionTesting record linked to the current record.
If found,

add "AirEmissionTesting" to Inappropriate QA Children.

If Inappropriate QA Children is not equal to null,
return result A.

Results:

Result
A

Response

You have reported [Inappropriate Children] records for a Test Summary Record with a
Test Type Code of [TestTypeCode], This file was not imported.

Severity
Fatal

Usage:
1

Process/Category:	QA and Certification Data Import QA and Certification Test Data Integrity

Environmental Protection Agency

Page 29 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-17

Check Name:

Extraneous Test Summary Data Check

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For the current WorkspaceTest Summary record:

Set Extraneous Test Summary Fields to null.

If TestDescription is not null, and TestTypeCode is not equal to "OTHER",
add "TestDescription" to Extraneous Test Summary Fields.

If TestResultCode is not null, and the TestTypeCode is equal to "FF2LBAS", "F2LREF", "APPE", or "UMTDEF",
add "TestResultCode" to Extraneous Test Summary Fields.

If SpanScaleCode is not null, and the TestTypeCode is not equal to "7DAY", "LINE", "CYCLE", "ONOFF", "HGLINE", or
"HGSI3",

add "SpanScaleCode" to Extraneous Test Summary Fields.

If TestReasonCode is not null, and the TestTypeCode is equal to "FF2LBAS" or "F2LREF",
add "TestReasonCode" to Extraneous Test Summary Fields.

If GracePeriodlndicator is equal to 1, and the TestTypeCode is not equal to "RATA", "LINE", "LEAK", "HGLINE", or "HGSI3",
add "GracePeriodlndicator" to Extraneous Test Summary Fields.

If TestTypeCode is not equal to "RATA", "7DAY", "LINE", "CYCLE", "ONOFF", "FF2LBAS", "APPE", "UNITDEF", "HGSI3",
or "HGLINE",

If BeginDate is not null,

add "BeginDate" to Extraneous Test Summary Fields.

If BeginHour is not null,

add "BeginHour" to Extraneous Test Summary Fields.

If BeginMinute is not null,

add "BeginMinute" to Extraneous Test Summary Fields.

If the TestTypeCode is equal to "FF2LTST" or "F2LCHK",

If EndDate is not null,

add "EndDate" to Extraneous Test Summary Fields.

If EndHour is not null,

add "EndHour" to Extraneous Test Summary Fields.

If EndMinute is not null,

add "EndMinute" to Extraneous Test Summary Fields.

Otherwise,

If Year is not null,

add "Year" to Extraneous Test Summary Fields.

If Quarter is not null,

add "Quarter" to Extraneous Test Summary Fields.

Environmental Protection Agency

Page 30 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

If TestTypeCode is equal to "FF2LBAS" or "ONOFF",

If BeginMinute is not null,

add "BeginMinute" to Extraneous Test Summary Fields.

If EndMinute is not null,

add "EndMinute" to Extraneous Test Summary Fields.

If Extraneous Test Summary Fields is not null,
return result A.

Results:

Result	Response	Severity

A	An extraneous value has been reported for [fieldname] in the Test Summary record for	Non-Critical Error

Location [LocationID], TestTypeCode [TestTypeCode] and Test Number
[TestNumber], This value was not imported.

Usage:

1	Process/Category:	QA and Certification Data Import QA and Certification Test Data Integrity

Environmental Protection Agency

Page 31 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-18

Check Name:

Test Summary System and Component Check

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For the current WorkspaceTest Summary record:

If the TestTypeCode is equal to "7DAY", "LINE", "CYCLE", "ONOFF", "FFACC", "FFACCTT", "HGSI3", or "HGLINE",
If Systemldentifier is not null or Componentldentifier is null,
return result A.

Otherwise,

Locate the Production Component record for the component.

If TestTypeCode is equal to "7DAY" or "ONOFF",

If ComponentTypeCode in the Production Component record is not equal to "S02", "C02", "NOX", "02",
"FLOW", or "HG",

return result B.

If TestTypeCode is equal to "CYCLE",

If ComponentTypeCode in the Production Component record is not equal to "S02", "C02", "NOX", "02",
or "HG",

return result B.

If TestTypeCode is equal to "LINE",

If ComponentTypeCode in the Production Component record is not equal to "S02", "C02", "NOX", or
"02",

return result B.

If TestTypeCode is equal to "HGSI3", or "HGLINE"

If ComponentTypeCode in the Production Component record is not equal to "HG",
return result B.

If TestTypeCode is equal to "FFACC" or "FFACCTT",

If ComponentTypeCode in the Production Component record is not equal to "OFFM" or "GFFM",
return result B.

If the TestTypeCode is equal to "RATA", "F2LCHK", "F2LREF", "FF2LBAS", "FF2LTST", or "APPE",
If Systemldentifier is null or Componentldentifier is not null,

Locate the Production Monitor System record for the component.

If TestTypeCode is equal to "RATA",

If SystemTypeCode in the Production Monitor System record is not equal to "S02", "C02", "NOX",
"NOXC", "02", "FLOW", "H20", "H20M", "NOXP", "S02R", "HG", "HCL", "HF", or "ST",
return result D.

If TestTypeCode is equal to "APPE",

If SystemTypeCode in the Production Monitor System record is not equal to "NOXE",
return result D.

If TestTypeCode is equal to "F2LCHK" or "F2LREF",

If SystemTypeCode in the Production Monitor System record is not equal to "FLOW",

return result C.

Otherwise,

Environmental Protection Agency

Page 32 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

return result D.

If TestTypeCode is equal to "FF2LBAS" or "FF2LTST",

If SystemTypeCode in the Production Monitor System record is not equal to "OILV", "OILM", "GAS",
"LTOL", or "LTGS",

return result D.

If the TestTypeCode is equal to "UNITDEF",

If Systemldentifier is not null or Componentldentifier is not null,
return result E.

Otherwise,

If the TestTypeCode is equal to "UNITDEF",

Locate a Production Monitor Method record for the location with a ParameterCode equal to "NOXM" and
a MethodCode equal to "LME".

If not found,

return result F.

Results:

Result

B

D

Response

You have reported a Test Summary Record for Location [LocationID], TestTypeCode
[TestTypeCode] and Test Number [TestNumber], which either does not have a
ComponentID or inappropriately has a MonitorSystemlD. This test record was not
imported.

You have reported a Test Summary record for Location [LocationID], TestTypeCode
[TestTypeCode] and TestNumber [TestNumber], which is inappropriate for the
component type for ComponentID [component]. This test was not imported.

You have reported a Test Summary Record for Location [LocationID], TestTypeCode
[TestTypeCode] and TestNumber [TestNumber], which either does not have a
MonitorSystemlD or inappropriately has a ComponentID. This test record was not
imported.

You have reported a Test Summary Record for Location [LocationID], TestTypeCode
[TestTypeCode] and TestNumber [TestNumber], which is inappropriate for the system
type for MonitoringSystemID [system]. This test was not imported.

You have reported a Test Summary Record for Location [LocationID], TestTypeCode
[TestTypeCode] and TestNumber [TestNumber], which inappropriately contains either
a MonitorSystemlD or a ComponentID. This test record was not imported.

You have reported a Test Summary Record for Location [LocationID], TestTypeCode
[TestTypeCode] and TestNumber [TestNumber], which is inappropriate for a non-LME
unit. This test was not imported.

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:

QA and Certification Data Import QA and Certification Test Data Integrity

Environmental Protection Agency

Page 33 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-19

Check Name:

Inappropriate Children Record for RATA

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For the current Workspace TestSummary record:

If the TestTypeCode is equal to "RATA",

Locate a Workspace Flow RATA Run record linked to the current record.

If found,

Locate a Production Monitor System record for the location and Systemldentifier in the current record.

If the SystemTypeCode in the retrieved Monitor System record is not equal to "FLOW",
return result A.

Results:

Result
A

Response

You have reported a FlowRATARunRecord for UnitStackPipelD [LocationID],
MonitoringSystemID [SystemID], and TestNumber [TestNumber], However, this
system is not a FLOW system, and it is inappropriate to report a FlowRATARunRecord
for a non-flow system. This test was not imported.

Severity

Critical Error Level 1

Usage:
1

Process/Category:	QA and Certification Data Import QA and Certification Test Data Integrity

Environmental Protection Agency

Page 34 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-20

Check Name:	Duplicate Test Check

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace Test Summary record:

Locate another Workspace Test Summary record with the same location, TestTypeCode, and TestNumber as the current record.

If found,

return result A.

Results:

Result	Response	Severity

A	You have reported another Test Summary Record for Location [LocationID],	Critical Error Level 1

TestTypeCode [TestTypeCode] and TestNumber [TestNumber], This Test was not
imported.

Usage:

1	Process/Category:	QA and Certification Data Import QA and Certification Test Data Integrity

Environmental Protection Agency

Page 35 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

IMPORT-21

Check Name:

Duplicate Test Number Check

Related Former Checks:

Applicability:

Import Check

Description:

Specifications:

For the current Workspace Test Summary record:

Locate a Production Test Summary record with the same location, TestTypeCode, and TestNumber as the current record.

If Systemldentifier, Componentldentifier, SpanScaleCode, EndDate, EndHour, Year, or Quarter in the retrieved record are
not all equal to the values in the current record,

set Mismatched Test Fields to the unequal fields in the record, and return result A.

else if EndMinute in the current record and the retrieved record are both not null and are not equal,
set Mismatched Test Fields to the unequal fields in the record, and return result A.

Locate a Production QA Supp record with the same location, TestTypeCode, and TestNumber as the current record.

If found,

If the Systemldentifier, Componentldentifier, SpanScaleCode, EndDate, EndHour, Year, or Quarter in the retrieved
record are not all equal to the value in the current record,

set Mismatched Test Fields to the unequal fields in the record, and return result A.

else if EndMinute in the current record and the retrieved record are both not null and are not equal,

If found,

If not found,

set Mismatched Test Fields to the unequal fields in the record, and return result A.

Results:

Result
A

Response

The Client Tool database contains another Test Summary Record for Location
[LocationID], TestTypeCode [TestTypeCode] and TestNumber [TestNumber],
However, the value reported for [fieldname] is different between the two tests. This
Test was not imported.

Severity

Critical Error Level 1

Usage:
1

Process/Category:	QA and Certification Data Import QA and Certification Test Data Integrity

Environmental Protection Agency

Page 36 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-24

Check Name:	QA Facility Present in the Production Facility Table

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace QualityAssuranceAndCert File record:

Locate a Production Facility record where the ORIS CODE is equal to the ORIS CODE in the current record.

If not found,

return result A.

Results:

Result	Response	Severity

A	The Client Tool database does not contain ORIS Code [ORIS Code], This file was not	Fatal

imported.

Usage:

1	Process/Category:	QA and Certification Data Import QA and Certification Data Integrity

Environmental Protection Agency

Page 37 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-30

Check Name:	Extraneous RATA Summary Data Check

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace RATA Summary record:

If C020r02ReferenceMethodCode is not null, or StackDiameter is not null, or StackArea is not null, orNumberOfTraversePoints
is not null, or CalculatedWAF is not null, or DefaultWAF is not null,

Locate a Production Monitor System record for the location and Systemldentifier in the associated TestSummary record.
If the SystemTypeCode in the retrieved Monitor System record is not equal to "FLOW",

Set Extraneous RATA Summary Fields to null.

If C020r02ReferenceMethodCode is not null,

add "C020r02ReferenceMethodCode" to Extraneous RATA Summary Fields.

If StackDiameter is not null,

add "StackDiameter" to Extraneous RATA Summary Fields.

If StackArea is not null,

add "StackArea" to Extraneous RATA Summary Fields.

IfNumberOfTraversePoints is not null,

add "NumberOfTraversePoints" to Extraneous RATA Summary Fields.

If CalculatedWAF is not null,

add "CalculatedWAF" to Extraneous RATA Summary Fields.

If DefaultWAF is not null,

add "DefaultWAF" to Extraneous RATA Summary Fields.

return result A.

Results:

Result	Response	Severity

A	An extraneous value has been reported in [fieldname] in the RATA Summary record for	Non-Critical Error

Location [LocationID], TestTypeCode [TestTypeCode] and Test Number
[TestNumber], This value was not imported.

Usage:

1	Process/Category:	QA and Certification Data Import QA and Certification RATA Integrity Check

Environmental Protection Agency

Page 38 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-33

Check Name:	Inappropriate Test Type For Location

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current WorkspaceTest Summary record:

If the UnitStackPipelD begins with "CS" or "MS",

If the TestTypeCode is equal to "FFACC", "FFACCTT", "FF2LTST", "FF2LBAS", "APPE", "UNITDEF", "PET, or
"PEMSACC",

set Test Location Type to "stack" and return result A.

If the UnitStackPipelD begins with "CP",

If the TestTypeCode is equal to "RATA", "LINE", "7DAY", "ONOFF", "CYCLE", "LEAK", "APPE", "UNITDEF",
"PEMSACC", "HGLINE", or "HGSI3",

set Test Location Type to "common pipe" and return result A.

If the UnitStackPipelD begins with "MP",

If the TestTypeCode is equal to "RATA", "LINE", "7DAY", "ONOFF", "CYCLE", "LEAK", "UNITDEF", "PEMSACC",
"HGLINE", or "HGSI3",

set Test Location Type to "multiple pipe" and return result A.

Results:

Result	Response	Severity

A	You have reported a [test type] test that is inappropriate for a [location type]. The test	Critical Error Level 1

was not imported.

Usage:

1	Process/Category:	QA and Certification Data Import QA and Certification Test Data Integrity

Environmental Protection Agency

Page 39 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-34

Check Name:	Inappropriate Year for Test

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current WorkspaceTest Summary record:

If the CalendarYear is less than 1993 or greater than the current year,
return result A.

Results:

Result	Response

A	You reported an invalid Year in the Test Summary record for Location [LocationID],

TestTypeCode [TestTypeCode] and Test Number [TestNumber], The test was not
imported.

Usage:

1	Process/Category:	QA and Certification Data Import QA and Certification Test Data Integrity

Severity

Critical Error Level 1

Environmental Protection Agency

Page 40 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-35

Check Name:	Inappropriate Children Records for Appendix E

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current Workspace TestSummary record:

If the TestTypeCode is equal to "APPE",

For each unique Systemldentifier in the Workspace Appendix E Heat Input from Gas records linked to the current test,

Locate a Production Monitor System record for the location and Systemldentifier.

If the SystemTypeCode in the retrieved Monitor System record is not equal to "GAS",
return result A.

For each unique Systemldentifier in the Workspace Appendix E Heat Input from Oil records linked to the current test,

Locate a Production Monitor System record for the location and Systemldentifier.

If the SystemTypeCode in the retrieved Monitor System record is not equal to "OILV" or "OILM",
return result B.

Results:

Result	Response	Severity

A	You have reported at least one Appendix Heat Input from Gas record for Location	Critical Error Level 1

[LocationID], TestTypeCode [TestTypeCode] and Test Number [TestNumber], which is
not associated with a GAS fuel flow system. This Appendix E test was not imported.

B	You have reported at least one Appendix Heat Input from Oil record for Location	Critical Error Level 1

[LocationID], TestTypeCode [TestTypeCode] and Test Number [TestNumber], which is
not associated with an OILV or OILM fuel flow system. This Appendix E test was not
imported.

Usage:

1	Process/Category:	QA and Certification Data Import QA and Certification Test Data Integrity

Environmental Protection Agency

Page 41 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	IMPORT-37

Check Name:	Inappropriate Test End Date

Related Former Checks:

Applicability:	Import Check

Description:

Specifications:

For the current WorkspaceTest Summary record:

If the EndDate is not null,

If the EndDate less than 1/1/1993 or greater than the current date,
return result A.

Results:

Result	Response	Severity

A	You reported an invalid EndDate in the Test Summary record for Location	Critical Error Level 1

[LocationID], TestTypeCode [TestTypeCode] and Test Number [TestNumber], The
test was not imported.

Usage:

1	Process/Category:	QA and Certification Data Import QA and Certification Test Data Integrity

Environmental Protection Agency

Page 42 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Category:

LME

Environmental Protection Agency

Page 43 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	LME-1

Check Name:	LME Facility and Units Present in the Production Facility Table

Related Former Checks:

Applicability:	LME Check

Description:

Specifications:

For the current LME Import File:

Set LME Facility ID to null.

Count the number of ORIS Codes in the file.

If Count o 1

return result A.

If Count = 1,

Set LME ORIS Code to the ORIS Code.

Locate the ORIS Code in the production Facility table.

If not found,

return result B.

Otherwise,

Locate a Production Unit record for all locations in the file.

If not found for any location,
return result C.

Otherwise,

set LME Facility ID to the FacilitylD in the facility record.

Results:

Result	Response Severity

A	You have reported more than one ORIS Code in the file. The file was not imported. Fatal

B	ORIS Code [ORIS] does not exist in the ECMPS database. The file was not imported. Fatal

C	One or more units in the file for ORIS Code [ORIS] does not exist in the ECMPS Fatal
database. The file was not imported.

Usage:

1	Process/Category: LME Hourly Data Import LME Emissions Data Integrity

Environmental Protection Agency

Page 44 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	LME-2

Check Name:	LME File Configuration Valid

Related Former Checks:

Applicability:	LME Check

Description:

Specifications:

For the current LME Import file:

If the LME Facility ID is not null,

If the BeginDate of any record in the file is not a valid date,
return result A.

Otherwise,

Locate the earliest and latest BeginDate in the file.

If the earliest and latest BeginDate are not in the same reporting period,
return result B.

Otherwise,

Locate a MonitorMethod record for any unit in the file where the ParameterCode is equal to "S02M",
"NOXM", or "C02M", and the MethodCode is equal "LME", the BeginDate is on or before the earliest
BeginDate in the file, and EndDate is null or is on or after the latest EndDate in the file.

If not found,

return result C.

Otherwise,

Set LME Reporting Period ID to the ReportingPeriodID of the reporting period determined
above.

Locate a Production MonitorPlan record where the FacilitylD is equal to the LME Facility ID,
the BeginReportingPeriod is on or before the reporting period determined above, and
EndReportingPeriod is null or is on or after the reporting period determined above, and which is
linked to MonitorPlanLocation records containing all of the units in the file (but may also be
linked to other units not in the file and one or more common pipes).

If not found,

return result D.

Otherwise,

set LME MP ID to the MonitoringPlanID in the retrieved record.

Environmental Protection Agency

Page 45 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Results:

Result	Response	Severity

A	One or more dates in the file was not a valid date. The file was not imported.	Fatal

B	One or more dates in the file are not in the same reporting quarter as the other dates in	Fatal

the file. The file was not imported.

C	There are no LME method records in the monitoring plan for the units in the file. The	Fatal

file was not imported.

D	The units in the file do not belong to the same monitoring configuration during the	Fatal

reporting period. The file was not imported.

Usage:

1	Process/Category:	LME Hourly Data Import LME Emissions Data Integrity

Environmental Protection Agency

Page 46 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	LME-4

Check Name:	Check LME Import Begin Hour

Related Former Checks:

Applicability:	LME Check

Description:

Specifications:

For each LME Hourly record:

If BeginHour is null or is not a numeric value between 0 and 23 (inclusive),
return result A.

Results:

Result	Response	Severity

A	The Hour [hour] reported in the record for Unit [ID] on Date [date] is invalid. The	Critical Error Level 1

record was not imported.

Usage:

1	Process/Category:	LME Hourly Data Import LME Hourly Data Integrity

Environmental Protection Agency

Page 47 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	LME-5

Check Name:	Check LME Import Op Time

Related Former Checks:

Applicability:	LME Check

Description:

Specifications:

For each LME Hourly record:

If OpTime is not null and is not a numeric value between 0.00 and 1.00 inclusive,
return result A.

Results:

Result	Response	Severity

A	The [field] [value] reported in the record for Unit [ID] on Date [date] Hour [hour] is	Non-Critical Error

invalid. The value in this field was not imported.

Usage:

1	Process/Category:	LME Hourly Data Import LME Hourly Data Integrity

Environmental Protection Agency

Page 48 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	LME-6

Check Name:	Check LME Import Load Value

Related Former Checks:

Applicability:	LME Check

Description:

Specifications:

For each LME Hourly record:

If LoadValue is not null and is not an integer value greater than or equal to 0,
return result A.

Results:

Result	Response	Severity

A	The [field] [value] reported in the record for Unit [ID] on Date [date] Hour [hour] is	Non-Critical Error

invalid. The value in this field was not imported.

Usage:

1	Process/Category:	LME Hourly Data Import LME Hourly Data Integrity

Environmental Protection Agency

Page 49 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

LME-7

Check Name:

Check LME Import Load UOM

Related Former Checks:

Applicability:

LME Check

Description:

Specifications:

For each LME Hourly record:

If LoadUOMCode is not null and is not equal to "MW", "KLBHR", or "MMBTUHR",
return result A.

Results:

Result
A

Response

The [field] [value] reported in the record for Unit [ID] on Date [date] Hour [hour] is
invalid. The value in this field was not imported.

Severity

Non-Critical Error

Usage:
1

Process/Category:	LME Hourly Data Import LME Hourly Data Integrity

Environmental Protection Agency

Page 50 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

LME-8

Check Name:

Check LME Import Fuel Code List

Related Former Checks:

Applicability:

LME Check

Description:

Validation Tables:

Fuel Code (Lookup Table)

Specifications:

For each LME Hourly record:

For each item in the FuelCodeList (delimited by semi-colon):

Lookup item in the FuelCode table.

If not found, or if the FuelGroup is not equal to "OIL" or "GAS",
return result A.

Results:

Result
A

Response

One or more fuel codes in the FuelCodeList [fuels] for Unit [ID] on Date [date] Hour
[hour] is not a valid gas or oil fuel code. The value in the FuelCodeList was not
imported.

Severity

Non-Critical Error

Usage:
1

Process/Category:	LME Hourly Data Import LME Hourly Data Integrity

Environmental Protection Agency

Page 51 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

Check Name:

Related Former Checks
Applicability:

Description:

Specifications:

For each LME Hourly record:

If the OperatingConditionCode is not null and is not equal to "C", "U", "B", or "P",
return result A.

Results:

Result	Response	Severity

A	The [field] [value] reported in the record for Unit [ID] on Date [date] Hour [hour] is	Non-Critical Error

invalid. The value in this field was not imported.

Usage:

1	Process/Category:	LME Hourly Data Import LME Hourly Data Integrity

LME-9

Check LME Import Operating Condition Code
LME Check

Environmental Protection Agency

Page 52 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:	LME-39

Check Name:	Check LME Import MHHI Indicator

Related Former Checks:

Applicability:	LME Check

Description:

Specifications:

For each LME Hourly record:

If the MHHIIndicator is not null and is not equal to "Y",
return result A.

Results:

Result	Response	Severity

A	The [field] [value] reported in the record for Unit [ID] on Date [date] Hour [hour] is	Non-Critical Error

invalid. The value in this field was not imported.

Usage:

1	Process/Category:	LME Hourly Data Import LME Hourly Data Integrity

Environmental Protection Agency

Page 53 of 54


-------
Draft ECMPS Import Check Specifications

12/10/2014 12:00:00AM

Check Code:

LME-46

Check Name:

Duplicate LME Import Hourly Op Record

Related Former Checks:

Applicability:

Description:

Specifications:

Set LME Duplicate Hourly Op Import List to null.

If LME Duplicate Hourly Op Import Records contains one or more rows,
For each record in LME Duplicate Hourly Op Import Records

Append the record's LocationName, BeginDate and BeginHour to LME Duplicate Hourly Op Import List.

return result A.

Results:

Result
A

Response

You have reported more than one hourly record for the same unit and hour. There
should only be one record per unit per hour. This file was not imported.

Severity
Fatal

Usage:
1

Process/Category:	LME Hourly Data Import LME Emissions Data Integrity

Environmental Protection Agency

Page 54 of 54


-------