Resource leveling is the practice of shifting activities within their available float to flatten resource-demand curves. Without leveling, a CPM schedule may call for 12 carpenters in week 6, then 2 carpenters in week 7, then 12 again in week 8. That demand pattern is impossible to staff without burning hire/release cost or imposing overtime to bridge the gaps. Resource leveling pushes activities forward or back within their float windows to produce a smoother demand curve that matches the contractor's actual crew capacity.
Leveling sometimes lengthens the total project duration when activity float runs out and the only way to smooth resources is to extend the critical path. Most schedulers run two versions: the time-optimized schedule (shortest possible duration) and the resource-leveled schedule (smoothest crew demand, slightly longer duration). The contractor uses the leveled schedule for daily execution; the time-optimized version is the contractual baseline. Software like Primavera P6 and Microsoft Project both support automated resource leveling.