Skip to content

Practice Guide: Financial Architecture for Enterprise Architecture

This guide shows how to use the Linked.Archi Financial Architecture extension to make cost a queryable dimension of your architecture knowledge graph. It addresses the gap identified by Gartner's 2025 Leadership Vision — that EA teams lack financial acumen and cannot articulate recommendations in terms of ROI, TCO, or cost-benefit trade-offs.

Extension artifacts:

  • extensions/financial-architecture/financial-architecture-onto.ttl — Classes, properties, viewpoints, concerns
  • extensions/financial-architecture/financial-architecture-tax.ttl — SKOS taxonomy (by cost type, investment type, analysis type)
  • extensions/financial-architecture/financial-architecture-shapes.ttl — SHACL governance rules
  • extensions/financial-architecture/financial-architecture-metamodel.ttl — Metamodel manifest (entry point)
  • extensions/financial-architecture/financial-architecture-reference-data.ttl — Cost categories, investment types, cost periods

The Problem

EA teams struggle to influence executive decisions because they cannot speak the language of finance:

  1. No cost visibility — "What does this capability cost us annually?" requires weeks of manual research across finance, procurement, and IT operations.
  2. No investment justification — Architecture modernization proposals lack ROI projections, NPV calculations, and payback period estimates.
  3. Invisible technical debt — The ongoing cost of workarounds and maintenance overhead is not tracked, making it impossible to justify remediation investment.
  4. No cost-informed decisions — Architecture decision records capture quality attributes and forces but not the financial trade-offs between options.
  5. Cloud cost opacity — FinOps data exists in cloud billing tools but is disconnected from the architecture model.

This extension does not replace financial planning tools. It makes cost a queryable dimension of the architecture knowledge graph — linked to applications, capabilities, value streams, decisions, and TIME assessments.


Quick Start

Step 1: Import the Extension

@prefix fina:   <https://meta.linked.archi/financial-architecture/onto#> .
@prefix finard: <https://meta.linked.archi/financial-architecture/reference-data#> .
@prefix arch:   <https://meta.linked.archi/core#> .

<https://model.example.com/my-portfolio#>
    a           owl:Ontology ;
    owl:imports <https://meta.linked.archi/financial-architecture/onto#> ;
    owl:imports <https://meta.linked.archi/archimate3/onto#> ;   ## optional
    owl:imports <https://meta.linked.archi/time-framework/onto#> ; ## optional — for TIME composition
.

Step 2: Attach Cost Models to Architecture Elements

@prefix fina:   <https://meta.linked.archi/financial-architecture/onto#> .
@prefix finard: <https://meta.linked.archi/financial-architecture/reference-data#> .
@prefix am:     <https://meta.linked.archi/archimate3/onto#> .
@prefix :       <https://model.example.com/my-portfolio#> .

## An application in the portfolio
:OrderManagementSystem a am:ApplicationComponent ;
    skos:prefLabel "Order Management System"@en ;
    fina:hasCostModel :OrderMgmtCostModel .

## Its cost model
:OrderMgmtCostModel a fina:CostModel ;
    skos:prefLabel "Order Management TCO Model"@en ;
    fina:currency "EUR" ;
    fina:tcoHorizonYears 3 ;
    fina:totalTCO 720000.00 ;
    fina:costModelDate "2026-04-01"^^xsd:date ;
    fina:hasCostItem [
        a fina:CostItem ;
        fina:costCategory finard:LicenseCost ;
        fina:annualAmount 85000.00 ;
        fina:costPeriodType finard:Annual ;
        skos:note "Oracle DB Enterprise license"@en ;
    ] , [
        a fina:CostItem ;
        fina:costCategory finard:InfrastructureCost ;
        fina:annualAmount 42000.00 ;
        fina:costPeriodType finard:Annual ;
        skos:note "3x VMs on-premises (prod + staging + DR)"@en ;
    ] , [
        a fina:CostItem ;
        fina:costCategory finard:LaborCost ;
        fina:annualAmount 110000.00 ;
        fina:costPeriodType finard:Annual ;
        skos:note "0.5 FTE operations + 0.3 FTE development"@en ;
    ] , [
        a fina:TechnicalDebtCost ;
        fina:costCategory finard:TechnicalDebtInterest ;
        fina:annualAmount 35000.00 ;
        fina:costPeriodType finard:Annual ;
        fina:debtType "interest" ;
        fina:debtDescription "Manual CSV export workaround due to missing API — 2 hours/week operations overhead"@en ;
    ] ;
    fina:allocatedToCapability :OrderFulfillmentCapability .

Step 3: Create Investment Cases

:OrderMgmtModernization a fina:InvestmentCase ;
    skos:prefLabel "Order Management Modernization"@en ;
    fina:investmentType finard:TransformInvestment ;
    fina:investmentAmount 450000.00 ;
    fina:investmentCurrency "EUR" ;
    fina:projectedROI 35.0 ;
    fina:paybackPeriodMonths 18 ;
    fina:investmentStatus "proposed" ;
    fina:investmentSponsor :VPEngineering .

:OrderManagementSystem fina:hasInvestmentCase :OrderMgmtModernization .

Step 4: Add Cost-Benefit Analysis to Decision Options

@prefix ad: <https://meta.linked.archi/arch-decision#> .

:ADR-OrderMgmtModernization a ad:Decision ;
    skos:prefLabel "ADR-060: Modernize Order Management System"@en ;
    ad:hasOption :Option-CloudMigration, :Option-Replatform, :Option-Tolerate .

:Option-CloudMigration a ad:Option ;
    skos:prefLabel "Migrate to cloud-native on AWS"@en ;
    fina:hasCostBenefitAnalysis [
        a fina:CostBenefitAnalysis ;
        fina:estimatedCost 450000.00 ;
        fina:estimatedBenefit 780000.00 ;
        fina:netPresentValue 220000.00 ;
        fina:discountRate 0.08 ;
        fina:analysisHorizonYears 3 ;
        fina:cbaCurrency "EUR" ;
        skos:note "Benefit: eliminate Oracle license (85K/yr) + reduce infra (30K/yr) + eliminate debt interest (35K/yr)"@en ;
    ] .

:Option-Replatform a ad:Option ;
    skos:prefLabel "Replatform to PostgreSQL on-premises"@en ;
    fina:hasCostBenefitAnalysis [
        a fina:CostBenefitAnalysis ;
        fina:estimatedCost 180000.00 ;
        fina:estimatedBenefit 340000.00 ;
        fina:netPresentValue 110000.00 ;
        fina:discountRate 0.08 ;
        fina:analysisHorizonYears 3 ;
        fina:cbaCurrency "EUR" ;
        skos:note "Benefit: eliminate Oracle license (85K/yr) + reduce debt interest (20K/yr)"@en ;
    ] .

:Option-Tolerate a ad:Option ;
    skos:prefLabel "Tolerate — maintain current system"@en ;
    fina:hasCostBenefitAnalysis [
        a fina:CostBenefitAnalysis ;
        fina:estimatedCost 0.00 ;
        fina:estimatedBenefit 0.00 ;
        fina:netPresentValue 0.00 ;
        fina:cbaCurrency "EUR" ;
        skos:note "No investment, but technical debt interest continues at 35K/yr"@en ;
    ] .

Step 5: Validate with SHACL

.scripts/validate.sh --shacl financial-architecture

Composing with the TIME Framework

The Financial Architecture extension is designed to compose with the TIME framework for cost-aware portfolio rationalization:

@prefix timefw: <https://meta.linked.archi/time-framework/onto#> .

:LegacyCRM a timefw:Application ;
    skos:prefLabel "Legacy CRM System"@en ;
    timefw:hasFitAssessment [
        a timefw:FitAssessment ;
        timefw:timeDisposition timefw:Migrate ;
    ] ;
    fina:hasCostModel [
        a fina:CostModel ;
        fina:currency "EUR" ;
        fina:tcoHorizonYears 3 ;
        fina:totalTCO 1250000.00 ;
        fina:hasCostItem [
            a fina:MigrationCost ;
            fina:costCategory finard:InfrastructureCost ;
            fina:oneTimeAmount 400000.00 ;
            skos:note "Estimated migration to Salesforce"@en ;
        ] ;
    ] .

This enables queries like "What is the total migration cost for all applications classified as Migrate?" — combining TIME disposition data with financial data in a single SPARQL query.


Key SPARQL Queries

Total annual cost per business capability

PREFIX fina: <https://meta.linked.archi/financial-architecture/onto#>
SELECT ?capability ?capLabel (SUM(?amount) AS ?totalAnnualCost) WHERE {
    ?costModel fina:allocatedToCapability ?capability .
    ?capability skos:prefLabel ?capLabel .
    ?costModel fina:hasCostItem ?item .
    ?item fina:annualAmount ?amount .
}
GROUP BY ?capability ?capLabel
ORDER BY DESC(?totalAnnualCost)

Technical debt interest across the portfolio

PREFIX fina: <https://meta.linked.archi/financial-architecture/onto#>
SELECT ?element ?label (SUM(?amount) AS ?annualDebtInterest) WHERE {
    ?element fina:hasCostModel ?cm .
    ?element skos:prefLabel ?label .
    ?cm fina:hasCostItem ?item .
    ?item a fina:TechnicalDebtCost ;
          fina:annualAmount ?amount .
}
GROUP BY ?element ?label
ORDER BY DESC(?annualDebtInterest)

Investment portfolio by Run/Grow/Transform

PREFIX fina:   <https://meta.linked.archi/financial-architecture/onto#>
PREFIX finard: <https://meta.linked.archi/financial-architecture/reference-data#>
SELECT ?type (SUM(?amount) AS ?totalInvestment) (COUNT(?ic) AS ?count) WHERE {
    ?ic a fina:InvestmentCase ;
        fina:investmentType ?type ;
        fina:investmentAmount ?amount .
}
GROUP BY ?type

Compare decision options by NPV

PREFIX fina: <https://meta.linked.archi/financial-architecture/onto#>
PREFIX ad:   <https://meta.linked.archi/arch-decision#>
SELECT ?decision ?decLabel ?option ?optLabel ?npv ?cost ?benefit WHERE {
    ?decision a ad:Decision ;
              skos:prefLabel ?decLabel ;
              ad:hasOption ?option .
    ?option skos:prefLabel ?optLabel ;
            fina:hasCostBenefitAnalysis ?cba .
    ?cba fina:netPresentValue ?npv ;
         fina:estimatedCost ?cost ;
         fina:estimatedBenefit ?benefit .
}
ORDER BY ?decision DESC(?npv)

Viewpoints

Viewpoint Purpose Concerns View Type
Cost Overview High-level cost landscape by capability, application, platform Total Cost of Ownership Matrix, Catalog
Investment Portfolio Run/Grow/Transform classification, ROI, payback Investment Prioritization Matrix, Diagram
Technical Debt Landscape Debt interest by application, remediation cost Technical Debt Visibility Matrix, Catalog
Cloud FinOps Cloud spending by provider, service, application Cloud Cost Optimization Matrix, Catalog

References