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

# Project Plans

> **Project Plans** is the default plans mode in Nextedy PLANNINGBOARD. It loads standard Polarion Plans from the current project and displays them as columns on the board.

This page is a complete reference for the Project Plans mode: what it controls, how it interacts with other configuration, and the parameters that govern it.

***

## Mode Overview

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/vfRg9jxXRntLqZFW/planningboard/diagrams/reference/plans-modes/project-plans/diagram-1.svg?fit=max&auto=format&n=vfRg9jxXRntLqZFW&q=85&s=f97c7448f90edc293f9705573c526af1" alt="Hierarchy diagram of Project Plans mode: loading Plans filtered by plansQuery, displaying them as columns controlled by lastPlans and nextPlans, assigning work items by date range, and the Plan items section with Sync to parent, both only available in Project Plans mode" width="1040" height="290" data-path="planningboard/diagrams/reference/plans-modes/project-plans/diagram-1.svg" />
</Frame>

Project Plans mode is selected by setting the `plansMode` widget parameter to **Project Plans** (`PROJECT_PLANS`). This is the default value and requires no SAFe configuration.

***

## Mode Identifier

| Value           | Type     | Description                                                                                                 |
| --------------- | -------- | ----------------------------------------------------------------------------------------------------------- |
| `PROJECT_PLANS` | `string` | Activates Project Plans mode. Standard project-based planning hierarchy without SAFe framework constraints. |

Set via widget parameter `plansMode`. See [Plans (Columns) Parameters](/planningboard/reference/widget-parameters/plans-parameters) for the full parameter reference.

***

## Plans Query

The Plans query controls which Plans from the current project appear as columns on the board. It uses standard Polarion Lucene query syntax.

| Parameter    | Type     | Default | Description                                                                                                                                                              |
| ------------ | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `plansQuery` | `string` | `None`  | Lucene query to filter which Plans are loaded and displayed as columns. When empty, all Plans in the project are candidates (subject to `lastPlans`/`nextPlans` limits). |

### Query Syntax

Plans are queried using Polarion's Lucene query syntax. Common examples:

```properties theme={null}
# Show only Plans whose name contains "Sprint"
plansQuery=name:Sprint*

# Show only Plans of a specific plan type
plansQuery=type:iteration

# Show Plans not yet finished (open Plans)
plansQuery=NOT status:closed
```

<Note title="Query scope">
  The `plansQuery` filter is applied within the current Polarion project. Plans from other projects are not included in Project Plans mode. For cross-project planning, use the [Project assignment mode](/planningboard/reference/assignment-modes/project-mode) for swimlanes, not a different plans mode.
</Note>

***

## Plan Count Controls

These parameters limit how many Plans appear as columns, independent of the query. Plans are ordered chronologically.

| Parameter   | Type     | Default | Description                                                          |
| ----------- | -------- | ------- | -------------------------------------------------------------------- |
| `lastPlans` | `number` | `1`     | Number of past (completed or overdue) Plans to display on the board. |
| `nextPlans` | `number` | `5`     | Number of future or active upcoming Plans to display on the board.   |

### Behavior

* Plans are ordered chronologically by their start date.
* `lastPlans` controls how many Plans whose end date is in the past appear.
* `nextPlans` controls how many Plans whose start/due date is current or future appear.
* Increasing either value loads more data — large values may affect rendering performance on projects with many Plans.

<Frame>
  <img src="https://mintcdn.com/none-17b4493f/vfRg9jxXRntLqZFW/planningboard/diagrams/reference/plans-modes/project-plans/diagram-2.svg?fit=max&auto=format&n=vfRg9jxXRntLqZFW&q=85&s=0fa33aee7d633e3a5cdf9761de6c3e8f" alt="Timeline showing past Plans A and B controlled by lastPlans=2, and future Plans C through G controlled by nextPlans=5, split at the current date" width="800" height="185" data-path="planningboard/diagrams/reference/plans-modes/project-plans/diagram-2.svg" />
</Frame>

### Configuration Example

```properties theme={null}
lastPlans=2
nextPlans=6
```

This shows the 2 most recently completed Plans and the next 6 upcoming Plans as columns.

***

## Plan Link Template

| Parameter  | Type     | Default                                                                          | Description                                                                                                                       |
| ---------- | -------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `planLink` | `string` | `/polarion/#/project/${plan.objectId.projectId}/plan?id=${plan.objectId.itemId}` | URL template for linking Plan column headers to the corresponding Polarion Plan view. Supports `${plan.*}` variable substitution. |

### Supported Variables

| Variable                     | Resolves To                                |
| ---------------------------- | ------------------------------------------ |
| `${plan.objectId.projectId}` | The Polarion project ID that owns the Plan |
| `${plan.objectId.itemId}`    | The Plan's item ID within the project      |

The plan link renders as a clickable header on each column. The default template navigates to the standard Polarion Plan view.

<Tip title="Custom Plan link">
  If your Polarion instance uses a custom URL pattern or you want to deep-link to a filtered plan view, override `planLink` with a custom template string. Variable substitution uses `${plan.*}` syntax.
</Tip>

***

## Work Item Assignment to Plans

In Project Plans mode, Planningboard assigns work items to Plans based on date overlap. A work item is placed in a Plan column when its `start_date` and `end_date` fall within the Plan's date range.

| Field        | Description                                                     |
| ------------ | --------------------------------------------------------------- |
| `start_date` | Work item's scheduled start date used for Plan column placement |
| `end_date`   | Work item's scheduled end date used for Plan column placement   |

### Assignment Logic

* When a user drags a card into a Plan column, Planningboard sets the work item's `start_date` and `end_date` to values within that Plan's date range.
* When a work item's dates span multiple Plans, it may appear in multiple columns.
* Work items without dates appear in the **Unplanned** sidebar.

<Warning title="Verified items cannot be moved">
  Work items with status `Verified` are locked. Once placed on the board, they cannot be dragged to a different Plan or moved back to Unplanned.
</Warning>

***

## Plan Items Section

The **Plan items** configuration section in the widget parameters is visible **only** when `plansMode` is set to **Project Plans** (`PROJECT_PLANS`). It is hidden for SAFe modes.

| Parameter  | Type     | Default   | Description                                                                                                    |
| ---------- | -------- | --------- | -------------------------------------------------------------------------------------------------------------- |
| `wiType`   | `string` | `None`    | Work item type filter. Restricts which work item types appear on the board (e.g., `task`, `story`, `feature`). |
| `query`    | `string` | `NOT *:*` | Lucene query to filter which work items are loaded onto the board.                                             |
| `maxItems` | `number` | `1000`    | Maximum number of work items loaded into the Planningboard.                                                    |

### Work Item Query

```properties theme={null}
# Show only open stories assigned to the current user
query=type:story AND NOT status:closed

# Show features and tasks that are not verified
query=(type:feature OR type:task) AND NOT status:verified

# Show all open items (override the NOT *:* default)
query=NOT status:closed
```

<Note title="Default query loads nothing">
  The default value `NOT *:*` matches no work items. You must provide a meaningful query to populate the board with work items.
</Note>

***

## Sync to Parent

The **Sync to parent** option is available **only** in Project Plans mode. It is not available for SAFe modes.

| Parameter       | Type      | Default | Description                                                                                                                                                                                                 |
| --------------- | --------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stemming`      | `boolean` | `false` | Enables automatic plan generation by parsing resource field values. When enabled, plan stemming splits enum values into plan–resource pairs and affects other plan-related field visibility.                |
| `planCellsMode` | `boolean` | `false` | Enables plan cells mode. Items belong to specific plan–resource cells. **Not compatible with Parent assignment mode** — the Parent assignment mode does not support plan normalization via `planCellsMode`. |

<Info title="Verify in application">
  The exact label and behavior of "sync to parent" in the widget UI may vary by Planningboard version. The `stemming` and `planCellsMode` parameters above are the underlying configuration properties. Confirm current behavior in the widget parameters panel.
</Info>

***

## Capacity in Project Plans Mode

Project Plans mode supports capacity tracking per Plan column. Capacity configuration applies when `capacityLoad` or `multiCapacityLoad` is enabled.

| Parameter           | Type      | Default | Description                                                                                                                                                                      |
| ------------------- | --------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `capacityLoad`      | `boolean` | `false` | Enables capacity/effort tracking per Plan column. Uses `remainingEstimate`/`initialEstimate` from work items, or a custom `capacityField`.                                       |
| `multiCapacityLoad` | `boolean` | `false` | Enables per-swimlane or per-resource capacity tracking across multiple capacity dimensions simultaneously.                                                                       |
| `capacityField`     | `string`  | `None`  | Custom work item field ID to use as the effort/capacity value (e.g., story points). When set, overrides time-tracking fields.                                                    |
| `hoursPerDay`       | `number`  | `8`     | Working hours per day, used to convert time-based estimates to day equivalents in capacity calculations.                                                                         |
| `userCapacityLoad`  | `boolean` | `false` | Enables user-level capacity loading. Requires `useTeamsService` to be `true`.                                                                                                    |
| `useTeamsService`   | `boolean` | `false` | Enables integration with the Polarion Teams service for team capacity, user capacity, and team member data. When enabled, overrides plan capacity values from the Teams service. |

### Capacity Tooltip

Hovering over the capacity bar on a Plan column shows a detailed capacity tooltip. This tooltip is only available when capacity tracking is configured via the widget parameters.

<Warning title="Capacity configuration is whitespace-sensitive">
  Capacity-related configuration parameters are whitespace-sensitive. Ensure there are no leading or trailing spaces in parameter values; these cause silent miscalculation.
</Warning>

See [Capacity Parameters](/planningboard/reference/widget-parameters/capacity-parameters) and [Capacity Properties](/planningboard/reference/configuration-properties/capacity-properties) for the full capacity reference.

***

## Plan Object Fields

When Plans are loaded in Project Plans mode, the following fields are available on each Plan object. These are used in `planLink` templates and scripting.

| Field           | Type     | Description                                                                                   |
| --------------- | -------- | --------------------------------------------------------------------------------------------- |
| `name`          | `string` | Plan name, normalized/stemmed for consistent identification                                   |
| `startDate`     | `string` | Plan start date formatted as US MEDIUM locale (e.g., `Jan 1, 2026`)                           |
| `dueDate`       | `string` | Plan due date formatted as US MEDIUM locale (e.g., `Jan 15, 2026`)                            |
| `color`         | `string` | Visual color identifier assigned to the Plan for the board display                            |
| `capacity`      | `number` | Single numeric capacity value representing available work capacity for the Plan               |
| `multiCapacity` | `map`    | Per-dimension capacity values (e.g., by team or resource) when `multiCapacityLoad` is enabled |
| `planUrls`      | `map`    | Context-specific URLs for the Plan (used when multiple project contexts exist)                |
| `planFullIds`   | `map`    | Full Plan identifiers in different contexts (distinct from stemmed IDs used internally)       |

***

## Dependency Link Roles

In Project Plans mode, work item dependencies can be visualized as arrows between cards on the board. Configure which link roles represent dependencies using the following parameter.

| Parameter             | Type     | Default | Description                                                                                                                                                                  |
| --------------------- | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `dependencyLinkRoles` | `string` | `None`  | Comma-separated list of Polarion link role IDs that define task dependencies. These render as connectors between cards when **Show Dependencies** is enabled in the toolbar. |

### Example

```properties theme={null}
dependencyLinkRoles=depends_on,blocks
```

Dependencies are shown using the **Show Dependencies** toolbar button. Unlike the per-card **Show Links** quick action, the toolbar control reveals all dependencies across the entire board simultaneously.

***

## Plans Mode Comparison

The following table summarizes when to use Project Plans mode versus the available SAFe plans modes.

| Mode                     | Value              | Use When                                                                   |
| ------------------------ | ------------------ | -------------------------------------------------------------------------- |
| **Project Plans**        | `PROJECT_PLANS`    | Standard Polarion project planning; no SAFe framework; custom Plan queries |
| SAFe Sprints (Program)   | `SAFE_SPRINTS`     | SAFe iteration sprint planning within an Agile Release Train               |
| SAFe Sprints (Portfolio) | `SAFE_PFL_SPRINTS` | Sprint-level planning across multiple programs at portfolio level          |
| SAFe Program Increments  | `SAFE_PIS`         | PI-level planning within an Agile Release Train                            |
| SAFe Solution Trains     | `SAFE_SOLUTION`    | Coordinated PI planning across multiple ARTs in a solution train           |

See [Plans Modes](/planningboard/reference/plans-modes/index), [SAFe Sprints](/planningboard/reference/plans-modes/safe-sprints), [SAFe Program Increments](/planningboard/reference/plans-modes/safe-pis), and [SAFe Solution Trains](/planningboard/reference/plans-modes/safe-solutions) for the other modes.

<Note title="Configuration UI differs by mode">
  When you change the `plansMode` value, the widget parameters panel changes which fields are visible. The **Plan items** section, **Sync to parent** option, and the `plansQuery` field are only shown when **Project Plans** (`PROJECT_PLANS`) is active. SAFe modes show different fields specific to their hierarchy levels.
</Note>

***

## Configuration Example

The following example shows a complete Project Plans widget configuration for a Scrum team running two-week sprints. It loads the last completed sprint and the next four, shows only Stories and Tasks, and enables capacity tracking using story points.

```properties theme={null}
# Plans (Columns)
plansMode=PROJECT_PLANS
plansQuery=type:iteration
lastPlans=1
nextPlans=4

# Work Items
query=type:story OR type:task
wiType=
maxItems=500

# Capacity
capacityLoad=true
capacityField=storyPoints
hoursPerDay=8

# Assignment Mode (Rows)
assignmentMode=ASSIGNEE
```

With this configuration:

* Columns show one past and four future iteration Plans.
* Only Stories and Tasks appear as cards on the board.
* The capacity bar on each column reflects story point totals.
* Swimlanes are grouped by assignee.

***

## Limitations

* **No multi-assignee capacity distribution:** Capacity load in Project Plans mode does not distribute effort across multiple assignees on a single work item. Only the primary assignee's capacity is affected. This is a known gap relative to Nextedy GANTT behavior.
* **Parallel sprint capacity:** Capacity calculation behavior across overlapping/parallel Plans may not match GANTT's calculation for the same items. If your team runs parallel sprints, verify capacity totals against the GANTT view.
* **Parent assignment mode incompatibility:** `planCellsMode` (plan normalization) is not supported when the assignment mode is set to **Parent Item**. The Parent assignment mode does not support plan cells.
* **Plan names with dashes:** Plan names containing dash characters (e.g., `PI-2401`, `I-2401-1`) were affected by a parsing bug causing incorrect column spans, zero capacity display, and missing plan shortcuts. This was partially fixed in version `23.8.0` and fully resolved in version `25.3.0`. If you use SAFe-style dash-containing plan names, ensure you are running version `25.3.0` or later.

***

## Related Reference Pages

* [Plans (Columns) Parameters](/planningboard/reference/widget-parameters/plans-parameters) — full widget parameter listings for the Plans section
* [Capacity Parameters](/planningboard/reference/widget-parameters/capacity-parameters) — capacity widget parameters
* [Capacity Properties](/planningboard/reference/configuration-properties/capacity-properties) — server-side capacity configuration
* [Plans Modes](/planningboard/reference/plans-modes/index) — overview of all available plans modes
* [SAFe Sprints](/planningboard/reference/plans-modes/safe-sprints) — SAFe sprint-level plans mode reference
* [SAFe Program Increments](/planningboard/reference/plans-modes/safe-pis) — SAFe PI-level plans mode reference
* [Assignment Modes](/planningboard/reference/assignment-modes/index) — swimlane row configuration
* [Plan Fields](/planningboard/reference/fields/plan-fields) — all fields available on Plan objects

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

  * Swimlane Assignment Types
  * Introduction to Planningboard
  * Planningboard interface & basic interactions

  **Support Tickets**

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

  **Source Code**

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