This paper establishes a link between the extent of collective bargaining and the degree of productivity dispersion within an industry. In a unionised oligopoly model we show that for only small differences in productivity levels. a sector-union can design a collective wage contract that covers a wide range of heterogeneous firms. In sectors with higher productivity dispersion, an industry union has an incentive to demand firm-level wage contracts with the most productive firms, so that they can prevent low-productivity firms from leaving collective coverage. However, such firm-level contracts may not prevent firms at the lower end of the productivity distribution from avoiding collective coverage in sectors with high productivity dispersion. We test the predictions of the model using German linked employer-employee data between 1996 and 2010 and find support for our theoretical results.