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 September 13, 2017 ------- Table of Contents Import LME 45 ------- ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Category: Import Environmental Protection Agency Page 1 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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: All Units and Stacks for which emissions are reported in the file must be present in the Production database. 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, Long Term Flow Fuel, Sorbent Trap, and Weekly Test Summary 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 Stack Names and no other UnitlDs and Stack Names. If not found, Set Invalid Import Location to the list of UnitlDs and Stack Names, 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 Response Severity A There are no emissions data in the file. The file was not imported. Fatal B The Client Tool database does not contain a monitoring plan that contains the Fatal following list of locations: [invalid]. The file was not imported. C The following stacks or pipes were misidentified as a unit: [invalid]. The file was not Fatal imported. Usage: 1 Process/Category: Emissions Data Import Hourly Emissions Data Integrity Environmental Protection Agency Page 2 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-23 Check Name: Related Former Checks: Emission File Dates Valid Applicability: Description: Import Check This check is to make sure that the emissions dates reported are valid. Specifications: For the current Workspace Emission File record: Locate the earliest Date in the Workspace Daily Emission, Daily Test Summary, Hourly Operating, Sorbent Trap, and Weekly Test Summary tables. If the Date is not within the Year + Quarter in the current record, return result A. Locate the latest Date in the Workspace Daily Emission, Daily Test Summary, Hourly Operating, Sorbent Trap, and Weekly Test Summary tables. If the Date is not within the Year + Quarter in the current record, return result A. Results: Result A Response You have reported a date in a Daily Summary, Daily Test 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 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Name: Related Former Checks: Check Code: IMPORT-25 EM Facility Present in the Production Facility Table Applicability: Description: Import Check Facility (ORIS Code) must be present in the Production facility table Specifications: For the current Workspace Emission File record: Locate a Production Facility record where the ORISCODE is equal to the ORISCODE in the current record: If not found, return result A. Results: Result A Response The Client Tool database does not contain ORIS Code [ORIS Code]. This file was not Fatal imported. Severity Usage: 1 Process/Category: Emissions Data Import Hourly Emissions Data Integrity Environmental Protection Agency Page 4 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-26 Check Name: Related Former Checks: All EM Systems Present in the Production Database Applicability: Description: Specifications: Import Check All EM Systems in the file must be present in the Production database. For each UnitID and Stack Name in the Workspace Daily Emission, Summary Value, Daily Test Summary, Hourly Operating, Long Term Flow Fuel, Sorbent Trap, and Weekly Test Summary tables. Locate all Systemldentifiers for that location in the Workspace Monitor Hourly Value, Derived Hourly Value, Hourly Fuel Flow, Hourly Parameter Fuel Flow, MATS Monitor Hourly Value, Sorbent Trap and Weekly Test Summary tables. Set Missing EM Systems to null. For each Systemldentifier: Locate a Production MonitoringSystem record for the location and Systemldentifier. If not found, add the Locationldentifier + Systemldentifier to Missing EM Systems. 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 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 Environmental Protection Agency Page 5 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Usage: 1 Process/Category: Emissions Data Import Hourly Emissions Location Data Integrity Environmental Protection Agency Page 6 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-27 Check Name: All EM Components Present in the Production Database Related Former Checks: Applicability: Import Check Description: All EM Components in the file must be present in the Production database. Specifications: For each UnitID and Stack Name in the Workspace Daily Summary, Summary Value, Daily Test Summary, Hourly Operating, Long Term Flow Fuel, Sorbent Trap, and Weekly Test Summary tables. Locate all Componentldentifiers for that location in the Workspace Monitor Hourly Value, Daily Test Summary, MATS Monitor Hourly Value, Sampling Train and Hourly Gas Flow Meter 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 Fatal imported. Usage: 1 Process/Category: Emissions Data Import Hourly Emissions Location Data Integrity Environmental Protection Agency Page 7 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-28 Check Name: All EM Formulas Present in the Production Database Related Former Checks: Applicability: Import Check Description: All EM Formulas in the file must be present in the Production database. Specifications: For each UnitID and Stack Name in the Workspace Daily Summary, Summary Value, Daily Test Summary, Hourly Operating, Long Term Flow Fuel, Sorbent Trap, and Weekly Test Summary tables. Locate all Formulaldentifiers for that location in the Workspace Derived Hourly Value, Hourly Parameter Fuel Flow, and MATS Derived Hourly Value 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 8 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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: Severity Critical Error Level 1 Usage: 1 Process/Category: Emissions Data Import Hourly Emissions Test Data Integrity Result Response A You have reported a Daily Calibration record linked to a test for which the Test 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. Environmental Protection Agency Page 9 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-38 Check Name: Inappropriate Children Records for Weekly Test Summary Related Former Checks: Applicability: Description: Ensures that each Weekly Test Summary records do not have inapproriate children for the type of the test. Specifications: For the current Workspace Weekly Test Summary record: If the TestTypeCode is not equal to "HGSI1", Locate a Workspace Weekly System Integrity record linked to the current record. If found, return result A. Results: Result Response Severity A You have reported WeeklySystemlntegrity records for a Weekly Test Summary Record Fatal with a Test Type Code of [TestTypeCode]. This file was not imported. Usage: 1 Process/Category: Emissions Data Import Hourly Emissions Weekly Test Data Integrity Environmental Protection Agency Page 10 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Name: Related Former Checks: Check Code: IMPORT-1 MP Facility Present in the Production Facility Table Applicability: Description: Import Check Facility (ORIS Code) must be present in the Production facility table Specifications: For the current Workspace MonitoringPlan record: Locate a Production Facility record where the ORISCODE is equal to the ORISCODE 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 11 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-2 Check Name: Related Former Checks: Unit Present in the Production Unit Table Applicability: Description: Import Check Unit (ORIS Code + Unit ID) in the file must be present in the Production Unit table. Specifications: For the current Workspace Unit Record: Locate a Production Unit record where the ORISCODE + UNITID is equal to the ORISCODE + UNITID in the current record. If not found, return result A. Results: Result A Response The Client Tool database does not contain unit/stack/pipe [Unit ID] for ORIS Code [ORIS Code]. This file was not imported. Severity Fatal Usage: 1 Process/Category: Monitoring Plan Import Monitoring Plan Unit Data Integrity Environmental Protection Agency Page 12 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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: Stack/pipe in the file must be associated (via a unit stack configuration record) with at least one unit that is also present in the file. Specifications: For the current Workspace Stack record: Locate a Workspace Unit Stack Configuration record where the STACK NAME is equal to the STACK NAME 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 Fatal ID] 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 13 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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: If the file contains more than one unit, unit in the file must be associated (via a unit stack configuration record) with at least one stack/pipe that is also present in the file. 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 14 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-5 Check Name: System Type Consistency Check Related Former Checks: Applicability: Import Check Description: Each system (ORIS Code + UnitStackPipe ID + Monitoring System ID) in the file that is also is the Production system table must have the same System Type (e.g., S02). 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 15 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-6 Check Name: Related Former Checks: Component Type and Basis Consistency Check Applicability: Description: Import Check Each component (ORIS Code + UnitStackPipe ID + Component ID) in the file that is also is the Production component table must have the same Component Type (e.g., S02). 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 A Response The component type [Component Type] for ComponentID [Component ID] in UnitStackPipelD [Unit ID] [Stack ID] does not match the component type in the Client Tool database. This record was not imported. The moisture basis [Basis Type] for ComponentID [Component ID] in UnitStackPipelD [Unit ID] [Stack ID] does not match the component type in the Client Tool database. This record was not imported. Severity Critical Error Level 1 B Critical Error Level 1 Usage: 1 Process/Category: Monitoring Plan Import Monitoring Plan Component Data Integrity Environmental Protection Agency Page 16 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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: Each component in the system component table must be a component in the component table. 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 Severity A The XML file does not contain a Component record for [ComponentID]. The System Critical Error Level 1 Component record containing this Component ID was not imported. Usage: 1 Process/Category: Monitoring Plan Import Monitoring Plan System Component Data Integrity Environmental Protection Agency Page 17 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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: Stack/pipe and Unit in unit stack configuration record must be linked to unit and stack/pipe record that are also present in the file. Specifications: For the current Workspace Unit Stack Configuration record: Locate a Workspace Stack record where the STACK NAME is equal to the STACK NAME 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 Response A 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. B 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. Usage: 1 Process/Category: Monitoring Plan Import Monitoring Plan Unit Stack Configuration Data Integrity Severity Critical Error Level 1 Critical Error Level 1 Environmental Protection Agency Page 18 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-9 Check Name: Formula Parameter and Code Consistency Check Related Former Checks: Applicability: Import Check Description: Each formula (ORIS Code + UnitStackPipe ID + Formula ID) in the file that is also is the Production system table must have the same ParameterCode and FormulaCode. 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 19 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-10 Check Name: Related Former Checks: Extraneous Span Data Check Applicability: Description: Import Check This check is to identify extraneous values in the span record. 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 20 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-11 Check Name: Extraneous LME Data Check Related Former Checks: Applicability: Import Check Description: This check is to identify extraneous values in the MonitorQualLME record. 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 21 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-12 Check Name: Inappropriate Children Records for Monitor Qualification Related Former Checks: Applicability: Import Check Description: This check is to identify inappropriate children records reported for Monitor Qualification. 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: Result Response Severity A You have reported a MonitorQualPercent record for a location with the Qualification Fatal 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 Fatal 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 22 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-31 Check Name: Inappropriate System Fuelflow for System Related Former Checks: Applicability: Import Check Description: This check is to identify situations where a System FuelFlow record has been reported for a non-fuel flow system. 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 Response Severity A You have reported a System Fuel Flow record for a system that is not a fuel flow Critical Error Level 1 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. Usage: 1 Process/Category: Monitoring Plan Import Monitoring Plan System Fuelflow Data Integrity Environmental Protection Agency Page 23 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-32 Check Name: Related Former Checks: Inappropriate Analyzer Range for Component Applicability: Description: Import Check This check is to identify situations where an Analyzer Range record has been reported for an inappropriate ComponentTypeCode. 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 24 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-36 Check Name: Inappropriate Calibration Standard for Component Related Former Checks: Applicability: Import Check Description: This check is to identify situations where an Calibration Standard record has been reported for an inappropriate ComponentTypeCode. 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 Response Severity A You have reported a CalibrationStandardData record for a component with an Critical Error Level 1 inappropriate ComponentTypeCode. This record was not imported. Usage: 1 Process/Category: Monitoring Plan Import Monitoring Plan Calibration Standard Data Integrity Environmental Protection Agency Page 25 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-13 Check Name: Related Former Checks: All Locations Present in the Production Database Applicability: Description: Import Check All Units and Stacks in the file must be present in the Production database. 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, 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. return result A. Otherwise, Results: Result A 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 B Fatal C Fatal Usage: 1 Process/Category: QA and Certification Data Import QA and Certification Location Data Integrity Environmental Protection Agency Page 26 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-14 Check Name: All QA Systems Present in the Production Database Related Former Checks: Applicability: Import Check Description: All QA Systems in the file must be present in the Production database. Specifications: For each UnitID and Stack Name 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 Response Severity A The Client Tool database does not contain [SystemID]. 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 27 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-15 Check Name: All QA Components Present in the Production Database Related Former Checks: Applicability: Import Check Description: All QA Components in the file must be present in the Production database. Specifications: For each UnitID and Stack Name 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 Fatal imported. Usage: 1 Process/Category: QA and Certification Data Import QA and Certification Location Data Integrity Environmental Protection Agency Page 28 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-16 Check Name: Inappropriate Children Records for Test Summary Related Former Checks: Applicability: Import Check Description: This check is to identify inappropriate children records reported for Test Summary. 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, Environmental Protection Agency Page 29 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM add "Flow to Load Check" to Inappropriate QA Children. 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. Environmental Protection Agency Page 30 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM If the TestTypeCode is not equal to "RATA", "LINE", "UNITDEF", or "APPE" 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 Response Severity A You have reported [Inappropriate Children] records for a Test Summary Record with a Fatal Test Type Code of [TestTypeCode]. This file was not imported. Usage: 1 Process/Category: QA and Certification Data Import QA and Certification Test Data Integrity Environmental Protection Agency Page 31 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-17 Check Name: Related Former Checks: Extraneous Test Summary Data Check Applicability: Description: Import Check This check is to identify extraneous values in the Test Summary record. 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 "UNITDEF", 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. Environmental Protection Agency Page 32 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM If Quarter is not null, add "Quarter" to Extraneous Test Summary Fields. 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 33 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-18 Check Name: Test Summary System and Component Check Related Former Checks: Applicability: Import Check Description: This check is to ensure that the appropriate monitoring plan records have been reported for the tests reported. 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, return result C. Otherwise, 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", "NOX1, "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. Environmental Protection Agency Page 34 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM If TestTypeCode is equal to "F2LCHK" or "F2LREF", If SystemTypeCode in the Production Monitor System record is not equal to "FLOW", 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 A B C 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 Test Number [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 Test Number [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 Test Number [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 Test Number [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 Test Number [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 35 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-19 Check Name: Inappropriate Children Record for RATA Related Former Checks: Applicability: Import Check Description: This check is to identify inappropriate children records reported for a RATA Test. 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 Response Severity A You have reported a FlowRATARunRecord for UnitStackPipelD [LocationID], Critical Error Level 1 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. Usage: 1 Process/Category: QA and Certification Data Import QA and Certification Test Data Integrity Environmental Protection Agency Page 36 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-20 Check Name: Duplicate Test Check Related Former Checks: Applicability: Import Check Description: This check is to identify duplicate tests reported by Location ID, TestTypeCode and TestNumber. 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 Test Number [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 37 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-21 Check Name: Duplicate Test Number Check Related Former Checks: Applicability: Import Check Description: This check is to identify duplicate checks by Test Number containing different data than in the Test in the file to be imported. 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 found, 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. If not found, 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, set Mismatched Test Fields to the unequal fields in the record, and return result A. Results: Result Response Severity A The Client Tool database contains another Test Summary Record for Location Critical Error Level 1 [LocationID], TestTypeCode [TestTypeCode] and Test Number [TestNumber], However, the value reported for [fieldname] is different between the two tests. This Test was not imported. Usage: 1 Process/Category: QA and Certification Data Import QA and Certification Test Data Integrity Environmental Protection Agency Page 38 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-24 Check Name: QA Facility Present in the Production Facility Table Related Former Checks: Applicability: Import Check Description: Facility (ORIS Code) must be present in the Production facility table. Specifications: For the current Workspace QualityAssuranceAndCert File record: Locate a Production Facility record where the ORISCODE is equal to the ORISCODE 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 39 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-30 Check Name: Extraneous RATA Summary Data Check Related Former Checks: Applicability: Import Check Description: This check is to identify extraneous values in the RATA Summary record. Specifications: For the current Workspace RATA Summary record: If C020r02ReferenceMethodCode is not null, or StackDiameter is not null, or StackArea is not null, or NumberOITraversePoints 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. If NumberOITraversePoints is not null, add "NumberOITraversePoints" to Extraneous RATA Summary Fields. If CalculatedWAF is not null, add "CalculatedWAF" to Extraneous RATA Summary Fields. If Default WAF 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 Non-Critical Error for 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 40 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-33 Check Name: Inappropriate Test Type For Location Related Former Checks: Applicability: Import Check Description: This check determines if test type was reported for the appropriate location type. 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", "PEI", 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 41 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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: Severity Critical Error Level 1 Usage: 1 Process/Category: QA and Certification Data Import QA and Certification Test Data Integrity 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. Environmental Protection Agency Page 42 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: IMPORT-35 Check Name: Inappropriate Children Records for Appendix E Related Former Checks: Applicability: Import Check Description: This check is to identify inappropriate children records reported for an Appendix ETest. 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 43 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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 44 of 56 ------- Draft ECMPS Import Check Specifications Check Category: LME 9/13/2017 12:00:00AM Environmental Protection Agency Page 45 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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: Facility (ORIS Code) must be present in the Production facility table Specifications: For the current LME Import File: Set LME Facility ID to null. Count the number of ORIS Codes in the file. If Count <> 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 Facility ID 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 46 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: LME-2 Check Name: Related Former Checks: LME File Configuration Valid Applicability: Description: Specifications: LME Check This check is to make sure that the emissions dates reported are valid. 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, Locate a MonitorMethod record for any unit in the file where the ParameterCode is equal to "S02M", "NOXM1, 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. Set LME Reporting Period ID to the ReportingPeriodID of the reporting period determined above. Locate a Production MonitorPlan record where the Facility ID 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. return result B. Otherwise, Otherwise, Otherwise, set LME MP ID to the MonitoringPlanID in the retrieved record. Environmental Protection Agency Page 47 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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 48 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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. Severity Critical Error Level 1 Results: Result Response A The Hour [hour] reported in the record for Unit [ID] on Date [date] is invalid. The record was not imported. Usage: 1 Process/Category: LME Hourly Data Import LME Hourly Data Integrity Environmental Protection Agency Page 49 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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 50 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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 51 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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 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 52 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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 53 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: LME-9 Check Name: Check LME Import Operating Condition Code Related Former Checks: Applicability: LME Check 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. Severity Non-Critical Error Results: Result Response A 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. Usage: 1 Process/Category: LME Hourly Data Import LME Hourly Data Integrity Environmental Protection Agency Page 54 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 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 55 of 56 ------- Draft ECMPS Import Check Specifications 9/13/2017 12:00:00AM Check Code: LME-46 Check Name: Duplicate LME Import Hourly Op Record Related Former Checks: Applicability: Description: Checks the LME Hourly Op import rows to determine whether duplicate rows exist. Specifications: Set LME Dupli ate Hourly Op Import List to null. If LME Dupli ate Hourly Op Import Re ords contains one or more rows, For each record in LME Dupli ate Hourly Op Import Re ords Append the record's LocationName, BeginDate and BeginHour to LME Dupli ate Hourly Op Import List. return result A. Results: Result Response Severity A You have reported more than one hourly record for the same unit and hour. There Fatal should only be one record per unit per hour. This file was not imported. Usage: 1 Process/Category: LME Hourly Data Import LME Emissions Data Integrity Environmental Protection Agency Page 56 of 56 ------- |