Create work breakdown structure (WBS) codes

Work breakdown structure (WBS) (WBS: A hierarchical structure that is used to organize tasks for reporting schedules and tracking costs. With Project, you can represent the work breakdown structure by using task IDs or by assigning your own WBS code to each task.) codes are alphanumeric codes that identify each task's unique place in the outline (outline: A hierarchical structure for a project that shows how some tasks fit within broader groupings. In Project, subtasks are indented under summary tasks.) structure of your project. WBS codes can be used for reporting schedules (schedule: The timing and sequence of tasks within a project. A schedule consists mainly of tasks, task dependencies, durations, constraints, and time-oriented project information.) and tracking costs (cost: The total scheduled cost for a task, resource, or assignment, or for an entire project. This is sometimes referred to as the current cost. In Project, baseline costs are usually referred to as "budget.").

For more information about displaying WBS codes in a view, see Display outline numbers (or WBS codes) in a view.

What do you want to do?

Learn about WBS codes

There are two types of WBS codes in Microsoft Office Project: outline numbers (outline number: Numbers that indicate the exact position of a task in the outline. For example, a task with an outline number of 7.2 indicates that it's the second subtask under the seventh top-level summary task.) and custom WBS codes. Read the following sections to learn more.

Outline numbers

Outline numbers are the simplest type of WBS coding. Microsoft Office Project automatically calculates an outline number for each task, basing the numbering on the outline structure of the task list. For example, the first task in your task list is numbered 1. If that task has three subtasks, the subtasks are numbered 1.1, 1.2, and 1.3.

Outline numbers consist of numbers only (no letters), and you cannot edit them. They do, however, change automatically when you move a task up or down in the task list and when you indent (indenting: Moving a task to a lower outline level [to the right] in the Task Name field. When you indent a task, it becomes a subtask of the nearest preceding task at a higher outline level.) or outdent (outdenting: Moving a task to a higher outline level [to the left] in the Task Name field.) tasks. For example, if a subtask currently has an outline number of 3.5.4, and if you move it up one row in the list, the outline number is automatically updated to 3.5.3. If you then outdent that same subtask, the outline number is automatically updated to 3.6.

 Tip   To display outline numbers, you can add the Outline Number field to a table (table: A set of columns that shows specific information about tasks, resources, and assignments in a sheet view.) or sheet (sheet: A spreadsheet-like representation [in rows and columns] of task or resource information. Each row specifies an individual task or resource. Each column [field] specifies a type of information, such as start dates or standard rates.) view, or you can choose to display the outline numbers next to the task names. To display the outline numbers next to the task names, on the Tools menu, click Options, and then click the View tab. Under Outline options, select the Show outline number check box.

Custom WBS codes

If your project would benefit from having detailed WBS codes that are made up of specific lengths, sequences, or sets of numbers and letters, you can define a single custom WBS code mask (code mask: The format that you define for a work breakdown structure [WBS] code or a custom outline code. The mask specifies the sequence and number of letters or numbers required for each level and the symbol separating the levels.) for the project. (No project can have more than a single custom code mask.) The custom WBS code is recorded in the WBS field.

As with outline numbers, each level of a custom WBS code represents an outline level (outline level: The number of levels that a task is indented from the top level of the outline. You can indent tasks up to 65,000 levels in Project.) in the task list. You can use a unique format for each level of the code, and each level is listed in the code according to the hierarchy of tasks, summary tasks, and subtasks.

For example, if you are planning phased projects that align with organizational directives for the upcoming fiscal year, you can create a custom WBS code mask that represents each task by using the corresponding directive, quarter, and project. Using this code, you might have a task that has a custom WBS code of CustSat.Q3.CSTools.11, indicating that it is task 11 in the Customer Support Tools Upgrade project, which starts during the third quarter and which supports the Customer Satisfaction business directive for the planned fiscal year.

Top of Page Top of Page

Define custom WBS codes

  1. On the View menu, click a sheet view, such as the Task Sheet view.

To use a view that does not appear on the View menu, click More Views, click the view that you want to use in the Views list, and then click Apply.

  1. On the Project menu, point to WBS, and then click Define Code.
  2. To distinguish tasks in this project from tasks in other projects, type a project-specific code prefix in the Project Code Prefix box.

This prefix helps to identify the project at the highest level of the WBS code. The prefix can be useful in identifying the subprojects within a master project, or when you are creating task dependencies across projects.

You can enter any combination of numbers, uppercase and lowercase letters, and symbols for the project code prefix.

  1. To specify the code string for first-level tasks, in the first row in the Sequence column, click the type of character that you want to use for this level:
    • Click Numbers (ordered) to show a numeric WBS code for this level (for example 1, 2, and 3 for the first three summary tasks in the project).
    • Click Uppercase Letters (ordered) to show uppercase alphabetical WBS codes (for example A, B, and C for the first three summary tasks in the project).
    • Click Lowercase Letters (ordered) to show lowercase alphabetical WBS codes (for example a, b, and c for the first three summary tasks in the project).
    • Click Characters (unordered) to show any combination of numbers and uppercase and lowercase letters (for example, Arch1, Const1, and Insp1 for the first three summary tasks in the project).

Choosing this option gives you the most flexibility for entering customized WBS codes. Project displays an asterisk (*) in the WBS field until you type or enter a string of characters for this level of the WBS code.

  1. In the Length column, type or select the number of characters for each level of the code string. You can either enter the exact number of characters or select Any to allow any number of characters for that code level.

For example, you can type 3 to make three characters the mandatory number of characters to enter in one level of the WBS code. The total length of a WBS code can be from 1 to 255 characters.

  1. In the Separator column, type or select a character to separate the code string for one level from the code string for the next level.

By default, the separator character is a period. You can use a different separator character at each code level.

You can also choose not to use any separator character between code levels. In the Separator field, delete the separator character.

  1. Specify one code string for each level of indented tasks in your outline.

To specify individual code strings for each level, click the next row, and complete the Sequence, Length, and Separator columns.

  1. If you don't want Project to automatically assign a WBS code each time that you enter a new task, clear the Generate WBS code for new task check box.
  2. To permit the use of the same WBS code for multiple tasks, clear the Verify uniqueness of new WBS codes check box.


For example, your WBS code for a specific subtask is Ph3.Prj5.Arch.Task3. "Task3" represents the "Develop plans" subtask, and "Arch" represents the "Architect solution" summary task. The name of the summary task is changed to "Design solution," and you need to update the code for the summary task and all of its subtasks. You modify the WBS code so that the summary task is represented by "Des," and the WBS code for the "Develop plans" subtask is automatically updated to Ph3.Prj5.Des.Task3.

Top of Page Top of Page

Renumber WBS codes

After you move or delete tasks, their custom WBS codes may no longer be in correct sequence. Project does not automatically renumber the WBS codes, because you may be using those WBS codes in documents or other systems that are not linked to your Project file. You can renumber the WBS codes of all tasks or selected tasks:

  1. On the View menu, click a sheet view that contains the tasks that you want to renumber, such as the Task Sheet.

To use a view that does not appear on the View menu, click More Views, click the view that you want to use in the Views list, and then click Apply.

  1. Select the tasks that you want to renumber. (The first task in a selection of tasks is not renumbered. It is used as the reference point for renumbering the other tasks.)

To renumber WBS codes for all tasks, don't select any tasks.

  1. On the Project menu, point to WBS, and then click Renumber.
  2. To correct the WBS code sequence for only selected adjacent tasks, click Selected tasks.

To correct the WBS code sequence for all tasks in the project, click Entire project.


If you have difficulty changing your WBS codes, it may be for one of the following reasons:

  • You are trying to change a WBS code that has a code mask, after the code was calculated     If you created a WBS code mask, and WBS codes were already calculated for tasks, you can change the WBS code only by redefining the levels of the code mask. After redefining levels of the code mask, you can change any level of the code mask from ordered numbers, ordered uppercase letters, ordered lowercase letters, or unordered characters to another type.
  • You are trying to change WBS codes at a lower level in the task list     You cannot change the characters in the WBS code for a subtask, only for the summary task where that level of the WBS code is defined.

Top of Page Top of Page

Applies to:
Project 2007