//NNNNNNS JOB (ALA03),'NNNNNNN NNN NN',CLASS=H,MSGCLASS=H 00010008 /*ROUTE PRINT U5704 00030000 //**********************************************************************00040000 //* JOB NAME: PDS.SASRPW(RPWJOB3) - FORMERLY "J3RRUN97" USED 00060000 //**********************************************************************00060000 //* 00120008 //SO1 EXEC SAS,REGION=4096K,TIME=60 00120008 //WORK DD SPACE=(CYL,(900,700),RLSE) 00140000 //SYSOUT DD DUMMY 00250000 //* 00140000 //* 00140000 //* \/\/\/ PQ RUN: JOB-1 OUTPUT LAST QUALIFIER: FY1996QX: X=1...4. 00140000 //* \/\/\/ AP RUN: JOB-1 OUTPUT LAST QUALIFIER: FY1996XX: XX=01..13. 00140000 //EDITDAT2 DD DSN=HSQRAN.BRPWD01.EDITDAT2.FY2000Q4,DISP=SHR 00140000 //* 00140000 //* \/\/\/ RPW CODE AND 2-PAGE TITLE FILES. 00140000 //RPWLABEL DD DSN=HSQRAN.RPW.FY2000.CATEGORY.DIR,DISP=SHR 00140000 //TWOPAGE DD DSN=HSQRAN.RPW.ADJ.CNTL2000(SUMDIR),DISP=SHR 00140000 //* 00140000 //* \/\/\/ TRIAL BALANCE AIC REVENUE(BY AP). 00140000 //* 00140000 //REVCNTL DD DSN=HSQRAN.RPW.REVCNTL.FY200013,DISP=SHR 00140000 // DD DSN=HSQRAN.RPW.REVCNTL.FY200012,DISP=SHR 00140000 // DD DSN=HSQRAN.RPW.REVCNTL.FY200011,DISP=SHR 00140000 // DD DSN=HSQRAN.RPW.REVCNTL.FY200010,DISP=SHR 00140000 //* 00140000 //* \/\/\/ PQ RUN: JOB-2 OUTPUT LAST QUALIFIER: FY1996QX: X=1...4. 00140000 //* \/\/\/ AP RUN: JOB-2 OUTPUT LAST QUALIFIER: FY1996XX: XX=01..13. 00140000 //* 00140000 //*NFLATE DD DSN=HSQRAN.BRPWD01.INFLATE1.FY2000Q4,DISP=SHR 00140000 //INFLATE DD DSN=HSQRAN.BRPWD01.INFLATE1.FY2000Q4, 00140000 // DISP=(NEW,CATLG),DCB=(RECFM=FB,LRECL=240,BLKSIZE=4800), 00140000 // UNIT=SYSDA,SPACE=(CYL,(200,250),RLSE) 00140000 //* 00140000 //*RANS DD DSN=HSQRAN.BRPWD01.TRANS.FY2000Q4,DISP=SHR 00140000 //TRANS DD DSN=HSQRAN.BRPWD01.TRANS.FY2000Q4, 00140000 // DISP=(NEW,CATLG),DCB=(RECFM=FB,LRECL=80,BLKSIZE=2400), 00140000 // UNIT=SYSDA,SPACE=(CYL,(5,5),RLSE) 00140000 //* 00140000 //SYSIN DD * 00250000 00260000 **********************************************************************; * \/\/\/\/\/\/\/\/\/ UPDATE PARAMETERS \/\/\/\/\/\/\/\/\/\/\/ *; %LET RUNTYPE ='PQ'; *ENTER 2-CHAR ALPHA RUN TYPE: 'PQ' OR 'AP'. *;00260000 %LET FY = 00 ; *ENTER 2-CHAR NUMERIC FY (E.G., 96). *;00260000 %LET PQ = 4 ; *ENTER 1-CHAR NUMERIC QUARTER: 1-4. *;00260000 %LET AP = . ; *ENTER 2-CHAR NUMERIC AP: 01-13 (. IF PQ RUN). *;00260000 **********************************************************************; ******************** * PARAMETER CHECKS * ********************; DATA _NULL_; 00260000 IF ^(&RUNTYPE='PQ' OR &RUNTYPE='AP') OR 00260000 ^( 0<=&FY<=99) OR ^(1<=&PQ<=4) THEN ABORT; 00260000 IF &RUNTYPE='AP' AND ^(01<=&AP<=13) THEN ABORT; 00260000 IF &RUNTYPE='PQ' AND &AP ^= . THEN ABORT; 00260000 00260000 ********************* 00260000 * MAP AIC TO SYSTEM * 00260000 *********************; 00260000 DATA AICMAP; INFILE REVCNTL; 00260000 INPUT @1 GLA 5. 00260000 @6 AIC 3. 00260000 @9 RAIC 13. ; 00260000 IF AIC=132 THEN DELETE; IF AIC=124 THEN DELETE; IF AIC=136 THEN AIC=135; IF AIC=224 THEN AIC=135; IF AIC=238 THEN DELETE; PROC SORT; BY AIC; PROC SUMMARY; BY AIC; VAR RAIC; OUTPUT OUT=AICMAP SUM=; ************************************* * READ EDITDAT2 - VERIFY PARAMETERS * *************************************; DATA EDITDAT2 NRESP; INFILE EDITDAT2; 00260000 INPUT @1 RUNTYPE $2. @3 CLASS $2. @5 SYS $6. @11 AP 2. @11 APK $2. @13 PQ 1. @14 FY 2. @16 RDATE 6. @16 RDATEK $6. @22 FINNO 6. @28 VIP $5. @28 VIP1 $1. @29 VIP2 $1. @30 VIP3 $1. @33 RPWCODE 5. @38 RP 12. @50 RW 12. @62 P 12. @74 C 12. @86 W 14. @100 NRESP 1. @101 MIGRATE 1. @102 EFLAG 4. @102 EFLAGK $4. @106 DISCOUNT $1. @107 STRATUM 3. @110 BLOWUP 8. @118 AIC 3. @121 F1 10. @131 F2 15. ; ****************************************; ****************************************; ****************************************; ****************************************; IF AIC=224 THEN DO; AIC=135; IF VIP='44444' THEN DELETE; END; **********************************; **********************************; **********************************; ****************************************; ****************************************; ****************************************; ************************ * ZERO DISCOUNT PIECES * ************************; PDISC=0; IF DISCOUNT='Y' THEN DO; PDISC=P; P=0; END; *************************** * FILTER, DROP E-FAILURES * ***************************; IF VIP='44444' OR (NRESP=0 & RPWCODE^=. & EFLAG=0) THEN OUTPUT EDITDAT2; IF NRESP=1 THEN OUTPUT NRESP; ***************** * MISSING CHECK * *****************; DATA _NULL_; SET EDITDAT2; IF RUNTYPE^=&RUNTYPE THEN ABORT; IF &RUNTYPE='AP' & AP^=&AP THEN ABORT; 00260000 IF PQ^=&PQ OR FY^=&FY THEN ABORT; IF &RUNTYPE='AP' THEN DO; 00260000 IF (PQ=1 & ^(1<=AP<=3)) OR (PQ=2 & ^(4<=AP<=6)) OR 00260000 (PQ=3 & ^(7<=AP<=9)) OR (PQ=4 & ^(10<=AP<=13)) THEN ABORT;00260000 END; 00260000 ELSE IF &RUNTYPE='PQ' THEN DO; 00260000 IF ^(PQ=1 OR PQ=2 OR PQ=3 OR PQ=4) THEN ABORT; 00260000 END; 00260000 IF VIP=' ' THEN ABORT; 00260000 IF ^(0000<=EFLAG<=9999) THEN ABORT; 00260000 IF &PQ=4 & EFLAG=0 & ^(1<=F1<=4) THEN ABORT; IF &PQ<=3 & EFLAG=0 & ^(1<=F1<=3) THEN ABORT; IF NRESP^=0 THEN ABORT; PROC SORT DATA=EDITDAT2; 00260000 BY AP SYS CLASS FINNO RDATE AIC VIP; 00260000 DATA _NULL_; SET EDITDAT2; 00260000 BY AP SYS CLASS FINNO RDATE AIC VIP; 00260000 IF FIRST.VIP ^=LAST.VIP & 00260000 /* REMOVE FOLLOWING AFTER OLD RATES OBSOLETE */ 00260000 /* REMOVE FOLLOWING AFTER OLD RATES OBSOLETE */ 00260000 /* REMOVE FOLLOWING AFTER OLD RATES OBSOLETE */ 00260000 ^(RDATE=010195 & 00260000 (VIP='01192' OR VIP='01193' OR VIP='01293' OR 00260000 VIP='01270' OR VIP='01470' OR VIP='01391' OR 00260000 VIP='01392' OR VIP='01393') ) THEN ABORT; 00260000 ************************** * JOB-2 VERIFICATION RPT * **************************; DATA REP050; SET EDITDAT2; IF CLASS^=' '; IF VIP^='44444'; PROC SORT; BY SYS AIC CLASS; PROC SUMMARY DATA=REP050; BY SYS AIC CLASS; VAR RP RW P PDISC C W; OUTPUT OUT=REP050 SUM=; PROC PRINT DATA=REP050; FORMAT RP RW PDISC C W COMMA13. P COMMA14.; ID SYS; VAR AIC CLASS RP RW P PDISC C W; SUM RP RW P C W; TITLE1 "JOB3 ** RPW BULK MAIL SYSTEM ** FOR &RUNTYPE&AP PQ&PQ-&FY"; TITLE3 'R3-050: JOB-2 OUTPUT VERIFICATION'; TITLE5 'PASSED RECORDS ONLY'; TITLE6 ' '; ***************************** 00260000 * INFLATE: SYSTEM X STRATUM * 00260000 *****************************; 00260000 * BLOWUP: INFLATION FACTOR (WITHIN STRATUM); 00260000 * F1: OFFICE FACTOR - ADJUST FOR MISSING AP FOR PQ RUN (=1 IF AP RUN); 00260000 * F2: STRATUM FACTOR - NONRESPONSE ADJUSTMENT; 00260000 * F3: TRIAL BALANCE ADJUSTMENT; 00260000 DATA INFLATE1; SET EDITDAT2; 00260000 R=RP+RW; 00260000 RPHAT=RP*F1*(BLOWUP*F2); 00260000 RWHAT=RW*F1*(BLOWUP*F2); 00260000 RHAT=R*F1*(BLOWUP*F2); 00260000 CHAT=C*F1*(BLOWUP*F2); 00260000 PHAT=P*F1*(BLOWUP*F2); 00260000 WHAT=W*F1*(BLOWUP*F2); 00260000 PDISCHAT=PDISC*F1*(BLOWUP*F2); 00260000 *************** 00260000 * ASSIGN $AIC * 00260000 ***************; 00260000 PROC SORT DATA=AICMAP; BY AIC; 00260000 PROC SORT DATA=INFLATE1; BY AIC; 00260000 DATA INFLATE1; MERGE INFLATE1(IN=A) AICMAP(IN=B); BY AIC; 00260000 IF A=1; 00260000 ************* 00260000 * F3 FACTOR * 00260000 *************; 00260000 PROC SORT DATA=INFLATE1; BY SYS AIC; 00260000 PROC SUMMARY; BY SYS AIC; 00260000 VAR RHAT; 00260000 OUTPUT OUT=ISUMS SUM=SUMRHAT; 00260000 DATA INFLATE1; MERGE INFLATE1 ISUMS; BY SYS AIC; 00260000 IF RAIC ^=. THEN F3=RAIC/SUMRHAT; 00260000 ELSE F3=1; 00260000 RPHAT=RPHAT*F3; 00260000 RWHAT=RWHAT*F3; 00260000 RHAT=RPHAT+RWHAT; 00260000 CHAT=CHAT*F3; 00260000 PHAT=PHAT*F3; 00260000 WHAT=WHAT*F3; 00260000 PDISCHAT=PDISCHAT*F3; 00260000 *********** * REPORTS * ***********; DATA REP200; SET INFLATE1; IF FINNO^=0; IF CLASS^=' '; IF VIP^='44444'; PROC SORT DATA=REP200; BY SYS AIC CLASS STRATUM F1 F2 BLOWUP; PROC SUMMARY DATA=REP200; BY SYS AIC CLASS STRATUM F1 F2 BLOWUP; ID F3; VAR RHAT RPHAT RWHAT CHAT PHAT WHAT; OUTPUT OUT=REP200 SUM=; DATA REP200; SET REP200; IF PHAT>0 THEN RPP=RHAT/PHAT; IF PHAT>0 THEN WPP=WHAT/PHAT; IF WHAT>0 THEN RLB=RHAT/WHAT; PROC PRINT DATA=REP200 U; BY SYS AIC CLASS; PAGEBY SYS; FORMAT RHAT RPHAT RWHAT WHAT CHAT COMMA13. PHAT COMMA14. RPP RLB WPP F1 F2 6.3 BLOWUP 8.3 F3 8.5; ID STRATUM; VAR F1 F2 BLOWUP F3 RHAT RPHAT RWHAT PHAT WHAT RPP RLB WPP; SUM RHAT RPHAT RWHAT PHAT WHAT ; TITLE3 'R3-200: ADJUSTED ESTIMATES -SUMMARY'; TITLE5 ' '; ******************* * COUNT RESPONSES * * NONRESPONDENTS INCLUDED IN POP COUNTS; *******************; DATA E2KOUNTS; SET EDITDAT2 NRESP; PROC SORT; BY SYS STRATUM FINNO AP; DATA E2KOUNTS; SET E2KOUNTS; BY SYS STRATUM FINNO AP; IF FINNO^=0; IF FIRST.FINNO THEN RESP=0; IF FIRST.AP & NRESP=0 THEN RESP=MAX(RESP,1); IF LAST.FINNO THEN OUTPUT; RETAIN RESP; KEEP SYS STRATUM F1 RESP; PROC SORT; BY SYS STRATUM F1; PROC SUMMARY; BY SYS STRATUM F1; VAR RESP; OUTPUT OUT=E2KOUNTS SUM=; DATA REP250; SET INFLATE1; IF FINNO^=0; IF CLASS^=' '; PROC SORT DATA=REP250; BY SYS STRATUM F1; DATA REP250; MERGE REP250(IN=A) E2KOUNTS; BY SYS STRATUM F1; IF A=1; IF VIP^='44444'; /* RID EMPTY RECORDS */ NSAMP=INT(0.5 + F2*RESP); NPOP =INT(0.5 + NSAMP*BLOWUP); PROC SORT; BY SYS CLASS AIC STRATUM F1; PROC SUMMARY; BY SYS CLASS AIC STRATUM F1; ID NSAMP NPOP RESP F2 F3 BLOWUP; VAR R P W RHAT PHAT WHAT; OUTPUT OUT=REP250 SUM=; PROC PRINT DATA=REP250; BY SYS CLASS AIC; PAGEBY SYS; ID STRATUM; VAR F1 NPOP NSAMP RESP F2 BLOWUP F3 RHAT PHAT WHAT R P W; SUM NPOP NSAMP RESP RHAT PHAT WHAT R P W; FORMAT RHAT WHAT R W COMMA13. PHAT P COMMA14. F2 F3 7.4; TITLE3 'R3-250: STRATUM COUNTS & SAMP/EST TOTALS'; TITLE4 'BY SYSTEM (COMBINED AICS)'; TITLE6 'NOTE 1: NON-ZERO STRATA ONLY SHOWN '; TITLE7 ' 2: STR-1 SIZE EXCLUDES PANEL MIGRATIONS '; TITLE9 ' '; ************* * WRITE OUT * *************; PROC SORT DATA=INFLATE1; BY FINNO VIP AP; DATA _NULL_; SET INFLATE1; ************************* * PRDCL DISCOUNT PIECES * *************************; IF DISCOUNT='Y' THEN DO; P=PDISC; PHAT=PDISCHAT; END; ********** * OUTPUT * /* PASSED RECS ONLY */ **********; *; FILE INFLATE; PUT @1 RUNTYPE $2. @3 CLASS $2. @5 SYS $6. @11 AP Z2. @13 PQ 1. @14 FY 2. @16 RDATE Z6. @22 FINNO Z6. @28 VIP $5. @33 RPWCODE Z5. @38 RP Z12.2 @50 RW Z12.2 @62 P Z12. @74 C Z12. @86 W Z14.2 @100 NRESP 1. @101 MIGRATE 1. @102 EFLAG Z4. @106 DISCOUNT $1. /* PRDCL DISCOUNT */ @107 STRATUM Z3.1 @110 BLOWUP Z8.3 @118 AIC 3. @121 F1 Z10.8 @131 F2 Z15.8 @146 F3 Z15.8 @161 RPHAT Z12.2 @173 RWHAT Z12.2 @185 PHAT Z12.2 /*NOT ROUNDED TO INT. */ @197 CHAT Z12.2 /*NOT ROUNDED TO INT. */ @209 WHAT Z14.2 ; ***************** * REPORT R3-425 * *****************; DATA REP425; SET INFLATE1; IF STRATUM^=1.0; * NONAUTOMATED OFFICES (PANEL) ONLY; IF CLASS^=' '; IF VIP^='44444'; PROC SORT DATA=REP425; BY SYS AIC CLASS STRATUM FINNO; PROC SUMMARY DATA=REP425; BY SYS AIC CLASS STRATUM FINNO; ID NRESP MIGRATE BLOWUP F1 F2 F3; VAR RHAT RPHAT RWHAT CHAT PHAT PDISCHAT WHAT; OUTPUT OUT=REP425 SUM=; DATA REP425; SET REP425; IF PHAT>0 THEN RPP=RHAT/PHAT; IF PHAT>0 THEN WPP=WHAT/PHAT; IF WHAT>0 THEN RLB=RHAT/WHAT; PROC PRINT DATA=REP425 U; BY SYS AIC CLASS; PAGEBY CLASS; FORMAT RHAT RPHAT RWHAT PHAT PDISCHAT WHAT CHAT COMMA13. RPP RLB WPP 6.3; ID STRATUM; VAR FINNO RHAT RPHAT RWHAT PHAT PDISCHAT WHAT RPP WPP RLB; SUM RHAT RPHAT RWHAT PHAT PDISCHAT WHAT; TITLE3 'R3-425: ADJUSTED ESTIMATES - BY PANEL OFFICE'; TITLE5 '(SYSTEM * AIC * RDATE)'; TITLE7 ' '; /* /* /* ***************** * REPORT R3-450 * *****************; PROC SORT DATA=INFLATE1; BY SYS AIC CLASS RDATE VIP; PROC SUMMARY DATA=INFLATE1; BY SYS AIC CLASS RDATE VIP; ID RPWCODE; VAR RHAT RPHAT RWHAT CHAT PHAT PDISCHAT WHAT; OUTPUT OUT=REP450 SUM=; DATA REP450; SET REP450; IF CLASS^=' '; IF RHAT=0 & PHAT=0 & PDISCHAT=0 & WHAT=0 THEN DELETE; IF PHAT>0 THEN RPP=RHAT/PHAT; IF PHAT>0 THEN WPP=WHAT/PHAT; IF WHAT>0 THEN RLB=RHAT/WHAT; PROC PRINT DATA=REP450 U; BY SYS AIC CLASS RDATE; PAGEBY RDATE; FORMAT RHAT RPHAT RWHAT PDISCHAT WHAT CHAT COMMA13. PHAT COMMA14. RPP RLB WPP 6.3; ID RDATE; VAR VIP RPWCODE _FREQ_ RHAT RPHAT RWHAT PHAT PDISCHAT WHAT RPP WPP RLB; SUM _FREQ_ RHAT RPHAT RWHAT PHAT WHAT; TITLE3 'R3-450: ADJUSTED ESTIMATES - BY VIP CODE (NON-ZERO)'; TITLE5 '(SYSTEM * AIC * RDATE)'; TITLE7 ' '; */ */ */ ***************** * REPORT R3-475 * *****************; PROC SORT DATA=INFLATE1; BY SYS AIC CLASS RPWCODE STRATUM; PROC SUMMARY DATA=INFLATE1; BY SYS AIC CLASS RPWCODE STRATUM; VAR RHAT RPHAT RWHAT CHAT PHAT PDISCHAT WHAT; OUTPUT OUT=REP475 SUM=; DATA REP475; SET REP475; IF CLASS^=' '; IF RHAT=0 & PHAT=0 & PDISCHAT=0 & WHAT=0 THEN DELETE; IF PHAT>0 THEN RPP=RHAT/PHAT; IF PHAT>0 THEN WPP=WHAT/PHAT; IF WHAT>0 THEN RLB=RHAT/WHAT; PROC PRINT DATA=REP475 U; BY SYS AIC CLASS; PAGEBY CLASS; FORMAT RHAT RPHAT RWHAT PDISCHAT WHAT CHAT COMMA13. PHAT COMMA14. RPP RLB WPP 6.3 _FREQ_ COMMA7.; ID RPWCODE; VAR STRATUM _FREQ_ RHAT RPHAT RWHAT PHAT PDISCHAT WHAT RPP WPP RLB; SUM _FREQ_ RHAT RPHAT RWHAT PHAT WHAT; TITLE3 'R3-475: ADJUSTED ESTIMATES - BY RPWCODE * STRATUM'; TITLE5 '(COMBINED RDATES)'; TITLE7 ' '; **************************** 00260000 * LINE NOS, RPW TRANS FILE * 00260000 ****************************; 00260000 DATA TITLE1; INFILE TWOPAGE; INPUT @1 LINE 3. @5 LINENAME $35.; DATA TITLE2; INFILE RPWLABEL; INPUT @1 RPWCODE 5. @9 LINE 3. @28 RPWNAME $35.; PROC SORT DATA=TITLE1; BY LINE; PROC SORT DATA=TITLE2; BY LINE; DATA TITLES; MERGE TITLE1(IN=A) TITLE2(IN=B); BY LINE; IF A=1; PROC SORT DATA=TITLES; BY RPWCODE; PROC SORT DATA=INFLATE1; BY RPWCODE; DATA INFLATE1; MERGE INFLATE1(IN=A) TITLES; BY RPWCODE; IF A=1; PROC SORT DATA=INFLATE1; BY AIC SYS RPWCODE; 00260000 PROC SUMMARY DATA=INFLATE1; BY AIC SYS RPWCODE; 00260000 ID CLASS RPWNAME LINE LINENAME; 00260000 VAR RHAT PHAT CHAT WHAT; OUTPUT OUT=TRANS SUM=; 00260000 DATA TRANS; SET TRANS; IF RPWCODE^=.; IF PHAT>0 THEN RPP=RHAT/PHAT; IF PHAT>0 THEN WPP=WHAT/PHAT; IF WHAT>0 THEN RLB=RHAT/WHAT; ********** 00260000 * OUTPUT * 00260000 **********; 00260000 PROC SORT DATA=TRANS; BY SYS AIC RPWCODE; DATA TRANS; SET TRANS; FILE TRANS; PUT @1 RPWCODE Z4. @5 RHAT Z13. @18 PHAT Z11. @29 WHAT Z13. @43 SYS $6. @49 AIC 3.; ******************** * PRINT BY RPWCODE * ********************; PROC SORT DATA=TRANS; BY SYS AIC CLASS RPWCODE; PROC PRINT DATA=TRANS U; BY SYS AIC CLASS; PAGEBY CLASS; FORMAT RHAT CHAT WHAT COMMA13. RPP RLB WPP 6.3 PHAT COMMA14.; ID AIC; VAR CLASS LINE RPWCODE RPWNAME RHAT PHAT WHAT RPP RLB WPP; SUM RHAT PHAT WHAT; TITLE3 'R3-500: ADJUSTED ESTIMATES - BY SYSTEM * AIC * RPWCODE'; TITLE5 '- TRANS CODE OUTPUT -'; TITLE7 ' '; ***************** * PRINT BY LINE * *****************; PROC SORT DATA=TRANS; BY SYS AIC LINE; PROC SUMMARY DATA=TRANS; BY SYS AIC LINE; OUTPUT OUT=REP600 SUM=; ID LINENAME; VAR RHAT PHAT WHAT; DATA REP600; SET REP600; IF LINE=. & (RHAT=0 & PHAT=0) THEN DELETE; IF PHAT>0 THEN RPP=RHAT/PHAT; IF PHAT>0 THEN WPP=WHAT/PHAT; IF WHAT>0 THEN RLB=RHAT/WHAT; PROC PRINT DATA=REP600 U; BY SYS AIC; PAGEBY SYS; FORMAT RHAT CHAT WHAT COMMA13. RPP RLB WPP 6.3 PHAT COMMA14.; ID SYS; VAR AIC LINE LINENAME RHAT PHAT WHAT RPP RLB WPP; SUM RHAT PHAT WHAT; TITLE3 'R3-600: ADJUSTED ESTIMATES - BY 2-PAGE LINE NO.'; TITLE5 ' '; /* 00260000