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

# Set Up Teams Service

> Enable the Teams Service to unlock per-user and per-team capacity tracking on the Nextedy PLANNINGBOARD capacity bar.

## Prerequisites

Before you begin:

* Planningboard is installed and a board widget is configured on a Polarion Wiki page.
* You have project-level administration access in Siemens Polarion ALM.
* Team work items exist in the project (or a supporting project). Each team work item must have team member assignment work items with `from` and `to` date fields so the service can filter members by active date range.
* Users are assigned to teams via team assignment work items with valid `from`/`to` date fields. Users whose IDs cannot be resolved are automatically excluded from capacity calculations.

***

<Steps>
  <Step title="Verify Team Work Items Are in Place">
    The Teams Service queries for team work items in the current project and any supporting projects. Before enabling the service, confirm your team data is set up correctly.

    1. Open your Polarion project.
    2. Navigate to **Tracker** and search for work items of the type used to represent teams.
    3. For each team work item, verify that member assignment child work items exist and include `from` and `to` date field values.

    <Frame>
      <img src="https://mintcdn.com/none-17b4493f/zUlmOSLBIQ0HyaAX/planningboard/diagrams/guides/capacity/teams-service-setup/diagram-1.svg?fit=max&auto=format&n=zUlmOSLBIQ0HyaAX&q=85&s=e4c2271a759a8d221378ed2b87bcf51e" alt="Hierarchy showing a Project containing a Backend Team, which has three member assignments (Alice, Bob, Carol) each with from/to date ranges" width="760" height="270" data-path="planningboard/diagrams/guides/capacity/teams-service-setup/diagram-1.svg" />
    </Frame>

    <Warning title="Users without date fields are excluded">
      If a team member assignment work item is missing the `from` or `to` date field, the service cannot apply date-range filtering. The member may appear in unfiltered queries but will not contribute to date-aware capacity calculations. Populate both fields on every assignment work item.
    </Warning>

    ***
  </Step>

  <Step title="Enable the Teams Service in the Widget">
    The Teams Service is activated via the `useTeamsService` widget parameter. When enabled, the service provides team member data, per-user capacity hours, and overrides any static `plan.capacity` values.

    1. Open the Polarion Wiki page containing your Planningboard widget.
    2. Enter edit mode and open the **Widget Parameters** panel.
    3. In the **Capacity** section, locate the **Use Teams Service** parameter and set it to `true`.

    ```properties theme={null}
    useTeamsService=true
    ```

    4. Save the widget parameters and reload the page.

    <Warning title="Whitespace sensitivity">
      Capacity configuration parameters are whitespace-sensitive. Do not add spaces around the `=` sign or trailing spaces in the value. A value of `useTeamsService = true` (with spaces) will not be recognized correctly.
    </Warning>

    ***
  </Step>

  <Step title="Configure the Selected Team (Optional)">
    By default, the Teams Service aggregates across all teams in the project. To focus capacity calculations on a single team, configure the `selectedTeam` parameter.

    ```properties theme={null}
    selectedTeam=<team-work-item-id>
    ```

    Replace `<team-work-item-id>` with the Polarion work item ID (e.g. `PROJ-42`) of the target team. When set, only users belonging to that team appear in capacity rows, and `userCapacities` reflects only those members.

    ***
  </Step>

  <Step title="Configure the Calendar Fallback (Optional)">
    If some users have no working calendar defined in Polarion, the service defaults to the system calendar, which may not reflect your organization's working hours. To set a named user as the calendar fallback, add the following property to the project's `context.properties`:

    ```properties theme={null}
    nextedy.gantt.calendarHolder=<username>
    ```

    This property specifies a base user whose calendar is used as a fallback when a team member has no personal calendar. This is the same property used by Nextedy GANTT.

    ***
  </Step>

  <Step title="Optionally Enable Capacity Modifiers">
    The Teams Service supports optional capacity modifier fields on team work items that reduce team capacity by a percentage. This feature is disabled by default.

    To enable it, add to `context.properties`:

    ```properties theme={null}
    nextedy.gantt.useTeamCapacityModifiers=true
    ```

    When enabled, the service reads modifier percentages from fields on the team work item. The default field names are:

    | Field              | Default name | Description                                       |
    | ------------------ | ------------ | ------------------------------------------------- |
    | Primary modifier   | `capModA`    | Integer (0–100) — percentage reduction to apply   |
    | Secondary modifier | `capModB`    | Integer (0–100) — additional percentage reduction |

    To use different field names:

    ```properties theme={null}
    nextedy.gantt.capacityModifierAField=myCapModField
    ```

    <Tip title="Start without modifiers">
      Leave `nextedy.gantt.useTeamCapacityModifiers` at its default (`false`) unless your teams have dedicated capacity-modifier fields already populated. Enabling it with empty fields will silently reduce all capacity values.
    </Tip>

    ***
  </Step>
</Steps>

## How Capacity Is Calculated

Once the Teams Service is active, capacity on the board is calculated per user as follows:

```text theme={null}
totalCapacity    = working hours in sprint × capacity percentage (from calendar + assignment)
allocatedCapacity = sum of remainingEstimate for all tasks assigned to the user in the plan
availableCapacity = totalCapacity − allocatedCapacity
```

Both `allocatedCapacity` and `availableCapacity` are rounded to one decimal place. Negative `availableCapacity` values indicate overallocation and are surfaced visually on the capacity bar.

Users without a team calendar entry or an unresolvable user ID default to `totalCapacity = 0.0`.

<Warning title="Known limitations">
  * **Multiple assignees not supported.** Planningboard capacity load tracks only a single assignee per work item. If a work item has multiple assignees, capacity is not distributed across them.
  * **Sub-item effort not distributed.** Effort from child work items is not rolled up to parent items for capacity calculation purposes. Only direct remaining estimates on the assigned work item are counted.
  * These are known gaps relative to Nextedy GANTT's capacity model. Plan accordingly when comparing board capacity figures to GANTT totals.
</Warning>

***

## Verification

After completing the steps above, reload the board. You should now see:

* Per-user swimlane rows populated with team members from the configured team (or all project teams if `selectedTeam` is not set).
* A capacity bar in each plan column showing allocated vs total capacity for the visible users.
* Summary cells displaying each user's `allocatedCapacity`, `totalCapacity`, and `availableCapacity`.

If capacity bars show `0 / 0`, revisit Step 1 to confirm team assignment work items exist with valid `from`/`to` dates, and verify `useTeamsService=true` is saved without extra whitespace.

***

## See Also

* [Track Team Capacity](/planningboard/guides/capacity/team-capacity)
* [Track User Capacity](/planningboard/guides/capacity/user-capacity)
* [Visualize Capacity Load](/planningboard/guides/capacity/capacity-visualization)
* [Normalize Capacity Across Swimlanes](/planningboard/guides/capacity/capacity-normalization)
* [Configure Capacity Tracking](/planningboard/guides/configuration/capacity-configuration)
* [Capacity Calculation Issues](/planningboard/guides/troubleshooting/capacity-issues)

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

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

  **Support Tickets**

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

  **Source Code**

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