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
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_valueandtech_fit). - Flagging TIME disposition discrepancies when a declared
timeproperty 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:
| Quadrant | Technical Fit | Business Value | Strategic Recommendation |
|---|---|---|---|
| Invest | High ($\ge$ threshold) | High ($\ge$ threshold) | Modernize, expand capabilities, allocate growth budget. |
| Migrate | Low (< threshold) | High ($\ge$ threshold) | High business utility with tech debt; modernize, re-platform, or rewrite. |
| Tolerate | High ($\ge$ threshold) | Low (< threshold) | Sound technology with modest business utility; maintain and run as-is. |
| Eliminate | Low (< 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:
| Classification | Semantic Color | Default Hex | Meaning |
|---|---|---|---|
| Invest | Emerald Green | #10b981 | Positive investment, health, growth. |
| Tolerate | Amber / Orange | #f59e0b | Caution, maintain as-is, acceptable risk. |
| Migrate | Blue | #3b82f6 | Transition, modernize, platform shift. |
| Eliminate | Rose Red | #ef4444 | Decommission, sunset, legacy cost drain. |
| Unclassified | Slate / Gray | #64748b | Assessment 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 warningNEA4009. - When an entity declares both
timeand a completescoreblock (business_valueandtech_fit), a contradiction between declared disposition and computed quadrant emits compiler warningNEA4015. - View closure depth is
Nonewith no relationships allowed (portfolio_matrixviews 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 .ea | Selector | Target Element |
|---|---|---|
time Invest | time.Invest | All points declaring Invest |
time Tolerate | time.Tolerate | All points declaring Tolerate |
time Migrate | time.Migrate | All points declaring Migrate |
time Eliminate | time.Eliminate | All 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 (includingvisible,color,font_size,font_weight).
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
timeproperty renders in the neutral style. - Dynamic Legend: The matrix legend reflects resolved styles and only lists TIME classes present in the current view.