Capacity planning template

Overview

Take on new projects and complete current projects efficiently

Whether it is a project or day-to-day operations, it can be quite a challenge to guess the bandwidth of the team. Capacity planning can be difficult for organizations of any size. It requires a delicate balance between real-time employee availability, available dollars in the budget, and the demand for work from customers, partners, or other stakeholders.

We’ve created this handy template to help you better understand how to manage employee capacity, allocate employee resources, and most importantly, maximize efficiency.


How to use the Capacity planning template:

Step 1 - Assess team availability upfront

How much available employee capacity does your organization have? How do sick time and vacations affect employee capacity?

The template offers a section to track active projects and any planned time off to understand existing capacity prior to starting a new project. This capacity planning template will make it easy for you to measure team capacity and better understand project staffing needs.

Step 2 - Fill out the team capacity table

In the table, list each team member's role, their name, task, the percentage of time they dedicate to projects, and the total weekly hours they spend on projects.

To build an overall sense of your team’s capacity, group similar roles together in Table Data macro from week to week.

Ingredients

Apps

Scaffolding Forms & Templates

Hosting platform

Server, Data Center

Code

You can copy and paste this code into the Confluence Source Editor:

<ac:layout> <ac:layout-section ac:type="single"> <ac:layout-cell> <h2>Track time off and existing projects</h2> <ac:structured-macro ac:macro-id="e8a7695d-ee4a-483d-aa9f-7b836afd9e70" ac:name="hidden-data" ac:schema-version="1"> <ac:parameter ac:name="whenNotEmpty">pto</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <em> <span style="color: rgb(122,134,154);"> <span>Record any time off or projects in this </span> <a href="https://docs.servicerocket.com/scaffolding/macro-reference/table-data">Table Data</a> macro. This helps to note down the person in the team that don't have full capacity.</span> </em> </p> </ac:rich-text-body> </ac:structured-macro> <ac:structured-macro ac:macro-id="04ad2a85-9af3-463c-a944-4e4f485a3d30" ac:name="table-data" ac:schema-version="1"> <ac:parameter ac:name="name">pto</ac:parameter> <ac:rich-text-body> <table class="wrapped"> <colgroup> <col style="width: 253.0px;"/> <col style="width: 285.0px;"/> <col style="width: 285.0px;"/> <col/> <col style="width: 253.0px;"/> <col style="width: 62.0px;"/> <col style="width: 95.0px;"/> </colgroup> <tbody> <tr> <th>Role</th> <th>Name</th> <th>Type</th> <th colspan="1">Description</th> <th>Start date</th> <th>End date</th> <th colspan="1">Capacity value taken</th> </tr> <tr> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="af9d6a6b-71c9-405c-8a17-b4e5e2d50c52" ac:name="text-data" ac:schema-version="1"> <ac:parameter ac:name="name">ptoRole</ac:parameter> <ac:parameter ac:name="type">line</ac:parameter> <ac:parameter ac:name="content">text</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </div> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="a3b7d060-e144-4324-b946-3ae5dc772f03" ac:name="list-data" ac:schema-version="1"> <ac:parameter ac:name="name">ptoName</ac:parameter> <ac:parameter ac:name="type">auto complete</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <ac:structured-macro ac:macro-id="0bca38ff-c8ab-4662-87bd-1b093e2ceeda" ac:name="user-options" ac:schema-version="1"> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </ac:rich-text-body> </ac:structured-macro> </div> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="00f15951-a7f2-47d0-a23d-3b4777303d52" ac:name="list-data" ac:schema-version="1"> <ac:parameter ac:name="name">ptoType</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <ac:structured-macro ac:macro-id="43e17d0b-e160-4214-95ff-72031099e55c" ac:name="list-option" ac:schema-version="1"> <ac:parameter ac:name="value">PTO</ac:parameter> <ac:rich-text-body> <p> <ac:structured-macro ac:macro-id="4c41a083-59d6-4850-97b2-b6e099eb6aec" ac:name="status" ac:schema-version="1"> <ac:parameter ac:name="colour">Green</ac:parameter> <ac:parameter ac:name="title">PTO</ac:parameter> </ac:structured-macro> </p> </ac:rich-text-body> </ac:structured-macro> <ac:structured-macro ac:macro-id="e881b134-aa85-4d5e-a0f5-7f0fbdbaae34" ac:name="list-option" ac:schema-version="1"> <ac:parameter ac:name="value">Project</ac:parameter> <ac:rich-text-body> <p> <ac:structured-macro ac:macro-id="d71deab5-0cc7-41b9-8675-bfe30eeab60b" ac:name="status" ac:schema-version="1"> <ac:parameter ac:name="colour">Yellow</ac:parameter> <ac:parameter ac:name="title">Project</ac:parameter> </ac:structured-macro> </p> </ac:rich-text-body> </ac:structured-macro> </ac:rich-text-body> </ac:structured-macro> </div> </td> <td colspan="1"> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="569a8355-4b38-46f7-bda0-13e572578fca" ac:name="text-data" ac:schema-version="1"> <ac:parameter ac:name="name">projectName</ac:parameter> <ac:parameter ac:name="type">line</ac:parameter> <ac:parameter ac:name="content">text</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </div> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="dc0d1e93-607d-43e8-847f-abf2e94ee916" ac:name="date-data" ac:schema-version="1"> <ac:parameter ac:name="format">EEE, dd MMM yyyy</ac:parameter> <ac:parameter ac:name="name">ptoStart</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> </div> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="3f96947b-9b67-40b7-8791-01078b0f826d" ac:name="date-data" ac:schema-version="1"> <ac:parameter ac:name="format">EEE, dd MMM yyyy</ac:parameter> <ac:parameter ac:name="name">ptoEnd</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> </div> </td> <td colspan="1"> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="8c84d2f2-03b9-48ff-9278-46abed293154" ac:name="number-data" ac:schema-version="1"> <ac:parameter ac:name="format">#</ac:parameter> <ac:parameter ac:name="name">capLeft</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> </div> </td> </tr> </tbody> </table> </ac:rich-text-body> </ac:structured-macro> </ac:layout-cell> </ac:layout-section> <ac:layout-section ac:type="single"> <ac:layout-cell> <p> <br/> </p> </ac:layout-cell> </ac:layout-section> <ac:layout-section ac:type="single"> <ac:layout-cell> <h2>Team Capacity</h2> <ac:structured-macro ac:macro-id="c9dcb6dd-6075-4a89-a4f7-d0649583e56e" ac:name="hidden-data" ac:schema-version="1"> <ac:parameter ac:name="whenNotEmpty">firstCapacity</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">BLOCK</ac:parameter> <ac:rich-text-body> <p> <em> <span style="color: rgb(122,134,154);">Below is a series of<span> </span> <a href="https://docs.servicerocket.com/scaffolding/macro-reference/table-data">Table Data</a> macro separated by week to list the weekly capacity of each team members.</span> </em> </p> </ac:rich-text-body> </ac:structured-macro> <p> <span style="font-size: 16.0px;font-weight: bold;letter-spacing: -0.006em;">Week 1</span> </p> <ac:structured-macro ac:macro-id="c6256b98-86bb-4227-8b44-13693c95f1ab" ac:name="table-data" ac:schema-version="1"> <ac:parameter ac:name="name">firstCapacity</ac:parameter> <ac:parameter ac:name="initialRows">1</ac:parameter> <ac:rich-text-body> <table class="wrapped"> <colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup> <tbody> <tr> <th>Role</th> <th colspan="1">Tasks</th> <th>Name</th> <th>% of capacity dedicated to the task</th> <th>Expected hours on task</th> </tr> <tr> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="abe5386c-3782-4f0a-bb6c-94d91632e4dd" ac:name="text-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityRole</ac:parameter> <ac:parameter ac:name="type">line</ac:parameter> <ac:parameter ac:name="content">text</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td colspan="1"> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="f36a714c-00ab-49e7-be3b-f65e31bdeff0" ac:name="text-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityTask</ac:parameter> <ac:parameter ac:name="type">line</ac:parameter> <ac:parameter ac:name="content">text</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </div> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="e0b37afe-6269-4336-bdd9-748e4ed25d00" ac:name="list-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityName</ac:parameter> <ac:parameter ac:name="type">auto complete</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <ac:structured-macro ac:macro-id="0b6f14f4-98d5-4916-9d0f-676d55445b5f" ac:name="user-options" ac:schema-version="1"> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </ac:rich-text-body> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="e249f254-9f38-41b1-acfc-dc8581d1bf5e" ac:name="number-data" ac:schema-version="1"> <ac:parameter ac:name="name">percentage</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="c0eeb79b-3824-4195-8cec-b5a257f69f31" ac:name="number-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityHours</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> </tr> </tbody> </table> </ac:rich-text-body> </ac:structured-macro> <h3>Week 2</h3> <ac:structured-macro ac:macro-id="05bec86e-1738-4f0a-af7c-9c3cd1978b15" ac:name="table-data" ac:schema-version="1"> <ac:parameter ac:name="name">secondCapacity</ac:parameter> <ac:parameter ac:name="initialRows">1</ac:parameter> <ac:rich-text-body> <table class="wrapped"> <colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup> <tbody> <tr> <th>Role</th> <th colspan="1">Task</th> <th>Name</th> <th>% of capacity dedicated to the task</th> <th>Expected hours on task</th> </tr> <tr> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="7142c912-4d29-4ca9-8e07-6183266dce66" ac:name="text-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityRole</ac:parameter> <ac:parameter ac:name="type">line</ac:parameter> <ac:parameter ac:name="content">text</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td colspan="1"> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="b56f8df6-7e5c-4deb-a98d-b573aca0362b" ac:name="text-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityTask</ac:parameter> <ac:parameter ac:name="type">line</ac:parameter> <ac:parameter ac:name="content">text</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </div> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="ca88df31-8fa8-4b36-ab9d-52df43fc01cd" ac:name="list-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityName</ac:parameter> <ac:parameter ac:name="type">auto complete</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <ac:structured-macro ac:macro-id="0da71840-7754-4258-818b-efb923fa3cd4" ac:name="user-options" ac:schema-version="1"> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </ac:rich-text-body> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="cb8275b3-7297-4d7e-b1eb-ea8cfc7b3521" ac:name="number-data" ac:schema-version="1"> <ac:parameter ac:name="name">percentage</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="7021a819-794e-4acf-affd-b971de9ecdd8" ac:name="number-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityHours</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> </tr> </tbody> </table> </ac:rich-text-body> </ac:structured-macro> <h3>Week 3</h3> <ac:structured-macro ac:macro-id="e0dfd7e9-54a4-45f2-b3d9-520e14b56c35" ac:name="table-data" ac:schema-version="1"> <ac:parameter ac:name="name">thirdCapacity</ac:parameter> <ac:parameter ac:name="initialRows">1</ac:parameter> <ac:rich-text-body> <table class="wrapped"> <colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup> <tbody> <tr> <th>Role</th> <th colspan="1">Task</th> <th>Name</th> <th>% of capacity dedicated to the task</th> <th>Expected hours on task</th> </tr> <tr> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="43297d19-57a2-46d0-9f32-7d83af3c166b" ac:name="text-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityRole</ac:parameter> <ac:parameter ac:name="type">line</ac:parameter> <ac:parameter ac:name="content">text</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td colspan="1"> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="cbb2670f-9772-4ea9-9652-8482f76622fc" ac:name="text-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityTask</ac:parameter> <ac:parameter ac:name="type">line</ac:parameter> <ac:parameter ac:name="content">text</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </div> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="bdcd4394-7aec-46b0-8c3c-98df6a18b6c3" ac:name="list-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityName</ac:parameter> <ac:parameter ac:name="type">auto complete</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <ac:structured-macro ac:macro-id="4c91a5c6-e8d9-4cdd-8ad6-f02a3aa9b52b" ac:name="user-options" ac:schema-version="1"> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </ac:rich-text-body> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="658a0936-5606-4068-8e42-d106f9d1bf22" ac:name="number-data" ac:schema-version="1"> <ac:parameter ac:name="name">percentage</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="6cddfd40-d9c9-44ab-a32f-94786177fdd0" ac:name="number-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityHours</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> </tr> </tbody> </table> </ac:rich-text-body> </ac:structured-macro> <h3>Week 4</h3> <ac:structured-macro ac:macro-id="32e9c357-4fbd-487b-a2e7-ca7b05f2b7d1" ac:name="table-data" ac:schema-version="1"> <ac:parameter ac:name="name">fourthCapacity</ac:parameter> <ac:parameter ac:name="initialRows">1</ac:parameter> <ac:rich-text-body> <table class="wrapped"> <colgroup> <col/> <col/> <col/> <col/> <col/> </colgroup> <tbody> <tr> <th>Role</th> <th colspan="1">Task</th> <th>Name</th> <th>% of capacity dedicated to the task</th> <th>Expected hours on task</th> </tr> <tr> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="6750295e-61c4-44f7-84f7-75c10ffad82e" ac:name="text-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityRole</ac:parameter> <ac:parameter ac:name="type">line</ac:parameter> <ac:parameter ac:name="content">text</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td colspan="1"> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="eb99df14-35f2-4f0b-bd40-44769df0e376" ac:name="text-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityTask</ac:parameter> <ac:parameter ac:name="type">line</ac:parameter> <ac:parameter ac:name="content">text</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </div> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="8482f0a6-f269-4f43-a6c7-69178c52e120" ac:name="list-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityName</ac:parameter> <ac:parameter ac:name="type">auto complete</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> <ac:rich-text-body> <ac:structured-macro ac:macro-id="37a19cc4-9fd0-4f41-b78a-aa3483d4b36d" ac:name="user-options" ac:schema-version="1"> <ac:rich-text-body> <p> <br/> </p> </ac:rich-text-body> </ac:structured-macro> </ac:rich-text-body> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="1c182b36-1d8b-4ddc-b01e-1151c5f4bf7f" ac:name="number-data" ac:schema-version="1"> <ac:parameter ac:name="name">percentage</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> <td> <div class="content-wrapper"> <ac:structured-macro ac:macro-id="dd0f40ef-5742-492d-ba8c-fb000b32ba2a" ac:name="number-data" ac:schema-version="1"> <ac:parameter ac:name="name">capacityHours</ac:parameter> <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter> </ac:structured-macro> <p> <br/> </p> </div> <p> <br/> </p> </td> </tr> </tbody> </table> </ac:rich-text-body> </ac:structured-macro> </ac:layout-cell> </ac:layout-section> </ac:layout>