Azevedo-Wolff (2025)
Broad Validity of the First-Order Approach in Moral Hazard
Interactive examples from the paper.
Interactive Examples
This site lets readers interactively explore some examples from the paper. Pick a case and adjust the reservation utility to see the solution to the principal's optimal contracting problem. The top panel shows the wage contract $w(y)$ as a function of the output $y$, and the bottom panel shows the agent's expected utility $E[U(y)]$ as a function of the action $a$.
The main point in the paper is that the first-order approach is often valid as long as the agent's reservation utility is not too low. We also see that the FOA often fails for extremely low reservation utility, so that it is not possible to find generally applicable sufficient conditions for the FOA to be valid without conditions on the reservation utility. The student-t example shows that the FOA can fail when the score is not monotone.
You can explore more examples in our Colab demo .
Case Parameters
Each case corresponds to a utility specification and an output distribution. Values are in USD 1,000s where noted.
| Case | Utility | Distribution | Distribution Params | w0 | target a | a range | y grid | Reservation wage range |
|---|---|---|---|---|---|---|---|---|
| log-gaussian | log | Gaussian | sigma = 50 | 50 | 100 | 0 to 180 | y ∈ [-300, 480], n = 201 | -1 to 15 |
| cara-gaussian | CARA (alpha = 1 / w0) | Gaussian | sigma = 50 | 50 | 100 | 0 to 180 | y ∈ [-300, 480], n = 201 | -1 to 15 |
| log-poisson | log | Poisson | — | 50 | 7 | 0 to 10 | y ∈ [0, 28], step = 1 | -1 to 5 |
| log-exponential | log | Exponential | — | 50 | 100 | 10 to 180 | y ∈ [0.01, 260], n = 201 | -1 to 15 |
| log-t | log | Student t | sigma = 20, nu = 1.15 | 50 | 100 | 0 to 180 | y ∈ [-500, 680], n = 201 | -1 to 100 |