-------
»8ss«
•-or*-
> a •
+> i
o i
"I!
0-j
«J
SOOOOininWOOOpOO--*
oT
oooooooooooooooooooooooooooooooooooooooooooooooooooo
Si «o
v| **
*
'i
•*
•f
8
— e»in
»
I
ii
1
SUIUIU1UIC9C9OMCOIIJ
—i —i-j —i z^ z Q o oe
i ui ui ui m ui tu lit tit tit tit tit tit uJ lu i
> «l 10 CO O)
S S ^3 S S
-------
•MM »»K>
Kin
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOCSOOOOOOOOOOOOOOO
o —
c w
•o-*
— IM
J55eeS5S5SOOKISS-*-*-'n2
»
'S.g %%**V»*V*,»^
tf OE|
u ....
fe
1
eOO(\IO>O>OOOeOKI* inincj ^eM*
Oin . m «
1OOOOKIOO<
-totnoo —
aa>o> T-
-
-»(n.c
init o »»»»-t-t—I—I—I—I—I—I—I—I—I—I—I—I—>-l—I—t-
-------
oooooooooeoooooeooeooooooooooeoooooooooooooeoooooooo
'&
SSS «.«. S33SSSS
—IXZE u. b UJ UJ Ul Ul 111 111 UJ Ul 111 UJ >
-------
<
41
R^>rwtwr>.
o«-r-»-
rucooo
^- *»«<>• o
lioorm
o
ED
)cpr»r^o>ooB9oo
in*
^Ki
UUUUIUUUUI
oooooooooaoooooooooooo
o
*"oe*e"eoea'
OC9OOC9OXXXXXXKZ
aeaeeecBaeaeOT»)
-------
«-ir>O»o«»i
CXOOIM »-
«o ». in to ^ co «M P>J rj t\i o
o N. cs
«-«-*>*
•* .»-«-
'5 x?i
in co
eo«i><->»oofgo«ce^eoooooooeooeeoooooooooooooooooeooeooooo
r«ir«^
UL
«IC
CO-
"«!
i5S5£2g5S.lRSISiS!iteS&
in eo
g,
i ** i
8'
i a a a a a
L.
0
"5
•II
«-rviro-*in
*" * « « *
t uitu_j_j
mm-i-ttfitn
1111;
IU UI UIUI 111 UI IU UI UI •-•-
1U IU IU IU IU IU UJ ]U UI
aeaeacacececec etat xx
>->->->-^ ^ ^ ^ ^ OO
u>cn«ncoioioioioco« —— i
-------
.
»-o^'»^^"«-«-r».s mo eo
CM CM CM fM IM CM «-*> T-
• .«
'88
104
OQtoQooooooooooooooooooQooooooooooooooooooooooooooooo
c I ^
>n J3
u.-?
_>— a
-« 4IO
'
>oooo*-ooQK-in-4;<
) S 33"
•»0*» 00
CM CM CM CM CM CM CM f- •-
fe
"5
KO>
o- co
— ol • •
'*in»-«-r>ifo<*
IM«*»->-»-l-*«***«
to* « uuuui «««««
* * * *
« «
*«
i
•V
II
ac aeatectn u>
tutu uiiu — —
J22SESS : g&SSS
C P^
• < I I I I I
ZZ2
: ac (/>(/> v> cn <
> (A co en
= 533
-------
ram
inw*
.«v«r«-g»«D-
..4
m
ooooooooooooeeoooooooooeeeeooooooooooooooooooooooeoo
M» •* eo co •* « f- tM m in
>oooooKin>
•-^CMi^ini
•-OOOO.
IU— I
: <•<
•u •
r
Cl
"o
•fi
o-(M •-M •« OM*>
^- -o •* in »»tn OJCM s. co «o s> «oo<
«-»-«*mK-N. r^^r- cvi-
»-ry —
*«
!oe uuuu
aezz a: i
UJ Ul UI UI C
uu u u oeae
SS5S
oeaeaeae»S
UJ UI Ui IU •• *• *M
Sooo eeeea:
£ UI UI UI 111 UI IU
iSi
a.
EZ£EZEEZ2ZZZZZZ z zSSZSS22S225S
CO CO CO CA IA «
§§ii§i§§§§§§§§
iniflinvxnvxflinincoiatacncn
-------
• o :
** :
O :
"I!
§
g
_
< no
-SS5
o o
I-CD
2
8
eT
n
p
1
§
n
3
IM
i
i
a
»*
o
8
I
-------
-------
Appendix B — Glossary
Introduction
This Appendix lists and discusses a number of key terms as defined in §402, under
40 CFR §72.2, and/of for purposes of this report which are significant in the calculation of
allowances. In particular, these include terms which (1) classify "affected units," (2) define
unit characteristics used to calculate allowances, and (3) distinguish different groups of
allowances. For definitions of all fields in NADB, refer to National Allowance Data Base
Version 2,11 Technical Support Document (NADB TSD), prepared for U.S. EPA by E.H;.
Pechan Associates. For definitions of all fields in the Supplemental Data File, refer to
"Appendix G: Technical Documentation for the Supplemental Data File," included in the
NADB TSD and prepared for U.S, EPA by ICF Incorporated'. The final section of this
appendix is a list of the abbreviations and symbols used in the report.
Glossary of Key Terms -
NOTE: THE DEFINITIONS INCLUDED HERE ARE FOR GENERAL INFORMATION PURPOSES
ONLY. MANY KEY TERMS ARE ALSO DEFINED IN THE STATUTE AND THE FINAL REGULATIONS.
THOSE DEFINITIONS ARE THE OFFICIAL TERMS GOVERNING THE PROGRAM.
(1) Classification of "Affected Units"
affected B/G: a boiler/generator, the boiler component of which is an affected unit.
affected source: a source that includes one or more affected units.
affected unit: any unit that is subject to emission reduction requirements or
limitations under Title IV.
boiler/generator: a single boiler-generator combination. Please note that, as
discussed in the Introduction, the terms "B/G", "B/G's", and "B/G level" are
used in this report to refer to the same boiler-generator combination level that
is used to identify individual data records.in the NADB and SDF.
commenced commercial operation: to have "begun to generate electricity for sale,
including the sale of test generation," (40 CFR §72.2, January 11, 1993).
Because the generation of electricity occurs at the generator, however, the
NADB lists a boiler on line date which is used to categorize affected units for
Phase II allowance allocations. Most often, it was assumed that the unit
commenced operation at about the same time as the generator. For multi-
header configurations with more than one generator on line date, EPA used the
oldest generator on line date for the boiler on line date, unless the boiler was
phase2.wp
Page B-l
-------
newly added or was replaced. If the boiler was new or was replaced, EPA used
the date of the boiler's first consumption of fuel, or the date of commercial -
- . operation of the new boiler as reported to EIA."
electric utility system: for purposes of §405(cX5), the highest level of corporate
aggregation satisfying the criteria of the provision, as shown by the UTILSYS
data field from the SDF.
existing unit: a unit that commenced commercial operation before the. date of
enactment of this Title, including su
-------
(2) Unit Characteristics Used to Calculate Allowances
actual 1985 emission rate: the annual average SO2 emissions rate for the unit,
expressed in Ibs/mmBtu, or each B/G's 1985 actual S02 emissions rate
according to the NADB. In the provision descriptions; in Chapter 2, the terms
"1985 SO2 rate" and "S02 rate" refer to rates defined under this paragraph.
allowable 1985 emissions limit: a federally enforceable emissions limitation for SO2
applicable to the unit in 1985, expressed in pounds per million Btu on an
annuallzed basis. For units commericing commercial operation after 1985, this
is the federally enforceable limit as defined in NADB. The allowance
calculations were based on each B/G's 1985 annualized SO2 limit according to
NADB v2.11. In the provision descriptions in Chapter 2, the terms "1985
allowable SO2 limit" and "1985 SO2 limit" refer to annualized allowable rates
defined under this paragraph.
annual operating factor: defined in terms of the HT60SHR variable from the
NADB. A B/G operating at a 60 percent annual operating factor was
calculated to consume the same number of Btus as shown for the HT60SHR
field in the NADB.
baseline: the annual average fuel consumed (in mmBtu) by a unit or B/G during
calendar years 1985, 1986, and 1987, according to "a corrected data base as
established by the Administrator." (this database is the NADB). Adjustments
are to be made for "periods during which a unit is shutdown for a continuous
period of four calendar months or longer." For outage situations lasting at
least four months, and up to the entire three-year baseline period, the adjusted
baseline is calculated by multiplying the actual baseline by the ratio of the
number of hours in a three-year span to the number of hours of operation for
the unit during the 1985-87 period:
If 2,920
< 26,280,
{Adjusted]
[Baseline]
26,260
of
2ao - -
• Z8° {outage Hours
JH
Unadjusted]
Baseline \
B/Gs which commenced commercial operation during 1985 were also given an
adjusted baseline, based on the number of months after the beginning of 1985
the unit(s) commenced commercial operation:
\Ad justed]
[Baseline}
36
_ r Dumber of Months
[not on line in 1965
\
1
] )
\Unadjus ted\
I Baseline J
capacity factor: the ratio between the actual electric output from a unit and the
nameplate capacity, times 8760.
i.
nameplate capacity: generator nameplate capacity, as listed by the NADB data field
NAMEPCAP.
phas
phase2.wp
Page B-3
-------
(3) Groups of Allowances
additional allowances for Phase I units: allowances allocated pursuant to
§405(aX3) to Phase I affected waits in certain states.
adjusted basic allowances: basic allowances calculated according to §§ 404 and 405,
after being adjusted to 8.9 million, pursuant to §403.
' t
allowance: an authorization, allocated to an affected unit, to emit one ton of SO2
during or after a specified year.
basic Phase n allowance allocations: For calendar years 2000 through 2009,
allowances allocated pursuant to §403 and subsections (bXD, (3), and (4); (cX 1),
(2), (3), and (5); (dXD, (2), (4), and (5); (e); (f); (gXU (2), (3), (4), and (5); (h)(l);
(i) and (j) of §405. For each calendar year beginning in 2010, pursuant to §403
and subsections (bX 1), (3), and (4); (cX 1), (2), (3), and (5); (d)( 1), (2), (4), and (5);
(e); (f); (g)(l), (2), (3), (4), and (5); (hXD and (3); (i) and (f) of §405.
final basic allowances: adjusted basic allowances, less the deductions for the
various reserves.
Phase II bonus allowance allocations: for calendar years 2000 through 2009, and
only for those years, allowances allocated pursuant to §403, subsections (a)(2),
(bX2), (cX4), (dX3), and (h)(2) of §405, and §406.
reserve: any bank of allowances established by the Administrator under this Title.
total annual Phase n allowances: for 2000-2009, the sum of final basic allowances,
bonus allowances, and additional allowances. For 2010 and later, the sum of
final basic allowances and additional allowances.
unadjusted basic allowances: basic allowances calculated according to §§ 404 and
405, prior to being adjusted to 8.9 million, pursuant to §403.
It should be noted that section 402 does not include several definitions which
are necessary to classify units and calculate allowances. Accordingly, EPA has
developed definitions (incorporated at 40 CFR §72.2) as follows:
coal vs. oil/gas units: Under §405, allowances for "coal" units are calculated in a
different manner from allowances for "oil/gas" units. Coal units have been
denned in the NADB as units for which coal represents more than 50 percent
of the total heat input on a Btu basis for the years 1985-87. Oil/Gas units are
denned in the NADB as all remaining units.
phase2.wp
Page B-4
-------
List of Symbols and Abbreviations
41
Abbreviation/Symbol
ADF
bbl
B/G
BKWH
Btu
CAAA
GEM .
CFR
DOE
EIA
EPA
GW
GWh
KW
KWh
Ibs
mmBtu
MW
MWh
NADB
NURF
NSPS
ORIS
PC
RIA
SAS
SDF
SIP
S
-------
-------
Appendix C — SAS Source Code
Introduction
This Appendix shows the actual SAS source code used in the calculation of Phase II
allowance allocations1. For an explanation of the Variable names used in the program, refer
to National Allowance Data Base Version 2.11 Technical Support Document (NADB TSD),
Prepared for U.S. EPA by E.H. Pechan Associates. For definitions of all fields in the
Supplemental Data File, refer to "Appendix G: Technical Documentation for the
Supplemental Data File," included in the NADB TSD and prepared for U.S. EPA by IGF
Incorporated. Following the source code are some programmer's notes regarding
computational methods used for the calculations.
SAS Program Source Code
1
2
3
4
5
6
7
8
B
W^
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 .
31
32
33
34
35 '
36
37
38
39
40
*
/* PROGRAM: P2RISC.sas v.19
/* AUTHOR: CARL LEUBSDORF, ICF RESOURCES INC.'*
/* DATE: 1/5/93
/* PURPOSE: CALCULATES PHASE II ALLOWANCES FOR THE
, /* NADB V2.ll DATABASE
/*
/* ** FINAL ROUND of ALLOWANCES. TITLE USES ALNEWFIN *"*
/*
/* **THESE ALLOWANCES USED FOR FINAL FR TABLES**
/*
/*
/* LAST REVISION: 3/19/93
libname riadbmain ' /u/p2455xOe/nadb' ;
options ls=132 ps=88;
title 'National Allowance Database, Version 2.11';
*/;
*/;
*/;
*/;
*/;
*/;
j. i
/;
*/;
*/;
*/;
*/;
*/;
*/;
*/;
**/;
title2 'Calculation of Final Phase II Allowance Allocations';
i
/it***************************************************/
/* Ratchet Adjustment Macro: adjtot */
/*****************************************************/
%macro adjtot (adjyar.datset, totlval,rndlvl, randvar) ;
/*******************-**********************************/
/* This macro adjusts variables "adjusted" to a given*/
/* total to reach that total EXACTLY when rounded to */
/* the nearest whole allowance. */
/* */
/* Parameters: " .. */
/* */
/* adjvar: Adjustment Variable-the variable to */
/* be adjusted. */
/* EXAMPLE: 405il_p or finbaslO */
/* */
/* datset: Dataset-the dataset to be adjusted. */ '
phase2.wp
Page C-l
-------
41 /* EXAMPLE: v21 or v21out , */
42 /* ' */
43 /*.. .totlval: The value of the total "to which .*/
44 /* ' ADJVAR should be adjusted. */
45 /* EXAMPLE: 40.000 or 250000 */
46 /* ' */
47 /* rndlvl: The level of rounding desired for */
48 /* ADJVAR. */
49 /* EXAMPLE: .001 or 1 */
50 /* ' */
51 /* randvar: A variable to "randomize" the sort */
52 /* past the level sorted by»adjvar— */
53 /* for cases where sorting by adjvar */
54 /* leaves several obs with equal */
55 /* adjvar values at point where obs */
56 /* _n_ occurs. Randomizes which of */
57 /* the obs with same adjvar value */
58 /* will be adjusted. '' */
59 /* *'
60 /*
61 /*
62 /*
63 /*
64 I**
65
66 PROC SUMMARY data=&datset; /* first, create total of adjvar */
67 VAR &adjvar;
68 ID MERGER;
69 OUTPUT OUT=chk_tot(KEEP=adj_val MERGER) SUM=adj_val;
70 RUN;
71
72 data chk_tot; /* then, compare that total with totlval */
73 set chk_tot;
74 call symput('tot_dif',(round{((l/&rndlvl)*(adj_val-&totlval)},fcrndlvl)));
75 run;
76
77 %if &tot_dif A= 0 %then %do; /* if the total needs adjusting */
78
79 proc sort data=&datset; /* sort by descending adjvar */
80 by descending &adjvar fcrandvar;
'81 run;
82
83 %if &tot_dif <• 0 %then %do; /* if the total is too small */
84 %put Adjust Up &tot_dif Times:;
85 data tdatset; /* adjust UPWARD */ .
86 set Scdatset;
87 if _n_ <= (-1* &tpt_dif) then do;
88 fcadjvar = &adjvar + &rndlvl;
89 put SEQ= PNAME= BLRID= GENID= "&adjvar =" &adjvar ;
90 end;
91 run;
92 %end;
93
94 %if &tot_dif > 0 -%then %do; /* if the total is too big */
95 %put Adjust Down fctot_dif Times:;
96 data &datset; /* adjust DOWNWARD */
97 set &datset;
98 if _n_ <= &tot_dif then do;
99 &adjvar = fcadjvar - &rndlvl;
100 put SEQ= PNAME= BLRID= GENID* "&adjvar= " &adjvar;
101 end;
102 run; ".
103 tend;
104
105 tend;
106 '
phase2.wp Page C-2
-------
%mend adjtot;
/************************•***/
/*.END -.ADJTOT MACRO */
y **********.*******»******** * i
112
113 proc sort data=nadbmain.nadbv2il;
114 by SEQ;
115 run;
.116
117 proc sort data=nadbmain.sdfv211;
118 by SEQ; \ > ' .
119 run; '
. 120
121 DATA V21;
122 MERGE nadbmain.nadbv211 nadbmain.sdfv211;
123 BY SEQ;
124 OLDNAMEP = NAMEPCAP;
125
126 /* Set Units with Negative Generation to 0 •*/
127 GENER=MAX(GENER,0);
128
129 /* Set Up MNONL and YRONL */
130 MNONL = BLRMNONL;
131 YRONL = BLRYRONL;
132
133 if YRONL = 1900 and MNONL = 0 then do;
134 . MNONL = GENMNONL;
135 YRONL = GENYRONL;
136 end;
137
138 /* SET UP NAMEPCAP FOR SPECIAL MULTI-HEADER UNITS */
139 IF SPECMULT = 1 THEN NAMEPCAP = 26;
•140
T^L I* SET UP BASELINE FOR FORCED OUTAGE PLANTS:*/
l^T IF OUTAGEHR >= 2920 THEN DO;
144 IF OUTAGEHR >= 26280 THEN BASELINE = BASE8587;
145 ELSE BASELINE = 26280/(26280 - OUTAGEHR) * BASE8587;
146 END;
147 ELSE BASELINE = BASE8587;
148
149" IF YRONL = 1985 THEN BASELINE = 36 / (36 - {MNONL - 1)) * BASE8587;
150 .
151 IF (OUTAGEHR >= 2920) AND (YRONL = 1985) THEN DO;
152 IF OUTAGEHR >= 26280 THEN
153 BASELINE = 36 / (36 - (MNONL - 1)) * BASE8587;
154 ELSE BASELINE = 26280/(26280 - OUTAGEHR) * 36 / (36 - '(MNONL - 1))
155 * BASES587;
156 END;
157
158 /* SET THE FOLLOWING VARIABLES UP TO AVOID MISSING VALUES */
159 FLAG = 0;
160 FLAG1 = 0;
161 FLAG2 = 0;
162 PROHIB = 0;
163 S405I2 = 0;
164 CNT_UTIL = 0;
165 CNT_AUTH = 0;
166 BONUS = 0;
167 BONUS125 = 0;
168 SUMB125 = 0;
169 TOTAL = 0;
170 TOTALBON = 0;
171 PHASEI09 = 0;
172 PHASEI10 =0;
phase2.wp Page C-3
-------
173 S405I1_P = 0;
174 S405I1_B = 0; '
175 BAS89_09.= 0; '
176 BAS89_10 ='0;
177 chl=0;
178 ,ch2=0;
179 choicel=0;
180 choice2=0;
181 CHE=0;
182 CHOICEPA=0;
183 PERM2010=0;
184 PERM_11 =0; j .
185 PERM_01 =0; ' •
186 PERM_02 =0;
187 PERM_03 =0;
188 PERM_04 =0;
189 UPERM_05 =0;
190 RPERM_05 =0;
191 UPERM_06 =0;
192 RPERM_06 =0;
193 PERM_07 =0;
194 PERM_09 =0;
195 MUN_PERM =0;
196 UPERM107 =0;
197 RPERM107 =0;
198 UPERM102 =0;
199 RPERM102 =0;
200 FL_40K2 =0;
201 PERM_ALL=0;
202
203 /* set dummy variable for merging in various data steps */
204 MERGER = 1;
205
206 /* 405(a)(l) — EPA estimate of SO2RTE (CHANGED 8/7/91) */
207 IF S02RTE = 0 AND YRONL <= 1985 THEN DO;
208 IF PRIMFUEL = 1 THEN DO;
209 IF RY_ER > 0 THEN S02RTE = RY_ER;
210 ELSE IF ANNLIM85 < 99 THEN SO2RTE = ANNLIM85;
211 END;
212 IF PRIMFUEL = 2 THEN DO;
213 IF RY_ER > 0 THEN SO2RTE = RY_ER;
214 END;
215 END;
216
217 RUN;
218
219 .
220 /*********************************«***y
221 /* MAIN BASIC ALLOWANCE CALCULATIONS */
222 /it************************************/
223
224 DATA V21;
225 SET V21;
226 /* SELECT; OLD SELECT LOOP START */
227
228 /* 405(b)(1) */
229 IF (NAMEPCAP >= 75) AND (SO2RTE >= 1.2) THEN DO;
230 PERM_ALL = BASELINE * 1.2 / 2;
231 FLAG1 = 1;
232 END;
233
234 /* 405(c)(1) */
235 IF {NAMEPCAP < 75) AND (S02RTE >= 1.2) AND (UCAPFSST >= 250) THEN DO;
236 PERM_ALL = BASELINE * 1.2 / 2;
237 FLAG1 = 2;
238 END;
phase2.wp ' * Page C-4
-------
239
240
244
245
246
247
248
249
250
251
- 252
253
254
255
256
257
258
2SS
260
261
262
263
264
265
266
267
268
269
270
271
272
§
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
/* 405(c> (2) */ . • .
IF ( (NAMEPCAP < 75) AND (S02RTE >= 1.2) AND (UCAPFSST <-250) and
.. (NOT (so2categ±2 or so2categ=3 or so2categ=4 or so2categ=9))
AND (ANNLIM85>=1.2) ) THEN DO;
PERM_ALL = BASELINE * MIN(S02RTE, ANNLIM85) / 2;
FLAG1 = 3 ;
END;
/* 405(d) (1) */
IF" ((PRIMFUEL = 1) AND (MIN(SO2RTE, ANNLIM85) < 0.6)) THEN DO;
IF PERM_ALL <= (BASELINE * 1.2 * MIN(0. 6, ANNLIM85) / 2) THEN FLAG1 = 5;
PERM_ALL =? MAX (PERM_ALL, (BASELINE *, 1.2 * MIN(0.6, ANNLIM85) 72));
END; '
/* 405{d> (2) */ -
IF {(PRIMFUEL = 1) AND (1.2 > MIN(S02RTE, ANNLIM85) >= 0.6)) OR
(S02CATEG > 1 AND S02CATEG A= 6 AND ANNLIM85 =1.2 .AND S02RTE >= 1.2)
THEN DO;
IF PERM_ALL <- (BASELINE * 1.2 * MIN(S02RTE, ANNLIM85) / 2) THEN FLAG1 = 4;
PERM_ALL = MAX (PERM_ALL, (BASELINE * 1.2 * MIWSO2RTE, ANNLIM85) / 2));
END; ' '
. . ' •
/* 405(e) */' ' .
IF ((PRIMFUEL = 2) AND "(1.2 > MIN(S02RTE, ANNLIM85) >= 0.6)) THEN DO; •
IF PERM_ALL <= (BASELINE * 1.2 * MIN(SO2RTE, ANNLIM85) / 2) THEN FLAG1 = 6;
PERM_ALL = MAX (PERM^ALL, (BASELINE * 1 .2 * MIN(SO2RTE, ANNLIM85) / 2));
END;
/* 405(f> (1)" */
IF ((PRIMFUEL = 2) AND (MIN(S02RTE, ANNLIM85) < 0.6)) THEN DO;
IF PERM_ALL <= (BASELINE * 1.2 * MIN(0 . 6, ANNLIM85) / 2) THEN FLAG1 = 7;
PERM_ALL = MAX (PERM_ALL, (BASELINE * 1.2 * MIN ( 0 . 6 , ANNLIM8 5 ) / 2));
END;
/* OTHERWISE;
END;
OLD SELECT LOOP END */
/* 405(h) (1) */
IF (PRIMFUEL = 2) AND (GAS8089 > 90) THEN DO;
PERM_ALL = BASELINE * SO2RTE / 2;
FLAG1 = 8;
END;
/* 405 (g){l) *-/
IF (YRONL > 1985) AND ( (YRONL < 1990) OR ( (YRONL = 1990) AND
(MNONL < 10))) THEN DO;
PERM_ALL = HT60SHR * 65 / 60 * ANNLIM85 / 2;
FLAG1 =9; ,
END;
/* 405(g) (3) */
IF ((YRONL > 1990) OR ((YRONL = 1990) AND (MNONL > 9) ) )
AND (YRONL <= 1992) THEN DO; r
PERM_ALL = HT60SHR * 65 / 60 * MIN(0 .3 ,FELIM85) / 2;
FLAG1 = 10;
END;
. - . -
/* 405(g) (4) */
IF YRONL>1992 AND YRONL<1996 THEN DO;
IF CONSTYR<1991 THEN DO;
PERM_ALL = HT60SHR * 65 / 60 * MIN(0 .3 , FELIM85) / 2;
IF CONSTYR=0 THEN FLAG1=10.3;
ELSE FLAG1 =10.1;
END;
ELSE DO; ' . . . >
PERM_ALL = 0; .
phase2.wp
page
-------
305
306
307
308
•309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
END;
FLAG1 = 10.2;
END; .
/* Post-1995 Units get no allowances */
IF (YRONL > 1995) THEN DO;
PERM_ALL = 0;
FLAG1 = 13;
END;
/* Pre-enactment turbines get no allowances *7
IF ((S02CATEG=4) OR (S02CATEG=9)) AND i ' .
((YRONL < 1990) OR ((YRONL = 1990) AND HNONL < 12))
THEN DO;
PERM_ALL = 0;
FLAG1 =14; - .
END;
/* 405{g)(2) — Table B units */
SELECT;
WHEN(ORISPL= 602 AND COMPRESS(GENID)='2') DO; /* BRANDON SHORES */
IF (FLAG1=10.1 OR FLAG1=10.3) AND PERM_ALL > 8.907 THEN FLAG1 = 11.2;
ELSE IF PERM_ALL > 8.907 THEN FLAG1 =11.1;
ELSE FLAG1 = 11.0;
PERM_ALL = MAX(PERM_ALL,8.907);
FLAG = 0.2;
. END;
WHEN(ORISPL=6002 AND COMPRESS(GENID)='4') DO; /* JAMES H MILLER JR */
IF (FLAG1=10.1 OR FLAGl=10.3) AND PERM_ALL. > 9.197 THEN FLAG1 = 11.2;
ELSE IF PERM_ALL > 9.197 THEN FLAG1 = 11.1;
ELSE FLAG1 = 11.0;
PERM_ALL = MAX(PERM_ALL,9.197);
FLAG = 0.2;
END;
WHEN(ORISPL=7030 AND COMPRESS(GENID)='2'} DO; /* TNP ONE */
IF (FLAGlslO.l OR FLAG1=10.3) AND PERM_ALL > 4.000 THEN FLAG1 = 11.2;
ELSE IF PERM_ALL > 4.000 THEN FLAG1 = 11.1;
ELSE. FLAG1 = 11.0;
PERM_ALL = MAX(PERM_ALL,4.000);
FLAG = 0.2;
END;
WHEN(ORISPL=6019 AND COMPRESS(GENID)='ST1') DO; /* W H ZIMMER */
IF (FLAG1=10.1 OR FLAG1=10.3) AND PERM_ALL > 18.458 THEN FLAG1.= 11.2;
ELSE IF PERM_ALL > 18.458 THEN FLAG1 =11.1;
ELSE FLAG1 = 11.0;
PERM_ALL = MAX (PERM_;ALL ,18.458);
FLAG =0.2;
END;
WHEN(ORISPL=7097 AND COMPRESS(GENID)='1') DO; /* J K SPRUCE */
IF (FLAG1=10.1 OR FLAG1=10.3) AND PERM_ALL > 7.647 THEN FLAG1 = 11.2;
ELSE IF PERM_ALL > 7.647 THEN FLAG1 =11.1;
ELSE FLAG1 = 11.0;
PERM_ALL = MAX (PERM_ALL', 7.647);
FLAG = 0.2;
END;
WHEN(ORISPL=7213 AND (COMPRESS(GENID)='1' OR COMPRESS(GENID)='2')) DO;
IF (FLAG1=10.1 OR FLAG1=10.3) AND PERM_ALL > 2.796 THEN FLAG1 = 11.2;
ELSE IF PERM_ALL > 2.796 THEN FLAG1 = 11.1;
ELSE FLAG1 =11.0;
PERM_ALL = MAX(PERM_ALL,2.796);
FLAG = 0.2;
END;
WHEN(ORISPL=6180 AND COMPRESS(GENID)='2'
/* CLOVER '*/
) DO; /* TWIN OAK */
IF (FLAG1=10.1 OR FLAG1=10.3) AND PERM_ALL > 1.670 THEN FLAG1 =
ELSE IF PERM ALL > 1.670 THEN FLAG1 = 11.1;
ELSE FLAG1 =11.0;
11.2;
phase2.wp
Page C-6
-------
371
372
376
377
378
379
380
381
382
383
,384
"385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
-4C
408
409
410
411
412
413
414
415
416
417
418
419-
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
PERM_ALL = MAX(PERM_ALL,1.760);
FLAG = 0.2; ' . '
END;
WHEN(ORISPL=6180 AND COMPRESS(GENID)='1') DO; /* TWIN OAK */
IF .(FLAG1=10.1 OR FLAGlslO.3) AND PERM_ALL > 9.158 THEN FLAG1 = 11.2;
ELSE IF PERM_ALL > 9.158 THEN FLAG1 = 11.1;
ELSE FLAG1 =11.0; .
PERM_ALL = MAX(PERM_ALL,9.158);
FLAG = 0.2;
END;
WHEN(ORISPL= 130 AND COMPRESS(GENID)='1') DO; /* CROSS */
IF (FLAGl=a0.1 OR FLAG1=10.3) AND BERM_ALL > 6.401 THEN FLAG1"= 11.2;
ELSE IF PERM_ALL> 6.401 THEN FLAGi = 11.1;
ELSE FLAG1 =11.0;
..,PERM_ALL = MAX(PERM_ALL,6.401);
FLAG =0.2;'
END;
WHEN(ORISPL= 370 AND COMPRESS(GENID)='1') DO; /* MALAKOFF */
IF (FLAG1=10.1 OR FLAG1=10.3) AND PERM_ALL > 1.759 THEN FLAG1 = 11.2;
ELSE IF PERM_ALL > 1.759 THEN FLAG1 =11.1;
ELSE FLAG1 =11.0;
PERM_ALL = MAX(PERM_ALL,1.759);
FLAG =0.2;
END;
OTHERWISE;
END; /* SELECT LOOP •*/
/* Set missing values to zero */
IF PERM_ALL = . THEN PERM_ALL = 0;
/* Units 25 Mw or smaller get no allowances */
IF ((NAMEPCAP <= 25) AND ((YRONL < 1990) OR ((YRONL = 1990}
AND (MNONL < 12})))
/* Also Hard Code for Retired Units (epa memo 2/18/93) */
/* IA: RIVERSIDE 6 1081 */
OR (ORISPL=1081 AND COMPRESS(BLRID)='6')
/* IA: RIVERSIDE 7 1081 */
OR (ORISPL=1081 AND COMPRESS(BLRID)='7')
/* IA: RIVERSIDE 8 1081 */
OR (ORISPL=1081 AND COMPRESS(BLRID)='8')
/* Also Hard Code for Retired Units (epa memo 3/1/93) */
/* DE: DELAWARE CITY 592 */
OR (ORISPL=592>
/* NY: HUDSON AVENUE 2496 */
OR (ORISPL=2496)
/* NY: 59TH STREET -110 2503 */
OR (ORISPL=2503 AND COMPRESS(BLRID) NE '110')
THEN DO;
PERM_ALL = 0;
FLAG1 = 12;
END;
/* Hard Code for Retired Units: no allowances, FLAG1=12.0 */
/* IL: R S WALLACE 7 5 859 */
IF (ORISPL=859 and compress(blrid)=
IL: R S WALLACE 8 5 859 */
(ORISPL=859 and compress(blrid)=
/* KY: CANE RUN 1 1 1363 */
OR (ORISPL=1363 and compress(blrid)
KY: CANE RUN 2 2 1363 */
(ORISPL=1363 and compress(blrid)
OH: FRANK M TAIT 4 4 2847 */
OR (ORISPL=2847 and compress(blrid)
/* OH: FRANK M TAIT 5 5 2847 */
OR (ORISPL=2847 and compress(blrid)
/*
OR
/*
OR
/*
7' and compress(genid)='5')
'8' and compress (genid)'-' 5')
='!' and compress(genid)='!')
='2' and compress(genid)-'2'}
='4' and compress(genid)='4')
='5' and compress(genid)='5')
phase2.wp
Page C-7
-------
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
'26' AND COMPRESS (GENID)=' 11 ')
'27' AND COMPRESS (GENID)=' 12')
'4' AND COMPRESS (GENID)=' 4' )
'5' AND COMPRESS (GENID)=' 5' )
'!' AND COMPRESS(GENID)='l')
I
'!' ANli COMPRESS (GENID) = 'l')
'2' AND COMPRESS (GENID)='2')
'2' AND COMPRESS (GENID)= '2')
'8-2')
(moved from 12 . 0 part ) * /
/* Additional Units */
/* NE: JONES STREET 26 11 2290 */
OR ,(.ORISPL=2290 AND COMPRESS (BLRID) =
/* NE: JONES STREET 27 12 2290 */
OR (ORISPL=2290 AND COMPRESS(BLRID)=
/* NM: RIO GRANDE 4 4 2444 */
OR (ORISPL=2444 AND COMPRESS(BLRID)=
/* NM: RIO GRANDE 5 5 2444 */
OR (ORISPL=2444 AND COMPRESS(BLRID)=
/* TX:"KNOX LEE 1 1 3476 */
OR (ORISPL=3476 AND COMPRESS(BLRID)=
/* TX: LEON CREEK j1 . 1 3609 */
OR (ORISPL=3609 AND COMPRESS(BLRID)=
/* TX: LEON CREEK 2 2 3609 */
OR (ORISPL=3609 AND COMPRESS(BLRID)=
/* WI: EDGEWATER 2 2 4050 */
OR (ORISPL=4050 AND COMPRESS(BLRID)=
/* OH: FRANK M TAIT 7-1 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)=
./* OH: FRANK M TAIT ' 7-2 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)=
/* OH: FRANK M TAIT 8-1 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)=
/* OH: FRANK M TAIT 8-2 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)=
/* Also Hard Code for Retired Units
/* IL: R S WALLACE 6 859 */
OR (ORISPL=859 AND COMPRESS(BLRID)='6')
/* LA: COUGHLIN 5 1396 */
OR (ORISPL=1396 AND COMPRESS(BLRID)='5')
/* OH: POSTON 4 2844 */
OR (ORISPL=2844 AND COMPRESS(BLRID)='4')
THEN DO;
PERM_ALL = 0;
FLAG1 =12.1;
END;
RUN;
/****************#*****************#*********/
/* END — MAIN BASIC ALLOWANCE CALCULATIONS */
/ * *** ******************* *************** **•*****/
yA*************************************************************/
/* CHOICE: */
/* 405(d)(3)(A) and (B) — Utility-wide choice of baseline or */
/* . fuel at 60% capacity factor */
/* CHANGED TO EPA METHOD 3/24/92 */
/* MOVED AFTER MAIN BASIC ALLOWANCE DATA STEP 4/20/92 */
.I/**************************************************************/
DATA V21;
SET V21;
/* Calculate up comparison variables */
/* 405(d)(3)(A) */
IF (INT(FLAGl) = 5) THEN DO;
CHOICE1 = HT60SHR * MIN(0.6,ANNLIM85) / 2;
CHOICE2 = BASELINE * 1.2 * MIN(0.6,ANNLIM85) / 2;
CHOICEPA = MAX(0,CHOICE1-CHOICE2);
END; /
A
/* 405(d)(3)(B) */
IF (INT(FLAGl) = 4) THEN DO;
CHOICE1 = HT60SHR * MIN(SO2RTE,ANNLIM85) / 2;
CHOICE2 = BASELINE * 1.2 * MIN(SO2RTE,ANNLIM85) / 2;
phase2.wp
Page C-8
-------
503
504
;«H
^^Tf
508
509
510
511
512
513
514
515
516
517
518
' 519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535 *
536
*
540
541
542
543.
544
545
546
547
548
549
550
551
552
553
554
.555
556
557
558
559
560
561
562
563 •
564
565
566
-567
568
m~
CHOICEPA = MAX(0,CHOICE1-CHOICE2) ;
END;
'/* Bonus 'only for Existing, 1985 and
IF (YRONL > 1985) OR (NAMEPCAP <= 25)
CHOICE1 = 0;
CHOICE2 = 0;
CHOICEPA = 0;
END; .
RUN;
* ^
/* SORT BY UTILITY' */
PROC SORT DATA=V21;
BY UCODE;
RUN;
/* SUM EACH CHOICE BY UTILITY */
PROC SUMMARY DATA=V21;
BY UCODE;
VAR CHOICE1 CHOICE2 CHOICEPA;
OUTPUT OUT=CHOICE(KEEP=UCODE
RUN;
•
'
earlier plants */
THEN DO;
r
1
CHI CH2 CHE) SUM=CH1 CH2 CHE;
/* COMBINE UTILITY -WIDE CHOICE WITH MAIN FILE */
DATA V21;
MERGE V21(drop=chl ch2 CHE) CHOICE;
BY UCODE;
CHOICE =0; . '
CHEPA = 0;
'
IF (INT(FLAGl) = 4) OR (INT(FLAGl) = 5) THEN DO;
IF CHI > CH2 THEN CHOICE = 1;
ELSE CHOICE = 2;
/*' EPA METHOD */
IF CHE > 0 THEN CHEPA
END;
= 1 ; ELSE- CHEPA = 2 ;
/* HARD-WIRE UTILITY ELECTIONS FOR "CHEPA" VARIABLE */
if UCODE= 3994 /* COLORADO-UTE ELECTRIC ASSN INC */
OR UCODE=14063 /* OKLAHOMA GAS & ELECTRIC CO */
OR UCODE=20856 /* WISCONSIN POWER AND LIGHT */
THEN CHEPA = 2;.
RUN;
y*****************/
/* END -- CHOICE */
/*****************/
/*************************#******/
/* BONUS ALLOWANCE CALCULATIONS */
/ + **************•****************+/
DATA V21;
SET V21;
/* 405{h)(2) and 405(h)(3) */
IF (PRIMFUEL = 2) AND (GAS8089 > 90)
BONUS =. BASELINE * 0.05 / 2;
PERM2010 = BASELINE * 0.05/2
END; , . '
/* 405(b)(2) and (c) (4) */ ;
• .
THEN DO;
^
. •'-
t.
'
pnase2.wp
Page C-9
-------
569 /* 405(b) (2) */ . •..'•.•
570 IF (INT(FLAG1)=1) AND'(SO2RTE < 2.5) THEN DO;
571 .. BONUS = (MAX(BASELINE, (HT60SHR+BASELINE)/2) * 1.2 / 2)
572 ' •'• - PERM_ALL;
573 FLAG1 =1.1; ,
574 END;
575
576 /* 405(c)(4) */
577 IF (INT(FLAG1}=2) AND (SO2RTE < 2.5) THEN DO;
578 ' BONUS = (MAX(BASELINE,(HT60SHR+BASELINE)/2) * 1.2 / 2)
579 - PERM_ALL;
580 FLAG1 =2.1; »
581 END;
582
583 /* 405 (d) (3) (A) — Select utility-wide choice *'/
584 IF (INT(FLAGl) = 5) THEN DO;
585
586 /* EPA WAY */
587 IF CHEPA = 1 THEN DO;
588 BONUS = MAX(((HT60SHR * MIN(0.6,ANNLIM85) / 2) - PERM_ALL),0);
589 FLAG1 = 5.1;
590 END;
591 IF CHEPA = 2 THEN DO;
592 BONUS = 0;
593 FLAG1 = 5.2;
594 . END;
595 /* END EPA WAY */
596 END;
597
598 /* 405(d)(3)(B) — Select utility-wide choice */
599 IF (INT(FLAGl) = 4) THEN DO;
600
601 /* EPA WAY */
602 IF CHEPA = 1 THEN DO;
603 BONUS » MAX(((HT60SHR * MIN(SO2RTE,ANNLIM85) / 2) - PERM_ALL),0);
604 FLAG1 c 4.1;
605 END;
606 IF CHEPA = 2 THEN DO;
607 BONUS =0;
608 FLAG1 =4.2;
609 END;
610 /* END EPA WAY */ .
611 END;
612
613
614 • /* Post 1985 units get no Bonus Allowances */
615 IF YRONL > 1985 THEN BONUS = 0;
616 '
617 /* 405(d)(4) — Choice for 1981-85 NSPS Units */
618 IF (((PERM_ALL + BONUS) < (HT60SHR * 65 / 60 * ANNLIM85 / 2))
619 . AND (PRIMFUEL = 1) AND
620 ((MIN(S02RTE,ANNLIM85) < 1.2) or (S02RTE>1.2 and ANNLIM85=1.2') )
621 AND (1986 > YRONL > 1980) AND (SO2CATEG >= 2) AND (S02CATEG"=6))
622
623 /* FORCE THE CHOICES FOR THE FOLLOWING UNITS PER UTILITY ELECTIONS */
624 /* COMMENTED OUT 1/8/92 */
625 /* WHITE BLUFF 2 2, ARKANSAS POWER & LIGHT CO (AR) */
626 /* or (ORISPL=6009 AND COMPRESS(BLRID)='2' AND COMPRESS(GENID)='2') */
627
628 /* ANTELOPE VALLEY Bl 1, BASIN ELECTRIC POWER COOP (ND) */
629 /* or (ORISPL=6469 AND COMPRESS(BLRID)='B1' AND COMPRESS(GENID)='!') */
630
631 THEN DO;
632 PERM_11 = (HT60SHR * 65 / 60 * ANNLIM85 / 2) - PERM_ALL;
533 PERM_ALL = HT60SHR * 65 / 60 * ANNLIM85 / 2;
634 BONUS = 0;
phase2.wp Page C-10
-------
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
FLAG = -9;
FLAG2 = FLAG2 + .11;
CHOICE1 = 0;
CHOICE2 = 0;
CHOICEPA = 0;
CHOICE = 0;
CHEPA = 0;
IF FLAG1 =4.1 THEN FLAG1 = 4.0;
IF FLAG1 =4.2 THEN FLAG1 = 4.0;
IF FLAG1 =5.1 THEN FLAG1 = 5.0;
IF FLAG1 =512 THEN.FLAG1 = 5.0;
RUN; , '•
/* Sum each choice by utility, reflecting choices made under 405(d)(4) */
PROC SUMMARY DATA=V21; . .-'
BY UCODE;
VAR CHOICE1 CHOICE2 CHOICEPA;
OUTPUT OUT=CHOICE2(KEEP=UCODE CHI CH2 CHE) SUM=CH1 CH2. CHE;
RUN; - -
/* COMBINE UTILITY-WIDE CHOICE WITH MAIN FILE */
DATA V21;
MERGE V21(drop=chl ch2 CHE) CHOICE2;
BY UCODE; ' "
IF ((INT(FLAGl) = 4) OR (-INT(FLAGl) = 5)) AND (FLAG ME -9) THEN DO;
IF CHI '> CH2 THEN CHOICE =1; '
ELSE CHOICE = 2;
/* EPA METHOD•*/ •
IF CHE > 0 THEN CHEPA = 1; ELSE CHEPA = 2;
/* HARD-WIRE UTILITY ELECTIONS FOR "CHEPA" VARIABLE */
if UCODE= 3994 /* COLORADO-UTE ELECTRIC ASSN INC */
/* OKLAHOMA GAS & ELECTRIC CO */
/* WISCONSIN-POWER AND LIGHT */
OR UCODE=14063
OR UCODE=20856
THEN CHEPA = 2
END;
ELSE DO;
CHOICE = 0;
CHEPA = 0; '
END;
/* NOW RE-DO THE CHOICE TO REFLECT THE NEW VALUES FOR 'CHOICE' */
/* 405(d)(3)(A) */
IF (INT(FLAGl) = 5) THEN DO;
/* EPA WAY */
IF CHEPA = 1 THEN DO; '
.BONUS = MAX(((HT60SHR * MIN(0.6,ANNLIM85) / 2) -"PERM_ALL),0)
FLAG1 =5.1;
END;
IF CHEPA = 2 THEN DO;
BONUS = 0;
FLAG1 =5.2;
END;
/* END EPA WAY •*/
END;
' * .'i
/* 405(d)(3)(B) */
IF (INT{FLAG1) = 4) THEN DO;
/* EPA WAY */
phase2.wp
Page C-il
-------
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
745
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
IF CHEPA = 1 THEN DO;
BONUS s MAX'( ( (HT60SHR * MIN(SO2RTE, ANNLIM85) X'2) - PERM^ALL) , 0)
FLAG1 = 4.1; . '
END;
IF CHEPA = 2 THEN DO;
BONUS a 0;
FLAG1 = 4.2;
END;
/* END EPA WAY */
END;
,'
/* Pre-enactment units 25 Mw or smaller get no bonus allowances */
IF (NAMEPCAP <= 25) AND ((YRONL < 1990) OR ((YRONL = 1990) AND
(MNONL < 12-) ) ) THEN BONUS = 0 ;
/* Hard Code for Retired Units: no BONUS allowances */
/* IL: R S WALLACE 7 5 859 */
IF (ORISPL=859 and compress(blrid)=
/* IL: R S WALLACE 85 859 */
OR (ORISPL=859 and compress(blrid)=
/* KY: CANE RUN 1 1 1363 */
OR (ORISPL=1363 and compress(blrid)
/* KY: CANE RUN 2 2 1363 */
OR (ORISPL=1363 and compress(blrid)
/* OH: FRANK M TAIT 4 4 2847 */
OR (ORISPL=2847 and compress(blrid)
/* OH: FRANK M TAIT 5 5 2847 */
OR (ORISPL=2847 and compress(blrid)
'7' and compress(genid)='5')
'8' and compress(genid)='5')
='!' and compress(genid)='!')
='2' and compress(genid)='2')
='4' and compress(genid)='4')
" ••
='5' and compress(genid)='5')
/* Additional Units */
/* NE: JONES STREET 26 11 2290 */
OR (ORISPL=2290 AND COMPRESS(BLRID)=
/* NE: JONES STREET 27 12 2290 */
OR (ORISPL=2290 AND COMPRESS(BLRID)=
/* NM: RIO GRANDE 4 4 2444 */
OR (ORISPL=2444 AND COMPRESS(BLRID)=
/* NM: RIO GRANDE 5 5 2444 */
OR (ORISPL=2444 AND COMPRESS(BLRID)=
/* TX: KNOX LEE 1 1 3476 */
OR (ORISPL=3476 AND COMPRESS(BLRID)=
/* TX: LEON CREEK 1 1 3609 */
OR (ORISPL=3609 AND COMPRESS(BLRID)=
/* TX: LEON CREEK 2 2 3609 */
OR (ORISPL=3609 AND COMPRESS(BLRID)=
/* WI: EDGEWATER 2 2 4050 */
OR (ORISPL=4050 AND COMPRESS(BLRID)=
/* OH: FRANK M TAIT 7-1 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)=
/* OH: FRANK M TAIT 7-2 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)=
/* OH: FRANK M TAIT 8-1 2847 */
OR (ORISPL=2847 AND COMPRESS{BLRID)=
/* OH: FRANK M TAIT 8-2 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)=
/* IA: RIVERSIDE 6 1081 */
OR (ORISPL=1081 AND COMPRESS(BLRID)=
/* IA: RIVERSIDE 7 1081 */
OR (ORISPL=1081 AND COMPRESS(BLRID)=
/* IA: RIVERSIDE 8 1081 */
OR (ORISPL=1081 AND COMPRESS(BLRID)=
/* Also Hard Code for Retired Units
/* IL: R S WALLACE 6 859 */
OR (ORISPL=859 AND COMPRESS(BLRID)=
/* LA: COUGHLIN 5 1396 */
'26' AND COMPRESS(GENID)='11')
'27' AND COMPRESS(GENID)='12')
'4' AND COMPRESS(GENID)='4')
'5' AND COMPRESS(GENIDj='5r)
'!' AND COMPRESS(GENID)='!')
'!' AND COMPRESS(GENID)='l')
'2' AND COMPRESS(GENID)='2')
'2' AND COMPRESS(GENID)='2')
'7-1')
'7-2')
'8-1')
'8-2')
'6')
'7')
'8'')
(epa memo 2/24/93) */
'6')
phase2.wp
Page C-12
-------
767
768
#
772
773
774
775
776
'777
778
779
780
'781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
. 796
797
798
799
800
• 8C
804
805
806
807
808 .
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
phasi
OR (ORISPL=1396 AND COMPRESS 25) AND (STCAP88 > 30000) THEN DO;
/* SET INITIAL VALUE TO ZERO */
S405I1 = 0;
/* Adjust Baseline */
IF MXBS8089 >= BASELINE THEN S405I1_B
ELSE S405I1_B = BASELINE;
MXBS8089;
/* Calculate Extra Allowances based on Regular Perm Provision Choice */
/*
405(b>(l) */
IF (INT(FLAGl) = 1) THEN S405I1
S405I1_B * 1.2 ./ 2;
r
405(c)(1) and 405{c)(2) */
IF (INT(FLAGl) = 2) THEN S405I1 = S405I1_B * 1.2 / 2;
IF (INT(FLAGl) = 3) THEN S405I1 = S405I1_B * MIN(SO2RTE,ANNLIM85) / 2;
/* 405(d)C2) and 405(e) */ ' .
IF ({INT(FLAGl) = 4) OR (INT(FLAGl) = 6)) THEN
S405I1 = S405I1_B * 1.2 * MIN(S02RTE,ANNLIM85) / 2;
/*405(d)(l) and405(f)(l) */
IF ((INT(FLAGl) = 5) OR (INT(FLAGl) = 7)) THEN
S405I1 = S405I1_B * 1.2 * MIN(0.6,ANNLIM85) / 2;
/* 405(g)(1) */
IF (INT(FLAGl) = 9) THEN.
S405I1 = MAX(S405I1_B,HT60SHR * 65 / 60) * ANNLIM85 / 2;
/* 405(g)(3) */
IF FLAG1 = 10.0 THEN .
S405I1 = MAX(S405I1_B,HT60SHR * 65 / 60) * MIN(0.3.FELIM85) / 2;
/* 405(g)(4) */
IF FLAG1 = 10.1 OR FLAG1 = 10.3 THEN • -.
S405I1 ='MAX(S405I1_B,HT60SHR * 65 / 60) * MIN(0.3,FELIM85) / 2;
IF FLAG1 = 10.2 THEN S405I1 = 0;
/* 405(h)(1) */ '
phase2.wp
Page C-13
-------
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
IP (INT(FLAGl) = 8) THEN S405I1 = S405I1_B * SO2RTE / 2;
/*.Adjustment for 2010 and later switch of 405(h)(2).to basic */
IF (PRIMFUEL = 2) AND (GAS8089 > 90) THEN
S405I1_1 = (S405I1_B * 0.05 12) - PERM2010; /* INCREMENT only */
ELSE S405I1_1 - 0;
/* 405(d)(4> -- 1981-85 NSPS Units get choice*/
IF ((S405I1 + BONUS) < (HT60SHR * 65 /60 * ANNLIM85 / 2)) AND
• (PRIMFUEL = 1) AND T
<{MIN(SO2RTE,ANNLIM85) < 1.2) or (S02RTE'>1.2 and ANNLIM85=1.2))
AND (1986 p YRONL > 1980) AND (S02CATEG >= 2) AND
-------
899
900
#
904
905
906
907
908
909-
910
911
912
"913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930'
931
932
936
937
938
939
940
941
9'42
943
944
945 '
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962-
963
964
/* NE: JONES STREET 26 11 2290' */
OR (ORISPL=2290 AND COMPRESS(BLRID)='26' AND COMPRESS(GENID)='11')
/*.NE: JONES STREET 27 12 2290 */
OR (ORISPL=2290 AND COMPRESS(BLRID)='27' AND COMPRESS(GENID)='12')
/* NM: RIO GRANDE 4 4 2444 */ ' '
OR (ORISPL=2444 AND'COMPRESS(BLRID) ='4' AND COMPRESS(GENID)='4') •
='S' AND COMPRESS(GENID)='5')
='!' AND COMPRESS(GENID)='l')
/* NM: RIO GRANDE 5 5 2444 */
OR
/*
(ORISPL=2444 AND COMPRESS(BLRID)
TX: KNOX LEE 1 1 3476 */
OR (ORISPL=3476 AND COMPRESS(BLRID)
/* TX: LEON CREEK 1 1 3609 */
OR (ORISPL=3609 ANp COMPRESS(BLRID)
/* TX: LEON CREEK 2 2 3609 */
OR (ORISPL=3609 AND COMPRESS(BLRID)
/* WI: EDGEWATER 2 2 4050 */
OR (ORISPL=4050 AND COMPRESS(BLRID)
/* OH: FRANK M TAIT 7-1' 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)
/* OH: FRANK M TAIT 7-2 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)
/* OH: FRANK M TAIT 8-1 2847 */
OR (ORISPL=2847 AND COMPRESS{BLRID)
/* OH: FRANK M TAIT 8-2 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)
/* IA: RIVERSIDE 6 1081 */
OR
-------
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
/* 405(c)(5) */ . '
IF (UPCTSCRB >= 20) AND (BIGUHARD = 1) AND (SMCOPCT > 10) AND
.125 < NAMEPCAP < 75) AND (S02RTE >* 1.2) THEN DO;. '
PERM_01 = (BASELINE * 2.5 / 2) - PERM_ALL;
PERM_ALL = BASELINE * 2.5 / 2;
PERM2010 = BASELINE * -1.3 / 2;
BONUS = 0;
FLAG2 = FLAG2 +0.01;
END;
/* 405(b)(3) */
IF (ATTAIN = 1) ANP (LIGNTPCT > 90) AND (NAMEPCAP > 25) AND
(S02RTE >= 1.2) THEN DO; !
PERM_02 = (BASELINE * MIN(S02RTE,ANNLIM85) / 2) - PERM_ALL;
PERM_ALL = BASELINE * MIN(SO2RTE,ANNLIM85) / 2;
BONUS = 0; '-
FLAG2 = FLAG2 +0.02;
END;
/* 405(d)(5) */
IF CCTGRNT = 1 THEN DO;
PERM_03 = (BASELINE * 1.2 / 2) - PERM_ALL;
PERM_ALL = BASELINE * 1.2 / 2;
BONUS = 0;
FLAG2 = FLAG2 +0.03;
IF (SPOP8088 > 25) AND (STCAP88 > 30000) THEN
S405I1 = (S405I1_B - BASELINE) * 1.2 / 2;
S405I1_1 = S405I1;
FL_40K2 = (S405I1_B - BASELINE) * 1V2 / 2;
END;
/* 405(g)(S) */
IF (G2C8587 » 1) AND (PROPIFUA = 1) THEN DO;
PERM_04 = (HT60SHR * 65 / 60 * MIN(S02LIM87,1.2) / 2) - PERM_ALL;
PERM_ALL = HT60SHR * 65 / 60 * MIN(SO2LIM87,1.2) / 2;
BONUS = 0;
FLAG2 = FLAG2 + 0.04?
END;
RUN;
/**********•*•******•*********•***/
/* END — Special Provisions */
/******»************#*************/
/* Additional Special Provisions */
/*********************************/
DATA S405I2(KEEP=SEQ MERGER S405I2 UPERM_05)
PROHIB(KEEP=SEQ MERGER PROHIB UPERM 06)
CNT_UTIL(KEEP=SEe UCODE CNT_UTIL UPERM107)
CNT_AUTH{KEEP=SEQ UCODE CNT_AUTH UPERM102);
SET V21;
/* 405(b)(4) */
IF (STCAP88 > 30000) AND (PROHIB_0 = IJ'AND (O2C8085 = 1) AND
(NAMEPCAP >= 75) AND (S02RTE >= 1.2) AND
(PERM_ALL < (HT60SHR * 65 / 60 * MIN(SO2RTE,ANNLIM85) / 2)) THEN DO;
PROHIB = (HT60SHR * 65 / 60 * MIN(ANNLIM85,SO2RTE) / 2) - PERM_ALL;
UPERM_06 = (HT60SHR * 65 / 60 * MIN(ANNLIM85,SO2RTE) / 2) - PERM_ALL;
OUTPUT PROHIB; >
END;
,\
/* 405(i)(2) */
IF ((SO2RTE80A=0) OR (SO2RTE90*=0) OR (SO2LIM80"=0) OR (SO2LIM90*=0))
and YRONL>1969 and (CMIN80A=0) and (SO22000<1.2) and
(S02SYS80^=0) THEN DO;
phase2.wp
Page C-16
-------
1031
1032
i^re
1036
1037
1038
1039
1040
"1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
10S8
1069
' 1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
phase2
IF (((SO2RTE80 <•= SO2LIM80) AND ( (S02RTE90 / S02RTE80) <=,0.5)) OR
US02RTE80 > S02LIM80) AND ((SO2LIM90 / SO2LIM80) <= 0.5)}) AND
.. (NAMEPCAP >= 75) AND (MIN(ANNLIM85,SO2RTE) >= 1,2} and
((CMIN90/CMIN80)>1.2) AND ((S02SYS88/S02SYS80)<=0.6) THEN DO;
PERM_ALL = MAX(PERM_ALL,(MXBS8089 * 1.2 / 2));
S405I2 = PERMLALL - (BASELINE * 1.2 / 2);
UPERM_05 = PERM_ALL - (BASELINE.* 1.2 / 2); /*INCREMENT*/
OUTPUT S405I2;
END;
END;
/* 405(f)(2) */ } i
IF (CONTOTIL = 1) AND (NAMEPCAP > 25) AND IfLAGl NE 12.1) THEN DO;
CNT_UTIL = PERM_ALL;
UPERM107 = PERM_ALL; /* TOTAL, NOT INCREMENT */
OUTPUT CNT_UTIL;
END;
IF (CONTAUTH = 1) AND (NAMEPCAP > 25) AND (FLAG1 NE 12.1) THEN DO;
CNT_AUTH = PERM_ALL;
UPERM102 = PERM_ALL; /* TOTAL, NOT INCREMENT */
OUTPUT CNT_AUTH;
END;
RUN;
/* Calculate totals for 405(b)(4), 405(i)(2), and 405(f)(2) */
PROC SUMMARY DATA=S405I2;
VAR S405I2;
ID MERGER;
OUTPUT OUT=S405I2S(KEEP=MERGER S405I2) SUM=S405I2;
RUN; .
' PROC SUMMARY DATA=PROHIB;
VAR PROHIB;
ID MERGER;
OUTPUT OUT=PROHIBS(KEEP=MERGER PROHIB) SUM=PROHIB;
RUN;
PROC SUMMARY DATA=CNT_UTIL;
VAR CNTJJTIL;
ID UCODE;
OUTPUT OUT=CNT_UTSM(KEEP=UCODE CNT_UTIL) SUM=CNT_UTIL;
RUN;
PROC SUMMARY DATA=CNT_AUTH;
VAR CNT_AUTH;
ID UCODE;
OUTPUT OUT=CNT_AUSM(KEEP=UCODE CNT_AUTH) SUM=CNT_AUTH;
RUN;
/* SORT ALL DATASETS BY SEQ FOR MERGING */
PROC SORT DATA=V21; •
BY SEQ;
RUN;
PROC SORT DATA=S405I2(KEEP=SEQ UPERM_05);
BY SEQ;
RUN;
PROC SORT DATA=PROHIB(KEEP=SEQ UPERM_06);
BY SEQ;
RUN;
PROC SORT DATA=CNT_UTIL(KEEP=SEQ UPERM107);
BY SEQ; . . . .
RUN;
phase2.wp
Page C-17
\
-------
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
PROC SORT DATA=CNT_AUTH(KEEP=SEQ UPERM102);
BY SEQ; • "
.RUN; ' .
/* MERGE ALL SETS TO RETAIN UNRATCHETED VALUES FOR THE 4 PROVISIONS */
DATA V21;
MERGE V21 S405I2 PROHIB CNT_UTIL CNT_AUTH;
BY SEQ;
RUN;
/* NOW RE-SORT V21 TO MERGE BY UCODE */
PROC SORT DATA=V21i; .
BY UCODE; •• ' !
RUN;
/* Combine totals for 405(b)(4) and 405{i)(2) with main file and adjust */
DATA V21;
MERGE V21(DROP=PROHIB S405I2) PROHIBS S405I2S;
BY MERGER;
/* 405(b)(4) */
IF (STCAP88 > 30000) AND (PROHIB_O = 1) AND (O2C8085 = 1) AND
(NAMEPCAP >= 75) AND (SO2RTE >= 1.2) AND
(PERM^ALL < (HT60SHR * 65 / 60 * MIN(S02RTE,ANNLIM85) / 2)) THEN DO;
FLAG2 = FLAG2 + 0.06;
RPERM_06 = round((((HT60SHR * 65 / 60 * MIN(ANNLIM85,SO2RTE) / 2)
- PERM_ALL) * 5 / MAX(PROHIB,5)),.001);
END;
/* 405(i)(2) */ :"
IF «SO2RTE80~=0) OR (S02RTE90">=0) OR (SO2LIM80A=0) OR (SO2LIM90"=0)}
and YRONL>1969 and (CMINSO^O) and (SO22000<1.2) and
(SO2SYS80*=0) THEN DO;
IF {((S02RTE80 <= SO2LIM80) AND ({SO2RTE90 / SO2RTE80) <= 0.5)) OR
US02RTE80 > SO2LIM80) AND ((SO2LIM90 / S02LIM80) <= 0.5))) AND
(NAMEPCAP >= 75) AND (MIN(ANNLIM85,SO2RTE) >= 1.2) and
((CMIN90/CMIN80)>1.2) AND {(SO2SYS88/SO2SYS80)<=0.6) THEN DO;
FLAG2 = FLAG2 + 0.05;
RPERM_05 = ROUND(MAX(0,((MXBS8089 - BASELINE).* 1.2 / 2)),.001);
IF S405I2 > 5 THEN RPERM_05 = round(RPERM_05 * 5 / S405I2,.001);
END;
END;
RUN;
/* Combine totals for 405(f)(2) with main file and adjust */
DATA V21;
MERGE V21(DROP=CNT_UTIL CNT_AUTH) CNT_UTSM CNT_AUSM;
BY UCODE;
IF CONTUTIL = 1 THEN DO;
RPERM107 = round((PERM ALL * 7 / CNT_UTIL),.001);
FLAG2 = FLAG2 + 0.1;
END;
IF CONTAUTH = 1 THEN DO;
RPERM102 = round((PERM_ALL * 2 / CNT_AUTH),.001);
FLAG2 = FLAG2 + 0.1;
END;
/* 405(c)(3) .*/
'IF (NAMEPCAP < 75) AND (SO2RTE >= 1.2) AND (YRONL < 1966) AND
(250 < UCAPFSST < 450) AND (UCUST90 < 78000) AND (UCUST90"=0) THEN DO;
PERM_07 = (BASELINE * (MIN(SO2RTE,ANNLIM85)-1.2) / 2);
PERM_ALL = BASELINE * MIN(SO2RTE,ANNLIM85) / 2;
PERM2010 = BASELINE * (1.2 - MIN(S02RTE,ANNLIM85)) / 2;
BONUS = 0;
phase2.wp
Page C-18
-------
1163
1164
1^^
1168
1169
1170
1171
1172
- 1173
1174
1175
1176
'1177
1178
1179
1180
1181
1182
1183
1184 .
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
m
1200
1201
1202
1203
1204
1205
1206
1207
1208.
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
- 1227
1228
FLAG2 = FLAG2 +0.07;
END; ' . ' .
/*'405(j) *•/ . • '
IF (PRIMFUEL a 2) AND (FLAGMUNI = 1) AND (25 < NAMEPCAP <= 40) AND
(MIN(S02RTE,ANNLIM85) < 1.2) AND (YRONL <= 1990) THEN DO;
PERM_ALL = PERM_ALL + (HT60SHR * MIN(S02RTE,ANNLIM85) / 2);
MUN_PERM = HT60SHR * MINfSO2RTE,ANNLIM85) / 2;
FLAG2 = FLAG2 + 0.08;
" END;
I
/* 404(h)(l> and 4j04(h) (2) */
IF SO2SYS90A=0 AND SO2RTE80A=0 THEN DO;
IF (S02RTE90 < 1.0) AND (S02RTE90 / SO2RTE80 < 0.4) AND
(S02SYS90 < 1.0) AND
-------
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261 ,
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276'
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
/*
/*
OR
/* OH: FRANK M TAIT 7-2 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID>='7-2')
/* .OH: FRANK M TAIT 8-1 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)='8-1')
/* OH: FRANK M TAIT 8-2 2847 */
OR (ORISPL=2847 AND COMPRESS(BLRID)='8-2')
/* IA: RIVERSIDE 6 1081 */
OR (ORISPL=1081 AND COMPRESS(BLRID)='6')
/* IA: RIVERSIDE 7 1081 */
OR (ORISPL=1081 AND COMPRESS(BLRID)='7')
/* IA: RIVERSIDE 8 1081 */
OR (ORISPL=1081 AND COMPRESS(BLRID)='8') •
" Also Hard Code for Retired Units (epa memo 2/24/93) */
IL: R S WALLACE 6 859 */
(ORISPL=859 AND COMPRESS(BLRID)='&')
I* LA: COUGHLIN 5 1396 */
OR (ORISPL=1396 AND COMPRESS(BLRID)='5'}
/* OH: POSTON 4 2844 */
OR (ORISPL=2844 AND COMPRESS(BLRID)='4')
/* Also Hard Code for Retired Units (epa memo 3/1/93) */
/* DE: DELAWARE CITY 592 */
OR (ORISPL=592)
/* NY: HUDSON AVENUE 2496 */
OR (ORISPL=2496)
/* NY: 59TH STREET -110 2503 */
OR (ORISPL=2503 AND COMPRESS(BLRID) NE '110')
THEN DO;
PERM_ALL = 0;
RPERM107 = 0;
RPERM102 = 0;
MUN_PERM = 0;
PERM_07 = 0;
PERM2010 = 0;
END;
RUN;
/* Force exact totals for 404(f)(2) and (i)(2), */
/* then add increment to PERM_ALL */
%adjtot(RPERM107,v21,7.000,.001,SEQ);
%adjtot(RPERM102,v21,2.000,.001,SEQ);
%adjtot(RPERM_05,v21,5.000,.001,SEQ);
%adjtot(RPERM_06,v21,5.000,.001.SEQ);
data V21;
set V21;
IF CONTUTIL =
IF CONTAUTH =
IF RPERM_05 >
IF RPERM_06 >
RUN;
1 THEN PERM_ALL = PERM_ALL + RPERM107;
1 THEN PERM_ALL = PERM_ALL + RPERM102;
0 then PERM_ALL = PERM_ALL -H RPERM_05;
0. then PERM_ALL = PERM_ALL + RPERM_06;
/* 405(i)(l) — Adjust Growth State Extras to 40,000 */
PROC SUMMARY;
VAR S405I1 S405I1_1;
ID MERGER;
OUTPUT OUT=GROWSTAT(KEEP=GROWSTAT GRST2010 MERGER) SUM=GROWSTAT GRST2010;
RUN;
DATA V21;
MERGE V21 GROWSTAT;
BY MERGER; A
IF (SPOP8088 > 25) AND (STCAP88 > 30000) THEN DO;
S405I1_P = round((S405Il * 40 / GROWSTAT),.001); '
S405I1_F = round((S405I1_1 * 40 / GRST2010),.001);
END;
phase2.wp
Page C-20
-------
1295
1296
m
1300
1301
1302
1303
1304
51305
1306
1307
1308
*1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
m
1333
1334
1335 .
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352 .
1353
1354
1355
1356
1357
1358
1359
1360
ELSE DO;
S405I1_P = 0;
S405I1_F = 0;•
END; '•
/* create "compressed" blrid variable for Sec. 406 Sort */
c_blrid=compress(blrid);
pmse2,
RUN;
if**************-**************************/ t
/* END — Additional Special Provisions */'
/*****#**********************************/
/* run adjtot macro to check adjusted totals and fix, if needed */
%adjtot(s405il_p,v21,40.000,.001,SEQ);
%adjtot(s405il_f,v21,40.000,.001,SEQ);
/if********************************/
/* 406 — Clean States Provision */
y*********************************y
/* Sort by blrid */
PROC SORT DATA=V21;
BY STATNAM UCODE PNAME c_blrid GENID;
RUN;
/* Create variables for calculation of statewide .s,o2 rates */
DATA V21;
SET V21;
BY STATNAM UCODE PNAME c_blrid;
blrS02 = .0;
blrTOTHT = 0;
IF FIRST.cjblrid THEN DO;
blrSO2 = S02;
blrTOTHT = TOTHT;
END;
RUN;
/* Calculate statewide totals of so2 and Fuel consumption */
PROC SUMMARY DATA=V21;
BY STATNAM;
VAR blrS02 blrTOTHT;
OUTPUT OUT=BONUS125(KEEP=STATNAM SUMSO2 SUMTOTHT)
SUM=SUMS02 SUMTOTHT;
RUN;
/* Calculate statewide so2 rate */
DATA V21;
MERGE V21' BONUS125;
BY STATNAM; '
STATRATE = SUMSO2 / SUMTOTHT * 2 / 1000;
cl_state=0;
if statrate <= 0.8 then cl_state=l;
RUN;
proc sort data=V21;
BY STATNAM UCODE .PNAME GENID;
run;
/* Calculate generation in "clean" states */
DATA V21; '
SET V21;
BY STATNAM UCODE PNAME GENID;
GENSUM = 0;
wp
Page C-21
-------
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
IF (STATRATE <= 0.8) AND FIRST. GENID AND
( (NAMEPCAP •> 25) or ( (YRONL > 1990.) OR ( (YRONL & 1990) AND.
(MNONL > '9) ) ) ) THEN
GENSUM = GENER;
/* set total basic allowances, 2000-2009 and 2010 and later */
BASIC_09 = ROUND ( (PERM_ALL + S405I1JP) , . 001) ;
BASIC_10 = ROUND «PERM_ALL + PERM2010 + S405I1_F) , . 001) ;
RUN;
/* Calculate totals of basic and 405(1} (1) allowances and generation */
PROC SUMMARY DATA=^21; < ,'
VAR GENSUM BASIC_09 BASIC_10; '
ID MERGER;
OUTPUT OUT=GENRPERM(KEEP=MERGER GENERSUM SUM_09 SUM_10)
RUN;
SUM=GENERSUM
SUM_10;
1990) OR ((YRONL = 1990) AND
BONUS125 = round((GENER * 125 /
/* Merge totals with main file */
DATA V21;
MERGE V21 GENRPERM;
BY MERGER ;
RUN;
/* Adjust Clean States Bonus to 125,000 total
DATA V21;
SET V21;
BY STATNAM UCODE PNAME GENID;
BONUS125 = 0;
IF (STATRATE <= 0.8) AND
((NAMEPCAP > 25) or ((YRONL
(MNONL > 9)))) THEN DO;
IF FIRST. GENID THEN
GENERSUM), .001);
FLAG2 = FLAG2 + 3 ;
END; ,
RUN;
/* run adjtot macro to check adjusted totals and fix, .if needed */
%adjtot(bonus!25,v21,125.000, .001.SEQ) ;
PROC SORT 0ATA=V21;
BY STATNAM ;
RUN;
/* Calculate state totals of bonus and clean states bonus for elections */
PROC SUMMARY DATA=V21;
BY STATNAM;
VAR BONUS BONUS 125;
OUTPUT OUT=SUMBONUS(KEEP=STATNAM SUMBON SUMB125) SUM=SUMBON SUMB125;
RUN;
/* Merge totals with main file. Adjust basic allowances to 8.9 million */
DATA V21;
MERGE V21(DROP=SUMB125) SUMBONUS;
BY STATNAM;
BAS89_09 = round ( (BASIC_09 * 8900 / SUM_09) , .001) ;
BAS89_10 = round ( (BASIC_10 * 8900 / SUM 10),. 001);
RUN;
/* run adjtot macro to check adjusted totals and fix, if needed */
%adjtot(bas89_09,v21, 8900. 000, .001,SEQ);
%adjtot(bas89_10,v21, 8900. 000, -OOl.SEQ) ;
phase2.wp
Page C-22
-------
1427 /********************************************************«******************/
1428 /* 405(a)(3) — Additional 50,000 for Phase I affected units (mod 3/19/93) */
l^ffl[ /* Select appropriate units */ •
1432 DATA PHASEI;
1433 SET V21;
1434 IF totalphl = 0 THEN DELETE;
1435 IF upcase{PNAME) = 'CLIFTY CREEK' OR upcase(PNAME) = 'JOPPA STEAM'
. 1436 ' OR upcase(PNAME) = 'KYGER CREEK'
c1437 THEN DELETE;
1438 IF ((STATNAM =5 'ILLINOIS') OR (STATNAM.s 'INDIANA') OR (STATNAM = 'OHIO')
1439 OR (STATNAM = 'GEORGIA') OR (STATNAM = (jALABAMA') OR (STATNAM = 'MISSOURI')
^1440 OR (STATNAM = 'PENNSYLVANIA') OR (STATNAM = 'WEST VIRGINIA')
1441 OR (STATNAM = 'KENTUCKY') OR (STATNAM = 'TENNESSEE'))'THEN OUTPUT;
1442 RUN;
1443
.1444 /* Calculate sum of basic allowances to' adjust total */
1445 PROC SUMMARY DATA=PHASEI;
1446 VAR BASIC_09 BASIC_10;
1447 ID MERGER;
1448 - OUTPUT OUT=PH1SUM(KEEP=B_09 B_10 MERGER) SUM=B_09 B 10;
1449 RUN;
1450
1451 /* Merge total with main file, calculate 405(a)(3) allowances, and make */
1452 /* election for clean states. Finally, calculate total allowances. */
1453 DATA V21;
1454 MERGE V21 PH1SUM;
1455 • BY MERGER;
1456 " " '
1457 /* 405(a)(3) */
1458 IF (upcase(PNAME) ~= 'CLIFTY CREEK') AND (upcase(PNAME) A= 'JOPPA STEAM')
1459 AND (upcase(PNAME) A= 'KYGER CREEK') AND (totalphl > 0)
1460 AND ((STATNAM = 'ILLINOIS') OR (STATNAM = 'INDIANA') OR (STATNAM = 'OHIO')
OR (STATNAM = 'GEORGIA') OR (STATNAM = 'ALABAMA') OR (STATNAM = 'MISSOURI')
OR (STATNAM = 'PENNSYLVANIA') OR (STATNAM = 'WEST VIRGINIA')
OR (STATNAM = 'KENTUCKY') OR (STATNAM = 'TENNESSEE')) THEN DO;
1464 PHASEI09 = round((50 * BASIC_09 / B_09),.001);
1465 PHASEI10 = round((50 * BASIC_10 / B_10),,001);
1466 FLAG2 = FLAG2 + 2;
1467 END;
1468
1469 /* 406 — Make election for clean states */
1470
1471 IF (SUMB125 > SUMBON) or (cl_state=l .
1472 and (statnam='ARIZONA' or statnam='ARKANSAS' or statnam='COLORADO'
1473 or statnam='LOUISIANA' or statnam='NEVADA' or statnam='NEW MEXICO'
1474 . or statnaro='OKLAHOMA' or statnam='WYOMING'))
1475 THEN DO; .
1476 FLAG2 = FLAG2 + 1;
1477 TOTAL_09 = BAS89_09 + BONUS125 + PHASEI09;
1478 TOTALBON = round(BONUS125, . 001) ,-
1479 -END;
1480 ELSE DO;
1481 TOTAL_09 = BAS89_09 + BONUS + PHASEI09;
1482 TOTALBON = round(BONUS,.001);
1483 END;
1484
1485 TOTAL_10 = BAS89_10 + PHASEI10;
1486
1487 /* Set flags for certain types of units */
1488 IF (YRONL > 1995) AND (FLAG1 "= 11) THEN DO;
1489 FLAG2 = 0;
1490 FLAG1 =13;
1491 END;
1492 IF ((YRONL < 1990) OR ((YRONL = 1990) AND (MNONL < 12))) AND
phase2.wp page 0.23
-------
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
FLAG2 = 0;
FLAG1 = 14;
END;
IF ({NAMEPCAP <=
{(S02CATEG = 4) OR (S02CATEG.= 9)) THEN DO;
25} AND ((YRONL <. 1990) OR ( (YRONL = 1990) AND
(MNONL < 12))))
V
/* IA: RIVERSIDE 6 1081
OR (ORISPL=1081 AND COMPRESS(BLRID)='6')
/* IA: RIVERSIDE 7 1081 */
OR (ORISPL=1081 AND COMPRESS(BLRID)='7')
/* IA: RIVERSIDE 8 1081 */
OR (ORISPL=1081 AND COMPRESS(BLRID)='8') <
/* Also Hard Code for Retired Units (epa memo 3/1/93) */
/* DE: DELAWARE CITY 592 */
OR (ORISPL=592)
/* NY: HUDSON AVENUE 2496 */
OR (ORISPL=2496)
/* NY: 59TH STREET. -110 2503 */
OR (ORISPL=2503 AND COMPRESS(BLRID) NE '110')
THEN DO;
FLAG2 = 0;
FLAG1 = 12;
END;
/* Hard Code for Retired Units: FLAG1 = 12.1 */
/* IL: R S WALLACE 7 5 859 */
IF (ORISPL=859 and compress(blrid)='7' and compress(genid)='5'
/* IL: R S WALLACE 8 5 859 */
OR (ORISPL=859 and compress(blrid)='8'
/* KY: CANE RUN 1 1 1363 */
OR (ORISPL=1363 and compress(blrid)='!'
/* KY: CANE RUN 2 2 1363 */
OR (ORISPL=1363 and compress(blrid)='2'
/* OH: FRANK M TAIT 4 4 2847 */
OR (ORISPL=2847 and compress(blrid)='4'
/* OH: FRANK M TAIT 5 5 2847 */
OR (ORISPL=2847 and compress(blrid)='5'
and compress (gen id) = ' 5 ' )
and compress (genid) ='!'}
and compress (genid) -'2 ')
and compress (genid) ='4' )
and compress (genid) =' 5 ')
/* Additional Units */
/* NE: JONES STREET 26 11 2290 */
OR (ORISPL=2290 AND COMPRESS(BLRID)='
/* NE: JONES STREET 27 12 2290 */
OR (ORISPL=2290 AND COMPRESS(BLRID)=
/* NM: RIO GRANDE 4 4 2444 */
OR
-------
1559
1560
IWs
1564
1565
1566
1567
.1568
~ 1569
1570
1571
' 1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
m
1596
1597
1598
1599
1600
1601
1602
1603
1604.
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
phasi
/* LA: COUGHLIN 5 1396 */
OR (ORISPL=1396 AND COMPRESS(BLRID)='5')
/*.OH: POSTON 4 2844 */ .
OR (ORISPL=2844 AND COMPRESS(BLRID)='4')
THEN DO;
FLAG2 = 0;
FLAGl = 12.1;
END;
run ;
j i
/* run adjtot macro to check adjusted totals and fix, if needed */
%adjtot(phasei09,v21,50.000,.001,SEQ);
%adjtot(phaseilO,v21,50.000,.001,SEQ);
I ****************************************************/•
/* Adjust TOTALBON, Total Bonus Allowances, to 530k */
/*******************************»********************/
PROC SUMMARY DATA=V21;
VAR TOTALBON;
ID MERGER;
OUTPUT OUT=BONURSUM(KEEP=MERGER BONSUM) SUM=BONSUM;
RUN;
DATA V21;
MERGE V21 BONURSUM;
BY MERGER;
IP BONSUM>530.000 THEN TOTBONRA = round((TOTALBON * 53()-/ BONSUM),.001);
ELSE TOTBONRA ss TOTALBON;
RUN;
/* Check Bonus Total and Adjust if necessary */
%macro bonuschk;
data bonursum; set bonursum;
call symput('bontot',bonsum); •
run;
%if &bontot>530.000 %then
%adjtot(totbonra,v21,530,000,.001.SEQ);
%mend bonuschk;
%bonuschk;
/* Format for final output to dbase file */
DATA V210UT(KEEP=SEQ STATNAM PNAME GENID BLRID UCODE ORISPL UTILNAME
. FLAGl FLAG2 BONUS MERGER FL_RA10 FL_UN10
BONUS125 FL_RACH FL_UNRAC TOTALBON TOTBONRA
BASCR_09 BASREP09 FINBAS09 FINBAS10 TOT_09 TOT_10
BASAUCT CONSREN REPOWER .AUCT_09 AUCT_10
PI50_09 PI50_10 BAS_UR10 BAS_UR09 BAS_RA09 BAS_RA10
PERM_11 PERM_01 PERM_02 PERM_03 PERM_04
UPERM_05 RPERM_05 UPERM_06 RPERM_06
PERM_07 PERM_09 MUN_PERM UPERM107 RPERM107
UPERM102 RPERM102 FL_40K2 TOTAL_09 TOTAL_10);
SET V21;
FORMAT SEQ 4.0
FLAGl 4.1 "
FLAG2 5.2
UCODE 5.0
ORISPL PI50_09 PI50_10 4.0
phase2.wp
Page C-25
-------
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
totalbon totbonra BASCR_09 BASREP09 CONSREN REPOWER AUCT_09 AUCT_10
FINBAS09 FINBAS10 BASAUCT tot_09 tot_10 bas^ur09 bas_urlO
bas_ra09 bas_ralO 5.0
BONUS BONUS125 FL_RACH FL_UNRAC FL_RA10 FL_UN10
PERM_11 PERM_01 PERM_02 PERM_03 PERM_04 UPERM_05 RPERM_05
UPERM_06 RPERM_06 PERM_07 PERM_09 MUN_PERM UPERM107 RPERM107
UPERM102 RPERM102 FL_40K2 TOTAL_09 TOTAL_10 16.5;
LABEL '
FLAG1='Provision ID Flag 1'
FLAG2='Provision ID Flag 2' i
BONUS='Regular Bonus' '
BONUS125='Clean States Bonus'
TOTALBON='Total Unadjusted Bonus'
TOTBONRA='Total Adjusted Bonus'
FL_RACH='405(i)(1) Adjusted 2000-09'
FL_UNRAC='405(i)(1) Unadjusted 2000-09'
FL_RA10='405(i)(1) Adjusted 2010 and Later'
FL_UN10='405(i)(1) Unadjusted 2010 and Later'
BASCR_09='Basic, Adj for Con/Ren 2000-09'
BASREP09='Basic, Adj for Repowering 2000-09'
FINBAS09='Fin. Basic 2000-09 (w/ Con/Ren/Rep)'
FINBAS10='Fin. Basic 2010 and Later'
TOT_09='Total 2000-2009'
TOT_10='Total 2010 and Later'
CONSREN='Cons/Renewable Reserve Deduction'
REPOWER='Repowering Set-Aside'
BASAUCT='Basic Adj for Auct/Sale, 2000-09'
AUCT_09='Auct/Sale Reserve, 2000-2009'
AUCT_10='Auct/Sale Reserve, 2010 and Later'
PI50_09='405(a)(3) Adjusted, 2000-2009'
Pl50_10='405(a)(3) Adjusted, 2010 and Later'
BAS_UR09='Basic Unadjusted 2000-2009'
BAS_UR10='Basic Unadjusted 2010 and Later'
BAS_RA09='Basic Adjusted 2000-2009'
BAS_RA10='Basic Adjusted 2010 and Later'
PERM_ll='405d4 1981-85 NSPS: INCREMENT'
PERM_01='405c5 BIGUHARD: 2000-09 INCREMENT'
PERM_02='405b3 Attain/Lignite INCREMENT'
PERM_03='405d5 CCTGRNT INCREMENT'
PERM_04='405g5 INCREMENT'
UPERM_05='405i2 Unratcheted INCREMENT'
RPERM_05='405i2 Ratcheted INCREMENT'
UPERM_06='405b4 Unratcheted INCREMENT'
RPERM_06='405b4 Ratcheted INCREMENT'
PERM_07='405c3 INCREMENT'
PERM_09='404h INCREMENT'
MUN_PERM='405j Municipals INCREMENT'
UPERM107='405f2 Utility Unratcheted TOTAL'
RPERM107='405f2 Utility Ratcheted INCREMENT'
UPERM102='40.5f2 :St Auth Unratcheted TOTAL'
RPERM102='405f2 St Auth Ratcheted INCREMENT'
FL_40K2='405d5 CCTGRNT Florida Increment'
total_09='*** DO NOT USE ***'
total_10='*** DO NOT USE ***'
BONUS=BONUS*1000;
BONUS125=BONUS125*1000;
BAS_UR09 = BASIC_09 * 1000;
BAS_UR10 = BASIC_10 * 1000;
PI50_09=PHASEI09*1000;
PI50_10=PHASEI10*1000;
FL_RACH=S405I1_P*1000;
FL_UNRAC=S405I1*1000;
FL_RA10=S405I1_F*1000;
phase2.wp
Page C-26
-------
J5
169S
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
FL_UN10=S405I1_1*1000;
BAS_RA09=BAS89_09*1000; "
BAS_RA10 =BAS89ll0*1000;
TOTALBON=TOTALBON*1000;
TOTBONRA=TOTBONRA*1000;
TOTAL_0 9=TOTAL_0 9*1000;
TOTAL_10=TOTAL_10*1000;
CONSREN=round(BAS_RA09*30000/8900000,l);
.REPOWER=round(BAS_RA09*50000/8900000,1);
AUCT_09=round(BAS_RA09*250000/8900000,1);
AUCT_10=round(BAS_^A10*250000/8900000,1) ;
BASCR_09=BAS_RAO9-CONSREN;
BASREP09 =BAS^_RAO 9 -REPOWER ;
BASAUCT=BAS_RAO 9-AUCT_0 9;
FINBAS09=BAS_RA09-CONSREN-REPOWER-AUCT_09;
FINBAS10 =BAS_RA10-AUCT_10;
TOT_09=FINBAS09+TOTBONRA+PI50_09;
TOT_10=FINBAS10-»-PI50_10;
MERGER=1;
PERM_11
PERM 01
PERM_02
PERM 03
PERM 04
UPERM_05
RPERM_05
UPERM 06
RPERM_06
PERM_07
PERM_09
MUN PERM
UPERM107
RPERM107
UPERM102
RPERM102
FL 40K2
RUN;
=;
=
=
=
=
=
sf
sr
=
=
=
ss
=
=
=
=
=
PERM 11
PERM_01
PERM_02
PERM 03
PERM 04
UPERM_05
RPERM_05
UPERM 06
RPERM_06
PERM_07
PERM_09
MUN_PERM
UPERM107
RPERM107
UPERM102
RPERM102
FL_40K2
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
1000;
1000;
1000;
1000;
1000;
1000;
1000;
1000;
1000;
1000;
1000;
1000;
1000;
1000;
1000;
1000;
1000;
/* run adjtot macro to check adjusted totals and fix, if needed */
%adjtot(consren,v21out,30000,1,SEQ);
%adj tot(repower,v2lout,50000,1, SEQ);
%adjtot(auct_09,v21out,250000,l.SEQ);
%adjtot
-------
17.57
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
TITLES 'Statistics for Important Variables, Final Allowances.— ALNEWFIN';
RUN; ' • . ' ' _ . • (
/* Report sums for Phase I 50 K Calculations *./
title3 'Sum of Basic Allowances for Phase 1 50 K Units (Thousands)';
proc print data=phlsum label;
label B_09='Unadjusted Basic Allowances, 2000-09'
B_10='Unadjusted Basic Allowances, 2010 and Later';
run;
/* Create State Totals */
PROC SUMMARY DATA=^V21OUT; •
BY STATNAM; .
VAR BONUS BONUS125 FL_RACH FL_UNRAC FL_RA10 FL_UN10 TOTALBON TOTBONRA
BASCR_09 BASREP09 CONSREN REPOWER AUCT_09 AUCT_10 FINBAS09 FINBAS10
BASAUCT TOT_09 TOT_10 PI50_09 PI50_10 BAS_UR10 BAS_UR09 BAS_RA09 BAS_RA10
PERM_11 PERM_01 PERM_02 PERM_03 PERM_04
UPERM_05 RPERM_05 UPERM_06 RPERM_06
PERM_07 PERM_09 MUN_PERM UPERM107 RPERM107
UPERM102 RPERM102 FL_40K2 TOTAL_09 TOTAL_10;
OUTPUT OUT=V21STATE SUM=;
RUN;
DATA V21state;
SET V21state;
FORMAT
BONUS BONUS125 FL RACK FL_UNRAC FL_RA10 FL_UN10 TOTALBON TOTBONRA
BASCR_09 BASREP09~CONSREN REPOWER AUCT_09 AUCT_10 FINBAS09 FINBAS10
BASAUCT TOT_09 TOT_10 PI50_09 PI50_10 BAS_UR10 BAS_UR09 BAS_RA09 BAS_RA10
PERM_11 PERM_01 PERM_02 PERM_03 PERM_04
UPERM_05 RPERM_05 UPERM_06 RPERM_06
PERM_07 PERM_09 MUN_PERM UPERM107 RPERM107
UPERM102 RPERM102 FL_40K2 TOTAL_09 TOTAL_10 7.0;
RUN;
/* Create Boiler Level Totals */
PROC SUMMARY DATA=V21OUT;
ID PNAME UCODE UTILNAME;
BY STATNAM ORISPL BLRID;
VAR BONUS BONUS125 FL_RACH FL_UNRAC FL_RA10 FL_UN10 TOTALBON TOTBONRA
BASCR_09 BASREP09 CONSREN REPOWER AUCT_09 AUCT_10 FINBAS09 FINBAS10
BASAUCT TOT_09 TOT_10 PI50_09 PI50_10 BAS_UR10 BAS_UR09 BAS_RA09 BAS_RA10
PERM_11 PERM_01 PERM_02 PERM_03 PERM_04
UPERM_05 RPERM_05 UPERM_06 RPERM_06
PERM_07 PERM_09 MUN_PERM UPERM107 RPERM107
UPERM102 RPERM102 FL_40K2 TOTAL_09 TOTAL_10;
OUTPUT OUT=V21BLR SUM=;
RUN;
/* Sort Datasets for Final Output */
PROC SORT DATA=V21OUT;
BY SEQ;
RUN;
PROC SORT DATA=V21BLR;
BY STATNAM PNAME BLRID;
RUN;
/* Create Transport Dataset for PC Processing */
libname transt xport '/u/p2455xOe/nadb/state.dat';
libname tranblr xport Vu/p2455xOe/nadb/boiler.dat';
libname tranbg xport '/u/p2455xOe/nadb/allow.dat';
proc copy in=work out=transt;
select v21state;
run ;
phase2.wp
Page C-28
-------
1823
1824
^tt
1828
1829 -
1830
1831
.1832
1833
1834
' 1835
VL836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
.1856
1^7
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
proc copy in=work out=tranblr;
select v21blr;
run; • •
•proc copy in=work out=tranbg;
select v21out; • " •
run ;
/* Run Proc Compare to Check Changes */
data nadb.epanew; set nadb.epanew;
label .
FLAG1='Provision; ID Flag 1' •
; FLAG2='Provision ID Flag 2'
BONUS='Regular Bonus'
BONUS125='Clean States Bonus'
TOTALBON='Total Unadjusted Bonus' ••
FLJJNRAC='405(i)(1) Unadjusted 2000-09'
FL_UN10='405(i)(1) Unadjusted 2010 and Later'
BAS_UR09='Basic Unadjusted 2000-2009'
BAS_UR10='Basic Unadjusted 2010 and Later'
PERM_ll='405d4 1981-85 NSPS: INCREMENT'
PERM_01='405c5 BIGUHARD: 2000-09 INCREMENT'
P£RM_02='405b3 Attain/Lignite INCREMENT'
~PERM_03='405d5 CCTGRNT INCREMENT'
PERM_04='405g5 INCREMENT'
UPERM_05='405i2 Unratcheted INCREMENT'
RPERM_05='405i2 Ratcheted INCREMENT'
UPERM_06='405b4 Unratcheted INCREMENT'
RPERM_06='405b4 Ratcheted INCREMENT'
PERM_07='405c3 INCREMENT'
PERM_09='404h INCREMENT'
MUN_PERM='405j Municipals INCREMENT'
UPERM107='405f2 Utility Unratcheted TOTAL'
RPERM107='405f2 Utility Ratcheted INCREMENT'
UPERM102='405f2 St Auth Unratcheted TOTAL'
RPERM102='405f2 St Auth Ratcheted INCREMENT'
FL_40K2='405d5 CCTGRNT Florida Increment'
run ;
proc sort data=nadb.epanew; by statnam pname blrid genid; run;
data nadb.epafinal; set nadb.epafinal?
label
CONSREN='Cons/Renewable Reserve Deduction1
REPOWER='Repowering Set-Aside'
AUCT_09='Auct/Sale Reserve, 2000-2009'
AUCT_10='Auct/Sale Reserve, 2010 and Later'
/
run;
prbc sort data=nadb.epafinal; by statnam pname blrid genid; run;
proc sort data=v21out; by statnam pname blrid genid; run;
title3 'Comparison of V21OUT and epanew: FLAG1 and FLAG2';
PROC COMPARE BASE=V21OUT COMPARE=NADBMAIN.epanew maxprint== (500,2500)
method=ABSOLUTE criterion=.005;
id statnam pname blrid genid;
var flagl flag2;
run;
title3 'Comparison of V21OUT and epanew: Allowance Values';
PROC COMPARE BASE=V210UT COMPARE=NADBMAIN.epanew maxprint={500,2500)
methodsABSOLUTE criterion=l;
• id statnam pname blrid genid;
var bas_ur09 bas_urlO totalbon bonus bonus125
fl_unrac fl_unlO PERM_11 PERM_01 PERM_02 PERM_03 PEI?M_04
phaseS.wp
Page C-29
-------
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
UPERM_05 RPERM_05 UPERM_06 RPERM_06 PERM_07 PERM_09 MUN_PERM
UPERM107 RPERM107 UPERM102 RPERM102 FL_40K2;
run;.
TITLE3 'Comparison of V21OUT and EPAFINAL: Reserves and Set-Asides';
PROC COMPARE BASE=V210UT COMPARE=NADBMAIN.epafinal roaxprint=(500,2500)
method=ABSOLUTE criterion=l;
id statnam pname blrid genid;
var consren repower auct_09 auct_10;
run ;
phase2.wp
Page C-30
/
-------