Bureau of Busine,..ss Research Graduate School of Business Administration University of Michigan October 1972 CASH MANAGEMENT MODEL FOR THE CITY OF ANN ARBOR, MICHIGAN Working Paper No. 65 by Joseph D. Vinso Research Fellow FOR DISCUSSION PURPOSES ONLY None of this material is to be quoted or reproduced without the express permission of the Bureau of Business Research

CONTENTS Prefacei I. Introduction Project Objectives 1 Current Practice1 Outline of the Report 2 II. Model Description 4 Objective Function 4 Constraints6 III. Model Construction9 Definition of Variables 9 Construction of Constraints 14 Objective Function 16 IV. Sample Problem 18 Cash Flow Assumptions 18 Review of Computer Program 19 Explanation of Output Results 22 V. Interpretation and Implementation 27 Role of the Model in Investment 27 Updating the Model 28 Implementation Suggestions 29 Appendix 30

TABLES 1. Variable and Coeffieient Specifications 10-13 2. Revenue and Expense Assumptions 20 3. Optimnal Set of Variables 24

Preface This paper is written as a user's guide to accompany a cash management model constructed for the City of Ann Arbor, Michigan. The model was designed to help the city improve its management of cash flows. Expenses occur at a fairly uniform rate; income is highly segmented yet, to some extent, predictable. The city is experiencing problems of overdrawn accounts and fund manipulation in months with low revenues. Therefore, the city enlisted the services of the Bureau of Business Research to provide guidance in better management of its cash flows. The model was originally intended for use in managing the General Fund, but it became apparent that it could be constructed for use in any fund and/or the city's total cash flow. As a matter of fact, the sample problem is applied to the city's cash flow from all sources. Thus the model discussed here is a fairly general one, with some specific uses indicated. This guide is accompanied by a printout of the computer program and simplex tableaus, as well as a card deck, as supplementary materials; these items are referred to in this paper but are not included in it. A note of thanks is extended to Pat Larkey, Program Manager of Community Planning and Management, who helped initiate and sponsor this project; Ken Sheehan, Assistant Administrator —Finance for the city who gave his support and provided input every step of the way; and Lorne Yedle, City Controller, who helped prevent this project from straying too far from reality. i

I Introduction Project objectives This report is intended to serve as a user's guide to a model for use in the cash management function of the City of Ann Arbor. The model was developed under the guidelines of a proposal prepared in March, 1972, and subsequently revised. The general project objective is ito develop and implement analytical procedures for managing the city's cash flow. Expected benefits from the project include: a) Greater return on investment through the more efficient use of revenue dollars which are collected but not needed immediately to meet expenditure requirements b) Fewer problems with cash shortages during the fiscal year and avoidance of penalties incurred in liquidating investments before they mature c) Pinpointing of areas where improved procedures for forecasting revenues and expenditures are needed A specific objective of the cash management model is to maximize income through the financing function (primarily the investment portfolio) subject to the following constraints: 1. All governmental functions are funded when necessary.; 2. Bank accounts are not overdrawn. 3. All legal requirements are satisfied. The model has been constructed with these objectives in mind. Current practice At the present time excess cash is invested subjectively by the -1 -

-2 - Deputy Controller according to his estimates for future cash needs. This practice causes two types of problems. First, although the estimates are developed from experience, the process is complex and there may be times when all costs and cash needs are not recognized. Second, if the Deputy Controller leaves his job, the investment function is less than optimally performed until the new Deputy Controller obtains the experience needed for this complex task. Two resources are utilized to provide for unexpected cash needs: (1) bank accounts are overdrawn and funds are shuffled from one account to another; (2) investments are sold early at a potential capital loss or money is left idle in anticipation of future needs. Either alternative entails real or opportunity costs. Furthermore, keeping track of over 50 funds and 100 bank accounts is a formidable task. Thus it appears that a cash management model would be useful in aiding the investment officer (Deputy Controller) to fulfill his function more efficiently. Outline of the report Part II describes the model. The assumptions used in forming the objective of the program and various constraints on it are outlined. Sources of data are also discussed. Part III describes in detail the derivation of the numbers used in the model as well as the equation systems. Terms are defined and the model is constructed.

-3 -Part IV presents a sample problem to facilitate understanding of the model. The problem presented is the situation faced by the city with some cash flow patterns assumed. Finally, Part V indicates the role of the model in the investment process, suggestions for model revisions, and ways of updating the model. Then some suggestions on implementation are provided.

II Model Description The purpose of a cash management model is to suggest actions for the investment of cash. It must include alternatives, because if no alternatives exist there is no problem. Such a model essentially determines an investment schedule which will maximize the earnings of available cash. It must be emphasized that no model, no matter how sophisticated, can preclude managerial judgment. The model should only serve as a guide for action. Its validity will be determined by the validity of the data and assumptions used in its construction. The cash management model designed for the City of Ann Arbor is based on a linear programming algorithm. Thus the linear programming format is used in the description of the model. There are basically two parts to the model: (1) the objective function, and (2) the constraints. Objective function The objective of the cash management program is to maximize income through investments. The realization of this objective is dependent on the types of securities held, their maturities, and the amount of each type held. Consequently, some assumptions on securities and time horizon are needed. As a municipal government the City of Ann Arbor is limited by -4 -

-5 - law as to what types of securities it may include in its portfolio. These include short-term issues of the United States Government (primarily Treasury bills) and time deposits in commercial banks in the form of Certificates of Deposit (CD) up to one year. It is questionable whether other government securities are eligible, but if they are, they too should be included. The following assumptions pertain to the time horizons of the model. Since the city operates on a fiscal year budgetary system, the model should have at least a twelve-month horizon. A longer one is not necessary because a twelve-month horizon allows constant updating, i. e., planning would be for twelve months into the future. The model will allow for a shorter horizon, but initially the twelve-month period seems appropriate. Furthermore, a monthly model allows for sufficient detail without excessive calculation. Several assumptions must be made about maturity of securities. Treasury bills are available on a 3-, 6-, 9-, or 12-month basis from the Federal Reserve. But using these intervals in the model assumes that Treasury fundings occur at the same time the cash to be invested becomes available, which is not necessarily a good assumption. Therefore it is assumed that Treasury bills would be bought from securities dealers (such as a bank) at a rate quoted in the financial section of the New York Times or the Wall Street Journal, which allows the purchase of a bill with a maturity for any time period, i. e., 1-, 2-,... 12-month bills.

-6 - Time deposits at commercial banks pose a special problem. The usual instrument is the CD. Unless the CD amounts to more than $100, 000, it is not negotiable, which means that usually interest is lost if it is cashed in early. It is assumed that for a given period a CD will be purchased to mature in that period and cannot be sold early. So a CD represents liquid funds only in the period in which it matures. Liquidity is handled internally in the model through the constraint functions discussed later. The return for a CD is just a multiple of its one-period return, e. g., a 60-day (Period 2) CD has a return of twice a 30-day (Period 1) CD. The CD provides a direct alternative to Treasury bills. Thus the objective function is as follows: 12 2 MaxZ= ' X,MaxZt = CitXit t=I it=i where C = return for security i for time t X = amount held in each security As a result the model attempts to search combinations of yield and maturity and to choose the set that results in the greatest amount of income. Constraints The maximization process has limits within which it can operate. The first type of constraint involves period cash flows. For each period

-7 - the cash from revenue plus maturing investments must equal the expenses paid in cash, cash invested, plus change in cash balances. Since there are twelve periods (months), there are twelve cash flow constraints. For example, in the first period various investments are made, including the possibility of Treasury bills and/or CD for Period 2. In Period 2 it is necessary to specify cash revenues, cash expenses, and the return from the Treasury bills and/or CD invested in the first period. Any residual would be reinvested in the period. Another element in the cash flow constraint is the beginning and ending cash balances. These can be determined by the model or set as a policy decision. In Part IV the sample problem is outlined and the cash balances are set as a result of policy decisions. Cash balances can be determined by the model, but since they have a zero rate of return it is unlikely that they will appear in the solution unless some positive benefit can be assigned. Thus the constraints for the period cash flows are as follows: 12 11 2 12 11 2 Z Z 1 X..k -51 X L A. X + b -b R -E.=CF. E ~ xijk i E Aijk xijk+ i i- 1- i i i k=j+l j=l i=l k=j+l j=l i=1 i i where: X = amount invested in security i in period j to mature in period k Aijk = return on security i which was bought in period j and matures in period k

-8 -b. = cash balance at the end of period i bii = cash balance at the beginning of period i Ri = cash from revenue in period i Ei = cash expenses in period i CFi = cash flow in period i

Ill Model Construction The primary problem in construction of the model concerns determination of the correct coefficients for the general equations outlined in Part II, The purpose here is to describe in detail the derivation of the numbers used in the model as well as the equation systems, First, terms are defined. Then the construction of constraints is reviewed, and finally construction of the objective function is given. Definitions of variables In the description of the model, variables were described by using subscripts such as Xijk where k signified the maturity of the security, j signified the purchase period of the security, and i signified the type of security. Since the linear programming algorithm does not recognize subscripts, a method of describing variables compatible with the program was needed. Table 1 shows the method used to adapt the model to the program. The amount of funds invested in Treasury bills in Period 1 maturing in Period 2 is identified as X1. A CD bought in Period 2 for maturity in Period 5 is X34. A 4-month CD bought in Period 5 for maturity in Period 9 is X83. A similar method can be used for all variables up to X144. Certain variables, such as X21, X22, X41, X58 etc. (indicated by bo, bl, b2, b3 etc. ) represent the cash balance at the end of each -9 -

TABLE 1 Variable and Coefficient Specifications Program Variable Model Variable Di 1 + Di = di X1 X2 x3 X4 x5 X6 x7 X8 X9 X10 Xll x12 x13 x14 x15 x16 x17 X18 19 x20 X21 X22 X23 x24 X25 x26 X2 7 X27 x28 X29 x30 X3 X32 X33 X34 x35 X36 x37 X38 X211 X311 x411 X511 X611 X711 X811 x911 XIOll X1011 Xllll x212 X312 X412 X512 x612 X712 X812 x912 X1012 X1112 bo bI X321 X421 X521 "621 X 721 X821 X921: x1021 x1121 X322 X 422 X522 X622 722 X822 X922.00280.00614.00957 01320. 01700.02120.02470.02940.03340,03730 00340.00680. 01062. 01402. O1742.02124 02464.02804,03186,03526 0. 0 0.0.00280 006:14,00957.01320.01700.02120 02470.02940.03340,00340 00680.0.1062.01402 01742.02124.02464 1.00280 1.00614 1.00957 1,0 1320 1.01700 1. 02120 1.02470 1. 02940 1. 03340 1* 03730 1. 00340 1. 00680 1. 01062 1.01402 1.01742 1. 02124 1. 02464 1. 02804 1. 03 186 1.03526 1. 00 1. 00 1.00280 1. 00614 1,00957 1, 01320 1. 0 1700 1,02120 1,02470 1. 02940 1, 03340 1. 00340 1.00680 1, 0 1062 1. 01402 1, 01742 1. 02 124 1.02464 S

-11 - TABLE 1 (Cont. ) Variable and Coefficient Specifications Program Variable Model Variable D. I + Di = di x39 x40 x41 X42 x43 x44 x45 x46 x47 X48 X49 X50 X51 X52 x53 x54 55 X56 x57 X58 X59 X60 6L 62 X63 x64 X65 x66 X67 X68 X69 x70 X71 X72 x73 x74 X75 x76 X1022 x1122 b2 x431 X531 x631 x731 X831 X931 x1031 X1131 X432 X532 x632 X732 X832 x932 X1032 x1132 b3 x541 x641 x741 X841 X941 X1041 X1141 X542 x642 x742 X842 X942 X1042 X1142 b4 X651 X751 X851; 02804 03186 0. 0 00280 00614. 00957.01320 01700 02120. 02470 02940 00340 00680.01062.01402 01742.02124 * 02464. 02804.00340. 00280.00614.00957. 01320.01700.02120.02470.00340 00680.01062.01402.01742.02124.02464 0.0, 00280.00614.00957 1. 02804 1.03186 1, 00 1. 00280 1. 00614 1. 00957 1, 01320 1.01700 1.02120 1. 02470 1. 02940 1. 00340 1.00680 1. 01062 1.01402 1. 01742 1.02124 1.02464 1,02804 1.00340 1, 00280 1. 00614 1. 00957 1.01320 1. 01700 1.02120 1. 02470 1. 00340 1. 00680 1, 01062 1. 01402 1. 01742 1. 02124 1. 02464 1. 00 1. 00280 1. 00614 1. 00957 -_~~__ __ ~ ~~~~~___ _~ ~_ ~___ ~~~_~' ''!. - -.. -.-.... _. -... —. '.-..-.."?' -._. "-]-7.-.- _._U~-~:~

-12 - TABLE 1 (Cont. ) Variable and Coefficient Specifications j Program Variable Model Variable Di 1 + Di = d ~x77 x95 1 el. 01320 1 01320 "77 x951 x78 x1051.01700 1.01700 x79 X1151 -, 02120 J 1.02120 x80 X652. 00340 1. 00340 X 8 1 x752. 00680 1. 00680 x82 x852.01062 1.01062 x83 x952.01402 1.01402 x84 1052.01742 101742 X85 X1152.03186 1.03186 x86 b5 0. 0 1.00 x87 `761.00280 1. 00280 x88 x861.00614 1.00614 x8g9 <x961.00957 1. 00957 90 x1061.01320 1.01320 x9Q1.16 01700 101700 x92 X762*0 0 1.00340 x3 Xg62. 00680 1. 00680 x 9 4 X 962 O.01062 1. 01062 x95 1062.01402 1.01402 96 x162. 01742 1.01742 x97 b6.00340 1. 00340 x~g^98,., 00280 1. 00280 X99 x971. 00614 1.00614 x1Ql.00957 1.00957 X101 x117 1 *t.01320 1.01320 x102 x872. 00340 1. 00340 x103 X972.00680 1. 00680 x104 x1072.01062 1 01062 x105 x1172.01402 1.01402 x106 b7 0.0 1.00 x107 XI981.00280 1.00280 x108 x1081.00614 1.00614 i109 X1181.00957 1. 00957 x 1 1 X982 e. 00340 1. 00340 xill x1082.00680 1.00680 x 12 Ix11.82.01062 1 01062 xll3 b8 0.0 1.00 Xll4 X1091. 00280 1.00280 ~~^_ I 1 _111 __1_~1_ ____I_ I Y _I___ ____ Il —-~il_lL-: I-~~_l(-^ —_~-pll —~-~~l~L-~~ --- —

-13 -TABLE 1 (Cont ) Variable and Coefficient Specifications Program Variable Model Variable i 1 + Di =di * _v | 0..... i I i i i i I I i I I i i I i i 1i i i i i i iI I i I i xl 15 x116 xll7 X117 Xl18 X119 Xlz19 x120 x121 X122 X123 x124 x125 X126 X127 X128 x129 x130 x131 X132 X133 X134 x135 X136 K137 X138 139 x140 X141 X142 X143 x144 x145 X1191 x1092 X1192 b9 XlllO1 XlllOz blo bnll X1211 X1212 x1221 X 122 X1231 X1232 X1241 x1242 X1251 X1252 X1261 x1262 x1271 x1272 x1281 X1282 X1291 X1292 X12101 X12102 X12111 X12112 b12 00614.00340. 00680. 00340 00280. 00340 0.0 0.0. 04170. 04240 03 730 03526.03340.03186.02940. 02804. 02470 02464 02120 02124 01700. 01742 01320.01402 00957.01062 00614 00680 O00280 00340 0,0 1. 00614 1.00340 1. 00680 1. 00340 1. 00280 1. 00340 1. 00 1. 00 1. 04170 1. 04240 1. 03730 1. 03526 1.03340 1.03186 1. 02940 1. 02804 1. 02470 1. 02464 1.02120 1.02 124 1. 01700 1. 01742 1.01320 1. 01402 1. 00957 1. 01062 1. 00614 1, 00680 1. 00280 1. 00340 1. 00

-14 - period and simultaneously the cash balance at the beginning of the next period. For example, X22 (bl) is the cash balance at the end of Period 1, It is also the cash balance at the beginning of Period 2. The variable X41 (b2) is the cash balance at the end of Period 2, and variables X22 less X41 represent the change in cash balance over the period. The next step is to provide coefficients of the variables so that the optimum choices can be made. Before specifying these coefficients, construction of the constraints should be examined. Construction of constraints The first constraints to be reviewed are the period constraints, For all periods the overall equation is that cash in equals cash out. Thus in the first period revenues less expenses equal the cash invested in securities plus the change in cash balances. That is, XI + X2 +... + X20 + X1Z3 + X124 - X21 + X22 = Revenue - Expenses It is assumed that there are no securities owned at the beginning of the period (X21 is all in cash). So the excess of revenues over expenses is to be split among several competing investments. The proportion which goes into each is determined by the other twelve periods. The second period has a similar construction —with an important exception, Now the excess of revenues over expenses is not the only potential source of income. If securities were bought in Period 1 to mature in Period 2, this income must be considered. The constraint for Period 2 then is:

-15 - X23 + X24 + + X40 + X125 + X16 - X22 + X41 - dX1 - X = Revenue - Expenses Here, dl and dll are the increase in funds over the period. The increase d. is determined for each security as follows: a 30-day Treasury bill is quoted at 3. 56 percent interest on a yearly basis1 If bought and held to maturity, the bill would be worth 0. 280 percent on a monthly basis. Thus, if $100 were invested in Treasury bills in Period 1 to mature in Period 2, it would be worth $100. 28 at the end of Period 2, or 1.0028 x 100. Thus, dl is 1.0028* Similarly, the coefficient dll is calculated by taking the annual rate of interest on a CD and converting it to a monthly basis. Table 1 gives the d. for all securities, and Part IV discusses more precisely the numbers used in the sample program. Similar constraints are constructed for the remaining periods, That is, income from investments in previous periods plus change in cash balances less amount invested in securities equals revenue minus expenses. The computer printout of the program is available, The second type of constraint included in the model is specification of cash balances. The beginning cash balance, X21, is specified, as is X145, the ending cash balance. Each period's cash balance, b1 to bll, is also specified. It should be noted that it is possible to specify a level for all of the cash balances, as was done in the sample program, The liquidity for each period provides another set of constraints. Since it was felt that the best way to take care of potential emergencies was to have a specified cash balance and a required investment in 30-day

-16 - i i i I i i1 i ii I Ii i I i I i iI i I i i I i ii I i i i i i I I I i I Treasury bills, a positive balance was required, Thus the variables which specified investing in Treasury bills maturing in the next period (such as X23, X42, X59, etc. to X143) were given positive balances. The coefficient was the 30-day rate on a Treasury bill. Again, the discussion of the sample program provides detail on the specification. Objective function Finally, the objective function is needed. The objective of the cash management model is to maximize income from investments; therefore, the coefficients of all decision variables must express that objective. Using the previous example of the constraint coefficient determination of X1, the objective function is now determined, Since a 30-day investment in a Treasury bill will yield 0. 280 percent if the annual rate is 3. 56 percent, then that amount is the return on that investment Thus, the objective function is MaxZ = D1 X1 + D2 X2 + D3 X3 +... + D145 X145 where. D d. - 1. In this equation di is the d. previously determined in Table 1, and D, for all variables is shown in Table 1i The model construction is now complete. It consists of a linear programming model using the Simplex algorithm, Exhibit 1 in the Appendix describes how to run the Simplex algorithm on the University of Michigan MTS system. In the discussion of data construction, option number one was used for minimum problems.

-17 - For a detailed description of similar model construction, see 1/ Orgler.- Exhibit 2 in the Appendix gives the standard linear programming description of the program. Part IV presents a sample problem using the model and data from fiscal 1972. It also discusses the method used to update the program, 1/ Yair E. Orgler, Cash Management (Belmont, Calif,: Wadsworth Publishing Co,, 1970),

IV Sample Problem A sample problem has been devised to facilitate understanding of the model. This problem is essentially the city's problem, and most of the coefficients would be unchanged when running the city's data. Cash flow assumptions Previous sections have discussed the form of the model and the derivation of the coefficients for the decision variables (the securities to be invested). The rest of the needed input data are specified, as well as the form of each constraint. As outlined, the sum of income and investments plus change in cash balances are the revenues less expenses for the period. The actual values for the cash inflow and outflow of the periods are now being gathered. In the meantime, the following scheme was used to determine net requirements, According to the Deputy Controller, Earl Hoenes, the city's revenue accrues as follows: 1. Approximately 60 percent of the total revenue comes in July and August in the form of property tax collections —most of it in August, Delinquent tax collections are spread evenly through the year. Another 20 percent of total revenue comes in January, also from property tax collections. 2. State-collected taxes are received in April, July, October, and January. 3. Fines and other revenue come in evenly throughout the year. Next, Mr. Hoenes mentioned that expenses tend to be fairly uniform -18 -

-19 - throughout the year. So yearly revenue of $12, 000, 000, as reported in the financial report of the city, was used to determine the period revenues and expenses, as shown in Table 2. All that remains is specification of cash balances and liquid funds, The beginning cash balance was set at $50, 000, as reported in the city's financial statements. The balance at the end was also set at $50, 000. Every other period balance was set at $20, 000, so a positive balance of liquid funds was available. The second set of constraints included the requirement that at least $30, 000 be invested in 30-day Treasury bills in every periods Thus liquid funds are kept in cash and maturing Treasury bills. Review of computer program A printout of the computer deck is available at the Bureau of Business Research and should be followed as the entire program is reviewed. Cards 2-6 are the control cards described in the program description. Card 5 changes the input format since the input data has up to five decimal places. Cards 6-269 represent the period constraints. Period 1 is covered by cards 6-27; Period 2 by cards 28-49; Period 3 by cards 50 —71, etc, In Exhibit 2 of the Appendix periods are represented by constraint 1, constraint 2, etc. up to constraint 12. Next are,the cash balance constraints. Cards 270-91 cover X21 (b2); cards 292-313 are for X22 (bl); cards 314-35 are for X41 (b2),

TABLE 2 Revenue and Expense Assumptions i i i I i i i i i i I I iI i I i i i i I Period Month Revenue Expenses 1 July 2, 000, 000 -1, 000, 000 2 August 4, 500, 000 1, 000,000 3 September 300, 000 1, 000, 000 4 October 900,000 1, 000000000 5 November 200, 000 1, 000,000 6 December 100, 000 1, 000, 000 7 January 2, 000, 000 1, 000, 000 8 February 500, 000 1,000,000 9 March 400, 000 1, 000,000 10 April 600, 000 1, 000,000 11 May 400,000 1, 000,000 12 June 600, 000 1, 000,000 -20 -

-21 -etc. up to and including cards 534-55, which are for X145 (b12), The coefficients of the variables must be minus one (-1) since these constraints are greater than specifications. Likewise, the "'b" vector must be minus (in card 555 it is -50000) to insure the proper sign, Following the cash balance constraints are the liquidity constraints, i.e., specification of minimum 30-day Treasury bill investments. Cards 556-77 cover Period 1 (X1); cards 578-99 represent Period 2 (X23), etc* through cards 776-97, which are for Period 12 (X14). Again it should be noted that both the coefficients and the "b" vectors are minus, since these constraints specify "greater than' requirements. Finally, the objective function is covered by cards 798-819. The objective function comes last and does not depend on the number of constraints. Thus each of the cards has its role and must be kept in numerical sequence, especially the blank ones. Any card or part of a card left blank means that the coefficient for the variable associated with that card is zero (0). So it is obvious that changing numerical sequence can lead to infeasible solutions. An obvious question at this point concerns changes in data input. Part V reviews data input changes, the mechanics of which are discussed here. The easiest way to change the input data is to use option number three in the program discussion (see Exhibit 1, Appendix) so that the original card deck is not disturbed. The new values may be stored in a file and reprinted. Of course another way is to change the cards. For

-22 - example, if it is desired to end the 12-month period with an amount of $100000 instead of $50000, one would pull card 555 and punch up a new card with -100000 in columns 1-10. Any new change can be introduced in a similar way. Explanation of output results In conjunction with the discussion of output, reference should be made to the output printout. Output is divided into four parts: the initial tableau or matrix, the iteration log, the final tableau, and the summary. The summary will be the primary tool for use by the investment officer. The initial tableau is a printout of input information. The "basis" consists of artificial variables needed to begin the solution and is followed by the "b" vector and then the variables. Here A(1) is the same as X1. Above each variable is the coefficient of that variable as entered in the objective function. The matrix is the enumeration of the coefficients for each variable in each constraint. It is easy to check the coefficients, since each constraint is numbered. The "-z" row gives the current value of the solution and the "opportunity costs" of each variable, which in the initial tableau are the coefficients of the objective function. The purpose of this tableau is to ensure that all of the elements of the matrix are correct so that a feasible solution results. Next is the iteration log. The incoming and outgoing variables are listed for each iteration, as well as the current value of the objective function. The log also shows the rate at which the optimal solution is approached. In this problem fifty iterations were needed to reach an

-23 - optimal solution. The final tableau gives the identity of the variables in the optimal solution as well as the value that the variables take. Thus, it is a listing of those securities which should be held and the level that they should hold. Although it is interesting, the other material in the final tableau is not important. This tableau should not be used for decision making since the information is much more clearly described in the summary, Finally, the summary of results presents the values of all the variables in numerical order. If a variable is in the optimal set, it is listed as a basic variable, and the amount of that variable is listed as the activity level. If it is not in the optimal set, it is listed as a nonbasic variable and its opportunity cost or "shadow price" is also given. For example, X1 is in the optimal set and has a value of $30, 000; X2 is not in the optimal set, so it is listed as a nonbasic variable and the opportunity cost is 0, 0077. What is important to the investment officer is the listing of the basic variables and their values. Table 3 gives the list of basic variables in the optimal set. As was expected, most of the cash balance and liquidity constraints are just met. The question to be asked of the output of this model is what type of investments should be procured in the coming month. To answer that question the basic variables relating to Period 1 are considered. In Period 1 the beginning cash balance is $50, 000 and the ending

-24 - TABLE 3 Optimal Set of Variables Basic Variable Model Variable Activity Level Xi X211 30,000 Xx8 911 — 478, 963 X11 x212 422, 170 98, 866 x13 X412 98,866 x21 bo 50, 000 x22 bl 20,000 X23 X321 -30,000 X32 x322 1,584,986 X34 X522 2, 338, 703 X41 b2 20, 000 X42 x431 30,000 X52 x632 890,459 x58 b3 20,000 x59 X541 30, 000 30,000 x73 b4 20 000 74 X65130,000 X85 ~X~1152 11,563 625 x86 b5 20,000 Xg87 x761 30,000 x97 b6 20,000 x98 x871 30,000 x102 x872 604, 370 x104 X1072 395, 713 x106 b7 20 000 30,000 x107 X981 30 000 X^Qx< g^106, 509 X110 982 106, 509 X113 bg 20, 000 x114 X1091 30,000 119 X1 1101 30,000 X121 b10 20,000 x122 bll 20, 000 X143 X12111 30,000 x144 x12112 1,013,526 x145 b2 667, 056

-25 - i I i I i i i i I I I i I i i 1 1 I I i i i i i I balance is $20, 000, thus releasing $30, 000 for investment. Revenues exceed expenditures, leaving $1, 030, 000 to be invested. This amount should be invested as follows: Treasury bills: 30-day (X1) 30, 000 8-month (X8) 478,963 Certificates of Deposit: 30-day (X11) 422, 170 3-month (X13) 98, 866 $1030o, 000 The model is saying that excess cash in the next month should be invested in the portfolio listed. Deviations in cash flows would necessitate changes in the portfolio. If substantial changes in cash flow occur, the model should be rerun. The rest of the output is not of concern since it describes actions to be taken in future months. But it can be seen that the twelve-month horizon is considered and will affect the actions of the current period. Part V discusses updating of the model in detail; a brief discussion follows here. As the model is used each month, a set of actions will be described for the coming month. These actions may be different from those described for the same time period several months previously because of new information. It should be noted that when the model is run in the next month, investments purchased in the preceding month will be kept and their value at maturity is added to the cash balance of the period. For example, when running the model at the beginning of the next month, the 8-month Treasury bill bought in Period 1 now matures

-26 -in Period 7. This means that b7 (X106) is $478, 963, plus $20, 000, or $498, 963; changes are also made for other securities. The 30-day securities are added to b0 (X21), the cash balance at the beginning of Period 1. That is, the model does not provide for selling securities, If securities are to be sold before maturity, this action must be handled by adjusting cash balances in the period. However, one of the assumptions included in the construction of the model was that securities were not to be sold before maturity so as to maximize income. Finally, the optimal value should be mentioned. What this value means is that if the cash flows occur exactly as specified, if investments are made as specified, and if interest rates do not change, then the city could earn $117,056 on its investments. However, these conditions are unlikely. Each month will bring new and better forecasts of cash flow and changes in interest rates, As a matter of fact, at the present time the interest rate on short-term Treasury bills is beginning to rise. For these reasons the pattern of investments will change over time. Thus one would not expect to find that $117, 056 will be earned over the fiscal year. However, since the optimal value considerably exceeds that which was actually earned in fiscal 1971, one would expect that a longer-range planning horizon would result in more efficient operation and the generation of more income. The optimal value will change from month to month as flows change, but the path of its changes can indicate what effect current or contemplated actions may have on investment income as well as invest ment decisions. Change in the optimal value will also indicate the effect of interest rate changes on the investment portfolio and investment income.

V Interpretation and Implementation The preceding has been a technical discussion of the structure of the model produced. Now the role of the model in the investment process, updating of the model, and suggestions for model revisions and capabilities will be reviewed. Role of the model in investment As mentioned in the introduction, the model does not serve as a substitute for decision making, but rather as an aid to the process. For example, for a given month the model will indicate the amount of investment needed and the type of instrument best suited to meet that need which will result in maximizing income. This information allows the investment officer to plan for the full year —not just the next several months. When funds become available, the information generated by the model will indicate the type and maturity of the security in which the money should be placed. If an unexpected event occurs which changes cash flows, the model can be updated to see if the change in cash flows is sufficient to change investment patterns. Thus, the model can be used to lengthen the time horizon of the investment officer and to take longerterm concerns into consideration. The model can be used to direct attention to changes in yield patterns of securities. For example, with the current yield structure shortterm CDs would be preferred over Treasury bills, but change in yield structure could change this situation. Thus the model can change the -27 -

-28 - I I3 I i Ii i i I i II I i i i ii I i I i I i I i i i i i i i I i pattern of security investments needed to maximize income, Finally, the model can be used to determine investment patterns for specific funds. As constructed, the '"b" vector is the net revenue less expenses for the city. It is a simple matter to exchange the estimates of a fund cash flow for the city cash flow. After providing the cash balances required, the optimum investment program for a fund can be dete rmined. Updating the model There are two types of considerations involved in updating the model. First are the month-to-month changes. That is, cash flow in Period 4, when the model is run on July 1, will be the cash flow for Period 3, when the model is run on August 1. Thus, each month the T"bT vectors have to be changed. In addition, each of the yield coefficients must be checked. It is suggested that these coefficients be allowed to change by at least 1 percent of yield on an annual basis before changing the model. For example, interest on Treasury bills goes from 4 to 5 percent before the model is changed. Therefore, each month the model should be checked to see that all of the explicit and implicit assumptions still hold, and if they do not, then those that do not should be changed. Finally, there is the updating of strategy, that is, revision of portfolio strategy if the model run on August 1 shows a different optimal set from that run on July 1. Again, what the optimal set indicates is the current optimal set for each period. Either adjustments can be made or the optimal set gives an indication of where new money available for investment

-29 - should be placed. Long-term CDs cannot be changed without penalty, but Treasury bills can. Thus a modification or change in the makeup of the portfolio can be attempted if desired. It should be noted that major changes in the portfolio will occur only with major changes in the yield structure. Since there is a cash buffer built into the model, changes in cash flow should have less effect on the portfolio. Implementation suggestions As presently constructed, the coefficients and cash constraints are set. Changes in these would be policy changes. The first step in implementation of the model would be to take the actual cash flow data from last year, less income from investments, and estimate the level of income expected from investments. Then the "b" vector should be changed to the estimates of the current year and rerun. Finally, an updated forecast should be run each month to determine whether any changes in variables will change investment patterns. It might be added that constantly extending the time horizon by one month will help make the budget preparation process much easier and more efficient since time and effort have already been expended in forecasting. After proficiency has been achieved in the use and interpretation of the model, many changes are possible. Time periods can be changed, other securities can be considered, and other assumptions can be incorporated in the model. It is strongly suggested that these changes not be considered before adequate facility has been achieved with the present model,

APPENDIX Exhibit 1 SIMPLEX ALGORITHM FOR LINEAR PROGRAMMING PROBLEMS * A. DESCRIPTION OF PROGRAM This program (designated by the acronym SIMPLEX) uses the standard simplex algorithm for solving linear programming problems. The program accommodates problems in which the constraints are inequalities or equalities as well as problems in which variables are either restricted or unrestricted in sign. The program inserts slack and/or artificial variables as needed via control card instructions which are described in Section C. Artificial variables are handled by the Charnes M-Method. SIMPLEX2 is written in Fortran IV, Level H for batch implementation on The University of Michigan MTS/360 computer system. The program is designed to handle small linear programming problems where the total size of the initial tableau does not exceed 10, 000 elements. B. GENERAL FORM OF THE INPUT STREAM The sign-on, command, control, and data cards for a problem run in SIMPLEX will take the general form outlined below: $SIGNON xxxxx yyyyy $RUN BSAD:SIMPLEX2 3=-A Control Card t One set for each problem. Data Cards 2.. $ENDFILE $SIGNOFF where xxxx is the users' computing center ID number and yyyyy is the users' password. (Note: To maintain password security, it is a good policy to set the keypunch "PRINT" toggle switch to OFF when punching the password card. ) C. CONTROL CARD FORMAT The control card must be punched according to the following format, where all fields should be right-justified: 'Reprinted with permission of the authors from. Optimization Programs at the University of Michigan, " by William K. Hall, Archer McWhorter, and W. Allen Spivey (Ann Arbor: Bureau of Business Research, University of Michigan, 1972), pp. 2-8. -30 -

-31 - Control Card Field (Columns) ~1 1-4 m + 1 = the number of inequalities (and/or equalities) plus the objective function (m - 140). The nonnegativity conditions xi > 0 are handled by the program and they need not be entered either on control or data cards. 2 5-8 n + 1 = the number of unknowns plus the "b" vector. n < 400 (not precise) and m x (n + m) < 10, 000. 3 9-10 If left blank, the algorithm maximizes the objective function. A one (1) in this field will cause minimization of the objective function. 4 11-12 Leave blank. 5 13-14 If left blank, the initial (expanded) tableau and the final tableau will be printed out. A one (1) in this field will cause all iterations to be printed out. If ties are found among vectors to leave the basis, the row numbers including the one to break the tie are printed out. Ties are broken by a random device designed to give any row an equally likely chance of being chosen. 6 15-16 If all the constraints are in fact equalities, then a one (1) in this field establishes this fact. Otherwise, this field should be left blank, 7 17-18 Input format control; if left blank, a standard format is used. If a one (1) is punched, a new format is on the following card. If a two (2) is punched, the format from the preceding problem is used. See section F on data format options for additional details. 8 19-20 Input option. A one (1) in this field causes data to be read one equation per card with the objective function last. A two (2) in this field causes data to be read one value per card. A three (3) in this field causes data to be read continuously. A four (4) in this field allows updating of the previous problem, See section E on data input options for additional details, 9-36 21-80 (30 2-column fields) All constraints are to be read in on data cards from less than or equal inequalities unless some or all (i. e,,, a 1 in column 16) are

-32-....... specified to be equalities. Hence an inequality with a > sign should be multiplied through by -1. If each constraint is =""~ then nothing is punched in columns 21-80. If each constraint is T"=" nothing is punched in columns 21-80 since columns 15 and 16 accommodate this situation. If just a few (up to 30) rows are equalities, each such row should be specified by starting in field 9 (columns 21 and 22) and using the consecutive 2-column fields for placing the row numbers that are equalities (right justify all integers). The program is designed to utilize information from columns 21-80 and introduces appropriate artificial variables without further action on the part of the user. The format is (2I4, 3612) for the control card. D. DATA CARD STRUCTURE AND SAMPLE PROBLEM Following the control card the initial tableau is put in as follows: Ax 4 b The a.. are floating point numbers and each must have a decimal cx. point. All constraints must be either less than or equal to (or equal to as indicated above). Therefore, any bi can be negative in the entering data, An exception is that the b. in an e JuaiJty must be nonnegative. Example The following example will be used to illustrate many of the options which the program allows, (1) maximize f = x1 + 3x2 + 5x3 + 4x4 + 9x5 (2) subject to 3x1 + 2x2 + 4x3 + x4 + 5x5 = 15 x1 + 2x2 + X3 + 5x4+5x5 = 13 2x3 + 6x4 + 3x5 > 6 x. 0 (j = 1,..., 5). j - Punching the Control Card (a) m + 1 = 4, so that the number 4 is punched in column 4. (b) n + 1 = 6, so that the number 6 is punched in column 8. (c) We are maximizing so columns 9-10 are left blank.

-33 - (d) Assume that each iteration is to be printed out; this means a 1 is punched in column 14. (e) All the constraints are not equalities, so columns 15-16 are left blank. (f) The possibilities for input and format control are discussed in Sections E & F below. (g) We have two equality constraints, so beginning with columns 21-22 we punch a 1 in column 22, then punch a 2 in column 24, The third inequality would be multiplied through by -1 for entering on data cards; since the inequality is then "<1", no control card punch is then needed, Note: Suppose in a large problem the 1st, 2nd, 3rd, 4th, 17th, 25th constraints were equalities. Then we would have: Col. 21 22 23 24 25 261 27 28 29 30 31 32 33.. 801 ly 2 t 31 4 ( 1 71 2 5 1 —blank —1l The program handles the introduction of artificial variables and their subsequent elimination, so the user need do nothing more with respect to equality constraints (except as noted above). E. DATA INPUT OPTIONS There are four input options available. Option number one reads one row (equation) at a time. Each row (equation) begins on a new card. Assuming the standard format for option one, the example above would be punched as follows: Field 1 2 3 4 5 6 7 8 Columns 1-10 11-20 21-30 31-40 41-50 51-60 61-70 71-80 Card 1 3. 2. 4. 1. 5. 15. Card 2 1. 2. 1, 5. 5. 13. Card 3 0. -2. -6. -3. -6. Card 4 1. 3. 5. 4. 9. 0. Several things are worth noting. Once a row (equation) is finished, the subsequent row begins on a new card. A number can be placed anywhere in the ten column field, but a decimal point must be punched. The third equation was given as "greater than or equal". It was multiplied by minus one so that it is "less than or equal". Fields 1 and 2 in card three represent zero coefficients. Zeroes are not to be punched, since a blank field is read as zero. The zero in field 6 of card four is the constant term in the objective function. Like other zeroes, it need not be punched, but room must be left for it. Note also that the objective function comes last. Option number two reads one tableau value per card. Since it initial

-34 - izes the tableau to zero, only non-zero values need to be read in. Assuming the standard format for option two, the example above would be punched as follows: Field 1 2 3 Columns 1-5 6-10 11-20 Card I 1 1 3. Card 2 1 2 2 Card 3 2 1 1. Card 4 3 4 6. Card 5 3 0 -6. Card 6 3 3 -2. Card 7 3 5 -3. Card 8 0 1 1. Card 9 0 2 3 Card 10 0 3 5. Card 11 0 4 4. Card 12 0 5 9. Card 13 1 3 4 Card 14 1 4 1. Card 15 1 5 5. Card 16 1 0 15. Card 17 2 2 2. Card 18 2 3 1. Card 19 2 4 5. Card 20 2 5 5. Card 21 2 0 13. Card 22 - -1 The important features to be noted are: the row (equation) number in columns 1-5 and the column (or variable) number in columns 6-10 must be right-justified. Values in columns 11-20 need not be right-justified but must have a punched decimal point. The order of input data cards in this option is unimportant. A row number of zero indicates that the variable is in the objective function. A column number of zero indicates that the associated value is in the 'b" vector. If a constant in the objective function is to be entered, Field 1 should contain a zero, and Field 2 should contain the number 'n+l1l (the same value that was entered in Field 2 of the control card), A card with both row and column numbers negative must be punched to terminate the reading of values for the tableau. Option number three resembles option one. The data appears below for our sample problem under option three with its standard format: Field C olumns Card 1 Card 2 Card 3 1 2 3 4 5 6 7 8 1-10 11-20 21-30 31-40 41-50 51-60 61-70 71-80 3. 2. 4. 1. 5. 15. 1. 2. 1. -3. 5. -6. 5, 1. 13. 3. 5. -2. 4. 9. -6.

-35 - The format is the same as option one, The decimal points are required as in option one. Zeroes need not be punched as in option one. The only difference is that you do not begin a new card for each row, This causes a loss of some ease in reading, but obtains some economies in number of cards used. Option number four allows one to modify the input from that of the immediately preceding problem. Suppose that in addition to our sample problem we wanted to run a problem identical to it except that the objective function is: f = 3x1 + 3x2 -x3 + 4x4 + 9X5 and the new equation three is: x1 + 6x4 + 3x5 7. Under the standard input format for option four, a control card would be punched indicating that option 4 is to be used and the data would be punched on data cards as follows: Field 1 2 3 Columns 1-5 6-10 11-20 Card I 0 1 3. Card 2 0 3 -1. Card 3 3 1 -1. Card 4 3 3 0 Card 5 3 0 -7. Card 6 - 1 -1 Note that the format to be used under option four is the same as in option two, including the requirement for a trailer card containing -1 in Fields 1 and 2. The original problem, however, could have been inputed option one, two, or three. If option four is used, only the values being changed need to be inputed. A constant in the objective function should be entered the same way as in option two. F. DATA FORMAT OPTIONS As indicated in the section on data input options, each option has its own standard format. For options one and three, the standard format is (8F10. 4). For options two and four, the standard format is (215,F10, 4). These standard formats are obtained by leaving columns 17-18 blank. If you desire to use a format of your own choosing, column eighteen should be punched with a one (1) and the format you desire should be punched on the succeeding card (beginning with its left parenthesis in column one). As an example, consider our familiar sample problem with the revised format (12F6. 0):

-36 - Field Columns 1 2 3 4 5 6 7 8 9 10 1-4 5-8 9-10 11-12 13-14 15-16 17-18 19-20 21-22 23-24 25-80 4 6 1 1 3 1 2 blank Control Card Format Card (12F6. 0) in columns one through eight Field 1 2 3 4 5 6 7 8 9 10 Columns 1-6 7-12 13-18 19-24 25-30 3^1-36 37-42' 43-48 49-54 55-60 Card 1 Card 2 3, 2. 4. -2. 1. -6. 5, - 3. 15. -6. 1. 2. 1, 5. 1. 3, 5, 4, Field C olumns Card 1 Card 2 11 12 61-66 67-72 5, 9. 13, This change of format would allow the data to be compressed onto two cards. There are occasions on which you might wish to repeatedly use a non-standard format. This can be done by reentering the non-standard format with each problem (as described above). An easier way has been built into the program. After explicitly supplying the non-standard format on the first of this series of problems, by punching a two (2) in column 18 of succeeding control cards the original non-standard format will be retained.

Exhibit 2 MODEL DESCRIPTION 145 Objectivee Function Max Z = Z Ci X. i=l Constraint Period Constraints 20 1 >1 X + X123 +X24 - X21+ X2 = R - E 40 i l 12 LX +X + X1 - X2 +X4 - d - d X =R2 - E2 i=23 57 3: Xi+X127+X128-X4l+x58-d2X2 -dl 122-d2323-d32X32Z 3- 3 i =42 72 4;lX~ Xi + X129 + X130 - X58 + X73 - djX R4 -E4 i=59 j=w where w = 3, 13, 24, 33, 42, 50 85 5 r xi- d.X.-x 5 ~ xi - X - X73 + X86 + X + X =5 i=74 j=w where w = 4, 14, 25, 34, 43, 51, 59, 66 96 6 ~ X d- +X + d x X +X R 6Xi - djXj +X133 +134 X86+ X97 R6 6 i 8 7 j=w where w = 5, 15, 26, 35, 44, 52, 60, 67, 74, 80 105 7 rT x. - " dX.+X +X - + - E i=9 8 - j j 135 136 X97 106 7 7 i=98 j=w where w = 6, 16, 27, 36, 45, 53, 61, 68, 75, 81, 87, 92 112 8 ~ X - ~ d.X. +X +X -X +X R E 8 X - Z djX j + X137 +138 X106 +113 R8 E8 i=107 j=w where w = 7, 17, 28, 37, 46, 54, 62, 69, 76,82, 88, 93, 98 102 117 9 2 X.- 4 d.X.X + X -X +X -E 9 j I djXj+J 139 140 113 118 9 9 i=114 j=w where w=8,:18, 29, 38,47, 55, 63, 70,77, 83, 89, 94, 99,103,107, 110 10 X + X10 - L d. X + X4 + - + X1 = R10 j-w j j 141 142 118 121 o10 10 j=w where w = 9, 19, 30, 39, 48, 56, 64, 71, 78, 84, 90, 95, 100, 104, 108, 111, 114, 116 11 X143 + X144 - Z djX. - X1 + X12 R - E J=w where w = 10, 20, 31, 40, 49, 57, 65, 72, 79, 85, 91, 96, 101, 105, 109, 112, 115, 117, 119, 120 -37 -

-38 - Constraint 12 Constraint 13 14 15 16 17 18 19 20 21 22 23 24 25 Constraint 26 27 28 29 30 31 32 144 - j=123 Period Constraints d j - X122 + X145 R12 -E12 Cash Balance Constraints X21 - $50000 X > 20000 X > ZO20000 X > 20000 73 = X > 20000 86 = X17 > 20000 7 = X1 > 20000 106 -X > 20000 113 = X > 20000 118 - X > 20000 12 - X > 20000 122= X,> 50000 145= Liquidity Constraints (Treasury Bills) X > $30000 X > 30000 23 X > 30000 42 = X > 30000 X > 30000 74 - X > 30000 87 X > 30000 98

Constraint 33 34 35 36 -39 -Liquidity Constraints (Treasury Bills) Xl1 > 30000 X114 30000 X 7 30000 143 - 30000 All X.'s > 0 I