In most firms a worker in any period is either promoted, left in the same job, or fired (demotions are typically rare), and there is no specific date by which a promotion needs to occur. In other employment situations, however, up-or-out contracts are common, i.e., if a worker is not promoted by a certain date the worker must leave the firm. This paper develops a theory that explains why and when each of these practices is employed. Our theory is based on asymmetric learning in labor markets and incentives associated with the prospect of future promotion. Our main result is that firms employ up-or-out contracts when firm-specific human capital is low while they employ standard promotion practices when it is high. We also find that, if firms can commit to a wage floor for promoted workers and effort provision is important, then up-or-out contracts are employed when low-level and high-level jobs are similar. We believe these results are of interest because they are consistent with many of the settings in which up-or-out is typically observed such as law firms and academic institutions.