  In this paper, we initiate the computational problem of jointly designing
information and contracts. We consider three possible classes of contracts with
decreasing flexibility and increasing simplicity: ambiguous contracts, menus of
explicit contracts and explicit single contract. Ambiguous contracts allow the
principal to conceal the applied payment schemes through a contract that
depends on the unknown state of nature, while explicit contracts reveal the
contract prior to the agent's decision. Our results show a trade-off between
the simplicity of the contracts and the computational complexity of the joint
design. Indeed, we show that an approximately-optimal mechanism with ambiguous
contracts can be computed in polynomial time. However, they are convoluted
mechanisms and not well-suited for some real-world scenarios. Conversely,
explicit menus of contracts and single contracts are simpler mechanisms, but
they cannot be computed efficiently. In particular, we show that computing the
optimal mechanism with explicit menus of contracts and single contracts is
APX-Hard. We also characterize the structure of optimal mechanisms.
Interestingly, direct mechanisms are optimal for both the most flexible
ambiguous contracts and the least flexible explicit single contract, but they
are suboptimal for that with menus of contracts. Finally, motivated by our
hardness results, we turn our attention to menus of linear contracts and single
linear contracts. We show that both the problem of computing the optimal
mechanism with an explicit menu of linear contracts and an explicit single
linear contract admits an FPTAS.
