Create work breakdown structure (WBS) codes

Work breakdown structure (WBS) codes are alphanumeric codes that identify each task's unique place in the outline structure of your project. WBS codes can be used for reporting schedules and tracking costs.

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

Define custom WBS codes

Renumber WBS codes

Learn about WBS codes

There are two types of WBS codes in Microsoft Office Project: outline numbers 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 or outdent 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 or sheet 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 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 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

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.

  2. On the Project menu, point to WBS, and then click Define Code.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. To permit the use of the same WBS code for multiple tasks, clear the Verify uniqueness of new WBS codes check box.


  • The character that you use as a separator cannot also be used as part of the code. For example, if you use a hyphen as the separator, you cannot use a hyphen in the code that you use to represent a task.

  • You cannot define more than one set of WBS codes per project. If you need to show an additional organizational structure for tasks, you can use custom fields to create or apply a separate set of codes.

  • To view WBS codes, you must add the WBS field to your view.

  • To change the WBS code for a summary task and all of its subtasks, you must change the existing code, or set of asterisks, in the WBS code of the summary task to another set of characters.

    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

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.

  2. 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.

  3. On the Project menu, point to WBS, and then click Renumber.

  4. 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 your project contains subprojects, you can renumber some or all tasks in each subproject by displaying all of the subtasks. Click Show Show, and then click All Subtasks. (Project cannot renumber tasks from subprojects that are not displayed.)

  • Renumbering subprojects that are inserted into a master project also changes the code that represents each subproject at the project level.

  • To display WBS codes, you can add a WBS column to a sheet view.

  • To change WBS codes after Project calculates them, on the Project menu, point to WBS, and then click Define Code. In the Sequences column, change the type of character of any level of the code mask. When you update a code at the summary task level, all subtasks for that summary task are automatically updated.

    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

Applies To: Project Standard 2007, Project 2007

Was this information helpful?

Yes No

How can we improve it?

255 characters remaining

To protect your privacy, please do not include contact information in your feedback. Review our privacy policy.

Thank you for your feedback!

Change language