Resources & Cost
Resource Leveling Delays Work Until Units Fit
Leveler delays activities to fit max units; not Calculate schedule; no Leveling Delay column

What a planner means
Level Resources (in EPPM: Actions → Leveler) is a separate job from scheduling. It compares assignment demand against a resource's maximum quantity available and delays an activity whenever units are short. Oracle describes the mechanics as typically a forward pass to find the earliest dates that fit, followed — if that push affects the project finish — by a backward pass that recalculates late dates.
Leveling is not the same operation as Schedule. Calculate schedule can optionally also level resources, but only if "Level resources during scheduling" is turned on. That checkbox, per Oracle, is stored at the user level rather than as a project field, and it is unavailable to a user who lacks leveling privilege. Leveling itself never reassigns people to different roles or resources — it only shifts dates — and a red histogram on its own is not proof that a leveling run ever happened.
Options that change the dates
Several dialog options on Level Resources directly change which dates come out the other side. "Preserve scheduled early and late dates," when on, keeps the current early dates and forward-levels only; when off, it also backward-levels from the project's late finish, which means an activity can be pulled earlier if its late dates carry no unit conflicts, and both early and late dates get updated as a result. "Level resources only within activity total float" caps any delay at the activity's late dates — late finish if the activity has finish float, late start if it has start float. "Preserve minimum activity float" reserves a number of hours of total float that leveling is not allowed to spend; Oracle's own example has an activity with 5 days of float and 16 hours (2 days at 8 hours) preserved, which limits the possible move to 3 days — and the field accepts shorthand like 2w or 3d, which P6 converts to hours automatically.
"Maximum percent to over allocate resources" sets how far above the maximum units the leveler is permitted to go on a given run. "Consider assignments in other projects" applies only to projects whose priority is equal to or higher than a chosen threshold, where 1 is the highest priority; for closed projects specifically, Oracle assumes the resource is available 24 hours a day, seven days a week for the whole activity, and the resource's own calendar is not used at all. "Recalculate assignment costs" applies cost recalculation as part of the leveling run. The leveler can also be scoped to all resources or to a selected subset, and its prioritization is an ordered list of fields — Project Leveling Priority, Activity Leveling Priority, or another chosen field — sorted Ascending, Descending, or by Hierarchy.
Priorities (two different scales)
Project Leveling Priority and Activity Leveling Priority are not the same scale, and confusing them produces a leveling run that ignores the priority a planner actually intended.
| Range | Default | XER | |
|---|---|---|---|
| Project Leveling Priority | 1 (highest) … 100 (lowest) | 10 | PROJECT.priority_num |
| Activity Leveling Priority | Top, High, Normal, Low, Lowest (Oracle API / reporting) | Normal (UI example) | TASK.priority_type |
Do not invent PT_* stored tokens for the activity scale. And PROJECT.strgy_priority_num is Strategic Priority, an entirely different field from anything the leveler reads.
XER
Leveling is a command, not a stored delay. It writes new dates directly onto the activity, and Oracle's project XER map has no Leveling Delay field at all — do not invent leveling_delay_hr_cnt.
| Column | Oracle label (or published name) |
|---|---|
PROJECT.priority_num | Project Leveling Priority |
TASK.priority_type | Activity Leveling Priority |
SCHEDOPTIONS.level_all_rsrc_flag | level_all_rsrc_flag |
SCHEDOPTIONS.level_within_float_flag | level_within_float_flag |
SCHEDOPTIONS.level_keep_sched_date_flag | level_keep_sched_date_flag |
SCHEDOPTIONS.level_outer_assign_flag | level_outer_assign_flag |
SCHEDOPTIONS.level_outer_assign_priority | level_outer_assign_priority |
SCHEDOPTIONS.level_over_alloc_pct | level_over_alloc_pct |
SCHEDOPTIONS.level_float_thrs_cnt | level_float_thrs_cnt |
SCHEDOPTIONS.LevelPriorityList | LevelPriorityList |
The XER map prints those level_* names as their own labels rather than translating them into friendlier UI titles; the actual meaning of each option is documented on the Level Resources pages, not in a second set of Oracle column titles.
Microsoft Project
MSP stores Leveling Delay directly — as elapsed duration from early start on the task, or as working duration on the assignment — and Clear Leveling zeros it back out. Priority in MSP runs 0–1000, with 1000 meaning "do not level" and 500 as the default. MSP leveling can split tasks and adjust individual assignments independently, and "Level only within available slack" is its equivalent of a float cap.
Do not map P6's 1–100 scale, or its Top/High/Normal/Low/Lowest scale, onto MSP's 0–1000 as though they were the same numbering. Do not invent a P6 Leveling Delay field to match MSP's.
Don't
- Treat Calculate schedule as leveling, or a red histogram as "already leveled."
- Invent a Leveling Delay XER column.
- Map
TASK.priority_typeorPROJECT.priority_numonto MSP Priority 0–1000. - Treat closed-project assignments as using the resource calendar (Oracle: 24×7).
- Treat assignment lag as leveling delay. See Assignment Lag.
Sources
- Oracle About Resource Leveling [27 Aug 2026]
- Oracle Configuring Resource Leveling Options and… [27 Aug 2026]
- Oracle Level Resources dialog [27 Aug 2026]
- Oracle Leveling Report Log settings [27 Aug 2026]
- Oracle Level resources during scheduling [27 Aug 2026]
- Oracle LevelingPriority API [27 Aug 2026]
- Oracle PROJECT.priority_num [27 Aug 2026]
- Oracle SCHEDOPTIONS / TASK.priority_type [27 Aug 2026]
- Microsoft Leveling Delay [27 Aug 2026]
- Microsoft Level All / priority 1000 [27 Aug 2026]