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

# SAFe Train Team Mode

> **SAFe Train Team Mode** (`SAFE_TRAIN_TEAM`) is a swimlane assignment type in Nextedy PLANNINGBOARD that organizes swimlanes by the teams belonging to a specific Agile Release Train (ART).

<Note title="SAFe environment required">
  SAFe Train Team Mode requires a Polarion project configured with the SAFe Solution. Contact your Polarion administrator if the SAFe assignment modes are not visible in your widget's Assignment Type dropdown.
</Note>

***

## Overview

| Property                       | Value                                                       |
| ------------------------------ | ----------------------------------------------------------- |
| **Assignment mode identifier** | `SAFE_TRAIN_TEAM`                                           |
| **Swimlane grouping**          | One swimlane per ART team, filtered by the specified ART ID |
| **SAFe level**                 | Program (ART)                                               |
| **Requires SAFe Solution**     | Yes                                                         |
| **Team field default**         | `safeTeam`                                                  |

When this mode is active, Planningboard discovers all teams that belong to the configured Agile Release Train and renders one swimlane per team. Work items are distributed into swimlanes based on their `safeTeam` field value. Items whose team is outside the selected ART are not displayed in a named swimlane.

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/vfRg9jxXRntLqZFW/planningboard/diagrams/reference/assignment-modes/safe-train-team-mode/diagram-1.svg?fit=max&auto=format&n=vfRg9jxXRntLqZFW&q=85&s=36e669e4a7dcfb670eb07aebbf82b3d9" alt="Planningboard grid in SAFe Train Team Mode with swimlanes for Team Alpha, Team Beta, and Team Gamma across PI 5 Iterations 1-3, showing stories distributed across team and iteration cells" width="640" height="352" data-path="planningboard/diagrams/reference/assignment-modes/safe-train-team-mode/diagram-1.svg" />
</Frame>

***

## Widget Parameters

Configure SAFe Train Team Mode in the **Swimlanes (Rows)** section of the widget's Parameters panel.

### Core Parameters

| Name                   | Type    | Default        | Description                                                                                                                                        |
| ---------------------- | ------- | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| `assignmentMode`       | string  | `ASSIGNEE`     | Set to `SAFE_TRAIN_TEAM` to activate this mode. Controls how work items are grouped into swimlanes.                                                |
| `safeTeamField`        | string  | `safeTeam`     | Custom field ID that stores the SAFe Team assignment on work items. Must match the Polarion field ID exactly.                                      |
| `showEmptySwimlanes`   | boolean | `false`        | When `true`, swimlanes for ART teams that have no planned work items are still rendered. Useful for capacity planning across all teams in the ART. |
| `swimlaneSort`         | string  | `alphabetical` | Determines the sort order of team swimlanes. Controls vertical ordering of lanes.                                                                  |
| `collapsibleSwimlanes` | boolean | `true`         | Enables users to collapse or expand individual swimlanes. Improves usability on boards with many ART teams.                                        |

### ART Filtering

<Info title="Verify in application">
  The specific widget parameter name for specifying the ART ID filter should be confirmed in the widget's configuration UI. The source code confirms that `SAFE_TRAIN_TEAM` mode filters teams by ART ID parameter — consult the widget Parameters panel under **Swimlanes (Rows)** for the exact field label.
</Info>

SAFe Train Team Mode distinguishes itself from [SAFe Team Mode](/planningboard/reference/assignment-modes/safe-team-mode) by accepting an explicit ART ID filter. Where SAFe Team Mode shows teams from the current program's SAFe Solution data without ART scoping, SAFe Train Team Mode restricts the swimlane list to teams that belong to the specified ART.

This makes SAFe Train Team Mode suitable when:

* A Polarion project contains multiple ARTs and you want the board scoped to one ART.
* You are planning at the ART level across a subset of teams in a larger solution train.

For portfolio-level planning across multiple programs, see [SAFe Programs Mode](/planningboard/reference/assignment-modes/safe-programs-mode).

***

## Relationship to Plans Modes

SAFe Train Team Mode is a swimlane assignment type (rows). It works in combination with a plans mode (columns). The compatible plans modes for ART-level team planning are:

| Plans Mode                                      | Description                             | Reference                                                                |
| ----------------------------------------------- | --------------------------------------- | ------------------------------------------------------------------------ |
| SAFe Sprints in Program (`SAFE_SPRINTS`)        | Displays iteration plans within the ART | [SAFe Sprints](/planningboard/reference/plans-modes/safe-sprints)        |
| SAFe Program Increments in Program (`SAFE_PIS`) | Displays PI-level plans                 | [SAFe Program Increments](/planningboard/reference/plans-modes/safe-pis) |

<Tip title="Common configuration">
  For ART-level sprint planning, combine `assignmentMode = SAFE_TRAIN_TEAM` with `plansMode = SAFE_SPRINTS`. For PI planning across ART teams, combine with `plansMode = SAFE_PIS`.
</Tip>

***

## Work Item Assignment

When `assignmentMode` is `SAFE_TRAIN_TEAM`, the `safeTeam` field (or the field specified in `safeTeamField`) determines which swimlane each work item appears in. Dragging a card from one team swimlane to another updates the work item's `safeTeam` field value accordingly.

### Field Requirements

| Field                                  | Required | Notes                                                                                                                         |
| -------------------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `safeTeam` (or custom `safeTeamField`) | Yes      | Must be an enumeration field in Polarion. The enum values must correspond to the SAFe Team IDs in the Polarion SAFe Solution. |

### Unassigned Items

Work items that have no value in the `safeTeam` field, or whose team value does not match any team in the selected ART, appear in the **Not Assigned / Other** swimlane at the bottom of the board.

***

## Capacity Tracking

Capacity bars are supported in SAFe Train Team Mode. Capacity is displayed per swimlane (per ART team) when capacity tracking is enabled.

### Capacity Parameters

| Name                | Type    | Default | Description                                                                                                                                                                                 |
| ------------------- | ------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `capacityLoad`      | boolean | `false` | Enables capacity loading calculations per team swimlane.                                                                                                                                    |
| `multiCapacityLoad` | boolean | `false` | Enables per-swimlane capacity tracking — each team swimlane shows its own capacity progress independently.                                                                                  |
| `useTeamsService`   | boolean | `false` | Enables integration with the Planningboard Teams Service for team capacity, user capacity, and team member data. When enabled, overrides plan-level capacity values with team-sourced data. |
| `userCapacityLoad`  | boolean | `false` | Enables user-level capacity loading when the Teams Service is active.                                                                                                                       |
| `capacityField`     | string  | —       | Custom field ID to use as the capacity value (e.g., story points). Leave unset to use time tracking fields (`remainingEstimate` / `initialEstimate`).                                       |
| `hoursPerDay`       | number  | `8`     | Working hours per day for time-based capacity calculations.                                                                                                                                 |

<Warning title="Capacity configuration is whitespace-sensitive">
  Configuration property values for capacity must not contain leading or trailing whitespace. A stray space in a capacity property value will cause the value to be ignored silently.
</Warning>

For full capacity parameter documentation, see [Capacity Parameters](/planningboard/reference/widget-parameters/capacity-parameters).

***

## SAFe-Specific Automation

### Parent Plan Synchronization

When a work item's SAFe team assignment changes (by dragging it to a different team swimlane), Planningboard can automatically sync the work item's Team Program Increment plan to match the new team assignment. This synchronization (`syncSAFEParentsFromChildren`) remaps plan IDs based on the updated team assignment.

<Info title="Verify in application">
  Whether automatic parent PI plan synchronization is enabled by default or requires explicit configuration should be confirmed against the live product. {/* TODO: verify against the live product */}
</Info>

***

## Configuration Example

The following example configures a Planningboard for ART-level sprint planning with team-based swimlanes, capacity tracking enabled, and empty swimlanes shown for all ART teams.

```properties theme={null}
# Swimlane assignment
assignmentMode=SAFE_TRAIN_TEAM
safeTeamField=safeTeam
showEmptySwimlanes=true
swimlaneSort=alphabetical
collapsibleSwimlanes=true

# Plans mode — SAFe Sprints at program level
plansMode=SAFE_SPRINTS

# Capacity tracking per team
capacityLoad=true
multiCapacityLoad=true
useTeamsService=true
hoursPerDay=8

# Work items dataset
query=type:story OR type:task
maxItems=1000
```

<Tip title="Empty swimlanes for planning sessions">
  Set `showEmptySwimlanes=true` during PI planning sessions so that all ART teams are visible on the board even before stories are assigned, making it easier to distribute new work across teams.
</Tip>

***

## Comparison with Related Assignment Modes

| Mode                                                                                                      | Swimlane grouping                                      | SAFe level           | ART filter                          |
| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | -------------------- | ----------------------------------- |
| Agile Release Train Teams (SAFe) (`SAFE_TRAIN_TEAM`)                                                      | Teams within a specific ART                            | Program              | Yes — scoped to one ART             |
| [Program / Solution Teams (SAFe)](/planningboard/reference/assignment-modes/safe-team-mode) (`SAFE_TEAM`) | Teams in the current program's SAFe Solution           | Program              | No — all teams in the SAFe Solution |
| [Programs (SAFe)](/planningboard/reference/assignment-modes/safe-programs-mode) (`SAFE_PROGRAMS`)         | Programs within a solution train                       | Portfolio / Solution | —                                   |
| [Users (Assignee)](/planningboard/reference/assignment-modes/assignee-mode) (`ASSIGNEE`)                  | Individual users (assignees)                           | Any                  | —                                   |
| [Enumeration Field](/planningboard/reference/assignment-modes/enum-mode) (`ENUM`)                         | Enumeration field values (e.g., a `team` custom field) | Any                  | —                                   |

Use SAFe Train Team Mode when your Polarion project contains multiple ARTs and you need the board scoped to a single ART's teams. Use [SAFe Team Mode](/planningboard/reference/assignment-modes/safe-team-mode) when you want all teams from the SAFe Solution without ART scoping.

***

## Configuration Fields Shown in Widget UI

The widget's dependency processor shows and hides configuration fields based on the selected assignment mode. When **Agile Release Train Teams (SAFe)** (`SAFE_TRAIN_TEAM`) is selected, the following behavior applies:

* The **resource field selector** (used by the Enumeration Field (`ENUM`) mode) is hidden.
* The **selected rows / row filter** (used by the Enumeration Field (`ENUM`) mode) is hidden.
* The **user role selector** (used by the Users (Assignee) (`ASSIGNEE`) mode) is hidden.
* ART-specific fields for team filtering are shown.

For the complete list of widget parameters available across all swimlane modes, see [Swimlanes (Rows) Parameters](/planningboard/reference/widget-parameters/swimlanes-parameters).

***

## Limitations

* **No multi-assignee capacity distribution.** Capacity load calculations do not distribute effort across multiple assignees. This is a known gap relative to Nextedy GANTT's capacity model.
* **Swimlane sort order is coupled to item sort order.** The vertical ordering of team swimlanes follows the same sort configuration as item ordering within swimlanes; independent swimlane-level sort overrides are not supported.
* **SAFe Solution required.** If the Polarion project does not have a SAFe Solution configured, the **Agile Release Train Teams (SAFe)** (`SAFE_TRAIN_TEAM`) mode will not populate any swimlanes.
* **Parent mode incompatibility.** `assignmentMode=PARENT` does not support plan normalization (`planCellsMode`). This restriction does not apply to **Agile Release Train Teams (SAFe)** (`SAFE_TRAIN_TEAM`), but mixing parent-based hierarchy with SAFe team assignment is not supported in a single board instance.

***

## Related Pages

* [Assignment Modes](/planningboard/reference/assignment-modes/index) — overview of all swimlane assignment types
* [SAFe Team Mode](/planningboard/reference/assignment-modes/safe-team-mode) — similar mode without ART ID scoping
* [SAFe Programs Mode](/planningboard/reference/assignment-modes/safe-programs-mode) — portfolio-level swimlanes by program
* [SAFe Parameters](/planningboard/reference/widget-parameters/safe-parameters) — SAFe-specific widget parameters
* [SAFe Sprints](/planningboard/reference/plans-modes/safe-sprints) — compatible plans mode for ART sprint planning
* [SAFe Program Increments](/planningboard/reference/plans-modes/safe-pis) — compatible plans mode for PI planning
* [Capacity Parameters](/planningboard/reference/widget-parameters/capacity-parameters) — full capacity configuration reference
* [Teams Service Properties](/planningboard/reference/configuration-properties/teams-properties) — server-side Teams Service configuration

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

  * Swimlane Assignment Types
  * What is 'Normalization'
  * Filter user swimlanes by Plan range

  **Support Tickets**

  * [#5879](https://support.nextedy.com/helpdesk/tickets/5879)

  **Source Code**

  * `PlansMode.java`
  * `PlanningBoardWidgetRenderer.java`
  * `PlanningBoardDataService.java`
  * `AssignmentMode.java`
  * `PlanningBoardWidgetDependenciesProcessor.java`
</Accordion>
