Skip to main content
For the widget-level parameters that control how capacity is displayed on a board, see Widget Parameters. For the scripting interface that reads team data at runtime, see Teams Service API.

Overview

The Teams Service powers per-swimlane capacity visualization and team-filtered user rows on the Planningboard. It is switched on by nextedy.planningboard.useTeamsService and shaped by the properties below, which name the work item fields the service reads.
Tree diagram showing Polarion Administration Configuration Properties branching into the seven Teams Service properties: useTeamsService, activeTeamAssignmentsInPlanRangeOnly, the deprecated activeTeamAssignmentsOnly, calendarHolder, useTeamCapacityModifiers, capacityModifierAField, and capacityModifierBField
Shared properties with GanttProperties prefixed nextedy.gantt.* are shared between Planningboard and Gantt. Changing them affects both products simultaneously.

Core Teams Service Properties

nextedy.planningboard.useTeamsService

Enables integration with the Planningboard Teams Service. When true, the board can retrieve team members, filter user swimlanes by team membership, and calculate per-user and per-team capacity from the team calendar. When false, capacity values fall back to the plan’s own configured capacity field or remain uncalculated. This property decides whether the board uses team assignments for capacity at all; when it is false, each plan’s own capacity field is used instead. Which engine computes team capacity is a separate question, answered by whether the Nextedy GANTT plugin is installed on the same Polarion. With it, both team and per-user capacity come from its teams service, so the board and the Project Team Assignments Gantt agree and team assignments that name a department instead of a person are counted. Without it, the board falls back to its own assignee-only calculation without reporting an error. See Department-Level Capacity.
No widget-level switch is requiredSetting this property to true is what activates team-based capacity. A board does not need a matching useTeamsService parameter in its widget parameters. The team itself is chosen by a Polarion page parameter named team on the page hosting the board — see Track Team Capacity. Widget parameters govern how capacity is displayed, including Show Capacity Load, which must be enabled for any bar to appear — see Capacity Parameters.
Example:

Swimlane Filtering Properties

nextedy.planningboard.activeTeamAssignmentsInPlanRangeOnly

When true, Planningboard shows only users whose Team Assignments overlap with the time range covered by the Plans currently displayed on the board. Users whose assignments fall entirely outside the shown Plan range (only in the past or only in the future relative to the displayed scope) are hidden from user swimlanes. If a hidden user has work items assigned to them, those items move to the Not Assigned / Other swimlane rather than being lost. Required data structure:
  • A Polarion project with configured Teams and Team Assignments
  • Planningboard configured with user-based swimlanes derived from Team Assignments
Example:
TroubleshootingIf the property does not take effect after saving, make a minor change to any Configuration Property value and save again. This forces Polarion to flush its configuration cache.
Interaction with activeTeamAssignmentsOnly: This property supersedes nextedy.planningboard.activeTeamAssignmentsOnly (deprecated in 25.12.0). The two properties serve overlapping purposes — enable only one at a time. The recommended property for new configurations is activeTeamAssignmentsInPlanRangeOnly.

nextedy.planningboard.activeTeamAssignmentsOnly

DeprecatedThis property was deprecated in version 25.12.0 and is no longer read — setting it has no effect on any supported release. Use nextedy.planningboard.activeTeamAssignmentsInPlanRangeOnly instead. It is documented here only so that an existing configuration still carrying it can be recognised and removed.
While it was still read, true hid users with no active (present or future) Team Assignments from user swimlanes, regardless of the Plans shown on the board — users with only past assignments were treated as inactive. Example:

Capacity Calculation Properties

These properties are shared with Gantt and control how team and user capacity is calculated from calendar data.

nextedy.gantt.calendarHolder

Specifies a Polarion user ID whose calendar is used as a fallback when a team member has no personal calendar defined. This affects both working-hours calculation and off-days (holidays) determination within the Teams Service capacity engine. When not set, the system default Polarion calendar applies. Setting a calendarHolder allows a shared “base calendar” user to represent standard working patterns for the organization. Example:

nextedy.gantt.useTeamCapacityModifiers

When true, enables reading capacity modifier fields (capModA, capModB by default) from team work items. These fields hold integer percentages (0–100) that reduce the calculated team capacity proportionally. This allows modeling scenarios such as overhead, meetings, or partial team availability without changing individual user calendars. Example:
Capacity modifiers reduce the individual capacity rows as well as the team total. With capModA and capModB both set to 10, a member assigned at 100% over a Plan covering ten working days shows 8 rather than 10 — the same 20% reduction the team figure receives.

nextedy.gantt.capacityModifierAField

Specifies the field ID on team work items that holds the primary capacity modifier percentage. The field must be an integer custom field on the team work item type. The value is treated as a percentage reduction applied to the computed team capacity. Only read when nextedy.gantt.useTeamCapacityModifiers=true. Example:

nextedy.gantt.capacityModifierBField

Specifies the field ID on team work items that holds the secondary capacity modifier percentage. Behaves identically to capacityModifierAField but represents a second, independent reduction factor (for example, separating planned overhead from unplanned availability reduction). Only read when nextedy.gantt.useTeamCapacityModifiers=true. Example:

nextedy.gantt.capacityModifierBFieldDayLimit

Defines a window around today in which the secondary modifier is not applied. The capModB term is skipped for any date whose distance from today is strictly less than this many days — in either direction, past as well as future — so a reduction entered at short notice does not distort the period currently being planned. Dates beyond the window receive both modifiers. At the default -1 there is no such window and capModB applies to every date. Only read when nextedy.gantt.useTeamCapacityModifiers=true. Example:

Resource capacity properties

A team assignment does not have to name a person. When its Assignee(s) field is empty and its resource field points at a work item — a department, a shared test lab, a supplier — that work item contributes capacity through its own absolute hours-per-day field. That field sets the resource’s capacity outright; it is not an 8-hour day scaled by % Assignment the way a person’s is. The three properties below are what make department-level capacity work. See Department-Level Capacity.
A resource contributes nothing until two of these are setnextedy.gantt.resourceCapacityField has no default at all, and nextedy.gantt.workitems.default.resource_field defaults to assignee, which names no resource work item. Until each is pointed at a real field, a team assignment that names a resource instead of a person contributes nothing and the plan’s capacity silently drops to the total of its named people — no error is raised. Only nextedy.gantt.resourceCapacityFieldUnit has a usable default (perDay).

nextedy.gantt.resourceCapacityField

Names the custom field on a resource work item that holds its capacity. In a typical configuration the field is capacityHoursPerDay, rendered on the work item form as Capacity (hours per working day). Example:

nextedy.gantt.resourceCapacityFieldUnit

States the unit in which the field named by nextedy.gantt.resourceCapacityField is read. The value perDay reads it as hours per working day. Example:

nextedy.gantt.workitems.default.resource_field

Names the field on the team assignment work item that points at the resource work item. It takes precedence over the assignment’s Assignee(s) field: when both are filled in, capacity is charged on the resource side. The resolution order is the widget’s own resourceField parameter, then this property, then the older nextedy.gantt.teamAssignmentResourceField. A value of assignee or categories is rejected as a resource field, so the default behaves as “no resource field configured” and a department-backed assignment contributes nothing until one of them points at a real custom field. The Gantt Resource Hierarchy and Identity Properties reference lists both properties, and Set Up a Hierarchical Resource Picker gives the order in which they are tried.

nextedy.gantt.teamAssignmentCapacityHoursField

Names a field on the team assignment holding an absolute number of hours per working day. When that field carries a value greater than zero it overrides % Assignment entirely — neither the person’s calendar hours nor the resource’s declared capacity are scaled by the percentage any more. Leave it unset unless a project deliberately plans in absolute hours; the formulas on this page assume it is.

How a department’s hours reach the board

A work item of type department with Capacity (hours per working day) set to 40 is referenced by a team assignment that has no assignee and a % Assignment of 100. Over a Plan covering ten working days, with both capacity modifiers set to 10 (a 20% reduction), the board shows 40 for the department and 8 for a member assigned at 100%. The department therefore counts as five full-time equivalents — 40 hours per working day ÷ 8 — and its % Assignment scales that figure rather than defining it: the same department at % Assignment 50 would show 20, and with % Assignment left empty it contributes nothing.

Team data model properties

These name the fields and the page parameter that the Teams Service configuration reads. They carry no capacity semantics of their own, but the service depends on them to resolve teams. Each has a usable default, so a project only sets them when its team work items use different field ids.

Property Summary Table


Capacity Calculation Model

When useTeamsService=true, the capacity of each row in a Plan — a team member, or a resource such as a department — is derived as follows:
The board shows totalCapacity in working days, at eight hours to a day. Set nextedy.planningboard.durationUnit=hours to show raw hours instead. Every figure the board renders is a whole number. availableCapacity does not go negative: when allocation exceeds capacity, the board reports the surplus separately, as an Over-planned figure in red. Users whose personal calendar is undefined fall back to the repository’s base calendar, so they do not default to zero — but an assignment with % Assignment empty does contribute zero. When useTeamCapacityModifiers=true, the percentages read from capacityModifierAField and capacityModifierBField on the team work item reduce every capacity figure — each individual row as well as the team total:
The two percentages combine additively inside a single multiplicative factor — they are not applied one after the other, so capModA=10 with capModB=20 reduces capacity by 30%, not by 28%. The capModB term is skipped for dates within nextedy.gantt.capacityModifierBFieldDayLimit days of today, so a short-notice reduction does not distort the period currently being planned.

Limitations

  • Custom team work item types are supported, through the shared Gantt properties. Planningboard resolves the team and team assignment types through nextedy.gantt.teamWorkItemType (default team) and nextedy.gantt.teamAssignmentWorkItemType (default teamAssignment) — the same properties Gantt reads. A project that renames those types sets them once, at project level, and both products follow. The team work item still has to carry the fields the capacity model reads: from, to and the assignment percentage.
  • Page parameters not supported in swimlane configuration. Polarion page parameters (e.g., $pageParameters.xxx) cannot be used to dynamically filter team-based swimlanes. Static workarounds include separate Planningboard pages per team or link-role–based swimlane assignment.
  • activeTeamAssignmentsInPlanRangeOnly requires a Plan date range. If the displayed Plans have no start/due date, the property cannot determine the active range and falls back to showing all users.

Configuration Example

The following example shows a complete Teams Service configuration for a project using team-based capacity bars and swimlane filtering by Plan range:
No widget parameter is needed to switch the Teams Service on. The widget parameters govern how capacity is displayed on a given board — see Capacity Parameters.