home *** CD-ROM | disk | FTP | other *** search
- 100 DEFINT A,G,I,K,M,N,P,S,T,U,W: DEFDBL B,C,D,L,O
- 101 DEFSNG E,F,H,J,Q,R,V,X,Y,Z
- 105 REM $INCLUDE: 'COMMON.BAS'
- 110 REM $INCLUDE: 'GETSTRN.BAS'
- 435 REM 1958 PIB-PIA Conversion Table AME's
- 440 DATA 76.,78.,80.,81.,83.,85.,87.,89.,90.,92.,94.,96.,97.,99.,101.
- 445 DATA 102.,104.,106.,107.,109.,113.,118.,122.,127.,132.,136.,141.
- 450 DATA 146.,150.,155.,160.,164.,169.,174.,178.,183.,188.,193.,197.
- 455 DATA 202.,207.,211.,216.,221.,225.,230.,235.,239.,244.,249.,250.
- 460 FOR K3=1 TO 51: READ J(1,K3): NEXT K3
- 465 REM 1958 PIB-PIA Conversion Table PIB's
- 470 DATA 16.2,16.84,17.6,18.4,19.24,20.,20.64,21.28,21.88,22.28,22.68
- 475 DATA 23.08,23.44,23.76,24.2,24.6,25.,25.48,25.92,26.4,26.94,27.46
- 480 DATA 28.,28.68,29.25,29.68,30.36,30.92,31.36,32.,32.6,33.2,33.88
- 485 DATA 34.50,35.,35.80,36.40,37.08,37.6,38.2,39.12,39.68,40.33
- 490 DATA 41.12,41.76,42.44,43.20,43.76,44.44,44.58,45.60
- 495 FOR K1=1 TO 51: READ J(2,K1): NEXT K1
- 1000 REM Print status screen
- 1005 CLS: GOSUB 2000: PRINT " ";: GOSUB 9870
- 1010 PRINT STRING$(30," ");"PIA calculation";STRING$(30," ")
- 1015 GOSUB 2000: GOSUB 9850: PRINT: PRINT: GOSUB 3000
- 1020 X1=D(8,M8): G3=T(2,2)-1951: IF T(2,1)>=6 THEN G3=G3+1
- 1025 C9=C5*V6: GOSUB 6700: X2=C9
- 1030 IF T(2,2)>1982 OR (T(2,2)=1982 AND T(2,1)>=6) THEN X2=FIX(X2)
- 1035 PRINT: IF S2>=S4 THEN 1045
- 1040 PRINT " Warning! Not insured! Has";S2;"QC's, needs";S4;"QC's"
- 1045 IF P6+1950>=G2 THEN 1055
- 1050 PRINT " Warning! Earnings after";P6+1950;"not used"
- 1055 ON M8 GOTO 1060,1060,1070,1060,1080,1070
- 1060 PRINT USING " Average Monthly Earnings = $$#######";D(5,M8)
- 1065 GOTO 1085
- 1070 PRINT USING " Indexed Monthly Earnings = $$#######";D(5,M8)
- 1075 GOTO 1085
- 1080 PRINT USING " Years of coverage = ######";G6
- 1085 PRINT USING " Primary Insurance Amount = $$####.##";V6
- 1090 IF C5<1! THEN 1110
- 1095 PRINT USING " Number of months of increment = ####";I6
- 1100 PRINT USING " Delayed increment factor = #.#####";C5
- 1105 GOTO 1135
- 1110 PRINT USING " Number of months of reduction = ####";I6
- 1115 IF A5=2 AND A4=1 THEN 1125
- 1120 PRINT " Actuarial reduction factor =";: GOTO 1130
- 1125 PRINT " Benefit factor = ";
- 1130 PRINT USING " #.#####";C5
- 1135 PRINT USING " Benefit actually payable = $$####.##";X2
- 1140 PRINT USING " Maximum Family Benefit = $$#####.##";X1
- 1145 GOSUB 9860
- 1150 PRINT " Do you want printed output of results? (y or n) > ";
- 1155 C$=FNGETSTRN$(1): GOSUB 9860
- 1157 IF LEN(C$)<=0 THEN BEEP: GOTO 1150
- 1160 GOSUB 7000: IF C$<>"Y" AND C$<>"N" THEN BEEP: GOTO 1150
- 1165 IF C$<>"Y" THEN 9900
- 1170 CLS: GOSUB 9850
- 1175 PRINT " Loading PIA printout program; please wait..."
- 1180 CHAIN "PIAOUT"
- 2000 REM Subroutine to draw 75 hyphens
- 2005 GOSUB 9860: PRINT " ";STRING$(75,"-"): RETURN
- 3000 REM Subroutine to compute PIA
- 3001 GOSUB 9850
- 3005 IF G1<1938 THEN 3007
- 3006 FOR K1=1937 TO G1-1: O(K1-1936)=0!: G(0,K1-1936)=0: NEXT K1
- 3007 IF G2>1935+N5 THEN 3010
- 3008 FOR K1=G2+1 TO 1936+N5: IF K1>1936+N6 THEN G(0,K1-1936)=0
- 3009 O(K1-1936)=0!: NEXT K1
- 3010 C1=0!: IF G1>1950 THEN 3045
- 3040 FOR K1=1 TO 14: C1=C1+O(K1): NEXT K1: IF C1>42000! THEN C1=42000!
- 3045 GOSUB 4500: REM Calculate total QC's
- 3050 IF A5<>2 THEN P6=T(2,2)-1951 ELSE P6=T(3,2)-1950
- 3053 IF T(9,3)=0 THEN 3060
- 3055 IF P6>T(9,3)-1950 THEN P6=T(9,3)-1950
- 3057 IF P6>T(9,3)-1951 AND T(9,1)=1 AND T(9,2)=1 THEN P6=T(9,3)-1951
- 3060 A(2,2)=0: IF T(2,2)<=1974 THEN 3075
- 3065 A(2,2)=T(2,2)-1975: P7=6: IF T(2,2)>=1983 THEN P7=12
- 3070 IF T(2,1)>=P7 THEN A(2,2)=A(2,2)+1
- 3075 FOR K1=U3 TO U4: K2=K1-1936: IF K2<15 THEN 3085
- 3080 IF O(K2)>B(1,K2) THEN O(K2)=B(1,K2)
- 3085 NEXT K1
- 3090 P8=U3-1950: IF P8<1 THEN P8=1
- 3095 REM Start old-start PIA calculation
- 3098 FOR K1=1 TO N5: B(3,K1)=0!: L(1,K1)=0!: NEXT K1
- 3100 N8=0: N9=0: A(1,1)=0: D(1,1)=0!: IF C1<1! THEN 3620
- 3105 A(1,1)=1: PRINT " Working on old-start PIA"
- 3110 IF T(2,2)>=1961 THEN 3155
- 3115 IF A5=1 THEN N8=T(2,2)-1937: GOTO 3140
- 3120 IF A5>2 THEN 3135
- 3125 IF T(5,3)+22>1937 THEN N8=T(3,2)-T(5,3)-22 ELSE N8=T(3,2)-1937
- 3130 GOTO 3140
- 3135 IF T(5,3)+22>1937 THEN N8=T(9,3)-T(5,3)-22 ELSE N8=T(9,3)-1937
- 3140 IF T(2,2)>=1955 OR T(2,2)=1954 AND T(2,1)>=9 THEN N8=N8-5
- 3145 IF N8<2 THEN N8=2
- 3150 GOTO 3190
- 3155 IF A5=1 THEN 3180
- 3160 N8=G9-(T(5,3)-1924): IF N8>G9+9 THEN N8=G9+9
- 3165 IF N8>35 THEN N8=35
- 3170 IF N8<2 THEN N8=2
- 3175 GOTO 3190
- 3180 N8=N1+14: IF N8>35 THEN N8=35
- 3185 REM Determine correct old-start method to use
- 3190 IF T(2,2)<1950 OR T(2,2)=1950 AND T(2,1)<=8 THEN N9=1
- 3195 IF T(2,2)=1950 AND T(2,1)>=9 THEN N9=2
- 3200 IF T(2,2)>=1951 AND T(2,2)<=1958 THEN N9=2
- 3205 IF T(2,2)>=1959 AND T(2,2)<=1967 THEN N9=3
- 3210 IF T(2,2)<=1967 THEN 3240
- 3215 IF T(5,3)>=1916 AND G9>=27 THEN 3230
- 3220 IF T(5,3)<1916 THEN N9=5 ELSE N9=4
- 3225 GOTO 3240
- 3230 IF G9=27 THEN N9=6 ELSE N9=7
- 3235 REM Calculate imputed earnings from 1937 to 1950
- 3240 ON N9 GOTO 3245,3245,3245,3245,3250,3280,3280
- 3245 FOR K1=1 TO 14: B(3,K1)=O(K1): L(1,K1)=B(3,K1): NEXT K1: GOTO 3300
- 3250 IF C1>27000! THEN 3260
- 3255 FOR K1=6 TO 14: B(3,K1)=C1/9!: L(1,K1)=B(3,K1): NEXT K1: GOTO 3300
- 3260 I2=FIX((C1+.01)/3000!): IF I2>14 THEN I2=14
- 3265 I2=15-I2: FOR K1=I2 TO 14: B(3,K1)=3000!: L(1,K1)=B(3,K1): NEXT K1
- 3270 IF I2<=1 THEN 3300
- 3275 B(3,I2-1)=C1-FIX(C1/3000!)*3000!: L(1,I2-1)=B(3,I2-1): GOTO 3300
- 3280 G5=1930-T(5,3): IF G5<1 THEN G5=1
- 3285 IF C1/G5>3000! THEN 3260
- 3290 I2=15-G5: FOR K1=I2 TO 14: B(3,K1)=C1/G5: L(1,K1)=B(3,K1): NEXT K1
- 3295 REM Fill out remainder of earnings
- 3300 I1=P6+14: IF N9=7 AND P6>A7 THEN I1=A7+14
- 3310 FOR K1=15 TO I1: B(3,K1)=O(K1): L(1,K1)=B(3,K1): NEXT K1
- 3315 S3=1: S6=1: S7=P6+14: S8=N8: GOSUB 5500: I9=D(5,1)
- 3320 REM Calculate PIB
- 3325 H(1,1)=I9: IF H(1,1)>50! THEN H(1,1)=50!
- 3330 H(2,1)=I9-50!: IF H(2,1)>200! THEN H(2,1)=200!
- 3335 IF H(2,1)<0! THEN H(2,1)=0!
- 3340 F1=.4*H(1,1)+.1*H(2,1)
- 3345 ON N9 GOTO 3350,3350,3350,3350,3365,3370,3370
- 3350 G7=0: FOR K1=1 TO 14
- 3355 IF O(K1)>=200! THEN G7=G7+1
- 3360 NEXT K1: GOTO 3380
- 3365 G7=14: GOTO 3380
- 3370 G7=FIX(C1/1650!): IF G7<4 THEN G7=4
- 3375 IF G7>14 THEN G7=14
- 3380 F1=F1*(1!+CSNG(G7)/100!)
- 3385 IF N9>1 THEN 3415
- 3390 D(1,1)=F1: IF D(1,1)<10! THEN D(1,1)=10!
- 3395 D(8,1)=.8*I9: IF D(8,1)>85! THEN D(8,1)=85!
- 3400 IF D(8,1)>2!*D(1,1) THEN D(8,1)=2!*D(1,1)
- 3405 IF D(8,1)<20! THEN D(8,1)=20!
- 3410 GOTO 3620
- 3415 I2=1: IF N9>2 THEN 3530
- 3420 J$="OS50PIB.DAT": OPEN "I",1,J$
- 3425 FOR K1=1 TO 486: INPUT #1, Z(K1): NEXT K1: CLOSE #1
- 3430 IF F1<=Z(I2) THEN 3440
- 3435 I2=I2+1: IF I2<486 THEN 3430
- 3440 D(2,1)=19.9+CSNG(I2)/10!
- 3445 J$="OS50MFB.DAT": OPEN "I",1,J$
- 3450 FOR K1=1 TO 486: INPUT #1, Z(K1): NEXT K1: CLOSE #1
- 3455 D(8,1)=Z(I2): D(4,1)=D(8,1)
- 3460 IF T(2,2)<=1951 OR T(2,2)=1952 AND T(2,1)<=8 THEN 3620
- 3465 IF 5!<D(1,1)*1.125 THEN D(1,1)=D(1,1)*1.125 ELSE D(1,1)=D(1,1)+5!
- 3470 C9=D(1,1): G3=2: GOSUB 6700: D(1,1)=C9
- 3475 J$="OS52MFB.DAT": OPEN "I",1,J$
- 3480 FOR K1=1 TO 486: INPUT #1, Z(K1): NEXT K1: CLOSE #1
- 3485 D(8,1)=Z(I2)
- 3490 IF T(2,2)<=1953 OR T(2,2)=1954 AND T(2,1)<=8 THEN 3620
- 3495 IF I2<=329 THEN D(1,1)=D(1,1)+5!: GOTO 3515
- 3500 J$="OS54PIA.DAT": OPEN "I",1,J$
- 3505 FOR K1=1 TO 157: INPUT #1, Z(K1): NEXT K1: CLOSE #1
- 3510 D(1,1)=Z(I2-329)
- 3515 J$="OS54MFB.DAT": OPEN "I",1,J$
- 3520 FOR K1=1 TO 486: INPUT #1, Z(K1): NEXT K1: CLOSE #1
- 3525 D(8,1)=Z(I2): GOTO 3620
- 3530 IF F1<=J(2,I2) THEN 3540
- 3535 I2=I2+1: IF I2<51 THEN 3530
- 3540 D(5,1)=J(1,I2)
- 3545 IF N9<>7 THEN 3595
- 3550 IF I2=1 AND G9>30 THEN D(5,1)=FIX(F1*76!/16.2+.999)
- 3555 T1=28: T2=1: GOSUB 4900
- 3564 REM Apply windfall elimination provision
- 3565 IF F6<.001 OR G9<=34 THEN 3585
- 3570 Q(3,1)=D(2,1): C9=.5*F6: G3=G9: GOSUB 6700
- 3575 D(2,1)=Q(3,1)-C9: IF D(2,1)<.5*Q(3,1) THEN D(2,1)=.5*Q(3,1)
- 3580 C9=D(2,1): G3=28: GOSUB 6700: D(2,1)=C9: D(1,1)=D(2,1)
- 3585 GOSUB 5300: REM Calculate family maximum
- 3586 U2=G9: C7=D(1,1): U8=G4: GOSUB 4800: D(1,1)=C7: C7=D(8,1): U8=G4
- 3590 GOSUB 4800: D(8,1)=C7: GOTO 3620
- 3595 IF T(2,2)<1974 OR (T(2,2)=1974 AND T(2,1)<6) THEN 3615
- 3600 A(2,1)=A(2,2)
- 3605 T1=24+A(2,1): T2=0: GOSUB 4900
- 3610 GOTO 3620
- 3615 M9=D(5,1): GOSUB 4600: D(1,1)=X6: D(8,1)=X7
- 3620 REM Start special-minimum PIA calculation
- 3622 A(1,5)=0: D(1,5)=0!: G6=0: FOR K1=1 TO N5: G(5,K1)=0!: NEXT K1
- 3625 IF T(2,2)<1973 THEN 3840
- 3630 A(1,5)=1: PRINT " Working on special-minimum PIA"
- 3632 REM Calculate total years of coverage
- 3635 G(5,14)=FIX(C1/900!): IF G(5,14)<=0 THEN 3650
- 3640 IF G(5,14)>14 THEN G(5,14)=14
- 3650 G6=G(5,14): IF U4<1951 THEN 3680
- 3655 I1=U3: IF I1<1951 THEN I1=1951
- 3660 I2=U4: IF I2>P6+1950 THEN I2=P6+1950
- 3665 FOR K3=I1 TO I2: K1=K3-1936
- 3670 IF O(K1)>=.25*B(4,K1) THEN G(5,K1)=1
- 3675 G6=G6+G(5,K1): NEXT K3
- 3677 REM Determine correct dollar amount
- 3680 V2=11.5: IF T(2,2)=1973 OR (T(2,2)=1974 AND T(2,1)<=2) THEN V2=8.5
- 3685 IF T(2,2)>=1975 AND T(2,2)<=1978 THEN V2=9!
- 3690 IF T(2,2)=1974 AND T(2,1)>=3 THEN V2=9!
- 3695 M6=G6-10: IF M6>20 THEN M6=20
- 3700 IF M6<0 THEN M6=0
- 3705 D(1,5)=M6*V2: D(2,5)=D(1,5): IF T(2,2)>=1979 THEN 3785
- 3706 REM Calculate MFB from PIA table
- 3707 D(5,5)=76: V8=D(1,5): S3=5
- 3710 IF T(2,2)>1974 OR (T(2,2)=1974 AND T(2,1)>=6) THEN 3725
- 3715 M9=D(5,5): GOSUB 5700: V4=X6: D(8,5)=X7: GOTO 3770
- 3725 A(2,5)=A(2,2): T1=24+A(2,5): T2=0: GOSUB 4900
- 3765 V4=D(1,5): D(1,5)=V8
- 3770 IF D(1,5)-V4-.01<=0 THEN 3840
- 3775 D(5,5)=D(5,5)+1: IF D(5,5)>1000 THEN 3840 ELSE 3710
- 3780 REM Calculate MFB for 1977 Amendments special-minimum
- 3785 C9=1.5*D(1,5): G3=28: GOSUB 6700: D(8,5)=C9: D(4,5)=D(8,5)
- 3790 IF T(2,2)=1979 AND T(2,1)<6 THEN 3840
- 3795 A(2,5)=A(2,2)-4
- 3797 REM Apply benefit increases
- 3800 FOR K1=29 TO 28+A(2,5)
- 3805 C9=D(1,5)*(C(2,K1)/100!+1!): G3=K1: GOSUB 6700: D(1,5)=C9
- 3810 C9=D(8,5)*(C(2,K1)/100!+1!): G3=K1: GOSUB 6700: D(8,5)=C9
- 3812 C9=1.5*D(1,5): G3=K1: GOSUB 6700: IF D(8,5)<C9 THEN D(8,5)=C9
- 3815 C9=D(1,5): GOSUB 6900: D(1,5)=C9
- 3820 C9=D(8,5): GOSUB 6900: D(8,5)=C9
- 3825 C9=1.5*D(1,5): G3=K1: GOSUB 6700: IF D(8,5)<C9 THEN D(8,5)=C9
- 3835 NEXT K1
- 3840 REM Start PIA Table method
- 3842 A(1,2)=0: D(1,2)=0: FOR K1=1 TO N7: B(3,K1)=0!: L(2,K1)=0!: NEXT K1
- 3845 IF G9>27 OR T(2,2)<1953 THEN 3910
- 3850 IF A5=2 AND T(3,2)<1953 THEN 3910
- 3855 A(1,2)=1: PRINT " Working on PIA Table calculation"
- 3860 I2=P6: IF I2>U4-1950 THEN I2=U4-1950
- 3865 FOR K3=P8 TO I2
- 3875 B(3,K3)=O(K3+14): L(2,K3)=B(3,K3): NEXT K3
- 3880 S3=2: S6=P8: S7=P6: S8=N1: GOSUB 5500
- 3885 IF T(2,2)<1974 OR (T(2,2)=1974 AND T(2,1)<=5) THEN 3900
- 3890 T1=24+A(2,2): T2=0: GOSUB 4900
- 3895 GOTO 3910
- 3900 M9=D(5,2): GOSUB 4600
- 3905 D(1,2)=X6: D(8,2)=X7
- 3910 REM Start transitional-guarantee method
- 3912 A(1,4)=0: D(1,4)=0: FOR K1=1 TO N7: B(3,K1)=0!: L(4,K1)=0!: NEXT K1
- 3915 IF G9<28 OR A7>32 OR A5=3 THEN 3970
- 3920 IF A5=2 AND T(3,2)<T(5,3)+62 THEN 3970
- 3925 IF T(3,2)=T(5,3)+62 AND T(3,1)<T(5,1) THEN 3970
- 3930 A(1,4)=1: PRINT " Working on transitional guarantee PIA"
- 3935 I2=A7: IF I2>U4-1950 THEN I2=U4-1950
- 3940 FOR K3=P8 TO I2
- 3950 B(3,K3)=O(K3+14): L(4,K3)=B(3,K3): NEXT K3
- 3955 S3=4: S6=P8: S7=A7: S8=N1: GOSUB 5500: T1=28: T2=1: GOSUB 4900
- 3960 GOSUB 5300: U2=G9: C7=D(1,4): U8=G4: GOSUB 4800: D(1,4)=C7
- 3965 C7=D(8,4): U8=G4: GOSUB 4800: D(8,4)=C7
- 3970 REM Start wage-indexed method
- 3972 A(1,3)=0: D(1,3)=0: FOR K1=1 TO N7: B(3,K1)=0!: L(3,K1)=0!: NEXT K1
- 3975 IF G9<=27 THEN 4190
- 3980 A(1,3)=1: PRINT " Working on wage-indexed PIA"
- 3985 P4=10: Q(2,1)=.9: Q(2,2)=.32: Q(2,3)=.15: IF G9-1<P8 THEN 4045
- 3990 REM Calculate AIME
- 3995 FOR K3=P8 TO G9-1
- 4005 C(3,K3)=B(5,G9+13)*O(K3+14)
- 4010 B(3,K3)=C(3,K3)/B(5,K3+14)
- 4015 B(3,K3)=FIX(B(3,K3)*100!+.5)/100!
- 4020 L(3,K3)=B(3,K3): NEXT K3
- 4045 FOR K3=G9 TO P6: B(3,K3)=O(K3+14): L(3,K3)=B(3,K3): NEXT K3
- 4050 S3=3: S6=P8: S7=P6: S8=N1: GOSUB 5500
- 4052 REM Calculate AIME PIA
- 4055 Q(8,2)=FIX(180!*B(5,G9+13)/B(5,41)+.5)
- 4060 Q(8,3)=FIX(1085!*B(5,G9+13)/B(5,41)+.5)
- 4065 H(1,3)=D(5,3): IF H(1,3)>Q(8,2) THEN H(1,3)=Q(8,2)
- 4070 H(2,3)=D(5,3)-Q(8,2)
- 4075 IF H(2,3)>Q(8,3)-Q(8,2) THEN H(2,3)=Q(8,3)-Q(8,2)
- 4080 IF H(2,3)<0 THEN H(2,3)=0
- 4085 H(3,3)=D(5,3)-Q(8,3): IF H(3,3)<0 THEN H(3,3)=0
- 4090 D(2,3)=0!: FOR K3=1 TO 3: D(2,3)=D(2,3)+Q(2,K3)*H(K3,3): NEXT K3
- 4095 C9=D(2,3): G3=G9: GOSUB 6700: D(2,3)=C9
- 4100 REM Apply windfall provision
- 4105 P1=0: IF F6<.001 OR G9<35 THEN 4170
- 4110 IF G6<30 THEN 4120
- 4115 P1=-1: GOTO 4170
- 4119 REM Round one-half of pension
- 4120 C9=.5*F6: G3=G9: GOSUB 6700
- 4125 Q(3,3)=D(2,3): P1=1: D(2,3)=D(2,3)-C9
- 4130 C9=D(2,3): G3=G9: GOSUB 6700
- 4135 D(2,3)=C9
- 4140 Q(4,1)=.9-.1*(G9-34): IF Q(4,1)<.4 THEN Q(4,1)=.4
- 4145 Q(4,2)=Q(2,2): Q(4,3)=Q(2,3)
- 4150 I2=30-G6: IF I2>5 THEN I2=5
- 4155 IF Q(4,1)<.9-.1*I2 THEN Q(4,1)=.9-.1*I2
- 4160 V5=0!: FOR K3=1 TO 3: V5=V5+Q(4,K3)*H(K3,3): NEXT K3
- 4165 C9=V5: G3=G9: GOSUB 6700: V5=C9: IF D(2,3)<V5 THEN P1=2: D(2,3)=V5
- 4167 REM Apply benefit increases
- 4170 D(1,3)=D(2,3): GOSUB 5300: U2=G9: GOSUB 6800
- 4174 U2=G9: C7=D(1,3): U8=G4: GOSUB 4800: D(1,3)=C7
- 4175 C7=D(8,3): U8=G4: GOSUB 4800: D(8,3)=C7
- 4180 IF G9>=31 THEN 4190
- 4185 IF D(1,3)<122! THEN D(1,3)=122!: D(8,3)=183!
- 4190 REM Start re-indexed widow guarantee
- 4192 A(1,6)=0: D(1,6)=0: FOR K1=1 TO N7: B(3,K1)=0!: L(6,K1)=0!: NEXT K1
- 4195 IF G9<=27 OR A5<>2 THEN 4380
- 4200 IF T(3,2)>T(5,3)+62 THEN 4380
- 4205 IF T(3,2)=T(5,3)+62 AND T(3,1)>=T(5,1) THEN 4380
- 4210 IF A4<=1 THEN 4380
- 4230 IF S5<=33 AND T(3,2)<1985 THEN 4380
- 4235 A(1,6)=1: PRINT " Working on re-indexed widow guarantee"
- 4240 M7=S5: IF M7<G9 THEN M7=G9
- 4245 I2=T(5,3)+62-1951
- 4250 IF T(5,1)=1 AND T(5,2)=1 THEN I2=I2-1
- 4255 IF M7>I2 THEN M7=I2
- 4265 FOR K3=P8 TO M7-1
- 4275 C(4,K3)=B(5,M7+13)*O(K3+14)
- 4280 B(3,K3)=C(4,K3)/B(5,K3+14)
- 4285 B(3,K3)=FIX(B(3,K3)*100!+.5)/100!
- 4290 L(6,K3)=B(3,K3): NEXT K3
- 4315 FOR K3=M7 TO P6: B(3,K3)=O(K3+14): L(6,K3)=B(3,K3): NEXT K3
- 4320 S3=6: S6=P8: S7=P6: S8=N1: GOSUB 5500
- 4325 Q(5,2)=FIX(180!*B(5,M7+13)/B(5,41)+.5)
- 4330 Q(5,3)=FIX(1085!*B(5,M7+13)/B(5,41)+.5)
- 4335 H(1,6)=D(5,6): IF H(1,6)>Q(5,2) THEN H(1,6)=Q(5,2)
- 4340 H(2,6)=D(5,6)-Q(5,2)
- 4345 IF H(2,6)>Q(5,3)-Q(5,2) THEN H(2,6)=Q(5,3)-Q(5,2)
- 4350 IF H(2,6)<0 THEN H(2,6)=0
- 4355 H(3,6)=D(5,6)-Q(5,3): IF H(3,6)<0 THEN H(3,6)=0
- 4360 D(2,6)=0!: FOR K3=1 TO 3: D(2,6)=D(2,6)+Q(2,K3)*H(K3,6): NEXT K3
- 4365 C9=D(2,6): G3=M7: GOSUB 6700: D(2,6)=C9
- 4367 M2=M7-N4+1: IF M2<1 THEN M2=1
- 4368 IF M2>10 THEN M2=10
- 4370 D(1,6)=D(2,6): U2=M7: GOSUB 6800: D(4,6)=D(4,3)
- 4375 U2=M7: C7=D(1,6): U8=M2: GOSUB 4800: D(1,6)=C7: D(8,6)=D(8,3)
- 4380 REM Calculate highest PIA and DI family maximum
- 4385 V6=0!: M8=0: FOR K3=1 TO 6
- 4390 IF V6<D(1,K3) THEN V6=D(1,K3): M8=K3
- 4395 NEXT K3
- 4400 IF M8>0 THEN A(1,M8)=2
- 4405 V7=0!: P2=0: IF A5<>3 THEN RETURN
- 4410 IF T(2,2)<=1979 OR (T(2,2)=1980 AND T(2,1)<=6) THEN RETURN
- 4412 IF G9<28 THEN RETURN
- 4415 IF .85*D(5,3)<1.5*D(2,M8) THEN 4425
- 4420 V7=1.5: P2=1: D(4,M8)=V7*D(2,M8): GOTO 4440
- 4425 IF .85*D(5,3)>D(2,M8) THEN 4435
- 4430 V7=1!: P2=3: D(4,M8)=V7*D(2,M8): GOTO 4440
- 4435 V7=.85: P2=2: D(4,M8)=V7*D(5,3)
- 4440 G3=G9: C9=D(4,M8): GOSUB 6700: D(4,M8)=C9
- 4445 C7=D(4,M8): U2=G9: U8=G4: GOSUB 4800: D(8,M8)=C7: RETURN
- 4500 REM Subroutine to calculate total quarters of coverage
- 4505 S2=G(0,N6): IF G2<=1936+N6 THEN RETURN
- 4510 FOR K1=N6+1 TO N5: G(0,K1)=INT(O(K1)/L(0,K1))
- 4515 IF G(0,K1)>4 THEN G(0,K1)=4
- 4520 S2=S2+G(0,K1): NEXT K1: RETURN
- 4600 REM Subroutine to choose correct PIA table subroutine
- 4605 IF (T(2,2)=1952 AND T(2,1)>=9) OR T(2,2)=1953 THEN GOSUB 6500
- 4610 IF T(2,2)=1954 AND T(2,1)<9 THEN GOSUB 6500
- 4615 IF T(2,2)=1954 AND T(2,1)>=9 THEN GOSUB 6600
- 4620 IF T(2,2)>=1955 AND T(2,2)<=1958 THEN GOSUB 6600
- 4625 IF T(2,2)>=1959 AND T(2,2)<=1964 THEN GOSUB 6300
- 4630 IF T(2,2)>=1965 AND T(2,2)<=1967 THEN GOSUB 6200
- 4635 IF T(2,2)=1968 AND T(2,1)=1 THEN GOSUB 6200
- 4640 IF (T(2,2)=1968 AND T(2,1)>=2) OR T(2,2)=1969 THEN GOSUB 6000
- 4645 IF T(2,2)=1970 THEN GOSUB 5900
- 4650 IF T(2,2)=1971 OR (T(2,2)=1972 AND T(2,1)<=8) THEN GOSUB 5800
- 4655 IF (T(2,2)=1972 AND T(2,1)>=9) OR T(2,2)=1973 THEN GOSUB 5700
- 4660 IF T(2,2)=1974 AND T(2,1)<=5 THEN GOSUB 5700
- 4665 RETURN
- 4800 REM Subroutine to apply CPI increase to 1977 Amendments
- 4805 A(2,S3)=0: IF T(2,2)-1951<=U2 AND T(2,1)<P7 THEN RETURN
- 4810 U1=U2+1: IF U1<=28 THEN RETURN
- 4825 U9=T(2,2)-1951
- 4830 IF T(2,1)>=P7 THEN U9=U9+1
- 4835 FOR K1=U1 TO U9
- 4840 C9=C7*(C(2,K1)/100!+1!): G3=K1: GOSUB 6700: C7=C9
- 4845 C9=C7: GOSUB 6900: C7=C9
- 4860 A(2,S3)=A(2,S3)+1: NEXT K1
- 4865 RETURN
- 4900 REM Subroutine to apply CPI and wage base increase to 1973 Act
- 4905 T4=0: U8=G9-N4+1: IF U8<1 THEN U8=1
- 4910 IF U8>10 THEN U8=10
- 4915 IF D(5,S3)<=1100 THEN 5055
- 4920 FOR K1=25 TO T1
- 4925 IF D(5,S3)<=B(1,K1+14)/12! AND T4=0 THEN T4=K1
- 4930 NEXT K1
- 4935 M9=1100: GOSUB 5600
- 4940 D(1,S3)=X6: D(8,S3)=X7: IF T4=25 THEN 5045
- 4945 FOR K1=25 TO T4-1
- 4950 I7=B(1,K1+13)/12!: I8=B(1,K1+14)/12!
- 4955 IF (CINT(B(1,K1+13))/60)*60=CINT(B(1,K1+13)) THEN 4965
- 4960 I7=CSNG((CINT(B(1,K1+13))/60)*5)
- 4965 IF (CINT(B(1,K1+14))/60)*60=CINT(B(1,K1+14)) THEN 4975
- 4970 I8=CSNG((CINT(B(1,K1+14))/60)*5)
- 4975 D(1,S3)=D(1,S3)+.2*(I8-I7)
- 4980 C9=1.75*D(1,S3): G3=K1-1: GOSUB 6700: D(8,S3)=C9
- 4985 C9=D(1,S3)*(1!+C(2,K1)/100!): G3=K1: GOSUB 6700: D(1,S3)=C9
- 4990 C9=D(8,S3)*(1!+C(2,K1)/100!): G3=K1: GOSUB 6700: D(8,S3)=C9
- 4995 C9=1.5*D(1,S3): G3=K1: GOSUB 6700: C8=C9
- 5000 IF D(8,S3)<C8 THEN D(8,S3)=C8
- 5005 IF K1=28 AND T2>0 THEN D(2,S3)=D(1,S3)
- 5010 C9=D(1,S3): GOSUB 6900: D(1,S3)=C9
- 5015 C9=D(8,S3): GOSUB 6900: D(8,S3)=C9
- 5030 C9=1.5*D(1,S3): G3=K1: GOSUB 6700: C8=C9
- 5035 IF D(8,S3)<C8 THEN D(8,S3)=C8
- 5040 NEXT K1
- 5045 REM Apply extension in year AME is first included in table
- 5046 D(1,S3)=D(1,S3)+FIX((D(5,S3)-B(1,T4+13)/12!+4!)/5!)
- 5047 C9=1.75*D(1,S3): G3=T4: GOSUB 6700: D(8,S3)=C9
- 5050 U1=T4: GOTO 5100
- 5055 IF G9>29 AND T2>0 AND D(5,S3)<=75 THEN 5080
- 5060 M9=D(5,S3): X6=D(1,S3): X7=D(8,S3): GOSUB 5600
- 5065 D(1,S3)=X6: D(8,S3)=X7: D(2,S3)=D(1,S3): D(4,S3)=D(8,S3)
- 5070 U1=25: IF T1<U1 THEN RETURN
- 5075 GOTO 5100
- 5080 C9=D(5,S3)*121.8/76!: G3=28: GOSUB 6700
- 5085 D(1,S3)=C9: D(2,S3)=D(1,S3)
- 5090 C9=1.5*D(1,S3): G3=28: GOSUB 6700
- 5095 D(8,S3)=C9: D(4,S3)=D(8,S3): RETURN
- 5100 FOR K1=U1 TO T1
- 5105 C9=D(1,S3)*(1!+C(2,K1)/100!): G3=K1: GOSUB 6700: D(1,S3)=C9
- 5110 C9=D(8,S3)*(1!+C(2,K1)/100!): G3=K1: GOSUB 6700: D(8,S3)=C9
- 5115 C9=1.5*D(1,S3): G3=K1: GOSUB 6700: C8=C9
- 5120 IF D(8,S3)<C8 THEN D(8,S3)=C8
- 5125 IF K1=28 AND T2>0! THEN D(2,S3)=D(1,S3)
- 5130 C9=D(1,S3): GOSUB 6900: D(1,S3)=C9
- 5135 C9=D(8,S3): GOSUB 6900: D(8,S3)=C9
- 5150 C9=1.5*D(1,S3): G3=K1: GOSUB 6700: C8=C9
- 5155 IF D(8,S3)<C8 THEN D(8,S3)=C8
- 5160 NEXT K1
- 5165 RETURN
- 5300 REM Subroutine to calculate MFB at eligibility under 1977 law
- 5305 Q(1,1)=1.5: Q(1,2)=2.72: Q(1,3)=1.34: Q(1,4)=1.75
- 5310 Q(7,2)=FIX(230!*B(5,G9+13)/B(5,41)+.5)
- 5315 Q(7,3)=FIX(332!*B(5,G9+13)/B(5,41)+.5)
- 5320 Q(7,4)=FIX(433!*B(5,G9+13)/B(5,41)+.5)
- 5325 V(1,S3)=D(2,S3): IF V(1,S3)>Q(7,2) THEN V(1,S3)=Q(7,2)
- 5330 V(2,S3)=D(2,S3)-Q(7,2)
- 5335 IF V(2,S3)>Q(7,3)-Q(7,2) THEN V(2,S3)=Q(7,3)-Q(7,2)
- 5340 IF V(2,S3)<0 THEN V(2,S3)=0
- 5345 V(3,S3)=D(2,S3)-Q(7,3)
- 5350 IF V(3,S3)>Q(7,4)-Q(7,3) THEN V(3,S3)=Q(7,4)-Q(7,3)
- 5355 IF V(3,S3)<0 THEN V(3,S3)=0
- 5360 V(4,S3)=D(2,S3)-Q(7,4): IF V(4,S3)<0 THEN V(4,S3)=0
- 5365 C9=0!: FOR K1=1 TO 4: C9=C9+Q(1,K1)*V(K1,S3): NEXT K1
- 5370 G3=G9: GOSUB 6700: D(8,S3)=C9: D(4,S3)=D(8,S3): RETURN
- 5500 REM Subroutine to order earnings to compute an AIME or AME
- 5505 FOR K1=1 TO N5: I(K1)=K1: G(S3,K1)=0: NEXT K1
- 5506 IF S7=S6 THEN 5530
- 5510 FOR K1=S6 TO S7-1: FOR K2=K1+1 TO S7
- 5515 IF B(3,K1)<=B(3,K2) THEN 5525
- 5520 SWAP B(3,K1), B(3,K2): SWAP I(K1), I(K2)
- 5525 NEXT K2: NEXT K1
- 5530 D(9,S3)=0!: FOR K1=S7-S8+1 TO S7
- 5535 K2=I(K1): G(S3,K2)=1: D(9,S3)=D(9,S3)+B(3,K1): NEXT K1
- 5540 D(5,S3)=FIX(D(9,S3)/(S8*12)): RETURN
- 5600 REM Subroutine to calculate PIA under 1973 Act, effective 6/1974
- 5605 IF M9>1000! THEN 5630 ELSE GOSUB 5700: P4=9
- 5610 C9=1.11*X6: G3=24: GOSUB 6700: X6=C9
- 5615 C9=1.11*X7: G3=24: GOSUB 6700: X7=C9
- 5620 C9=1.5*X6: G3=24: GOSUB 6700: R1=C9: IF X7<R1 THEN X7=R1
- 5625 RETURN
- 5630 P4=9: X6=FIX((M9+4.01)/5!)+249!
- 5635 C9=1.75*X6: G3=24: GOSUB 6700: X7=C9: RETURN
- 5700 REM Subroutine to calculate PIAs under 1972 Act, effective 9/1972
- 5705 IF M9>750 THEN 5730 ELSE GOSUB 5800: P4=8
- 5710 C9=1.2*X6: G3=22: GOSUB 6700: X6=C9
- 5715 C9=1.2*X7: G3=22: GOSUB 6700: X7=C9
- 5720 C9=1.5*X6: G3=22: GOSUB 6700: Q5=C9: IF X7<Q5 THEN X7=Q5
- 5725 GOTO 5740
- 5730 P4=8: X6=FIX((M9+4.01)/5!)+204.5
- 5735 C9=1.75*X6: G3=22: GOSUB 6700: X7=C9
- 5740 IF T(2,2)<>1974 OR T(2,1)<3! OR T(2,1)>5 THEN RETURN
- 5745 C9=1.07*X6: G3=24: GOSUB 6700: X6=C9
- 5750 C9=1.07*X7: G3=24: GOSUB 6700: X7=C9: RETURN
- 5800 REM Subroutine to calculate PIAs under 1971 Act
- 5805 IF M9>651! THEN 5850 ELSE GOSUB 5900
- 5810 M3=M4: P4=7: C9=1.1*X6: G3=21: GOSUB 6700: X6=C9
- 5815 IF M9>627! THEN 5870
- 5820 IF M9<=436! THEN C9=.88*M3: GOTO 5830
- 5825 C9=383.68+.44*191!: IF M3-436<191 THEN C9=C9+.44*(M3-436-191)
- 5830 G3=21: GOSUB 6700: X7=C9
- 5835 C9=1.5*X6: G3=21: GOSUB 6700
- 5840 Q6=C9: IF M9<240! OR X7<Q6 THEN X7=Q6
- 5845 RETURN
- 5850 P4=7
- 5855 IF M9>656 THEN X6=FIX((M9+4.01)/5!)+145.4
- 5860 IF M9<=656 AND M9>=653 THEN X6=276.6
- 5865 IF M9=652 THEN X6=275.8
- 5870 C9=1.75*X6: G3=21: GOSUB 6700: X7=C9: RETURN
- 5900 REM Subroutine to calculate PIAs under 1969 Act
- 5905 GOSUB 6000: M4=M1: P4=6
- 5910 C9=1.15*X6: G3=20: GOSUB 6700: X6=C9: IF X6<64! THEN X6=64!
- 5915 IF M9>239 THEN RETURN
- 5920 C9=1.5*X6: G3=20: GOSUB 6700: X7=C9: RETURN
- 6000 REM Subroutine to calculate PIAs under 1967 Act
- 6005 IF M9>553 THEN 6020 ELSE GOSUB 6200: P4=5: M1=S1
- 6010 C9=X6*1.13: G3=18: GOSUB 6700: X6=C9: IF X6<55! THEN X6=55!
- 6015 GOTO 6065
- 6020 P4=5: X6=189.598+.2843*(M9-550)
- 6025 S9=0: IF X6-FIX(X6)>=.49999 THEN S9=1
- 6030 X6=S9+FIX(X6): M1=M9
- 6035 M1=M1+1
- 6040 Q4=189.598+.2843*(M1-550)
- 6045 S9=0: IF Q4-FIX(Q4)>.49999 THEN S9=1
- 6050 Q4=S9+FIX(Q4)
- 6055 IF (Q4-X6)<.1 AND Q4-X6>-.1 THEN 6035
- 6060 M1=M1-1: GOTO 6080
- 6065 IF M9>370 THEN 6080
- 6070 IF M9>=179 THEN RETURN
- 6075 C9=1.5*X6: G3=18: GOSUB 6700: X7=C9: RETURN
- 6080 IF M9<=436 THEN X7=.8*M1: RETURN
- 6085 X7=348.8+.4*(M1-436): IF X7>434.4 THEN X7=434.4
- 6090 RETURN
- 6200 REM Subroutine to calculate PIAs under 1965 Act
- 6205 GOSUB 6300: P4=4: S1=P9: IF M9>94 THEN 6220
- 6210 X6=X6+4!: IF X6<44! THEN X6=44!
- 6215 X7=1.5*X6: RETURN
- 6220 IF M9>403 THEN X6=X6+9!: GOTO 6230
- 6225 C9=X6*1.07: G3=15: GOSUB 6700: X6=C9
- 6230 IF M9>314 THEN 6245
- 6235 IF M9>=142 THEN RETURN
- 6240 C9=1.5*X6: G3=15: GOSUB 6700: X7=C9: RETURN
- 6245 IF M9<=370 THEN X7=.8*P9: RETURN
- 6250 X7=296!+4!*(P9-370): IF X7>368! THEN X7=368!
- 6255 RETURN
- 6300 REM Subroutine to calculate PIAs under 1958 Act
- 6305 P4=3: IF M9>84 THEN 6315
- 6310 X6=3.49+.55*M9: GOTO 6325
- 6315 X6=.5885*110: IF M9<110 THEN X6=.5885*M9
- 6320 IF M9>110 THEN X6=X6+.214*(M9-110)
- 6325 P3=0!: IF X6-FIX(X6)>=.49999 THEN P3=1!
- 6330 X6=P3+FIX(X6)
- 6335 IF X6<33 THEN X6=33
- 6340 IF M9=553 THEN X6=159
- 6345 IF T(2,2)>1961 AND X6<40! THEN X6=40!
- 6350 IF T(2,2)=1961 AND T(2,1)>=8 AND X6<40! THEN X6=40!
- 6355 IF M9<=127 THEN 6400 ELSE P9=M9
- 6360 P9=P9+1
- 6365 Q1=41.195+.214*P9
- 6370 P3=0!: IF Q1-FIX(Q1)>.49999 THEN P3=1
- 6375 Q1=P3+FIX(Q1)
- 6380 IF (Q1-X6)<1 AND (Q1-X6)>-1 THEN 6360
- 6385 IF P9<>553 THEN P9=P9-1
- 6390 X7=.8*P9: IF X7>254! THEN X7=254!
- 6395 RETURN
- 6400 X7=1.5*X6: IF X7<X6+20! THEN X7=X6+20!
- 6405 RETURN
- 6500 REM Subroutine to calculate PIAs under 1952 Act
- 6505 X6=.55*100: IF M9<100 THEN X6=.55*M9
- 6510 IF M9>100 THEN X6=X6+.15*(M9-100)
- 6515 C9=X6: G3=2: GOSUB 6700: X6=C9: IF X6<25! THEN X6=25!
- 6520 X7=.8*M9: IF X7<45 THEN X7=45
- 6525 IF X7>168.75 THEN X7=168.75
- 6530 P4=1: RETURN
- 6600 REM Subroutine to calculate PIAs under 1954 Act
- 6605 X6=.55*110: IF M9<110 THEN X6=.55*M9
- 6610 IF M9>110 THEN X6=X6+.2*(M9-110)
- 6615 C9=X6: G3=4: GOSUB 6700: X6=C9: IF X6<30! THEN X6=30!
- 6620 X7=.8*M9: IF X7<50! THEN X7=50!
- 6625 IF X7<1.5*X6 THEN X7=1.5*X6
- 6630 IF X7>200! THEN X7=200!
- 6635 P4=2: RETURN
- 6700 REM Subroutine to round a PIA or MFB to appropriate dime
- 6705 IF G3>31 THEN 6730
- 6710 IF G3>=23 THEN Q9=.01 ELSE Q9=.499
- 6715 X9=10!*(10!*C9-FIX(10!*C9))
- 6720 IF CSNG(1000*X9 MOD 10000)/1000!<Q9 THEN RETURN
- 6725 C9=C9+.1-CSNG(1000*X9 MOD 10000)/100000!: RETURN
- 6730 C9=FIX(10!*C9+.001)/10!: RETURN
- 6800 REM Subroutine to apply real-wage-gain adjustment
- 6805 IF U2<=N4 OR T3<>7 THEN RETURN
- 6810 C9=D(2,S3)*(1!+.01*(U2-N4)): G3=N4: GOSUB 6700: D(3,S3)=C9
- 6815 C9=D(4,S3)*(1!+.01*(U2-N4)): G3=N4: GOSUB 6700: D(6,S3)=C9
- 6820 D(1,S3)=D(3,S3): D(8,S3)=D(6,S3): RETURN
- 6900 REM Subroutine to apply catch-up benefit increase
- 6905 IF K1<N4+3 OR K1>N4+10 THEN RETURN
- 6910 IF F(U8,K1-N4-2)<.05 THEN RETURN
- 6915 C9=C9*(F(U8,K1-N4-2)/100!+1!): G3=K1: GOSUB 6700: RETURN
- 7000 REM Subroutine to convert response to one-letter uppercase
- 7005 I4=ASC(C$): IF I4>96 THEN C$=CHR$(I4-32) ELSE C$=CHR$(I4)
- 7010 RETURN
- 9813 REM For Macintosh, $INCLUDE "COLOR.MAC"
- 9814 REM $INCLUDE: 'COLOR.BAS'
- 9900 PRINT " Do you wish to do another calculation? (y or n) > ";
- 9905 C$=FNGETSTRN$(1): GOSUB 9860
- 9906 IF LEN(C$)<=0 THEN BEEP: GOTO 9900
- 9907 GOSUB 7000: IF C$<>"Y" AND C$<>"N" THEN BEEP: GOTO 9900
- 9910 IF C$<>"Y" THEN 9935
- 9915 CLS: GOSUB 9850
- 9920 PRINT " Loading PIA data-input program; please wait..."
- 9925 CHAIN "PIAIN"
- 9935 GOSUB 9860: CLS: END
- 9999 REM PIACAL.BAS - 05/04/88 - 09:30 AM
-