Overview
The Teams Service powers per-swimlane capacity visualization and team-filtered user rows on the Planningboard. It is switched on bynextedy.planningboard.useTeamsService and shaped by the properties below, which name the work item fields the service reads.
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.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
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
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.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 typedepartment 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
WhenuseTeamsService=true, the capacity of each row in a Plan — a team member, or a resource such as a department — is derived as follows:
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:
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(defaultteam) andnextedy.gantt.teamAssignmentWorkItemType(defaultteamAssignment) — 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,toand 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. activeTeamAssignmentsInPlanRangeOnlyrequires 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:Related Pages
- Department-Level Capacity — how an assignment that names a department rather than a person contributes to team capacity
- Capacity Parameters — widget-level parameters for enabling and displaying capacity bars
- Capacity Properties — system-wide capacity calculation configuration
- Teams Service API — scripting interface for reading team and capacity data
- SAFe Team Mode — swimlane assignment by SAFe team
- Assignee Mode — swimlane assignment by individual user
- Configuration Properties — index of all administration configuration properties