Union contracts drive district costs