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

# Capacity Parameters

> Capacity parameters control how Nextedy PLANNINGBOARD calculates and visualizes effort and resource load.

These parameters work together. Enabling `capacityLoad` activates column-level bars; adding `multiCapacityLoad` moves to per-swimlane-cell bars; adding `userCapacityLoad` draws capacity from the Teams Service rather than from plan totals. See the [Configuration Properties — Capacity Properties](/planningboard/reference/configuration-properties/capacity-properties) page for system-wide capacity settings that complement these per-widget parameters.

***

## Capacity Load Parameters

| Parameter           | Type      | Default  | Description                                                                                                                                                                                                                                                                                                                       |
| ------------------- | --------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `capacityLoad`      | `boolean` | `false`  | Enables capacity/load visualization. When `true`, progress bars appear in each plan column showing total allocated effort versus plan capacity. Requires effort data on work items (see `capacityField` or time-tracking fields).                                                                                                 |
| `multiCapacityLoad` | `boolean` | `false`  | Enables per-swimlane-cell capacity bars. Each cell in the board grid shows its own capacity progress for the intersecting resource and plan. Takes effect only when `capacityLoad` is also `true`.                                                                                                                                |
| `userCapacityLoad`  | `boolean` | `false`  | Enables user-level capacity loading. Draws per-user total capacity from the Teams Service rather than deriving it from plan capacity values. Requires `useTeamsService = true`.                                                                                                                                                   |
| `capacityField`     | `string`  | *(none)* | Custom field ID containing the effort or capacity value for each work item (for example, a story points field). When set, Planningboard reads this field instead of the default time-tracking fields (`remainingEstimate` / `initialEstimate`). Write the exact field ID as configured in Polarion — wrong casing fails silently. |
| `hoursPerDay`       | `number`  | `8`      | Working hours per day used to convert time-tracking values to comparable units. Affects how `remainingEstimate` and `initialEstimate` are scaled when `capacityField` is not set.                                                                                                                                                 |
| `useTeamsService`   | `boolean` | `false`  | Enables integration with the Planningboard Teams Service. Required for `userCapacityLoad`. When enabled, team member lists, total user capacities, and team assignments are sourced from the Teams Service instead of directly from Polarion plan data.                                                                           |

***

## Effort Calculation

When `capacityLoad` is enabled, Planningboard calculates three effort values per work item:

| Value        | Calculation                     | Notes                                                                                          |
| ------------ | ------------------------------- | ---------------------------------------------------------------------------------------------- |
| `effort`     | Total effort from the work item | From `capacityField` if set; otherwise derived from `initialEstimate` scaled by `hoursPerDay`  |
| `effortDone` | Completed portion               | For resolved/done work items: equals `effort`. For open items: derived from time already spent |
| `effortTodo` | Remaining portion               | `effort − effortDone`. For resolved items: `0`.                                                |

The capacity bar displays allocated effort (sum of `effort` across items in the swimlane/plan cell) against the plan's configured capacity value.

<Note title="Capacity values are set per plan">
  The capacity value for each plan column is set separately — either via the Teams Service or directly through the REST API endpoint `POST /capacity` (see [REST API](/planningboard/reference/api/rest-api)). Without a capacity value configured on a plan, the capacity bar shows effort consumed but cannot display a percentage or "over/under" state.
</Note>

***

## Capacity Modes: Column-Level vs Cell-Level

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/vfRg9jxXRntLqZFW/planningboard/diagrams/reference/widget-parameters/capacity-parameters/diagram-1.svg?fit=max&auto=format&n=vfRg9jxXRntLqZFW&q=85&s=ba93c92f932f916ace6c79d257eb2d54" alt="Board grid comparing column-level capacity bars (capacityLoad only) against per-cell capacity bars (capacityLoad plus multiCapacityLoad) for Alice and Bob across Iteration 4 and Iteration 5" width="800" height="360" data-path="planningboard/diagrams/reference/widget-parameters/capacity-parameters/diagram-1.svg" />
</Frame>

Use `multiCapacityLoad` when different resources have different individual capacities and you need to track load per person per plan rather than per plan in aggregate.

<Warning title="Multi-assignee capacity is not supported">
  When a work item has multiple assignees, the effort is not distributed across swimlanes. The full effort value is attributed to the primary assignee only. This is a known limitation compared to Nextedy GANTT. See [Swimlanes (Rows) Parameters](/planningboard/reference/widget-parameters/swimlanes-parameters) for related swimlane assignment constraints.
</Warning>

***

## Teams Service Integration

The Teams Service provides per-user and per-team capacity data that overrides plan-level capacity values when `useTeamsService = true` and `userCapacityLoad = true`.

| Parameter         | Type      | Default  | Description                                                                                                                                                       |
| ----------------- | --------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `useTeamsService` | `boolean` | `false`  | Activates the Teams Service integration. Must be `true` to use `userCapacityLoad` and to have team member lists sourced from the service.                         |
| `selectedTeam`    | `string`  | *(none)* | ID of the team to filter by when the Teams Service is active. Restricts displayed swimlanes to members of the specified team only. Leave empty to show all teams. |

When the Teams Service is enabled, the user capacity data model tracks:

| Field               | Description                                                                            |
| ------------------- | -------------------------------------------------------------------------------------- |
| `totalCapacity`     | Total capacity configured for the user (hours or effort units, from the Teams Service) |
| `allocatedCapacity` | Sum of effort assigned to the user across planned work items                           |
| `remainingCapacity` | Automatically calculated: `totalCapacity − allocatedCapacity`                          |

The capacity bar tooltip (visible on hover over a plan column's capacity bar) shows this breakdown when the Teams Service is active.

<Tip title="Capacity tooltip">
  Hovering over a capacity bar shows a detailed tooltip with total, allocated, and remaining capacity. This tooltip is only available when `capacityLoad` is enabled via widget parameters.
</Tip>

***

## Configuration Example

The following example configures a board with per-swimlane capacity bars, story points as the effort unit, and the Teams Service providing user capacity totals.

```properties theme={null}
# Enable capacity visualization
capacityLoad=true
multiCapacityLoad=true

# Use story points field instead of time tracking
capacityField=storyPoints

# Teams Service for per-user capacity
useTeamsService=true
userCapacityLoad=true

# 8-hour working day (default, shown for clarity)
hoursPerDay=8
```

In this configuration:

* Each board cell (resource × plan intersection) shows its own capacity bar.
* Effort is read from the `storyPoints` custom field on each work item.
* Total capacity per user is sourced from the Teams Service, not from plan-level values.
* The capacity tooltip on hover shows total / allocated / remaining per user.

***

## Parameter Dependencies

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/vfRg9jxXRntLqZFW/planningboard/diagrams/reference/widget-parameters/capacity-parameters/diagram-2.svg?fit=max&auto=format&n=vfRg9jxXRntLqZFW&q=85&s=39695b3b47096a9230104454d726ecda" alt="Dependency tree showing userCapacityLoad requires useTeamsService, multiCapacityLoad requires capacityLoad, and capacityField overrides remainingEstimate/initialEstimate" width="600" height="305" data-path="planningboard/diagrams/reference/widget-parameters/capacity-parameters/diagram-2.svg" />
</Frame>

<Warning title="Whitespace sensitivity">
  Capacity configuration parameters are whitespace-sensitive. Do not include leading or trailing spaces around `=` or around field ID values (for example, `capacityField=storyPoints`, not `capacityField = storyPoints`). Whitespace causes the value to be read as empty.
</Warning>

***

## Limitations

* **No multi-assignee effort distribution.** When a work item is assigned to multiple users, the full effort is attributed to the primary assignee only — it is not split across swimlane rows. This is a known gap relative to Nextedy GANTT's capacity model.
* **Sub-item effort is not aggregated into parent swimlane rows.** Effort on child work items does not roll up to a parent swimlane. The capacity bar reflects only items directly in the swimlane.
* **`PARENT` assignment mode does not support capacity normalization.** When `assignmentMode` is `PARENT`, the `planCellsMode` (used by capacity normalization) is not supported. Capacity bars are unavailable in parent-mode boards.
* **Plan capacity must be set separately.** Planningboard does not auto-derive plan capacity from date ranges or team size. Without a capacity value on the plan, the bar displays effort consumed only — no percentage or over-capacity indicator.

***

## Related Pages

* [Plans (Columns) Parameters](/planningboard/reference/widget-parameters/plans-parameters) — configure plan columns and the `Show Capacity Load` option
* [Swimlanes (Rows) Parameters](/planningboard/reference/widget-parameters/swimlanes-parameters) — configure swimlane assignment and how resources map to rows
* [Configuration Properties — Capacity Properties](/planningboard/reference/configuration-properties/capacity-properties) — system-wide capacity defaults
* [Teams Service API](/planningboard/reference/api/teams-service-api) — Teams Service endpoints for user capacity data
* [Assignment Modes](/planningboard/reference/assignment-modes/index) — overview of all assignment modes and their capacity support

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

  * Planningboard Widget Parameters
  * Planningboard: Customizable Statistics and Capacity Indicators
  * Planningboard interface & basic interactions

  **Support Tickets**

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

  **Source Code**

  * `PlanningBoardWidget.java`
  * `planningboard.js`
  * `widget.vm`
  * `PlanningBoardDataService.java`
  * `Config.java`
</Accordion>
