This paper uses a bi-level optimization model to formulate a specific type of capacity reservation contracts, namely take-or-pay contracts, where a buyer reserves a portion of a supplier’s capacity before demand is realized with discounted price. At first, we formulate the lower-level problem and solve a non-linear optimization model where a buyer decides on the amount of capacity to be reserved given the discounted and normal unit capacity price, demand probability distribution and maximum available capacity. Afterwards, we construct the upper-level model where there are a supplier and multiple buyers and the supplier must choose the discounted price and maximum available capacity for each of the buyers. Enforced by the behaviour of the mo...