Skip to main content

portfolio_matrix View

The portfolio_matrix view projects architectural entities onto an interactive 2D scatter matrix defined by Technical Fit (horizontal X-axis) and Business Value (vertical Y-axis). Configurable quadrant thresholds partition the matrix into the canonical Gartner TIME quadrants: Invest, Tolerate, Migrate, and Eliminate.


Visual Projection​

Click to explore
portfolio_matrix view visual diagramportfolio_matrix view visual diagram

Portfolio Matrix View displaying applications in TIME quadrants based on technical fit and business value scores


Purpose & Target Audience​

  • Target Audience: Chief Information Officers (CIOs), Head of Enterprise Architecture, IT Strategy Directors, Portfolio Managers.
  • Primary Use Cases:
    • Application Portfolio Management (APM) and rationalization.
    • Objective TIME classification based on numeric scoring (business_value and tech_fit).
    • Flagging TIME disposition discrepancies when a declared time property differs from its computed quadrant.
    • Discovering unscored applications and exporting scored portfolio metrics to CSV.

Quadrant Mapping & Thresholds​

By default, the matrix uses threshold (5.0, 5.0) on a 0.0 to 10.0 scale:

QuadrantTechnical FitBusiness ValueStrategic Recommendation
InvestHigh ($\ge$ threshold)High ($\ge$ threshold)Modernize, expand capabilities, allocate growth budget.
MigrateLow (< threshold)High ($\ge$ threshold)High business utility with tech debt; modernize, re-platform, or rewrite.
TolerateHigh ($\ge$ threshold)Low (< threshold)Sound technology with modest business utility; maintain and run as-is.
EliminateLow (< threshold)Low (< threshold)Low value and technical debt; decommission, consolidate, or sunset.

Semantic Color Standards​

The platform applies consistent, executive-standard semantic colors across the Portfolio Matrix and Dashboard:

ClassificationSemantic ColorDefault HexMeaning
InvestEmerald Green#10b981Positive investment, health, growth.
TolerateAmber / Orange#f59e0bCaution, maintain as-is, acceptable risk.
MigrateBlue#3b82f6Transition, modernize, platform shift.
EliminateRose Red#ef4444Decommission, sunset, legacy cost drain.
UnclassifiedSlate / Gray#64748bAssessment pending or unscored.

Configuring Thresholds in manifest.yaml​

Workspace architects can override default quadrant thresholds in manifest.yaml:

portfolio:
quadrant_thresholds:
tech_fit: 6.0
business_value: 5.5

Authoring Score Blocks in DSL​

Entities declare scores for business value and technical fit:

app CustomerPortal "Customer Portal Web App" {
score {
business_value 8.5
tech_fit 7.0
}
time Invest
}
  • Score values outside the workspace scale (default [0.0, 10.0]) emit compiler warning NEA4009.
  • When an entity declares both time and a complete score block (business_value and tech_fit), a contradiction between declared disposition and computed quadrant emits compiler warning NEA4015.
  • View closure depth is None with no relationships allowed (portfolio_matrix views allow [] verbs).

Example View Declaration​

views {
portfolio_matrix core_app_portfolio "Application Portfolio Matrix" {
description "TIME disposition analysis across retail banking applications"
include app where status == "active"
}
}

Styling TIME Points & Quadrants (time.<value>)​

Portfolio scatter points and quadrant regions can be styled using dotted selectors prefixed by the authoring keyword time:

Authored in .eaSelectorTarget Element
time Investtime.InvestAll points declaring Invest
time Toleratetime.TolerateAll points declaring Tolerate
time Migratetime.MigrateAll points declaring Migrate
time Eliminatetime.EliminateAll points declaring Eliminate

Applicable Properties​

TIME style rules support point and quadrant visual presentation:

  • fill: Marker color and corresponding quadrant background tint at theme low-opacity.
  • css_class: External CSS class name for styling markers.
  • custom_css: Inline SVG/HTML CSS declarations.
  • label { ... }: Label text styling (including visible, color, font_size, font_weight).
Disallowed Properties

TIME style rules reject shape, icon, arrow, and curve_type with a hard compiler error.

Synchronized Quadrant Tinting​

When a time.<value> rule sets fill, the corresponding quadrant region automatically tints with that resolved color at a subtle background opacity. For example, overriding time.Invest { fill "#059669" } recolors both the Invest points and the top-right Invest quadrant background together.

Conditional Styling with where​

Predicates evaluate against the owning entity (app, system, capability):

views {
portfolio_matrix core_app_portfolio "Application Portfolio Matrix" {
include app

# Highlight platform-owned migrate candidates
style time.Migrate where owner == "platform" {
fill "#2563eb"
css_class "platform-migrate"
}

# Urgently flag eliminate applications with high operational cost
style time.Eliminate where cost.amount > 100000 {
fill "#b91c1c"
}
}
}

Grouped Markers and Fallbacks​

  • Grouped Markers: When multiple entities share identical score coordinates, the clustered marker takes a resolved style only if every member resolves to the identical style. If members differ in resolved styles, the cluster renders in the neutral fallback style.
  • Unscored or Undeclared Entities: An entity with no declared time property renders in the neutral style.
  • Dynamic Legend: The matrix legend reflects resolved styles and only lists TIME classes present in the current view.