> ## Documentation Index
> Fetch the complete documentation index at: https://learn.nextedy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure Multi-Dimensional Capacity

> Set up per-swimlane capacity tracking so each resource row shows its own capacity bar, giving your team an at-a-glance view of how load is distributed across assignees or teams.

***

## When to use multi-dimensional capacity

Standard capacity tracking (`capacityLoad`) shows a single capacity bar per Plan column — it aggregates effort across the whole column regardless of which swimlane a work item sits in. This works well for high-level sprint totals, but it does not tell you whether one assignee is overloaded while another is idle.

**Multi-dimensional capacity** (`multiCapacityLoad`) switches to per-swimlane capacity bars: every swimlane cell within a Plan column gets its own bar. Use it when:

* You want to track remaining capacity per user (assignee swimlanes)
* You have teams with different sprint commitments
* You need to spot overallocation in a single glance during planning

<Warning title="Limitations before you start">
  - Nextedy PLANNINGBOARD capacity load **does not support multiple assignees** on a single work item. Only the primary assignee is counted.
  - Planningboard **does not calculate capacity from sub-item effort**. Only direct estimates on the work item itself are used.
  - These are known gaps versus Nextedy GANTT's capacity model. Plan accordingly.
</Warning>

***

## Prerequisites

* Capacity tracking (`capacityLoad`) must already be working at the basic level. If it is not, set it up first: see [Configure Capacity Tracking](/planningboard/guides/configuration/capacity-configuration).
* The Teams Service must be configured and returning user capacity data. See [Set Up Teams Service](/planningboard/guides/capacity/teams-service-setup).
* Swimlanes must be set to **Users (Assignee)** assignment type so the per-user capacity map has matching rows to render into.

***

## How multi-dimensional capacity works

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/zUlmOSLBIQ0HyaAX/planningboard/diagrams/guides/capacity/multi-capacity/diagram-1.svg?fit=max&auto=format&n=zUlmOSLBIQ0HyaAX&q=85&s=6b047ea626fb7d4684a6666597b92c88" alt="Plan column with per-swimlane capacity bars: Alex Seller's swimlane shows a card at 12h of 24h allocated, Carl User's swimlane shows a card at 18h of 20h allocated" width="640" height="250" data-path="planningboard/diagrams/guides/capacity/multi-capacity/diagram-1.svg" />
</Frame>

The board builds a `multiCapacity` map keyed by resource identifier. When `multiCapacityLoad` is enabled, each swimlane cell looks up its own entry in that map and renders its own progress bar. The formula per user is:

| Value               | Calculation                                                                                                |
| ------------------- | ---------------------------------------------------------------------------------------------------------- |
| `allocatedCapacity` | Sum of `remainingEstimate` (or custom capacity field) for all work items assigned to the user in this Plan |
| `totalCapacity`     | User's sprint capacity from the Teams Service calendar                                                     |
| `availableCapacity` | `totalCapacity − allocatedCapacity` (negative = overallocated)                                             |

Both `allocatedCapacity` and `availableCapacity` are rounded to one decimal place.

<Note title="Users without a Teams Service entry">
  If a user has no entry in the Teams Service calendar for a given Plan period, their `totalCapacity` defaults to `0.0`. Their swimlane shows a capacity bar with no available headroom. Add the user to the Teams Service to resolve this — see [Set Up Teams Service](/planningboard/guides/capacity/teams-service-setup).
</Note>

***

<Steps>
  <Step title="Enable `capacityLoad` with the capacity field">
    Open your Planningboard widget parameters and confirm **Capacity Field** is set. This is the field used to calculate effort:

    * Leave it blank to use Polarion's built-in `remainingEstimate` / `initialEstimate` time fields.
    * Set it to a custom field ID if your team tracks effort on a custom field.

    <Warning title="Whitespace in capacity configuration is significant">
      Capacity configuration parameters are whitespace-sensitive. Do not add leading or trailing spaces around field IDs or property values — they will silently fail to match.
    </Warning>

    ***
  </Step>

  <Step title="Enable `multiCapacityLoad`">
    In the **Widget Parameters** panel, locate **Capacity** settings and turn on **Multi-Capacity Load** (`multiCapacityLoad`). This switches the board from column-level capacity bars to per-swimlane cell capacity bars.

    Keep **Capacity Load** (`capacityLoad`) also enabled — `multiCapacityLoad` requires it to be active.

    <Tip title="Using both modes together">
      You can keep `capacityLoad` enabled alongside `multiCapacityLoad`. The column-level bar continues to show sprint totals, while each swimlane cell additionally shows its own bar.
    </Tip>

    ***
  </Step>

  <Step title="Verify swimlane assignment type">
    Multi-dimensional capacity only produces meaningful bars when each swimlane corresponds to a distinct resource. Check that **Assignment Type** is set to **Users (Assignee)** in the **Swimlanes (Rows)** section of the widget parameters.

    If you use a different assignment type (for example, **Enumeration Field**), the capacity map may not find matching keys for your swimlane rows.

    ***
  </Step>

  <Step title="Confirm the Teams Service is active">
    The `useTeamsService` setting must be enabled. When active, the Teams Service provides:

    * Per-user total sprint capacity (from the team calendar)
    * Team membership (which users appear in the capacity calculation)

    Without the Teams Service, `totalCapacity` for every user will be `0.0` and capacity bars will show only allocated effort with no baseline.

    See [Track User Capacity](/planningboard/guides/capacity/user-capacity) and [Track Team Capacity](/planningboard/guides/capacity/team-capacity) for Teams Service configuration steps.

    ***
  </Step>

  <Step title="Open the board and review capacity bars">
    Reload the Planningboard. In each Plan column, each user swimlane now shows its own capacity bar.

    ```text theme={null}
      Capacity bar states:

      Under capacity    ████████░░░░░░  (allocated < total, bar partially filled)
      At capacity       ██████████████  (allocated ≈ total, bar full)
      Overallocated     ████████████████████  (bar overflows, typically shown in red)
    ```

    **You should now see** a separate capacity progress indicator inside each user swimlane cell for every Plan column. Hovering over a capacity bar displays the allocation breakdown: available (or overallocated), allocated, and total capacity for that user in that Plan.

    <Tip title="Customizing the capacity tooltip">
      The column tooltip template (`columnTooltipTemplate`) can be customized to show a per-user allocation breakdown, including overallocation highlighted in a warning color. See [Customize Capacity Indicators](/planningboard/guides/customization/capacity-indicators).
    </Tip>

    ***
  </Step>
</Steps>

## Troubleshooting

| Symptom                                                            | Likely cause                                                               | Action                                                                                                      |
| ------------------------------------------------------------------ | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| Capacity bars show `0 / 0` for all users                           | Teams Service not connected or no calendar entries                         | Verify Teams Service setup — see [Set Up Teams Service](/planningboard/guides/capacity/teams-service-setup) |
| Some users have no capacity bar at all                             | User is not in the Teams Service for this Plan's date range                | Add user to the team calendar for the relevant period                                                       |
| Bars show allocated effort but no total headroom                   | `useTeamsService` is off or the user has no calendar entry for this sprint | Enable Teams Service and add calendar data                                                                  |
| Capacity bar is visible but higher than expected                   | Sub-item estimates are not included; only direct estimates count           | This is a current limitation — Planningboard does not aggregate sub-item effort                             |
| Board shows a single column-level bar instead of per-swimlane bars | `multiCapacityLoad` is not enabled                                         | Enable it in widget parameters alongside `capacityLoad`                                                     |

For additional capacity calculation issues, see [Capacity Calculation Issues](/planningboard/guides/troubleshooting/capacity-issues).

***

## See also

* [Configure Capacity Tracking](/planningboard/guides/configuration/capacity-configuration) — basic capacity setup
* [Track Team Capacity](/planningboard/guides/capacity/team-capacity) — configure team-level capacity
* [Track User Capacity](/planningboard/guides/capacity/user-capacity) — configure per-user capacity
* [Set Up Teams Service](/planningboard/guides/capacity/teams-service-setup) — prerequisites for capacity features
* [Normalize Capacity Across Swimlanes](/planningboard/guides/capacity/capacity-normalization) — adjust capacity display across swimlanes of different sizes
* [Visualize Capacity Load](/planningboard/guides/capacity/capacity-visualization) — understand capacity bar rendering
* [Customize Capacity Indicators](/planningboard/guides/customization/capacity-indicators) — change how capacity bars look and what tooltips show

<Accordion title="Sources">
  **KB Articles**

  * Swimlane Assignment Types
  * Introduction to Planningboard
  * What is 'Normalization'

  **Support Tickets**

  * [#6777](https://support.nextedy.com/helpdesk/tickets/6777)
  * [#6605](https://support.nextedy.com/helpdesk/tickets/6605)
  * [#4714](https://support.nextedy.com/helpdesk/tickets/4714)

  **Source Code**

  * `PlanningBoardDataService.java`
  * `PlanningBoardWidget.java`
  * `planningboard.js`
  * `capacityHelperData.cy.ts`
  * `Plan.java`
</Accordion>
