Skip to main content

multi-portfolios


Multi-Portfolio Management

ProBeya supports multiple concurrent portfolios within a single workspace, allowing PMO teams to segment their project landscape by fiscal year, business unit, strategic theme, or any other classification. Each portfolio is an independent container that groups projects, defines strategic objectives, and surfaces aggregated financial and schedule KPIs.

Overview​

A portfolio in ProBeya is a named, versioned grouping of projects scoped to a specific organization. Portfolios support filtering by status (active or archived) and fiscal year, enabling PMOs to manage multi-year planning cycles without mixing current and historical data. The portfolio list page at /{workspaceSlug}/portfolios presents all portfolios as a card grid with project counts and ownership information at a glance.

Multiple portfolios coexist independently within the same workspace. A project can be included in more than one portfolio and can be removed from a portfolio without being deleted — inclusion is tracked through a separate join table that records when a project was added and its priority rank within that portfolio.

Getting Started​

  1. Navigate to your workspace and click Portfolios in the sidebar.
  2. Click New Portfolio to open the creation dialog.
  3. Provide a name, description, fiscal year, and optional owner.
  4. Save. The portfolio is created in active status.
  5. Open the portfolio and click Add Project to include projects.
  6. Optionally define Strategic Objectives to track alignment.

Key Concepts​

Portfolio Status​

Portfolios have two statuses:

  • Active — the portfolio is operational and appears in default list views.
  • Archived — the portfolio is read-only and excluded from default views. Use the status filter to retrieve archived portfolios.

Archiving a portfolio does not affect the projects within it. Projects remain active in other portfolios and in the workspace.

Project Inclusion​

Projects are added to portfolios via an explicit inclusion action. Each inclusion record stores:

  • The priority rank of the project within the portfolio, used for drag-and-drop reordering.
  • The includedAt timestamp for audit purposes.

Removing a project from a portfolio sets an excludedAt timestamp (soft exclusion) rather than deleting the record. This preserves the history of which projects were ever part of the portfolio.

Strategic Objectives​

Each portfolio can have multiple strategic objectives that define the goals the portfolio is meant to achieve. Objectives are ordered alphabetically and serve as alignment anchors for scoring and selection models — see Scoring & Optimization for details on how objectives weight project scores.

Portfolio Summary KPIs​

The getById procedure returns enriched portfolio data including:

  • All active (non-excluded) projects with their priority rank.
  • All strategic objectives linked to the portfolio.

The portfolio router also exposes financial aggregations (NPV, IRR, payback period, ROI) and pipeline analytics (funnel analysis, gate success rates, average time per stage) through the broader PPM financial and analytics utilities.

How It Works​

Creating a Portfolio​

Portfolios are created via ppmPortfolios.create. The input is validated against createPortfolioSchema from @probeya/shared. The organizationId is always taken from the authenticated server context — it is never accepted from the client, ensuring strict tenant isolation.

Listing Portfolios​

ppmPortfolios.list returns a paginated set of portfolios filtered by:

FilterTypeDescription
statusactive | archivedInclude only portfolios with this status
fiscalYearintegerInclude only portfolios for this fiscal year
ownerIdstringInclude only portfolios owned by this user
limit / offsetintegerPagination controls (max 100 per page)

Results are sorted by fiscal year descending, then by name ascending. Each portfolio in the list is enriched with its active project count.

Adding and Removing Projects​

  • Add: ppmPortfolios.addProject validates that both the portfolio and project belong to the same organization before creating the inclusion record. If the project is already actively included, the operation is idempotent.
  • Remove: ppmPortfolios.removeProject soft-deletes the inclusion by setting excludedAt. The project remains in the workspace and any other portfolios.
  • Reorder: ppmPortfolios.reorderProjects accepts an ordered list of project IDs and updates priority ranks accordingly.

Portfolio Optimizer​

The portfolio router integrates with @probeya/shared/ppm/portfolio-optimizer to compute the optimal project mix given budget and resource constraints. This uses an efficient frontier algorithm to identify the set of projects that maximizes expected value for a given constraint boundary. See Scenarios & What-If for the planning interface built on top of this capability.

Configuration​

SettingLocationDescription
Portfolio name and descriptionPortfolio > EditFree-text fields
Fiscal yearPortfolio > EditInteger year for grouping and filtering
OwnerPortfolio > EditUser assigned as portfolio owner
Budget totalPortfolio > EditTarget budget envelope for the portfolio
Strategic objectivesPortfolio > Objectives tabWeighted goals for project alignment scoring

Permissions​

  • View portfolios: all organization members with PPM access.
  • Create portfolio: PPM admin or portfolio manager role.
  • Edit portfolio metadata: portfolio owner or PPM admin.
  • Archive portfolio: PPM admin only.
  • Add/remove projects: portfolio owner or PPM admin.
  • Manage strategic objectives: portfolio owner or PPM admin.

Tips & Best Practices​

  • One portfolio per fiscal year per business unit: keeping portfolios narrowly scoped makes fiscal-year-end archiving straightforward and prevents the portfolio list from becoming unmanageable.
  • Use strategic objectives early: defining objectives before adding projects enables the scoring model to rank candidate projects against them from the start of the intake process.
  • Archive rather than delete: archiving preserves the historical record of past portfolios, which is valuable for trend analysis and governance reports.
  • Priority rank matters for reporting: the order in which projects appear in a portfolio affects presentation in board-level reports. Set ranks deliberately to reflect strategic priority.
Fiscal year filtering

Set a fiscal year on every portfolio. The portfolio list page supports filtering by fiscal year, making it easy for PMO staff to jump between planning cycles without seeing irrelevant historical data.

Cross-org isolation

Projects can only be added to portfolios within the same organization. The API validates this on every addProject call and rejects any attempt to include a project that belongs to a different tenant.