Project Commander Docs ← Back to site

Team & Capacity Tab — Feature Guide

Team & Capacity tab — period selector, member table, status badges, total row, and the summary strip beneath the table
Team & Capacity tab — period selector, member table, status badges, total row, and the summary strip beneath the table

What it's for

The Team & Capacity tab is where the team's roster, base capacity, time off, holidays, and per-project allocations are kept. Every other capacity-aware feature in the app — the Delivery Forecast card, the Project view on the What-If tab (its week-by-week plan), the Demand vs. Capacity section on the Scope tab, the sprint cards on the Sprints tab, Auto-Level — reads its inputs from here.

The tab opens on the period buttons and the roster table, and beneath the table its answer — a summary strip saying how many people are overcommitted. It does four things: lets the user manage the team roster (add and remove members); set capacity in points or hours for any period, stored week by week; track time off (PTO) and company holidays; and share each member's effort across several projects.

Nothing on this tab is written to Jira issues. The roster, capacity, time off and holidays are kept by the app itself (see Data persistence below). The one exception: removing a member can also unassign that person's open issues in Jira, if the user ticks that option in the confirmation.

Summary strip

A five-cell strip beneath the roster table (moved there on 2026-09-04 at Don's request so the tab opens simpler: the period buttons and the people first, the verdict and its four figures under them). It answers "is this team overcommitted, and by how much" from the same rows the table shows. It is shown only when the roster has at least one person.

The strip's Remaining capacity and Demand figures are the same values the Total row at the foot of the table shows, from one calculation.

Why "Load" and not "Utilization": three different measures would otherwise share one word. Util % in the table is a per-person availability setting (a number the user types). Utilization on the Projects tab is remaining work against capacity to the target date. Neither is demand against remaining period capacity — that is Load, the same term the Scope tab's Resource Breakdown uses and the name of the bands behind every status badge.

Header / Toolbar

Period selector

Six bordered buttons at the left of the period row — Sprint, Weekly, Biweekly, Monthly, Quarterly, Yearly. Weekly is selected when the tab opens. The choice changes the window the table adds up over and the unit of the capacity column. Underneath, capacity is always stored per calendar week; the period view is a convenience for setting many weeks at once and for reading totals at the right granularity.

Sprint (added 2026-09-01) steps sprint by sprint instead of by a fixed number of days, and changes the capacity column heading to Pts/Sprint or Hrs/Sprint. On a project with Sprint Mode turned off the button reads Period instead, and the heading reads Pts/Period or Hrs/Period.

The period row with Sprint chosen — the sprint dropdown right after the Sprint button, set to All sprints, and the Pts/Sprint column reading one sprint's worth per person
The period row with Sprint chosen — the sprint dropdown right after the Sprint button, set to All sprints, and the Pts/Sprint column reading one sprint's worth per person

With Sprint chosen and the project having sprints with dates, a dropdown sits right after the Sprint button: it lists every sprint that has start and end dates, by name and dates, oldest first, plus All sprints — every active and future sprint, first start to last end (added 2026-09-02). With All sprints chosen the Total, Net, Remaining and Demand columns cover the whole span, and the Pts/Sprint column still shows one sprint's worth per person: a number typed there is set for every one of those sprints. It is the same number the Capacity cell in that sprint's card on the Sprints tab sets — both write to the person's weekly values, so neither screen can disagree with the other.

Because capacity is held per calendar week, two sprints that overlap a week share whatever is typed there — a sprint ending on a Wednesday and the next starting on the Thursday sit in one week. With Sprint chosen and one sprint picked (not All sprints), an amber line under the period row names the sprints that share a week with the one being viewed: This sprint shares a week with Sprint 8. Capacity is held per week, so a number typed here changes that sprint too.

Period navigation arrows

Arrows step the visible window forward or backward by one period, either side of a date box showing where the window starts. The date box is clickable: pick any date to jump straight to the period containing it. While the sprint dropdown is showing, the arrows and the date box are hidden — the dropdown is the whole control.

"Set capacity to get started" banner

Appears whenever the roster has people but nobody has any week-by-week capacity yet. It reads Set capacity to get started. Use the Pts column, or populate from your existing rates. (Hrs in a time project) with a Populate weeks (N weeks) button. Clicking it fills every week of the period currently shown, for every member, from that member's older single figure: hours per week (times their utilisation) in a time project, or points per sprint divided by the project's sprint length in a points project. Weeks that already hold a value are left alone. Once any member has weekly data the banner is gone.

The delivery forecast uses only the capacity in the planned sprints; nothing is carried past the last one. When the work does not fit, the Delivery Forecast card reads Does not fit the plan and says what to add, and when one person's work reaches furthest it names them at their own rate, worked out from the figures typed here — for example To finish, Ann would need about 12.5 more sprints at their 4 pts a sprint - add capacity for Ann, or move work to someone with room. Capacity is stored per calendar week, so a person given a figure for one week only has nothing in the sprints after it; those sprints are left out when their rate is worked out, rather than counted as zero, so a figure entered for a single week is not divided down into a fraction of a point a sprint. Work held by somebody with no capacity typed is named by the amber ⚠ mark after the Delivery Forecast card's title on the Dashboard and the Scope tab, rather than being silently spread across the team.

Add member button

At the right-hand end of the period row, a + Add member button opens the Add Team Member dialog:

The new member arrives with no capacity — nothing typed is no capacity, never a guessed figure (Don, 2026-09-01) — and the project's default utilisation; you type their capacity in the table. Their Pts/Wk (or Hrs/Wk) box reads empty until you do (26 September 2026 — it used to read 0, which is what you type when somebody is unavailable, so a roster nobody had filled in and a team somebody had zeroed looked the same). A typed 0 reads 0. Until a capacity is typed, the person's Net and Remaining columns read 0 pts (or 0 hrs): a 0 there means nothing typed or a typed 0, never a person fully booked. A person with nothing typed counts for nothing on the other screens, and the Critical Chain view lists their work as not on the chain by name rather than pacing it at a guess. People filled in automatically from a new project's assignees (the one-time pre-fill, which happens only when the project has no saved roster yet) each get 100% of that project — the same share a hand-added person starts with — so a capacity typed for them counts in full on the Sprints tab; split the share when a second project picks the same person up (2026-09-02).

Show total / Per selected project toggle

Two buttons on the period row, pushed to the right, shown whenever at least one project on the Projects tab is ticked Active. Show total (the default) shows each member's full capacity. To see one person's demand across every project added together, choose Program view in the project picker at the top right: the Demand column then counts their work in every registered project, and Show total reads it against the whole of their capacity, so a person shared between projects shows as overcommitted when their combined work is more than they have. Per selected project scales every capacity column by that member's allocation to the project currently selected in the header's project picker; it is greyed out until a project is picked there (hover text Pick a project in the header selector to enable). While it is on, a line under the period row reads Capacity scaled to <project> allocation %. Capacity fields read-only in this mode. (or Pick a project in the header to scale by allocation %. if the header's project is cleared while it is on) — the capacity and Util % fields cannot be edited, because they are scaled values, not stored values. Time off, holidays and demand still display unscaled.

Notices above the table

Team Members table

One row per member, in alphabetical order. The headings read in capitals, as the mockup draws them, and each column's unit is carried by its figures rather than its heading. There is no heading band over the table and nothing that can collapse it — the screen runs period row, table, summary strip. The two availability sections beneath the strip, grouped under an Availability detail heading, do collapse.

Selection

Identity

Capacity (period bulk)

Allocation

Time off and holidays

Net capacity

Until 9 October 2026 this was the Net figure multiplied by the share of the period's calendar time that had not happened yet — four and five eighths days of seven from a Wednesday lunchtime. That assumed a person's capacity was spread evenly across the period, so somebody with nothing typed for this week and a full week typed for next was counted at four fifths of what they actually have left. Don's ruling: "Use the exact answer. The app should be as correct as possible. No guessing or estimating if there is actual data to use instead."

Demand

Issue count and inline expand

Status badge

Removal

Per-member detail rows

Two inline expansions, plus the allocation popover:

Issues detail

Opened from the Issues cell. Lists every not-done issue assigned to the member that overlaps the period, with Jira key, summary, and size.

Time off detail

Opened from the Time Off cell. Lists every PTO entry in the period (date, reason, and what it costs) and every company holiday in the period (date, name, (recurring) for yearly ones, and what one day away costs that person). Each cost is in the same unit as the Time Off column — hours in a time project, points in a points project — so the lines add up to the figure on the row. There are no delete buttons in this detail row — remove time off from the calendar or the per-member time-off dialog, and holidays from the Company holidays section.

Allocation popover

A floating panel opened from the Alloc button. Its header reads Project allocations with a × close button. It lists every Active project on the Projects tab by key in a four-column grid (rows wrap when more than four projects exist); inactive projects are left out, and so are their allocations from the Σ totals. Each project card has two fields: a percent input (the share of this member's capacity dedicated to that project) and an editable "= X" line that shows the matching amount, labelled with its period — pts/sprint for points projects and hrs/wk for time projects. Edit either field and leaving it (or pressing Enter) saves the change; the other field recomputes from the member's current capacity. A single project cannot go above 100%, and a member's total across all projects cannot go above 100%: a larger figure is cut back, and an amber line at the top of the tab says so for six seconds (<name> is already N% allocated to other projects — capped at M% here so the total stays within 100%., or Allocation is capped at 100% per project.). Two Σ chips at the bottom sum the percents per unit — Σ Hrs: X% and Σ Pts: Y% — each turning red with a ⚠ marker when its total exceeds 100%. Setting a share to 0 sets it to 0 in both units. The popover closes on a click anywhere outside it (including the Show total and Per selected project buttons), Escape, the × button, or re-clicking the Alloc button.

Percent storage is the source of truth: when the member's capacity is edited in the row, every "= X" value in their popover updates immediately without any allocation edit. A 60% allocation stays 60% across capacity changes — that's the intent the planner expressed, not the absolute value.

Zero-allocation confirm

When the user edits an allocation in this popover from above zero down to zero and the member still has unfinished work assigned to that project (counted from the project's sprints, plus its backlog when Include backlog is on), a confirmation opens before the change saves. The title reads Zero allocation with assigned work; the message names the member, the project key, and the count of unfinished issues (e.g., "Sarah Chen has 3 unfinished issues assigned in AUTH. Setting allocation to 0 will leave them with no capacity for this project. Continue?"). The user picks Cancel (the field goes back to its previous value) or Set to 0 (the allocation is zeroed and the forecast recomputes). It does not fire when the member has no open issues on the project.

Per-member time-off dialog

Per-member Time Off dialog opened from
Per-member Time Off dialog opened from "view time off" — header with avatar and name, a summary line counting PTO days, holidays and the total in pts, entries grouped by month with a month total, and the Add time off form with date picker, duration dropdown, reason field, Add and Close buttons

Reached by the view time off link beside the member's name. A dialog over the tab with four parts:

Useful for entering a year of PTO upfront or for spotting clashes with a release window.

Time off calendar section

A folding section beneath the summary strip, under the Availability detail heading, named Time off calendar, closed when the tab loads. Its header carries the number of rows in the time off list beneath the calendar (0 entries) — the same month and member filter, with consecutive days for one person counted once. It contains a month-view calendar, controls for multi-day time-off entry, and that list.

Time off calendar with its entry count in the header, member chips, the four-colour day legend (weekend / holiday / time off / selected), and the click-to-select day grid
Time off calendar with its entry count in the header, member chips, the four-colour day legend (weekend / holiday / time off / selected), and the click-to-select day grid

Calendar navigation

Its own month bar with left/right arrows either side of the month name; the calendar's month is independent of the team table's period. Useful for editing forward time off while reading current-quarter capacity.

Member filter

A Show: row of chips, one per team member (avatar and first name), letting the user filter the calendar and the list to one or more members. A Clear button appears while any chip is ticked and resets to all members.

Legend

Four day colours: Weekend (light grey), Holiday (light blue), Time Off (pale orange), Selected (light green with a green outline). Beneath it, the line Click to select. Ctrl+click to toggle. Shift+click for range.

Day selection

Click a weekday to select it. Ctrl-click toggles a day in or out of the selection. Shift-click selects a range from the last clicked day to the current day, skipping weekends (Shift+Ctrl adds the range to the current selection). While days are selected, a bar reads N days selected with up to three buttons: Add time off (opens the dialog below), Delete time off (N) (shown only when the selected days hold entries; it removes every PTO entry on those days, for everyone), and Clear (deselects). Each person's time off drawn on a day also carries its own × button to delete that one entry.

Add time off dialog

Opened from Add time off in the selection bar. Its heading is the full date for one day, or N Days Selected with the date range for several; several days are also shown as chips, with an H badge on any day that already has a company holiday. The Add time off section (headed Add time off (N work days) with several days) has a Team Member dropdown, an Hours per day dropdown (Full Day (8h), Half Day (4h), 2 hours, 1 hour), a Reason field, and an Add time off button (Add time off for N days with several days). Days that are already company holidays, or already hold time off for that person, are skipped. For a single day, any existing time off is listed with Remove buttons, and an existing holiday is shown with a Remove holiday button. A + Mark as Company Holiday button opens a small form (name, Add, Cancel) for declaring the same days a holiday — shown unless every selected day already has a company holiday. Close shuts the dialog.

Time off list

Beneath the calendar, a four-column list of exactly what the calendar above is showing — same month, same member filter: Member, From, To, Impact. Consecutive days for one person are gathered into a single row, so a three-day absence reads as one line rather than three.

Impact is what that absence takes off the person's capacity, in the project's own unit, using the same deduction the Net column applies: hours in a time project (days when the project counts in days), and in a points project the member's daily points — their weekly points divided by five — for each day off, with booked hours turned into days at eight hours to the day. It is never raw hours subtracted from a points figure.

When the month holds no time off, the list reads No time off booked this month.

Company holidays section

Company holidays opened — the holiday count, each holiday with its date, name, Edit and Delete, and the row for adding one: a date, a name, the Yearly tick box and Add
Company holidays opened — the holiday count, each holiday with its date, name, Edit and Delete, and the row for adding one: a date, a name, the Yearly tick box and Add

A folding section beneath the time off calendar, named Company holidays, closed when the tab loads; its header carries the number of holidays (1 holiday). Each row shows the date (formatted as Jan 1), the name, a 🔄 mark for yearly holidays, and Edit / Delete buttons. The Edit button switches the row into inline edit mode (date input, name input, Yearly checkbox, Save / Cancel). The Delete button removes the holiday immediately. The add row at the bottom takes a date, a name (Holiday name), and a Yearly checkbox; its Add button is greyed out until both date and name are filled. A second holiday on a date that already has one is ignored.

Holidays apply company-wide and are taken off every member's net capacity automatically.

Total row

The last row of the team table adds up the whole roster — it does not change when the table is filtered to one member.

Every figure sits under its own heading, including when the Alloc column is present.

With Per selected project on, Total, Net and Remaining are scaled by each member's allocation; time off, holidays and demand totals stay unscaled.

Demand-vs-Capacity feed (no chart in this tab)

The Team & Capacity tab itself does not draw a demand-versus-capacity chart. The same data feeds the Project view on the What-If tab (its week-by-week plan), the Demand vs. Capacity section on the Scope tab, and the capacity figures on the Sprints tab. The link is one-way: configure here, see results elsewhere.

Estimation mode and time units

The whole tab adapts to the project's estimation mode:

The Time Off column is in hours in a time project and in points in a points project; time off itself is always booked in hours.

Per-week capacity is stored in whichever unit the project is in; switching modes does not convert stored values automatically. The whole roster is filed under the project's board, or under the project key when the project was added with Sprint mode off and has no board (2026-09-05); reading or saving it needs access to that board, or to that project.

Data persistence

Every change saves as soon as it is made — on leaving a field, on a button press, or on confirming a dialog. There is no Save button; a Saving... note shows while a save is under way. The roster, week-by-week capacity, utilisation, time off and holidays are saved as one record: in the Forge app, in the app's own storage, filed under the board or project key; in the connected web app, on the signed-in person's Jira account. Allocations (the Alloc column, the popover and the Share of <project> field) are saved separately, with the list of projects on the Projects tab.

One capacity per person, across every project (16 October 2026, finding 9). A capacity typed for a person on one project's Team & Capacity tab is saved, for the same weeks, for that person on every other registered project they are on that counts in the same unit, so the roster, the Alloc popover and the Projects tab's Team Allocation Matrix show the same figure for them. A project counting in another unit is left alone, because points and time are never converted into one another. If Jira refuses the save on another project, a line beside Saving... names it: Capacity saved here but Jira refused it on IBTG. Figures typed before this date are not changed until the person's capacity is next typed.

Removing a member can unassign that person's open issues in Jira — the only Jira write the tab makes, and only when the user ticks that box in the removal confirmation.

Cross-cutting modes and settings

How the numbers are computed

Effects on other parts of the app

© 2026 Project Commander · projectcommander.app · Support · Privacy · Security · Terms