 ``` MODEL: ! munbndt; ! Bond bidding and underwriting. The borrower has specified how much it wants to pay back in face value in each of a number of future maturity years. The bond underwriter wants to choose an interest rate(or coupon payment) for each maturity given that a) borrower has restricted the number of distinct interest rates allowed, b) underwriter knows the market price at which he can resell a bond of a given maturity and interest rate, and so as to strike a good compromise between the two objectives: i) underwriter makes a reasonable profit on the resale, ii) the bid is attractive to the borrower in terms of low interest rates and amount of money he receives initially. This model puts a constraint on (i) and makes it attractive to the borrower by minimizing the IRR (the so-called True Interest Cost) of the cash stream as seen by the borrower. The underwriter pays the borrower the face value of the bonds, plus perhaps a premium; ! Keywords: municipal bonds, bond bidding, true interest cost, underwriting; SETS: MATURITY: YRS2GO, ! Years to maturity for this maturity; FACEV; ! Total face value bonds at this maturity; RATE: CRATE, ! A possible coupon or interest rate; Y; ! = 1 if rate i used for any maturity; RXM( RATE, MATURITY): X, ! = 1 if rate i assigned to maturity t; PRICE; ! Selling price of bonds at interest i, maturity t; ENDSETS DATA: ! Based on an example in Eppen, Gould, and Schmidt, which was based on an example in Schrage(1986); MATURITY= M01, M02, M03, M04, M05, M06; YRS2GO= 2, 3, 4, 5, 6, 7; FACEV = 250, 425, 1025, 1050, 1100, 1150; RATE = R300, R325, R350, R375, R400, R425, R450, R475, R500; CRATE = .0300, .0325, .0350, .0375, .0400, .0425, .0450, .0475, .050; ! Max number of rates allowed; NRATES = 3; ! Target profit for underwriter; TARGPR = 40; ! What underwriter thinks it can sell each maturity at as a function of coupon rate; PRICE = 245, 418, 1015, 1040, 1080, 1130, 248, 422, 1016, 1042, 1084, 1135, 250, 423, 1017, 1044, 1085, 1140, 251, 424, 1025, 1046, 1090, 1150, 253, 430, 1029, 1050, 1095, 1155, 255, 435, 1035, 1055, 1096, 1160, 256, 437, 1037, 1060, 1105, 1165, 257, 440, 1038, 1062, 1110, 1170, 258, 441, 1040, 1065, 1115, 1175; ENDDATA !-------------------------------------------------------------; ! The model; ! Each maturity must get a rate; @FOR( MATURITY( T): @SUM( RATE( I): X( I, T)) = 1; ); ! Set Y( I) = 1 if we use rate I; @FOR( RXM( I, T): X( I, T) <= Y( I); ! The X's must be 0 or 1; @BIN( X( I, T)); ); ! Limit number of rates; @SUM( RATE: Y) <= NRATES; ! Compute total sales if sold on market; TOTSALE = @SUM( RXM( I, T): PRICE( I, T)* X( I, T)); ! Compute total face value; TOTFV = @SUM( MATURITY: FACEV); ! Sources = uses of funds in period 0; TOTSALE = TOTFV + PREMIUM + TARGPR ; ! Compute true interest cost; TOTFV + PREMIUM >= @SUM( RXM( I, T): X( I, T) * CRATE( I) * FACEV( T) * @FPA( TIC, YRS2GO( T))) + @SUM( MATURITY( T): FACEV( T) * @FPL( TIC, YRS2GO( T))); ! Minimize True Interest Cost to borrower; MIN = TIC; END ```