FLAT FILE GENERATION METHODOLOGY

Version: EPA Base Case v.5.14

July, 2015

Content

SECTION I: INTRODUCTION

SECTION II: DATA SOURCES AND DESCRIPTIONS

SECTION III: DETAILED DATA PROCESSING

SECTION IV: FLAT FILE LAYOUT

Appendix A: Default Values

Appendix B: Temporal allocation of IPM emissions to hourly emissions for use in air quality modeling

Attachment: Flat File Inputs 
2

SECTION I: INTRODUCTION

This document provides the flat file generation methodology for EPA Base Case v.5.14. The methodology takes 

EPA Base Case v.5.14 using Integrated Planning Model (IPM®) run results (parsed outputs) and generates the 

formatted flat file that the U.S. Environmental Protection Agency (U.S. EPA) uses as input into air quality 

modeling framework. Section II provides data descriptions and sources. Section III describes data processing 

steps in detail. Section IV describes the layout of the formatted flat file.

SECTION II: DATA SOURCES AND DESCRIPTIONS

IPM run results that have been disaggregated into the unit, emission control technology and fuel type are the key 

input. These results include records of fossil-fired existing and retrofit units, along with committed and new-build 

aggregates. All fossil and biomass fired units are included in the resultant formatted flat file as needed for air 

quality modeling inputs. Other non fossil plant types that are part of the EPA Base Case v.5.14 modeled results

(nuclear, hydro, wind, solar PV, solar thermal, geothermal, landfill gas, non-fossil waste, municipal solid waste, 

fuel cell, tires and pumped storage) are not included in the flat file.

The committed and new-build aggregates are hereafter referred to as “generic” aggregates. All records contain

the following:

1. Population characteristics including state FIPS codes, county FIPS codes, recognized ORIS codes 

(<80000) and unit IDs for existing and retrofit units. Generic aggregates have state level information only.

2. Sulfur dioxide (SO2), nitrogen oxides (NOx), and particulate matter (PM) control information for existing

and retrofit units as well as generic aggregates.

3. Annual and seasonal heat input (TBtu).

4. Heat contents (MMBtu/ton, k-gallon, MMcf) and SO2 and ash contents (lb/MMBtu).

5. Annual and summer NOx emissions (MTon), annual SO2 emissions (MTon), HCL emissions (MTon), and 

mercury emissions (Ton).

Table 1 provides the rest of the input data’s descriptions, sources and file locations. The FlatFile_Inputs 

spreadsheet is included as an attachment to this documentation. The spreadsheet contains large amount of 

data including NEEDS v.5.14 plant’s state FIPS code, county FIPS code, county’s most recent 8 hour ozone 

or PM2.5 attainment/non-attainment status, ORIS code, latitude-longitude coordinates, zip code, Emission 

Inventory System (EIS) unit-specific data (unit facility name, facility code, boiler ID, tribal code, reg code, 

NAICS, longitude, latitude, facility ID, unit ID, rel point ID, process ID, agency facility ID, agency unit ID, 

agency rel point ID, agency process ID, stack height, stack diameter, stack temperature, stack flow, and stack 

velocity), filterable PM10 and filterable PM2.5 control efficiencies and sulfur and ash contents by ORIS code. 

Table 1. Input Data Descriptions, Sources and Locations

No. Input Description Source Location

1 EIS This file contains Emission Inventory System (EIS) 

unit-specific data that include unit facility name, 

facility code, boiler ID, tribal code, reg code, NAICS, 

longitude, latitude, facility ID, unit ID, rel point ID, 

process ID, agency facility ID, agency unit ID, 

agency rel point ID, agency process ID, stack 

height, stack diameter, stack temperature, stack 

flow, and stack velocity.

EPA FlatFile_Input

s.xls

2 GenericUnitSite This file contains all existing plants that serve as 

sister plants in siting generic units. The data include 

NEEDS v.5.14 plant’s state FIPS code, county FIPS 

code, county’s most recent 8 hour ozone or PM2.5

attainment/non-attainment status, ORIS code, 

latitude-longitude coordinates, and zip code.

EPA FlatFile_Input

s.xls
3

No. Input Description Source Location

3 LatLonDefault This file contains latitude-longitude coordinates by 

ORIS code, state FIPS code and county FIPS code.

EPA FlatFile_Input

s.xls

4 SCC This file contains Source Classification Codes 

(SCCs) by plant type, fuel type, coal rank, firing and 

bottom type (for boilers).

EPA Table 6

5 PlantTypeStackPara

meters

This file contains default stack parameters (height, 

diameter, temperature and velocity) by plant type.

EPA Table 7

6 SCCDefaultStackPar

ameters

This file contains default stack parameters (height, 

diameter, temperature and velocity) by SCC.

EPA Table 8

7 ControlDevices This file contains post-combustion control devices 

and their associated control IDs.

EPA Table 9

8 SCCDefaultHeatCont

ent

This file contains default heat contents by SCC. EPA Table 10

9 SCCEmsFac This file contains emission factors for carbon 

monoxide (CO), volatile organic compounds (VOC), 

ammonia (NH3), filterable particulate matter less 

than or equal to 10 microns (filterable PM10), 

filterable particulate matter less than or equal to 2.5 

microns (filterable PM2.5), primary PM10 and primary 

PM2.5 by SCC.

EPA Table 11

10 PMSulfurAshContent

Default

This file contains default filterable PM10 and 

filterable PM2.5 control efficiencies and sulfur and 

ash contents by plant type and fuel type and coal 

rank.

EPA Table 12

11 PMCDEmsFac This file contains PM condensable emission factors 

by SCC.

EPA Table 13

12 PMAdjustmentRatio This file contains primary PM10 and primary PM2.5

emission factors (EF) by SCC for gas-fired units

(including IGCC).

EPA Table 14

13 PMSulfurAshContent This file contains filterable PM10 and filterable PM2.5

control efficiencies and sulfur and ash contents by 

ORIS code, unit ID, plant type and fuel type. The 

filterable PM10 and filterable PM2.5 control 

efficiencies are based on 2001 data.

EPA FlatFile_Input

s.xls
4

SECTION III: DETAILED DATA PROCESSING

Flow Chart 1 describes general data processing steps. A more detailed description of each step is provided in the 

subsections followed.

Flow Chart 1. Data Processing Steps

I. II. Assign existing and retrofit units’ SCCs, 

state FIPS codes, county FIPS codes, and 

other EIS unit-specific data that are required 

for construction of the flat file.

I. Disaggregate generic aggregates into generic 

units, site the generic units’ states and counties 

and assign them SCCs, ORIS codes, facility 

IDs, unit IDs, rel point IDs, and process IDs.

V. Calculate CO, NOx, VOC, SO2, NH3, 

primary PM10, primary PM2.5, Mercury (Hg), 

and HCl emissions for all records.

III. Assign stack parameters and latitudelongitude/county centroid coordinates for all records.

IV. Assign post-combustion control device IDs 

for all records.
5

Generic unit data are prepared by transforming the generic aggregates into units similar to existing units in terms 

of the available data. First, the generic aggregates are disaggregated to create generic units. Second, the 

generic units are then sited and given state, county and county-centroid based latitude-longitude coordinates. 

Third, the generic units are assigned SCCs, ORIS codes, facility IDs, unit IDs, rel point IDs and process IDs. This 

process is performed in three steps as described in Flow Chart 2.

Flow Chart 2. Generic Unit Processing

1. Create generic units: Generic aggregates are first disaggregated to create generic units. The process entails

two steps: i. The generic aggregates are first aggregated by state, plant type and, for coal steam and IGCC, and 

coal rank. ii. They are then split into smaller generic units by dividing the aggregated capacity by a reference 

capacity. The result is the number of generic units to be created in a given state for each plant type and fuel type. 

The reference capacity is varied by plant type as shown in Table 2. Aggregated heat input and emissions are then 

divided evenly among all generic units created in a given state for each plant type.

Table 2. Generic Unit Reference Capacity

Plant Type Reference Capacity (MW)

Biomass 600

Coal Steam 600

Combined Cycle 250

Combustion Turbine 160

Fossil Waste 030

IGCC 550

Oil/Gas Steam 100

2. Site generic units: The generic units are then given a state FIPS code, county FIPS code and latitudelongitude/county centroid based on an algorithm that sites generic units in counties within their respective states. 

The generic unit siting data file, GenericUnitSite, is used in this algorithm to assign each generic unit a sister plant 

that is in a county based on the county’s attainment/non-attainment status. Within a state the hierarchy for 

assignment of sister plants in the order of county code then ORIS code is shown in Flow Chart 3. All generic 

units are sited so that their ORIS codes are unique, and the same ORIS code has the same county, latitudelongitude/county centroid across all runs of the same base case origin.

1. Create generic units

2. Site generic units

3. Assign generic units SCCs, ORIS codes, 

facility IDs, unit IDs, rel point IDs, and 

process IDs.

I. Disaggregate generic aggregates into generic units, site the generic units’ states and counties 

and assign them SCCs, ORIS codes, facility IDs, unit IDs, rel point IDs, and process IDs.
6

Flow Chart 3. Generic Unit Siting Hierarchy

3. Assign generic units SCCs, ORIS codes, facility IDs, unit IDs, rel point IDs and process IDs. 

i. SCC assignment is based on unit’s plant type, fuel type and coal rank as shown in Table 3.

ii. Generic unit’s ORIS code consists of a six-digit number. The units are first sorted by plant type in the 

order of combined cycle, fossil waste, combustion turbine, IGCC, and coal steam. Generic units’ ORIS codes are 

then assigned. The first digit of the ORIS code represents the unit’s plant type as shown in Table 4. The next 

three digits are a counter, starting with “000” and incrementing with each generic unit created within a given state 

for each plant type. The last two digits are the state FIPS code. For example, the first combined-cycle generic 

unit sited in Arizona, which has a state FIPS code of “04”, has an ORIS code of “700104”.

iii. Generic unit’s facility ID consists of a concatenation of the word “ORIS” and the unit’s ORIS code. For 

example, the first combined-cycle generic unit in Arizona used in the example above has a plant ID of 

“ORIS700104”.

iv. Generic unit’s unit ID consists of a concatenation of a three-letter unit ID code representing the unit’s 

plant type as shown in Table 5 and the unit’s state FIPS code. For example, the first combined-cycle generic unit 

in Arizona used in the example above has a unit ID of “ORISGCC04”.

v. Generic unit’s rel point ID is the same as the unit’s unit ID. For example, the first combined-cycle generic 

unit in Arizona in the example above has a point ID of “ORISGCC04”.

vi. Generic unit’s process ID is the same as the unit’s facility ID.

Table 3. Generic Unit SCC

Plant Type Fuel Type / Coal Rank SCC

Coal Steam Bituminous 10100202

Coal Steam Subbituminous 10100222

Coal Steam Lignite 10100301

Fossil Waste Process Gas 10100701

Biomass Biomass 10100902

Combined Cycle Natural Gas 20100201

Combined Cycle Oil 20100101

Combustion Turbine Natural Gas 20100201

Combustion Turbine Oil 20100101

IGCC Coal 20100301

IGCC Petroleum Coke 20100301

Oil/Gas Steam Natural Gas 10100601

Sister plants in attainment counties

Sister plants in PM non-attainment 

counties

Sister plants in 8-hour ozone nonattainment counties
7

Table 4. Generic Unit 1st Digit ORIS Code

Plant Type 1st Digit of the ORIS Code

Biomass 3

Coal Steam 9

Combined Cycle 7

Combustion Turbine 8

Fossil Waste 5

IGCC 6

Oil/Gas Steam 4

Table 5. Generic Unit ID Code

Plant Type Unit ID Code

Biomass GSC

Coal Steam GSC

Combined Cycle GCC

Combustion Turbine GGT

Fossil Waste GFW

IGCC IGC

Oil/Gas Steam GSC

1. Assign existing and retrofit units’ SCCs. SCC, or Source Classification Code, describes a generating unit's 

characteristics. The assignment of SCC for existing and retrofit units is based on a unit’s configuration that 

includes plant type, fuel type, and, if it’s a boiler, firing and bottom type. The SCC is an eight-digit numeric 

code with specific meaning (starting at the left) in the first, third, and fifth through eighth digits. For the flat

file, the first digit of the SCC represents the type of unit (boiler [=1] or turbine [=2]). The third digit of the SCC 

represents the economic sector of the unit (electric power sector=1). And the fifth through eighth digits of the 

SCC represent the unit's attributes including fuel type and, if a boiler, bottom and firing type. The second 

and fourth digits are zero. Table 6 displays the SCCs.

2. Assign existing and retrofit units’ state FIPS codes, county FIPS codes, facility IDs, rel point IDs and process 

IDs. The units’ state FIPS codes, county FIPS codes, facility IDs, rel point IDs, and process IDs are 

assigned from the EIS unit-specific data file, EIS. Where the EIS provides no data, default values are used. 

Appendix A describes the default values in detail.

Table 6. SCC Assignment for Existing and Retrofit Units

Plant Type Boiler / Generator Fuel Type / Coal Rank Firing Bottom SCC

Coal Steam Boiler/Generator Bituminous Wet 10100201

Coal Steam Boiler/Generator Bituminous Vertical Wet 10100201

Coal Steam Boiler/Generator Bituminous Wall Wet 10100201

Coal Steam Boiler/Generator Bituminous Vertical Dry 10100202

Coal Steam Boiler/Generator Bituminous Wall Dry 10100202

Coal Steam Boiler/Generator Bituminous Dry 10100202

Coal Steam Boiler/Generator Bituminous 10100202

Coal Steam Boiler/Generator Bituminous Wall 10100202

II. Assign existing and retrofit units’ SCCs, state FIPS codes, county FIPS codes, and other EIS

unit-specific data that are required for construction of the flat file.
8

Plant Type Boiler / Generator Fuel Type / Coal Rank Firing Bottom SCC

Coal Steam Boiler/Generator Bituminous Vertical 10100202

Coal Steam Bituminous Turbo 10100202

Coal Steam Boiler/Generator Bituminous Cyclone Wet 10100203

Coal Steam Boiler/Generator Bituminous Cyclone Dry 10100203

Coal Steam Boiler/Generator Bituminous Cyclone 10100203

Coal Steam Boiler/Generator Bituminous Stoker/SPR Wet 10100204

Coal Steam Boiler/Generator Bituminous Stoker/SPR 10100204

Coal Steam Boiler/Generator Bituminous Stoker/SPR Dry 10100204

Coal Steam Boiler/Generator Bituminous Tangential Wet 10100211

Coal Steam Boiler/Generator Bituminous Tangential 10100212

Coal Steam Boiler/Generator Bituminous Tangential Dry 10100212

Coal Steam Boiler/Generator Bituminous Cell Wet 10100215

Coal Steam Boiler/Generator Bituminous Cell 10100215

Coal Steam Boiler/Generator Bituminous Cell Dry 10100215

Coal Steam Boiler/Generator Bituminous FBC 10100218

Coal Steam Boiler/Generator Bituminous FBC Wet 10100218

Coal Steam Boiler/Generator Bituminous FBC Dry 10100218

Coal Steam Boiler/Generator Subbituminous Wet 10100221

Coal Steam Boiler/Generator Subbituminous Wall Wet 10100221

Coal Steam Boiler/Generator Subbituminous Vertical Wet 10100221

Coal Steam Boiler/Generator Subbituminous 10100222

Coal Steam Boiler/Generator Subbituminous Dry 10100222

Coal Steam Boiler/Generator Subbituminous Vertical Dry 10100222

Coal Steam Boiler/Generator Subbituminous Wall Dry 10100222

Coal Steam Boiler/Generator Subbituminous Wall 10100222

Coal Steam Boiler/Generator Subbituminous Cyclone Dry 10100223

Coal Steam Boiler/Generator Subbituminous Cyclone Wet 10100223

Coal Steam Boiler/Generator Subbituminous Cyclone 10100223

Coal Steam Boiler/Generator Subbituminous Stoker/SPR 10100224

Coal Steam Boiler/Generator Subbituminous Stoker/SPR Wet 10100224

Coal Steam Boiler/Generator Subbituminous Stoker/SPR Dry 10100224

Coal Steam Boiler/Generator Subbituminous Tangential Wet 10100226

Coal Steam Boiler/Generator Subbituminous Tangential Dry 10100226

Coal Steam Boiler/Generator Subbituminous Cell Wet 10100235

Coal Steam Boiler/Generator Subbituminous Cell Dry 10100235

Coal Steam Boiler/Generator Subbituminous Cell 10100235

Coal Steam Boiler/Generator Subbituminous FBC Dry 10100238

Coal Steam Boiler/Generator Subbituminous FBC Wet 10100238

Coal Steam Boiler/Generator Subbituminous FBC 10100238

Coal Steam Boiler/Generator Lignite Wall Dry 10100301

Coal Steam Boiler/Generator Lignite Wet 10100301

Coal Steam Boiler/Generator Lignite Tangential Wet 10100302

Coal Steam Boiler/Generator Lignite Tangential Dry 10100302
9

Plant Type Boiler / Generator Fuel Type / Coal Rank Firing Bottom SCC

Coal Steam Boiler/Generator Lignite Cyclone 10100303

Coal Steam Boiler/Generator Lignite Cyclone Wet 10100303

Coal Steam Boiler/Generator Lignite Stoker/SPR Wet 10100306

Coal Steam Boiler/Generator Lignite Stoker/SPR 10100306

Coal Steam Boiler/Generator Lignite Stoker/SPR Dry 10100306

Coal Steam Boiler/Generator Lignite FBC 10100318

Coal Steam Boiler/Generator Lignite FBC Wet 10100318

Coal Steam Boiler/Generator Lignite FBC Dry 10100318

O/G Steam Boiler/Generator Oil 10100401

O/G Steam Boiler/Generator Oil Wall Dry 10100401

O/G Steam Boiler/Generator Oil Tangential 10100404

O/G Steam Orimulsion Wall 10100409

O/G Steam Orimulsion Other 10100409

O/G Steam Boiler/Generator Natural Gas 10100601

O/G Steam Boiler/Generator Natural Gas Wall 10100601

O/G Steam Boiler/Generator Natural Gas Wall Dry 10100601

O/G Steam Natural Gas Wall Wet 10100601

O/G Steam Natural Gas Vertical Dry 10100601

O/G Steam Natural Gas Vertical 10100601

O/G Steam _ Natural Gas Cell _ 10100601

O/G Steam Natural Gas Cyclone Dry 10100601

O/G Steam Natural Gas Cyclone Wet 10100601

O/G Steam Natural Gas Cyclone 10100601

O/G Steam Natural Gas Other Dry 10100601

O/G Steam Natural Gas Tangential Dry 10100604

O/G Steam Natural Gas Tangential Wet 10100604

O/G Steam Boiler/Generator Natural Gas Tangential 10100604

Fossil Waste Boiler Process Gas 10100701

Coal Steam Boiler/Generator Petroleum Coke Vertical Dry 10100801

Coal Steam Petroleum Coke Wall 10100801

Coal Steam Boiler/Generator Petroleum Coke 10100801

Coal Steam Boiler/Generator Petroleum Coke FBC Dry 10100818

Coal Steam Boiler/Generator Biomass 10100902

Coal Steam Boiler/Generator Waste Coal 10102001

Coal Steam Boiler/Generator Waste Coal Wall 10102001

Coal Steam Boiler/Generator Waste Coal FBC 10102018

Combined 

Cycle Generator Oil 20100101

Combustion 

Turbine Boiler/Generator Oil 20100101

Combined 

Cycle Boiler/Generator Natural Gas 20100201

Combined 

Cycle Natural Gas 20100201
10

Plant Type Boiler / Generator Fuel Type / Coal Rank Firing Bottom SCC

Combustion 

Turbine Boiler/Generator Natural Gas 20100201

Fossil Waste Generator Process Gas 20100201

IGCC Boiler/Generator 20100301

1. Assign stack parameters for all units: Existing and retrofit unit’s stack parameters are assigned based on 

the hierarchy described in Flow Chart 4. Existing and retrofit units’ stack parameters are first assigned 

based on a unit’s plant type as shown in Table 7. If Table 7 provides no plant type-based stack 

parameters, the units are assigned EIS stack parameters from the EIS. Where the EIS data file provides 

no stack parameters, the units are assigned default stack parameters based on a unit’s SCC as shown in 

Table 8. Generic units are assigned SCC-based default stack parameters. Units’ stack flows are 

assigned from the EIS data file, except for IGCC units which receive default stack flow by plant type as 

shown in Table 7. Where the EIS data file provides no stack flow data, stack flows are calculated as 

follows:

* Stack Velocity (ft/sec) 2

Stack Diameter (ft) Stack Flow(cft/sec) 3.141592 *

2





 



 =

2. Assign latitude-longitude coordinates: Latitude-longitude coordinates are assigned from the EIS data file. 

If the EIS data file provides no data, latitude-longitude/county centroid coordinates are assigned based on 

a unit’s sister ORIS code from the file “LatLonDefault.”

Flow Chart 4. Stack Parameters Assignment Hierarchy

Table 7. Plant Type-Based Stack Parameters

Plant Type Stack Height 

(ft)

Stack Diameter 

(ft)

Stack Temperature 

(degree F)

Stack Velocity 

(ft/sec)

Stack Flow 

(cft/sec)

IGCC 150 19 340 75.8 21491.48

Plant Type-Based Stack Parameters

EIS Stack Parameters

SCC-Based Default Stack Parameters

III. Assign stack parameters and latitude-longitude/county centroid coordinates for all records.
11

Table 8. SCC-Based Default Stack Parameters

SCC Stack 

Height 

(ft)

Stack 

Diameter 

(ft)

Stack 

Temperature 

(oF)

Stack 

Velocity 

(ft/sec)

10100201 603.2 19.8 281.2 076.5

10100202 509.7 14.6 226.0 062.0

10100203 491.6 16.6 278.4 080.5

10100204 225.0 00.6 067.2 002.4

10100211 490.0 17.4 280.0 076.4

10100212 445.6 17.4 275.2 077.6

10100215 509.7 14.6 226.0 062.0

10100218 399.3 10.8 245.6 040.1

10100221 983.0 22.8 350.0 110.0

10100222 468.5 16.0 254.7 065.6

10100223 446.8 15.9 308.0 093.6

10100224 255.5 10.0 251.3 015.3

10100226 495.8 18.9 259.2 091.2

10100235 468.5 16.0 254.7 065.6

10100238 600.0 22.5 315.0 078.0

10100301 427.5 22.3 232.8 074.2

10100302 483.5 21.0 229.4 092.4

10100303 462.0 21.7 271.3 072.5

10100306 300.0 07.2 441.0 067.0

10100318 326.7 12.3 326.7 074.7

10100401 252.9 10.1 258.1 042.6

10100404 322.1 14.0 301.8 062.8

10100409 252.9 10.1 258.1 042.6

10100601 263.9 10.3 236.0 046.9

10100604 308.0 15.2 275.2 066.0

10100701 239.2 09.4 238.0 042.3

10100801 371.3 05.5 122.4 020.4

10100818 399.3 10.8 245.6 040.1

10100902 303.4 03.3 137.7 016.1

10102001 509.7 14.6 226.0 062.0

10102018 399.3 10.8 245.6 040.1

20100101 057.7 09.6 655.8 064.9

20100201 062.0 10.0 585.3 061.3

20100301 150.0 19.0 340.0 075.8
12

Control IDs are assigned to reflect all post-combustion control devices installed at a unit. The control devices can 

be installed at either existing or retrofit level, or both. Table 9 lists the control devices and their associated control 

IDs.

Table 9: Post-Combustion Control Devices

Control ID Description

119 Dry FGD

139 SCR

140 SNCR or other NOx

141 Wet FGD

206 DSI

207 ACI

Emissions are calculated at three levels: annual, seasonal and monthly emissions.

1. Annual emission calculations

i. Annual NOx, SO2, mercury (Hg), and HCl emissions (tons) are taken directly from IPM run results.

ii. Annual CO, VOC and NH3 emissions (tons) are calculated by multiplying the unit’s fuel use and 

uncontrolled emission factors for CO, VOC and NH3 as follows:

Annual EmissionsPollutant (tons) =

2000 (lb ton)

Annual Fuel Use (ton,k gallon,MMcf)* Emission Factor (lb/ton,k gallon,MMcf) Pollutant

/

− −

Where:

2000 converts lb to short ton and the pollutants are CO, VOC, and NH3.

IV. Assign post-combustion control device IDs for all records.

V. Calculate CO, NOx, VOC, SO2, NH3, primary PM10, primary PM2.5, Mercury (Hg), and HCl emissions for 

all records.
13

Annual Fuel Use (ton, k − gallon, MMcf ) is calculated from IPM run results, which are in 

MMBtu of annual heat input and converted into physical units of annual fuel use as follows:

Fuel Use (ton, k − gallon, MMcf ) =

( / , , )

( )

Heat Content MMBtu ton k gallon MMcf

Heat Input MMBtu

−

Where Heat Content (MMBtu /ton, k − gallon,MMcf )is assigned using EPA Base 

Case v.5.14 assumptions for coal and petroleum coke units. All other units are assigned 

default heat contents based on the unit’s SCC as shown in Table 10.

Table 10: SCC-Based Default Heat Content

(MMBtu/ton, K-gallon, MMcft)

SCC Heat Content

10100401 0152

10100404 0152

10100409 0152

10100601 1024

10100604 1024

10100701 0671

10100902 0012

20100101 0138

20100201 1024

UncontrolledEmission Factor (lb/ton,k gallon,MMcf) Pollutant − is assigned for CO, VOC, NH3

based on a unit’s SCC as shown in Table 11.

Table 11: SCC-Based Emission Factors

(lbs/ton, k-gal, MMcft)

SCC CO 

EF

VOC 

EF

NH3 

EF

Filterable PM10 

EF

Filterable PM2.5 

EF PM Flag1

10100201 00.50 00.04 00.03 02.60 01.48 A

10100202 00.50 00.06 00.03 02.30 00.60 A

10100203 00.50 00.11 00.03 00.26 00.11 A

10100204 05.00 00.05 00.03 13.20 04.60

10100211 00.50 00.04 00.03 02.60 01.48 A

10100212 00.50 00.06 00.03 02.30 00.60 A

10100215 00.50 00.06 00.03 02.30 00.60 A

10100218 18.00 00.05 00.03 12.40 01.36

10100221 00.50 00.04 00.03 02.60 01.48 A

10100222 00.50 00.06 00.03 02.30 00.60 A

10100223 00.50 00.11 00.03 00.26 00.11 A

10100224 05.00 00.05 00.03 13.20 04.60

10100226 00.50 00.06 00.03 02.30 00.60 A

10100235 00.50 00.06 00.03 02.30 00.60 A
14

SCC CO 

EF

VOC 

EF

NH3 

EF

Filterable PM10 

EF

Filterable PM2.5 

EF PM Flag1

10100238 18.00 00.05 00.03 16.10 04.20

10100301 00.25 00.07 00.03 01.80 00.52 A

10100302 00.60 00.07 00.03 02.30 00.66 A

10100303 00.60 00.07 00.03 00.87 00.37 A

10100306 05.00 00.07 00.03 01.60 00.56 A

10100318 00.15 00.03 00.03 12.00 01.40

10100401 05.00 00.76 00.80 2 3

10100404 05.00 00.76 00.80 2 3

10100409 05.00 00.76 00.80 2 3

10100601 84.00 05.50 03.20 4 4

10100604 24.00 05.50 03.20 4 4

10100701 06.57 00.43 01.20 4 4

10100801 00.60 00.07 00.40 07.90 04.50 A

10100818 18.00 00.05 00.40 12.40 01.36

10100902 06.80 00.19 00.09 05.70 04.90

10102001 00.25 00.07 00.03 01.82 00.52 A

10102018 00.15 00.03 00.03 12.00 01.40

20100101 00.46 00.06 06.62 00.60 00.60

20100201 84.00 02.10 06.56 4 4

20100301 35.00 02.20 06.56 4 4

1 Multiply ash content % (A) by the PM EF numeric value to obtain the EF.

2 Filterable PM10 EF = 5.9 * (1.12 * S + 0.37), where S=sulfur content %.

3 Filterable PM2.5 EF = 4.3 * (1.12 * S + 0.37), where S=sulfur content %.

4 There are no EF for these SCC because of uncertainty due to an artifact of the test method used in the past. 

 PM10 and PM2.5 primary are calculated directly from their EF (see Table 13).

iii. Annual primary PM10 and PM2.5 emissions (tons) are calculated for all but gas-fired and IGCC units by 

adding the filterable PM10 and filterable PM2.5 emissions to condensable PM emissions. Filterable PM10

and PM2.5 emissions for each unit are based on historical information regarding existing emissions 

controls and types of fuel burned and ash content of the fuel burned, as well as the projected emission 

controls (e.g., scrubbers and fabric filters). Condensable PM emissions are based on plant type, sulfur 

content of the fuel, and SO2/HCl and PM control configurations. Although EPA’s analysis is based on the 

best available emission factors, these emission factors do not account for the potential changes in 

condensable PM emissions due to the installation and operation of SCRs. The formation of additional 

condensable PM (in the form of SO3 and H2SO4) in units with SCRs depends on a number of factors, 

including coal sulfur content, combustion conditions and characteristics of the catalyst used in the SCR, 

and is likely to vary widely from unit to unit. SCRs are generally designed and operated to minimize 

increases in condensable PM. This limitation means that condensable PM emissions are potentially 

underestimated for units with SCRs. In contrast, it is possible condensable PM emissions are 

overestimated in a case where the unit is combusting a low-sulfur coal in the presence of a scrubber.
15

Annual Emission (tons) = Primary PM10

( ( ) ( )) 10 Annual Emission tons Annual Emission tons Filterable PM + PM Condensable

Annual Emission (tons) = Primary PM2.5

( ( ) ( )) 2.5 Annual Emission tons Annual Emission tons Filterable PM + PM Condensable

Where:

( ) = 10 Annual Emission tons Filterable PM















 − −

2000 ( / )

( , , ) * ( / , , ) 10

lb ton

Fuel Use ton k gallon MMcf Emission Factor lb ton k gallon MMcf Filterable PM















 − 100

* 1 PM10 Filterable Control Efficiency * (Ash Content (%))

( ) = 2.5 Annual Emission tons Filterable PM















 − −

2000 ( / )

( , , ) * ( / , , ) 2.5

lb ton

Fuel Use ton k gallon MMcf Emission Factor lb ton k gallon MMcf FilterablePM















 − 100

* 1 PM 2.5 Filterable Control Efficiency * (Ash Content (%))

If ( ) 2.5 Annual Emission tons Filterable PM is greater than ( ) 10 Annual Emission tons Filterable PM ,

( ) 2.5 Annual Emission tons Filterable PM is set equal to ( ) 10 Annual Emission tons Filterable PM .

2000 ( / )

( ) * ( / )

lb ton

Annual Heat Input MMBtu Emission Factor lb MMBtu PM Condensable

Annual EmissionPM Condensable (tons) =
16

Where:

2000 converts lb to short ton and the pollutants are CO, VOC, and NH3.

PM10 Filterable Control Efficiency and PM2.5 Filterable Control Efficiency are assigned 

based on a unit’s ORIS code, unit ID, plant type and fuel type from the data file 

PMSulfurAshContent. Where PMSulfurAshContent provides no data, default values based on a 

unit’s plant type and fuel type and coal rank as shown in Table 12 are used.1

Table 12: Default PM Control Efficiencies and Sulfur and Ash Contents

Plant Type Fuel Type / 

Coal Rank

Filterable 

PM10 Control 

Efficiency (%)

Filterable 

PM2.5 Control 

Efficiency (%)

Sulfur 

Content 

(%)

Ash 

Content 

(%)

Biomass Biomass 99.2 99.2 1.67 10.8

Coal Steam Bituminous 99.2 99.2 1.67 10.8

Coal Steam Subbituminous 99.2 99.2 0.32 05.6

Coal Steam Lignite 99.2 99.2 0.87 13.9

Coal Steam Petroleum Coke 99.2 99.2 5.30 00.1

Coal Steam Waste Coal 99.2 99.2 2.38 43.7

Coal Steam Biomass 99.2 99.2 1.67 10.8

IGCC Bituminous 1.67 10.8

IGCC Subbituminous 0.32 05.6

IGCC Lignite 0.87 13.9

IGCC Petroleum Coke 5.30 00.1

O/G Steam Oil 99.2 99.2 0.89 00.0

O/G Steam Orimulsion 99.2 99.2 0.89 00.0

Combustion 

Turbine Oil 0.11 00.0

Combined Cycle Oil 0.11 00.0

( / ) ( / ) SO2 Content lb MMBtu and Ash Content lb MMBtu are assigned using EPA Base 

Case v.5.14 assumptions. The EPA Base Case v.5.14 SO2 and ash contents are in lb/MMBtu 

and converted into percentage-of-fuel sulfur and ash contents as follows:

i. Sulfur content conversion

If fuel type is coal, waste coal or petroleum coke:

Sulfur Content (%) =

*100

2 * 2000 ( / )

( / ) * ( / ) 2

lb ton

SO Content lb MMBtu Heat Content MMBtu ton

 1 For units with existing ESPs but still not able to meet their MATS filterable PM requirement, unit-specific 

filterable PM incremental reductions needed to meet the requirement are incorporated into the units’ 

PM10 Filterable Control Efficiency and PM2.5 Filterable Control Efficiency . For information on the unitspecific incremental filterable PM reductions needed and incorporated here, see Document for EPA Base Case 

v.5.14 Using Integrated Planning Model, Chapter 5, Section 5.6.1.
17

where 2000 converts lb to short ton.

If fuel type is oil:

Sulfur Content (%) =

*100

2 * 7882 ( / )

( / ) * ( / ) 2

lb k gallon

SO Content lb MMBtu Heat Content MMBtu k gallon

−

−

where 7882 converts lb to k-gallon of oil.

If fuel type is fossil waste and the unit uses process gas SCC “101007”:

 

Sulfur Content (%) =

*100

2 * 52794 ( / )

( / ) * ( / ) 2

lb MMcf

SO Content lb MMBtu Heat Content MMBtu MMcf

where 52794 converts lb to MMcf of fossil waste2. 

If fuel type is fossil waste and the unit uses natural gas SCC "201002":

Sulfur Content (%) =

*100

2 * 44000 ( / )

( / ) * ( / ) 2

lb MMcf

SO Content lb MMBtu Heat Content MMBtu MMcf

where 44000 converts lb to MMcf of natural gas.

No sulfur content conversion is performed for natural gas as the sulfur content for natural 

gas is assumed to be zero.

ii. Ash content conversion for coal

Ash Content (%) =

*100

2000

Ash Content (lb / MMBtu) * Heat Content (MMBtu / ton)

where 2000 is the number of lb per short ton.

If no sulfur and ash content assumptions from EPA Base Case v.5.14 are available, default values based 

on a unit’s ORIS code, unit ID, plant type and fuel type from the data file PMSulfurAshContent are used 

first; default values based on plant type and coal rank in Table 12 are used second. This hierarchy is 

summarized in Flow Chart 5.

 2 Fossil waste using process gas SCC is assumed to be a combination of coke-oven gas and blast-furnace gas.
18

Flow Chart 5. Sulfur and Ash Contents Assignment Hierarchy

Emission Factor (lb / MMBtu) PM Condensable is assigned for all units based on units’ 

SCCs and whether they have either an SO2 control or PM scrubber installed as shown in 

Table 13.

Table 13: SCC-Based PM Condensable Emission Factors

(lbs/MMBtu)

SCC SO2 Control1 PM Control1 PM Condensable EF2

10100201 Wet Scrubber PM Scrubber 0.0200

10100201 Dry Scrubber PM Scrubber 0.0200

10100202 Wet Scrubber PM Scrubber 0.0200

10100202 Dry Scrubber PM Scrubber 0.0200

10100203 Wet Scrubber PM Scrubber 0.0200

10100203 Dry Scrubber PM Scrubber 0.0200

10100204 0.0400

10100211 Wet Scrubber PM Scrubber 0.0200

10100211 Dry Scrubber PM Scrubber 0.0200

10100212 Wet Scrubber PM Scrubber 0.0200

10100212 Dry Scrubber PM Scrubber 0.0200

10100215 Wet Scrubber PM Scrubber 0.0200

10100215 Dry Scrubber PM Scrubber 0.0200

10100218 0.0100

10100221 Wet Scrubber PM Scrubber 0.0200

10100221 Dry Scrubber PM Scrubber 0.0200

10100222 Wet Scrubber PM Scrubber 0.0200

10100222 Dry Scrubber PM Scrubber 0.0200

10100223 Wet Scrubber PM Scrubber 0.0200

10100223 Dry Scrubber PM Scrubber 0.0200

10100224 0.0400

10100226 Wet Scrubber PM Scrubber 0.0200

10100226 Dry Scrubber PM Scrubber 0.0200

10100235 Wet Scrubber PM Scrubber 0.0200

1. EPA Base Case v.5.14 SO2 and ash content (lb/MMBtu) assumptions, 

converted into percentage-of-fuel sulfur and ash contents

2. Default percentage-of-fuel sulfur and ash contents by ORIS code, unit 

ID, plant type and fuel type

3. Default percentage-of-fuel sulfur and ash contents by plant type and 

fuel rank
19

SCC SO2 Control1 PM Control1 PM Condensable EF2

10100235 Dry Scrubber PM Scrubber 0.0200

10100238 0.0100

10100301 Wet Scrubber PM Scrubber 0.0200

10100301 Dry Scrubber PM Scrubber 0.0200

10100302 Wet Scrubber PM Scrubber 0.0200

10100302 Dry Scrubber PM Scrubber 0.0200

10100303 Wet Scrubber PM Scrubber 0.0200

10100303 Dry Scrubber PM Scrubber 0.0200

10100306 0.0400

10100318 0.0100

10100401 0.0100

10100404 0.0100

10100409 0.0100

10100801 0.0100

10100818 0.0100

10100902 0.0170

10102001 Wet Scrubber PM Scrubber 0.0200

10102001 Dry Scrubber PM Scrubber 0.0200

10102018 0.0100

20100101 0.0072

1 For the given SCC, only one of the controls need be present for the EF to be assigned.

2 For SCCs that have non-blank controls for both SO2 and PM, then EF = (0.1 * S) - 0.03, 

(where S=sulfur content %), but if the EF is less than 0.01, set it equal to 0.01. 

For the SCCs in Table 13 that have non-blank controls for both SO2 and PM, their PM condensable emission 

factor can be calculated using the equation below:

PM Condensable Emission Factor = (0.1* Sulfur Content (%))− 0.03

If the calculated value is less than the floor of 0.01 lb/MMBtu, then 0.01 is assigned as the PM condensable 

Emission Factor in place of the calculated value.

Also, units having an SO2 control are assigned the lower of the PM condensable emission factor from Table 13

and the calculated PM condensable emission factor using the above equation.

Primary PM10 and primary PM2.5 cannot be estimated for gas-fired units (including IGCCs) using the same

methodology as the other fuels since there are no accurate filterable emission factors for them. Thus, their 

emissions are estimated directly. Primary PM10 and primary PM2.5 emission factors in lb/MMBtu are assigned 

based on each unit’s SCC as shown in Table 14.
20

Table 14: Primary PM10 and Primary PM2.5 Emission Factors for Gas-Fired and IGCC Units

(lb/MMBtu)

SCC Primary PM10 EF Primary PM2.5 EF

10100601 0.532 0.440

10100604 0.532 0.440

10100701 0.043 0.035

20100201 0.317 0.195

20100301 11.263 11.263

2. Seasonal emission calculations:

Summer is considered to be the 153 days between May 1 and September 30 inclusive. Summer NOx emissions 

are taken directly from IPM run results. For all other pollutants, summer emissions are calculated by multiplying 

the annual emissions by the ratio of the summer to annual heat input.

Summer Emissions (tons) = Annual Emissions (tons) * 















Annual Heat Input MMBtu

Summer Heat Input MMBtu

(

( )

Winter is considered to be the 212 days between October 1 and April 30 inclusive that are not considered to be 

summer days. Winter emissions are calculated by subtracting the summer emissions from the annual emissions.

Winter Emissions(tons) = Annual Emissions (tons) − Summer Emissions (tons)

3. Monthly emission calculations:

Summer monthly emissions for are calculated as follows:

Summer Monthly Emissions (tons) = Number of Day in Month Summer Emissions tons *

153

( )

Winter monthly emissions are calculated as follows:

Winter Monthly Emissions (tons) = Number of Day in Month Winter Emissions tons *

212

( ) 
21

SECTION IV: FLAT FILE LAYOUT

The processed data are then converted into a flat file for U.S. EPA to use in air quality modeling work. Both 

criteria and HAP emissions are provided in the same file. The pollutants are provided in the following order: CO, 

NOx, VOC, SO2, NH3, primary PM10, primary PM2.5, Mercury (Hg), and HCl.

The file’s naming convention is as follows:

FlatFile_<ipm run alpha-numeric only>_<year4>_<date created using yyyymmdd>.txt

where:

year4 = 4-digit year of the emissions (e.g., 2030)

yyyy = 4-digit year

mm = 2-digit month number (e.g. 01 through 12)

dd = 2-digit date number (e.g., 01 through 31)

For example: 'FlatFile_EPA513_BC_7c_2018_20131108.txt’.

All data fields are comma-delimited and character data, including commas, semi-colons, and spaces, are 

enclosed in double-quotes.

The file contains the following header lines:

#FORMAT=ff10_POINT

#COUNTRY=US

#YEAR=<year of emissions>

#VALUE_UNITS=TON

#CREATION_DATE=<date created>

#CREATOR_NAME=US EPA-CAMD

#DATA_SET_ID=1,US EPA IPM

#COUNTRY_CD,REGION_CD,TRIBAL_CODE,EIS_FACILITY_ID,EIS_UNIT_ID,EIS_REL_POINT_ID,EIS_PRO

CESS_ID,AGY_FACILITY_ID,AGY_UNIT_ID,AGY_REL_POINT_ID,AGY_PROCESS_ID,SCC,POLL,ANN_VALU

E,ANN_PCT_RED,FACILITY_NAME,ERPTYPE,STKHGT,STKDIAM,STKTEMP,STKFLOW,STKVEL,NAICS,LON

GITUDE,LATITUDE,LL_DATUM,HORIZ_COLL_MTHD,DESIGN_CAPACITY,DESIGN_CAPACITY_UNITS,REG_

CODES,FAC_SOURCE_TYPE,UNIT_TYPE_CODE,CONTROL_IDS,CONTROL_MEASURES,CURRENT_COST

,CUMULATIVE_COST,PROJECTION_FACTOR,SUBMITTER_FAC_ID,CALC_METHOD,DATA_SET_ID,FACIL_

CATEGORY_CODE,ORIS_FACILITY_CODE,ORIS_BOILER_ID,IPM_YN,CALC_YEAR,DATE_UPDATED,FUG_

HEIGHT,FUG_WIDTH_YDIM,FUG_LENGTH_XDIM,FUG_ANGLE,ZIPCODE,ANNUAL_AVG_HOURS_PER_YE

AR,JAN_VALUE,FEB_VALUE,MAR_VALUE,APR_VALUE,MAY_VALUE,JUN_VALUE,JUL_VALUE,AUG_VALU

E,SEP_VALUE,OCT_VALUE,NOV_VALUE,DEC_VALUE,JAN_PCTRED,FEB_PCTRED,MAR_PCTRED,APR_P

CTRED,MAY_PCTRED,JUN_PCTRED,JUL_PCTRED,AUG_PCTRED,SEP_PCTRED,OCT_PCTRED,NOV_PCT

RED,DEC_PCTRED,COMMENT

The last header line contains comma-delimited field names identifying the data contained in each data field.
22

Appendix A

Default Values

Field Name Default Value

COUNTRY_CD N/A

REGION_CD N/A

TRIBAL_CODE N/A

EIS_FACILITY_ID

"ORIS" followed by the ORIS_FACILITY_CODE. For example, 

ORIS55177.

EIS_UNIT_ID "ORIS" followed by the ORIS_BOILER_ID. For example, ORISST1.

EIS_REL_POINT_ID

"ORIS" followed by the ORIS_BOILER_ID. That is, the same as the 

unit ID default value.

EIS_PROCESS_ID

Use the same value as in the [IPM Y/N] field. That is, the NEEDS 

UniqueID.

AGY_FACILITY_ID Blank

AGY_UNIT_ID Blank

AGY_REL_POINT_ID Blank

AGY_PROCESS_ID Blank

SCC N/A

POLL N/A

ANN_VALUE N/A

ANN_PCT_RED Blank

FACILITY_NAME NEEDS Plant Name

ERPTYPE Blank

STKHGT

SCC-based default stack parameters from 

SCCDefaultStackParameters file.

STKDIAM

SCC-based default stack parameters from 

SCCDefaultStackParameters file.

STKTEMP

SCC-based default stack parameters from 

SCCDefaultStackParameters file.

STKFLOW

SCC-based default stack parameters from 

SCCDefaultStackParameters file.

STKVEL

SCC-based default stack parameters from 

SCCDefaultStackParameters file.

NAICS Blank

LONGITUDE

County-centroid based longitude by ORIS code, state FIPS code and 

country FIPS code from LatLonDefault file.

LATITUDE

County-centroid based longitude by ORIS code, state FIPS code and

country FIPS code from LatLonDefault file.

LL_DATUM Blank

HORIZ_COLL_MTHD Blank

DESIGN_CAPACITY N/A

DESIGN_CAPACITY_UNITS N/A

REG_CODES Blank

FAC_SOURCE_TYPE "125"

UNIT_TYPE_CODE

"100" for Boiler, "120" for Turbine, "140" for combined cycle 

(boiler/gas turbine).
23

Field Name Default Value

CONTROL_IDS N/A

CONTROL_MEASURES Blank

CURRENT_COST Blank

CUMULATIVE_COST Blank

PROJECTION_FACTOR Blank

SUBMITTER_ID N/A

CALC_METHOD N/A

DATA_SET_ID N/A

FACIL_CATEGORY_CODE N/A

ORIS_FACILITY_CODE NEEDS ORIS Code

ORIS_BOILER_ID NEEDS Unit ID

IPM_YN N/A

INV_YEAR N/A

DATE_UPDATED N/A

FUG_HEIGHT Blank

FUG_WIDTH_YDIM Blank

FUG_LENGTH_XDIM Blank

FUG_ANGLE Blank

ZIPCODE N/A

ANNUAL_AVG_HOURS_PER_YEAR N/A

JAN_VALUE N/A

FEB_VALUE N/A

MAR_VALUE N/A

APR_VALUE N/A

MAY_VALUE N/A

JUN_VALUE N/A

JUL_VALUE N/A

AUG_VALUE N/A

SEP_VALUE N/A

OCT_VALUE N/A

NOV_VALUE N/A

DEC_VALUE N/A

JAN_PCTRED Blank

FEB_PCTRED Blank

MAR_PCTRED Blank

APR_PCTRED Blank

MAY_PCTRED Blank

JUN_PCTRED Blank

JUL_PCTRED Blank

AUG_PCTRED Blank

SEP_PCTRED Blank
24

Field Name Default Value

OCT_PCTRED Blank

NOV_PCTRED Blank

DEC_PCTRED Blank

COMMENT Blank
25

Appendix B

Temporal Allocation of IPM Projected Seasonal Emissions to Hourly Emissions for Use in Air Quality 

Modeling

IPM provides unit-level emission projections of average winter (representing October through April) and average 

summer (representing May through September) values. To use these data in an air quality model, the unit-level 

data must first be converted to into hourly values through a process called “temporal allocation”.

The goal of the temporal allocation process is to reflect the variability in the unit-level emissions that can impact 

air quality over seasonal, daily, or hourly time scales, in a manner compatible with incorporating future-year 

emission projections into future-year air quality modeling. The temporal allocation process is applied to the 

seasonal emission projections obtained from an IPM modeling scenario. IPM represents two seasons: summer 

(May through September) and winter (October through April). IPM unit-level parsed files contain seasonal and 

annual totals of SO2, NOX, CO2, Hg, and HCl emissions (computed directly within IPM), while PM2.5, PM10, VOC, 

NH3, and CO emissions are calculated using a post-processing tool3 based on each unit’s projected fuel use and 

configuration, coupled with pollutant-specific emission factors.4 When calculating PM emissions, the postprocessing tool utilizes specific data assumptions such as the ash and sulfur content of the coal projected to be 

used at the unit. The tool creates a Flat File (in a comma-separated value or .csv file format) that provides the 

starting point for developing emission inputs to an air quality model.

The resulting Flat File contains all of the endogenously-determined and post-calculated unit-level emissions 

combined with stack parameters (i.e., stack location and other characteristics consistent with information found in 

the National Emissions Inventory (NEI)). A cross reference is used to map the units in NEEDS to the stack 

parameter and facility, unit, release point, and process identifiers used in the National Emissions Inventory (NEI). 

The cross reference also maps sources to the hourly Continuous Emissions Monitoring System (CEMS) data that 

is used to temporally allocate the emissions in the base year air quality modeling. This cross reference has been 

updated for the v5.14 platform through collaboration with EPA, regional planning organizations, and states and is 

also used to determine which emissions sources in the NEI sources have future year emissions predicted by IPM. 

Emissions from point sources for which emissions are not predicted by IPM are carried forward into the future 

year modeling platform using other projection methods. Therefore, if the NEI and IPM sources are not properly 

matched, double-counting could result because the future year emissions output from IPM in the future year are 

treated as a full replacement for the base year emissions, although only for the emissions processes estimated by 

IPM.

In order to support the temporal allocation process and other requirements of modeling point sources, the Flat File

output from the IPM postprocessor specifies annual and monthly emissions for each stack; however, since IPM 

projections are only modeled for two seasons comprising multiple months each, monthly emissions cannot be 

precisely specified in the Flat File. Instead, the monthly values in the Flat File output from the postprocessor are 

computed by multiplying the average summer day and average winter day emissions predicted by IPM by the 

number of days in the respective month. In summary, the monthly emission values shown in the Flat File are not 

intended to represent an actual month-to-month emission pattern; instead, they are interim values that have 

translated IPM’s seasonal projections into month-level data that serve as a starting point for the temporal 

allocation process. 

The monthly emissions within the Flat File undergo a multi-step temporal allocation process to yield the hourly 

emission values at each unit, as is needed for air quality modeling: summer/winter value to month, month to day, 

and day to hour. For sources not matched to unit-specific CEMS data, the first two steps are done outside of 

SMOKE and the third step to get to hourly values is done by SMOKE using daily the emissions files created from 

the first two steps. For each of these three temporal allocation steps, NOx and SO2 CEMS data are used to 

allocate NOx and SO2 emissions, while CEMS heat input data are used to allocate all other pollutants. The 

approach defined here gives priority to temporalization based on the base year CEMS data to the maximum 

extent possible. 

 3 Documentation of this tool can be found at www.epa.gov/powersectormodeling

4 For more information on EPA emission factors see http://www.epa.gov/ttnchie1/ap42/
26

Prior to using the 2011 CEMS data to develop monthly, daily, and hourly profiles, the CEMS data was processed 

through a tool that found data quality flags that indicated the data were measured. These situations can cause 

erroneously high values in the CEMS data. If the data were not measured, and it was found to be more the 3 

times the annual mean, the data were replaced with annual mean values. These adjusted CEMS data were used 

to compute the monthly, daily, and hourly profiles described above (see example in Figure B-1).

For units in NEEDS that are matched to units in the National Emission Inventory (NEI), and for which CEMS data 

are available, the emissions are temporalized based on the CEMS data for that unit and pollutant. For units that 

are not matched to the NEI or for which CEMS data are not available, the allocation of the IPM seasonal 

emissions to months is done using average fuel-specific season-to-month factors generated for each of the 64 

IPM regions shown in Figure B-2. These factors are based on a single year of CEMS data for the modeling base 

year associated with the air quality modeling analysis being performed, such as 2011. Note that IPM uses load 

data (reflecting the shape of demand) corresponding to the load in each IPM region that occurred in the base year 

of the air quality modeling analysis, such as 2011. The fuels used for creating the profiles for a region are coal, 

natural gas, and other, where the other fuels used include oil and wood and vary by region. Separate profiles are 

computed for NOx, SO2, and heat input. An overall composite profile across all fuels is also computed and can be 

used in the event that a region has too few units of a fuel type to make a reasonable average profile, or in the 

case when a unit changes fuels between the base and future year and there were previously no units with that 

fuel in the region containing the unit. 

The monthly emission values in the Flat File are first reallocated across the months in that season to align the 

month-to-month emission pattern at each stack with historic seasonal emission patterns.5 While this reallocation 

affects the monthly pattern of each unit’s future-year seasonal emissions, the seasonal totals are held equal to the 

IPM projection for that unit and season. Second, the reallocated monthly emission values at each stack are 

disaggregated down to the daily level consistent with historic daily emission patterns in the given month at the 

given stack using separate profiles for NOx, SO2, and heat input. This process helps to capture the influence of 

meteorological episodes that cause electricity demand to vary from day-to-day, as well as weekday-weekend 

effects that change demand during the course of a given week. Third, this data set of emission values for each 

day of the year at each unit is input into SMOKE, which uses temporal profiles to disaggregate the daily values 

into specific values for each hour of the year. 

For units without or not matched to CEMS data, or for which the CEMS data are found to be unsuitable for use in 

the future year, emissions are allocated from month to day using IPM-region and fuel-specific average month-today factors based on CEMS data from the base year of the air quality modeling analysis. These instances include 

units that did not operate in the base year or for which it may not have been possible to match the unit in NEEDS 

with a specific unit in the NEI. EPA uses average emission profiles for some units with CEMS data in the base 

year when one of the following cases is true: (1) units are projected to have substantially increased emissions in 

the future year compared to its emissions in the base (historic) year6; (2) CEMS data are only available for a 

limited number of hours in that base year; (3) units change fuels in the future year; (4) the unit is new in the future 

year; or (5) units experienced atypical conditions during the base year, such as lengthy downtimes for 

maintenance or installation of controls. The temporal profiles that map emissions from days to hours are 

computed based on the region and fuel-specific seasonal (i.e., winter and summer) average day-to-hour factors 

derived from the CEMS data for those fuels and regions using only heat input data for that season. Only heat inpt 

is used because it is the variable that is the most complete in the CEMS data. SMOKE uses these profiles to 

allocate the daily emissions data to hours. 

The emissions from units for which unit-specific profiles are not deemed appropriate, and for units in the IPM 

outputs that are not specifically matched to units in the base year, are temporally allocated to hours reflecting 

 5 For example, the total emissions for a unit in May would not typically be the same as the total emissions for the 

same unit in July, even though May and July are both in the summer season and the number of days in those 

months is the same. This is because the weather changes over the course of each season, and thus the 

operating behavior of a specific unit can also vary throughout each season. Therefore, part of the temporal

allocation process is intended to create month-specific emissions totals that reflect this intra-seasonal variation in 

unit operation and associated emissions.

6 In such instances, EPA does not use that unit’s CEMS data for temporal allocation in order to avoid assigning 

large increases in emissions over short time periods in the unit’s hourly emission profile.
27

patterns typical of the region in which the unit is located. Analysis of CEMS data for units in each of the 64 IPM 

regions revealed that there were differences in the temporal patterns of historic emission data that correlate with 

fuel type (e.g., coal, gas, and other), time of year, pollutant, season (i.e. winter versus summer) and region of the 

country. The correlation of the temporal pattern with fuel type is explained by the relationship of units’ operating 

practices with the fuel burned. For example, coal units take longer to ramp up and ramp down than natural gas 

units, and some oil units are used only when electricity demand cannot otherwise be met. Geographically, the 

patterns were less dependent on state location than they were on IPM regional location. For temporal allocation of 

emissions at these units, Figure B-3 provides an example of daily coal, gas, and composite profiles in one IPM 

region. EPA developed seasonal average emission profiles, each derived from base year CEMS data for each 

season across all units sharing both IPM region and fuel type.7 Figure B-4 provides an example of seasonal 

profiles that allocate daily emissions to hours in one IPM region. These average day to hour temporal profiles 

were also used for sources during seasons of the year for which there were no CEMS data available, but for 

which IPM predicted emissions in that season. This situation can occur for multiple reasons, including how the 

CEMS was run at each source in the base year.

For units that do have CEMS data in the base year and are matched to units in the IPM output, the base year 

CEMS data are scaled so that their seasonal emissions match the IPM-projected totals. In particular, the fraction 

of the unit’s seasonal emissions in the base year is computed for each hour of the season, and then applied to the 

seasonal emissions in the future year. This is accomplished outside of SMOKE by creating data in the same 

format as CEMS data for NOx, SO2, and heat input. Any pollutants other than NOX and SO2 are temporalized 

within SMOKE using heat input as a surrogate. Distinct factors are used for the fuels coal, natural gas, and 

“other”. This procedure yields future-year hourly data that have the same temporal pattern as the base year 

CEMS data while matching future-year seasonal total emissions for each stack to IPM’s future-year projections

(see example in Figure B-5).

In cases when the emissions for a particular unit are projected to be substantially higher in the future year than in 

the base year, the proportional scaling method to match the emission patterns in the base year described above 

can yield emissions for a unit that are much higher than the historic maximum emissions for that unit. To address 

this issue for the 2017 scenario, the maximum measured emissions of NOx and SO2 in the period of 2011-2014 

were computed. The temporalized emissions were then evaluated at each hour to determine whether they were 

above this cumulative maximum. The amount of “excess emissions” over the maximum was then computed. For 

units for which the “excess emissions” could be reallocated to other hours, those emissions were distributed 

evenly to hours that were below the maximum. Those hourly emissions were then reevaluated against the 

maximum, and the procedure of reallocating the excess emissions to other hours was repeated until all of the 

hours had emissions below the maximum, whenever possible (see example in Figure B-6). 

Using the above approach, it was not always possible to reallocate excess emissions to hours below the historic 

maximum, such as when the total seasonal emissions of NOx or SO2 for a unit divided by the number of hours of 

operation are greater than the 2011-2014 maximum emissions level. For these units, the regional fuel-specific 

average profile was applied to all pollutants, including heat input, for that season (see example in Figure B-7). An 

exception to this is if the fuel for that unit is not gas or coal. In that case, the composite (non-fuel-specific) profile 

was used for that unit. This is because many sources that used “other” fuel profiles had very irregular shapes due 

to a small number of sources in the region, and the allocated emissions frequently still exceeded the 2011-2014 

maximum. Note that it was not possible for SMOKE to use regional profiles for some pollutants and adjusted 

CEMS data for other pollutants for the same unit / season, therefore all pollutants are assigned to regional profiles

when regional profiles are needed. Also note that for some units, some hours still exceed the 2011-2014 annual 

maximum for the unit even after regional profiles were applied (see example in Figure B-8).

 7 EPA also uses an overall composite profile across all fuels for each IPM region in instances where a unit is 

projected to burn a fuel for which EPA cannot construct an average emission profile (because there were no other 

units in that IPM region whose historic CEMS data represent emissions from burning that fuel).
28

Figure B-1. Removal of Unmeasured Spikes in CEMS Data
29

Figure B-2. EPA Base Case v.5.14 IPM Regions (64 in all)

Figure B-3. Average NOx Daily Profiles by Fuel and Composite in West Texas Region (July)
30

Figure B-4. Example of Summer vs. Winter Hourly Profiles in Virginia Region

Figure B-5. Future Year Emissions Follow Pattern of Base Year Emissions
31

Figure B-6. Excess Emissions Apportioned to Hours Less than Maximum

Figure B-7. Adjustment to Hours Less than Maximum not Possible, Regional Profile Applied
32

Figure B-8. Regional Profile Applied, but Exceeds Maximum in Some Hours