15  REM  CASE1, 36790 REV A, 2/74 --  MAXIMA, PART 5 OF 5
20  REM PROGRAM PREPARED AT STANFORD UNIVERSITY
30  LET Z1=Z2=0
40  DIM X[45],S[20],M[3],E[3],G[3],C[3],F[20],U[3],L[3]
50  DIM P$[4],G$[4],C$[4],N$[4]
60  READ X[35],X[36],X[37],X[38],X[39],X[40],X[41],X[42],X[43]
70  DATA 52,6.4,38,70,.6,80,11.3,.28,1.03
80  PRINT "SUB-MODELS:  DO YOU REQUIRE(YES OR NO)  -"
90  PRINT TAB(12)"*PROMOTION BLENDER*";
100  INPUT P$
110  PRINT TAB(12)"*GROWTH + COMPETITION*";
120  INPUT G$
130  PRINT TAB(12)"*CANNIBALISATION MODEL*";
140  INPUT C$
150  PRINT 
160  PRINT 
170  PRINT 
180  PRINT "*AYER MODEL*";
190  INPUT N$
200  IF N$[1,1]="Y" THEN 500
210  PRINT 
220  PRINT "*PROFIT MODEL*";
230  INPUT N$
240  PRINT 
250  IF N$[1,1] <> "Y" THEN 3640
270  IF Z2=1 THEN 310
280  PRINT "1ST YR % MKT SHARE, PRICE";
290  INPUT X[6],X[7]
310  GOTO 1000
500  REM AYER MODEL
510  IF Z1=1 THEN 590
520  PRINT 
530  PRINT "MEDIA IMPRSSNS PER HSHLD, %HSHLD AVAIL";
540  INPUT X[1],X[2]
550  PRINT "NEW BRAND OR ONE OF FAMILY (0 TO 1)";
560  INPUT X[3]
570  PRINT "PRICE";
580  INPUT X[7]
590  IF P$[1,1]="Y" THEN 5000
600  IF Z1=1 THEN 630
610  PRINT "VAL OF PROMOTION: AS ADVTSG, AS PROM";
620  INPUT X[4],X[5]
630  PRINT 
640  LET A=-35.876+.756*X[35]+2.122*SQR(X[1]*X[36])+.039*X[4]+.392*X[37]
650  LET I=-16.011+.37*A+.194*X[38]*X[39]+9.245*X[3]+.086*X[5]+.022*X[40]+.067*X[2]
660  LET X[6]=1.05*I/(1+EXP(.35375*X[7]-3.9486))
670  PRINT TAB(12)"AWARENESS % =";A
680  PRINT TAB(12)"INITIAL PCHSRS %=";I
690  PRINT TAB(12)"MKT SHARE %=";X[6]
700  PRINT 
710  LET Z1=1
720  PRINT "*PROFIT MODEL*";
730  INPUT N$
740  PRINT 
750  IF N$[1,1] <> "Y" THEN 3640
1000  REM PROFIT MODEL
1010  REM DATA INPUT
1020  IF Z2=1 THEN 1050
1030  PRINT "MKT SIZE";
1040  INPUT X[8]
1050  IF G$[1,1]="Y" THEN 5500
1060  IF Z2=1 THEN 1090
1070  PRINT "SALES GROWTH: % YR2, YR3";
1080  INPUT X[9],X[10]
1090  LET S[1]=X[8]*X[6]/100
1100  LET S[2]=S[1]*(100+X[9])/100
1110  LET S[3]=S[1]*(100+X[10])/100
1120  IF Z2=1 THEN 1190
1130  PRINT "HORIZON YR. PLANT RESID VAL %";
1140  INPUT X[11],X[12]
1150  PRINT "AD-COST: YRS 1, 2, 3";
1160  INPUT X[13],X[14],X[15]
1170  PRINT "PROM-COST:  YR 1";
1180  INPUT X[16]
1190  IF C$[1,1]="Y" THEN 6000
1200  IF Z2=1 THEN 1500
1210  PRINT "CANNIBALISATION: YR 1,2,3";
1220  INPUT X[17],X[18],X[19]
1230  PRINT 
1500  REM SALES CALCULATIONS
1510  FOR I=4 TO X[11]
1520  LET S[I]=S[I-1]*X[43]
1530  NEXT I
1540  PRINT "*SALES*";
1550  INPUT N$
1560  IF N$[1,1] <> "Y" THEN 2000
1570  PRINT 
1580  PRINT "YEARLY SALES (IN UNITS)"
1585  PRINT 
1590  PRINT "YEAR","SALES"
1600  PRINT 
1610  FOR I=1 TO X[11]
1620  PRINT I,S[I]
1630  NEXT I
1640  PRINT 
1650  PRINT 
2000  REM PLANT COST
2010  LET T=0
2020  FOR I=3 TO X[11]
2030  LET T=T+S[I]
2040  NEXT I
2050  LET K=5*T/(X[11]-2)
2060  REM PLANT COST PRINTED JUST BEFORE PAYBACK YR
2080  LET D=K*(100-X[12])/(100*X[11])
2500  REM PROFIT + LOSS
2510  LET M1=X[7]*.87-5.72
2520  LET E[1]=X[13]+X[16]+3.5E+06+1.7E+06
2530  LET E[2]=X[14]+2.E+06+1.7E+06
2540  LET E[3]=X[15]+2.E+06+1.7E+06
2550  PRINT "*P+L*";
2560  INPUT N$
2580  IF N$[1,1] <> "Y" THEN 3000
2590  FOR I=1 TO 3
2600  LET L[I]=INT(X[7]*S[I]/1000+.5)
2610  LET M[I]=INT(M1*S[I]/1000+.5)
2620  LET G[I]=INT(M[I]-(E[I]+D)/1000+.5)
2630  LET C[I]=INT(G[I]-X[16+I]/1000+.5)
2640  NEXT I
2650  PRINT 
2660  PRINT "PROFIT AND LOSS STATEMENT IN THOUSANDS OF DOLLARS"
2670  PRINT 
2680  PRINT TAB(21)"YEAR 1";TAB(36)"YEAR 2";TAB(51)"YEAR 3"
2690  PRINT 
2700  PRINT "SALES";TAB(20);L[1];TAB(35);L[2];TAB(50);L[3]
2710  PRINT "GROSS MARGIN";TAB(20);M[1];TAB(35);M[2];TAB(50);M[3]
2720  PRINT 
2730  PRINT "MARKETING COSTS";TAB(20);INT(E[1]/1000+.5);
2731  PRINT TAB(35);INT(E[2]/1000+.5);TAB(50);INT(E[3]/1000+.5)
2740  PRINT "DEPRECIATION";TAB(20);INT(D/1000+.5);
2741  PRINT TAB(35);INT(D/1000+.5);TAB(50);INT(D/1000+.5)
2750  PRINT 
2760  PRINT "GROSS CONTRIBUTION ";TAB(20);G[1];TAB(35);G[2];TAB(50);G[3]
2770  PRINT 
2780  PRINT "CANNIBALISATION";TAB(20);INT(X[17]/1000+.5);
2781  PRINT TAB(35);INT(X[18]/1000+.5);TAB(50);INT(X[19]/1000+.5)
2790  PRINT 
2800  PRINT "INCREMENTAL PROFIT";TAB(20);C[1];TAB(35);C[2];TAB(50);C[3]
2810  PRINT 
2820  PRINT 
3000  REM CASH FLOW CALCULATION
3010  FOR I=1 TO 3
3020  LET F[I]=(M1*S[I]-E[I]-X[16+I])*.52+.48*D
3030  NEXT I
3040  FOR I=3 TO X[11]
3050  LET F[I]=(M1*S[I]-(E[3]+X[19])*X[43]^(I-3))*.52+.48*D
3060  NEXT I
3070  LET F[X[11]]=F[X[11]]+X[12]*K/100
3080  PRINT "*CASH FLOW*";
3090  INPUT N$
3100  IF N$[1,1] <> "Y" THEN 3210
3110  PRINT 
3120  PRINT "ANNUAL SALES AND AFTER-TAX CASH FLOW"
3130  PRINT 
3140  PRINT "YEAR","SALES (UNITS)","CASH FLOW"
3150  PRINT 
3160  PRINT 0,0,-K
3170  FOR I=1 TO X[11]
3180  PRINT I,S[I],F[I]
3190  NEXT I
3200  PRINT 
3210  PRINT 
3220  REM PAYBACK YEAR + PLANT COST PRINTOUT
3225  PRINT "PLANT COST = $";K
3230  LET B=-K
3240  FOR I=1 TO X[11]
3250  LET B=B+F[I]
3260  IF B >= 0 THEN 3300
3270  NEXT I
3280  PRINT "PAYBACK BEYOND YR";X[11]
3290  GOTO 3310
3300  PRINT "PAYBACK YR";I
3310  PRINT 
3500  REM NPV CALCULATION
3510  PRINT "DISCOUNT RATE %";
3520  INPUT R
3530  LET V=-K
3540  FOR I=1 TO X[11]
3550  LET V=V+F[I]/((1+R/100)^I)
3560  NEXT I
3570  PRINT "NET PRESENT VALUE =$";V
3580  PRINT 
3590  PRINT "NEW DISCOUNT RATE %";
3600  INPUT R
3620  IF R <> 0 THEN 3530
3630  LET Z2=1
3640  PRINT 
3650  PRINT "*RE-RUN*";
3660  INPUT N$
3670  PRINT 
3680  PRINT 
3690  IF N$[1,1]="L" THEN 4500
3700  IF N$[1,1] <> "Y" THEN 9999
4000  REM INPUT NEW DATA
4010  PRINT "HOW MANY DATA ITEMS DO YOU WISH TO CHANGE";
4020  INPUT J
4030  IF J=0 THEN 4100
4040  PRINT 
4050  PRINT "INPUT: NO. OF VARIABLE, NEW VALUE (ONE PAIR PER LINE)"
4060  FOR I=1 TO J
4070  INPUT Y1,Y2
4080  LET X[Y1]=Y2
4090  NEXT I
4100  GOTO 160
4500  REM LIST-OUT OF VARIABLES
4510  PRINT "VARIABLE NUMBERS AND VALUES"
4520  PRINT 
4530  IF Z1=0 THEN 4910
4540  FOR I=1 TO 3
4550  PRINT I;X[I]
4560  NEXT I
4570  IF P$[1,1]="Y" THEN 4600
4580  PRINT 4;X[4]
4590  PRINT 5;X[5]
4600  PRINT 6;X[6]
4605  PRINT 7;X[7]
4610  IF Z2=0 THEN 4725
4620  PRINT 8;X[8]
4630  IF G$[1,1]="Y" THEN 4660
4640  PRINT 9;X[9]
4650  PRINT 10;X[10]
4660  FOR I=11 TO 16
4670  PRINT I;X[I]
4680  NEXT I
4690  IF C$[1,1]="Y" THEN 4725
4700  FOR I=17 TO 19
4710  PRINT I;X[I]
4720  NEXT I
4725  IF Z1=0 THEN 4765
4730  IF P$[1,1] <> "Y" THEN 4765
4740  FOR I=20 TO 23
4750  PRINT I;X[I]
4760  NEXT I
4765  IF Z2=0 THEN 4860
4770  IF G$[1,1]="Y" THEN 4790
4780  IF C$[1,1] <> "Y" THEN 4820
4790  FOR I=24 TO 29
4800  PRINT I;X[I]
4810  NEXT I
4820  IF C$[1,1] <> "Y" THEN 4860
4830  FOR I=30 TO 34
4840  PRINT I;X[I]
4850  NEXT I
4860  FOR I=35 TO 43
4870  PRINT I;X[I]
4880  NEXT I
4890  PRINT 
4900  GOTO 3640
4910  IF Z2=0 THEN 4860
4920  GOTO 4600
5000  REM PROMOTION BLENDER
5010  IF Z1=1 THEN 5040
5020  PRINT "PROM MIX: %1, %2, %3,REDN FACTOR";
5030  INPUT X[20],X[21],X[22],X[23]
5040  LET X[4]=(108*X[20]+32+X[21]+135*X[22])/(100+X[23])
5050  LET X[5]=(108*X[20]+39*X[21]+123*X[22])/(100+X[23])
5060  LET P=.1187*X[20]+.0329*X[21]+.1068*X[22]
5070  PRINT 
5080  PRINT TAB(12)"PROMOTION COST = $MN";P
5090  GOTO 640
5500  REM GROWTH + COMPETITION
5510  IF Z2=1 THEN 5560
5520  PRINT "GROWTH WITH COMPETN:% YR1, YR2, YR3";
5530  INPUT X[24],X[25],X[26]
5540  PRINT "COMPET EFFECTIVENESS:% YR1, YR2, YR3";
5550  INPUT X[27],X[28],X[29]
5560  LET S2=(X[42]*X[41]+X[6]/100*(100-X[41]))/100
5570  LET S[1]=S2*X[8]*(100+X[24])/(100+X[27])
5580  LET S[2]=S2*X[8]*(100+X[25])/(100+X[28])
5590  LET S[3]=S2*X[8]*(100+X[26])/(100+X[29])
5600  GOTO 1120
6000  REM CANNIBALISATION MODEL
6010  IF G$[1,1]="Y" THEN 6080
6020  IF Z2=1 THEN 6070
6030  PRINT "GROWTH WITH COMPETN:% YR1, YR2, YR3";
6040  INPUT X[24],X[25],X[26]
6050  PRINT "COMPET EFFECTIVENESS:% YR1, YR2, YR3";
6060  INPUT X[27],X[28],X[29]
6070  LET S2=X[6]/100
6080  IF Z2=1 THEN 6150
6090  PRINT "MKT GROWTH (NO MAXWELL HOUSE): % YR2, YR3";
6100  INPUT X[30],X[31]
6110  PRINT "% FROM MAXWELL HOUSE, % FROM INSTANT";
6120  INPUT X[32],X[33]
6130  PRINT "% ADVERTISING CUT";
6140  INPUT X[34]
6150  LET U[1]=S2*X[8]*(100+X[24]-X[27])/100
6160  LET U[2]=S2*X[8]*(100+X[25]-X[28]*(100+X[30])/100)/100
6170  LET U[3]=S2*X[8]*(100+X[26]-X[29]*(100+X[31])/100)/100
6180  IF X[33]<0 THEN 6220
6190  LET W1=.503*.3*(100-X[33])/100*(2.5-.7*X[34]/100)
6200  LET W2=(.503*.3*X[33]/100+.249*.7)*(2-.7*X[34]/100)
6210  GOTO 6240
6220  LET W1=(.503*.3+.249*.7*(-X[33])/100)*(2.5-.7*X[34]/100)
6230  LET W2=.249*.7*(100+X[33])/100*(2-.7*X[34]/100)
6240  LET T9=(100-X[32])/100*(W1+W2)
6250  LET X[17]=U[1]*T9
6260  LET X[18]=U[2]*T9
6270  LET X[19]=U[3]*T9
6280  IF Z2=1 THEN 1500
6290  GOTO 1230
9999  END 
