Skip to main content

Prerequisites

  • Planningboard is installed and a board is configured on a Polarion Wiki page.
  • A teams service is set up for your project. See Set Up Teams Service.
  • Work items have remaining estimates (or a custom capacity field) populated.
  • Team members are assigned to work items on the board.
Planningboard capacity tracking supports one assignee per work item. If a work item has multiple assignees, only the primary assignee is counted in capacity calculations. This is a known limitation compared to Nextedy GANTT. Additionally, capacity is calculated from direct task estimates only — effort on sub-items is not distributed upward to parent items.

1

Enable the teams service

Open the Widget Parameters panel for your Planningboard widget and set useTeamsService to true. This tells Planningboard to pull team membership and calendar data from the teams service rather than using a flat plan capacity value.
Capacity configuration properties are whitespace-sensitive. Do not add leading or trailing spaces around the = sign or the value. Incorrect whitespace causes silent misconfiguration.

2

Select the team

Set the selectedTeam widget parameter to the team whose capacity you want to track. This determines which users appear in per-user capacity calculations.
Replace <team-work-item-id> with the Polarion work item ID of your team (for example, MYPROJECT-T-1). Team IDs are automatically remapped if the team is defined in a supporting project.
3

Enable capacity load display

Set the capacityLoad parameter to true to activate the capacity bar visualization in plan columns.
When enabled, each plan column shows a capacity bar indicating the ratio of allocated effort to total team capacity for that sprint.
4

Configure per-user capacity (multiCapacityLoad)

For boards using user swimlanes, enable multiCapacityLoad to show a separate capacity bar per swimlane row rather than a single aggregate bar per column.
With multiCapacityLoad enabled, each user’s swimlane row displays its own capacity progress bar, making it straightforward to spot which team members are over- or under-allocated at a glance.
Use capacityLoad = true alone for a team-aggregate view per sprint column. Add multiCapacityLoad = true when your swimlanes are set to Users (Assignee) and you need per-person capacity visibility.

How capacity is calculated

Planningboard derives capacity values from three sources:
Team Calendar and Work Item Estimates feed totalCapacity and allocatedCapacity per user, which combine into availableCapacity; negative values indicate overallocation
If a team member has no calendar defined and no fallback calendar is configured (nextedy.gantt.calendarHolder), their totalCapacity is 0.0. They will always appear as overallocated regardless of assignment. Set up calendars for all team members, or configure a fallback calendar holder.

1

Configure a fallback calendar (optional)

If some users lack individual calendars, set the nextedy.gantt.calendarHolder property in your project’s administration properties to a base user whose calendar serves as the fallback.
This prevents zero-capacity fallback for users without their own calendar.
2

Configure capacity modifiers (optional)

If your teams have planned capacity reductions — for example, a sprint where the team is partly allocated to a release — enable capacity modifiers:
When enabled, Planningboard reads modifier percentages from the capModA field (default) on each team work item and reduces the calculated capacity accordingly. To use a different field name, set:

3

Verify the capacity display

After saving the widget parameters, reload the board. You should now see:
  • A capacity bar at the top of each plan column, showing total allocated effort vs. available team capacity for that sprint.
  • If multiCapacityLoad is enabled: individual capacity bars in each user swimlane row.
  • Hovering over a capacity bar shows a tooltip with per-user breakdown:
    • Available (shown in red if negative / overallocated)
    • Allocated
    • Total
You can customize the tooltip content using the columnTooltipTemplate configuration option. This accepts a string template or a function that receives the column and row objects. After updating the template programmatically, call setCurrentView to trigger a re-render.

Example configuration

The following is a complete widget parameter snippet for a user-swimlane board with per-user capacity tracking:
This configuration activates team-aware capacity tracking, selects the team with ID MYPROJECT-T-1, and enables per-user capacity bars across all user swimlane rows.

Limitations

  • No multi-assignee support. Only one assignee per work item contributes to capacity load.
  • No sub-item effort distribution. Parent item capacity is not aggregated from child task estimates; only direct estimates on assigned tasks are counted.
  • Users without calendar entries default to totalCapacity = 0.0 unless a fallback calendar holder is configured.
For troubleshooting capacity values that appear incorrect or zero, see Capacity Calculation Issues.

See also

KB Articles
  • Swimlane Assignment Types
  • What is ‘Normalization’
  • Introduction to Planningboard
Support TicketsSource Code
  • PlanningBoardDataService.java
  • PlanningBoardWidget.java
  • planningboard.js
  • capacityHelperData.cy.ts
  • perUserCapacity.cy.ts
Last modified on July 9, 2026