Skip to main content

The Problem Capacity Modifiers Solve

In practice, a team member assigned 100% to a team does not spend 100% of their time on planned tasks. Meetings, emails, code reviews, and ad-hoc requests consume a significant portion of each day. Additionally, work planned far into the future carries more uncertainty than work starting next week — estimates for distant tasks tend to be less reliable. Capacity modifiers formalize these two reductions into measurable percentages that the Gantt applies to resource load calculations. Instead of guessing that “people are probably busy with other things,” you configure explicit values that adjust the resource view to reflect realistic availability.

Two-Factor Capacity Adjustment

The Gantt supports two capacity modifier fields, referred to as Modifier A and Modifier B, each serving a distinct purpose: diagram

Modifier A — Unplanned Work

Modifier A represents the percentage of time a resource spends on unplanned activities: meetings, emails, support requests, and other non-project work. This modifier applies to all planned work regardless of when it is scheduled — past, present, or future. For example, if Modifier A is set to 20%, a resource with an 8-hour working day has only 6.4 effective hours available for planned tasks.

Modifier B — Future Uncertainty

Modifier B represents the uncertainty inherent in work planned for the future. Unlike Modifier A, Modifier B only applies to tasks scheduled beyond a configurable day threshold from today. Work that is imminent (within the threshold) is considered firm and is not reduced by this modifier. For example, if Modifier B is set to 15% and the day limit is 10 days, tasks starting 10 or more days from today have an additional 15% reduction applied on top of Modifier A. Tasks starting within the next 9 days are only affected by Modifier A. The combined formula is:
ComponentEffect
Base hoursCalendar-defined working hours (e.g., 8h)
After Modifier Abase * (1 - modA/100) — always applied
After Modifier Bbase * (1 - (modA + modB)/100) — applied beyond day limit
Modifiers A and B are added together before being applied as a single percentage reduction. If Modifier A is 20% and Modifier B is 15%, the total reduction for future tasks is 35%, yielding 8 * (1 - 0.35) = 5.2 effective hours — not 8 * 0.8 * 0.85 = 5.44.

The Day Limit Concept

The nextedy.gantt.capacityModifierBFieldDayLimit administration property controls when Modifier B kicks in. It defines a time horizon in days from today:
  • Tasks scheduled within the day limit use only Modifier A
  • Tasks scheduled beyond the day limit use Modifier A + Modifier B combined
This creates a two-tier capacity model where near-term work is planned at higher confidence (only unplanned overhead deducted) and long-term work includes an additional uncertainty buffer. If the day limit is set to -1 or is not configured, Modifier B applies to all tasks regardless of scheduling date.

Where Capacity Modifiers Are Defined

Capacity modifiers are defined as custom fields on Team work items in Polarion. Each Team work item can have its own Modifier A and Modifier B values, allowing different teams to reflect different working patterns.
Administration PropertyPurpose
nextedy.gantt.useTeamCapacityModifiersEnables the capacity modifier system
nextedy.gantt.capacityModifierAFieldName of the custom field holding Modifier A percentage
nextedy.gantt.capacityModifierBFieldName of the custom field holding Modifier B percentage
nextedy.gantt.capacityModifierBFieldDayLimitNumber of days from today after which Modifier B applies
Capacity modifiers require team assignments to be configured. The modifier values are read from Team work items, so the team assignment infrastructure (Team and Team Assignment work item types, assignment link roles) must be in place before capacity modifiers can take effect.

How Modifiers Flow into the Resource View

When capacity modifiers are enabled, the resource view reflects the adjusted capacity in its workload calculations:
  1. The Gantt loads the user’s base working hours from their working calendar (or the global calendar)
  2. Team assignment percentages are applied to determine how much of those hours go to the current team
  3. Capacity modifiers further reduce the effective hours based on unplanned work and uncertainty factors
  4. The resource view cells show workload against these reduced effective hours
This means a cell that would show “within capacity” without modifiers might turn red (over-capacity) once modifiers are applied, because the available hours are lower than the raw calendar suggests.

Interaction with Team Filtering

When the Gantt is filtered to a specific team, the resource view shows capacity data only for that team’s assignments. Capacity modifiers defined on the selected team are applied, while modifiers from other teams the user belongs to are excluded from the calculation. This ensures the resource view accurately reflects the capacity picture for the team being analyzed.
Equipment assignment capacity follows a different setup than team assignments. When an assigned user has no available working days in their calendar, the Gantt highlights those tasks to indicate a capacity problem. Equipment and user assignments should be documented and configured separately.

Practical Example

Consider a team where members typically spend 20% of their time in meetings and administrative tasks (Modifier A = 20), and estimates for work more than two weeks out carry about 10% uncertainty (Modifier B = 10, day limit = 10):
Time horizonModifier AModifier BTotal reductionEffective hours (8h day)
Within 10 days20%0%20%6.4h
Beyond 10 days20%10%30%5.6h
The resource view uses 6.4 hours as the capacity baseline for near-term cells and 5.6 hours for cells further in the future, providing a more realistic picture of true availability.
KB ArticlesSupport TicketsSource Code
  • prod-gantt-src/com.nextedy.polarion.gantt/src/com/nextedy/polarion/gantt/ConfigPropertiesConsts.java
  • prod-gantt-src/com.nextedy.polarion.gantt.client/cypress/e2e/working-calendars/capacity-modifiers.cy.ts
  • prod-gantt-src/com.nextedy.polarion.gantt/src/com/nextedy/polarion/gantt/model/impl/CalendarBuilder.java
  • prod-gantt-src/com.nextedy.polarion.gantt/src/com/nextedy/polarion/gantt/model/impl/UserCalendarFactory.java
  • prod-gantt-src/com.nextedy.polarion.gantt.client/cypress/e2e/working-calendars/modifiers-with-work-item-calendar.cy.ts