Skip to main content

🔗 Business-Technical Component Map

⚠️ Important Note:
This documentation maps business processes to technical components, but the actual source code is maintained in a separate repository and is not included in this documentation repository.

🏗️ Overview

This document maps the key business processes described in the APV documentation to their technical implementations in the codebase. It serves as a guide for understanding how business requirements are realized in the system and can help new developers understand the relationship between functional requirements and technical components.

📋 System Context from Legacy Documentation

Asset Valuer Pro was developed to address specific business challenges in valuation processes:

  • The need to onboard new valuation staff quickly without extensive training in valuation methodologies, accounting standards, Excel, and local government asset knowledge
  • The desire to leverage APV's intellectual property by making it available to external entities
  • The requirement to maintain data isolation between valuation processes and live ERP/finance systems

Key business drivers from the legacy documentation:

  • Valuations must be isolated from live data during the valuation process (which can take 6+ months)
  • Support for multiple valuation methodologies (Market, Income, and Cost approaches)
  • Generation of financial statement disclosures and asset management outputs

📋 Valuation Approaches from Legacy Documentation

Asset Valuer Pro supports three primary valuation approaches as defined in accounting standards:

🧮 Market Approach

Business Context: Used when there is an open and active market (e.g., residential properties, vehicles)

Technical Implementation:

  • MarketApproach.cs
  • MarketValuationMethod.cs

API Endpoints:

  • POST /api/asset/applyMarketApproach
  • GET /api/reports/GetMarketAnalysisReport

UI Components:

  • MarketApproachDetail.tsx

Related Documentation: Valuation Fields Dictionary, Valuation Process Workflow

🧮 Income Approach

Business Context: Used when value is driven by income-earning potential (e.g., commercial high-rise buildings)

Technical Implementation:

  • IncomeApproach.cs
  • IncomeValuationMethod.cs

API Endpoints:

  • POST /api/asset/applyIncomeApproach
  • GET /api/reports/GetIncomeAnalysisReport

UI Components:

  • IncomeApproachDetail.tsx

Related Documentation: Valuation Fields Dictionary, Valuation Process Workflow

🧮 Cost Approach

Business Context: Used where there is no market and assets are used to deliver community benefits (e.g., roads)

Technical Implementation:

  • Direct Cost: DirectCostValuationMethod.cs, DirectCostAssetValuationMethod.cs
  • Apportionment: ApportionmentCostValuationMethod.cs
  • Historical Cost: HistoricalCostValuationMethod.cs

API Endpoints:

  • POST /api/asset/recalculate
  • GET /api/reports/GetGeneralValuationReports

UI Components:

  • ValuationDetail.tsx
  • ValuationEditor.tsx

Related Documentation: Valuation Fields Dictionary, Valuation Process Workflow

📋 Data Flow Explanation

Per the legacy documentation, the system operates with the following data flow:

  1. An initial asset register and attributes are sourced from the client and imported via Excel
  2. The user analyzes the data and creates an asset hierarchy and assumptions (the valuation framework)
  3. A job is created specifying which asset classes to value and the effective valuation date
  4. If field inspections are needed, data is exported to a mobile app for collection, then re-imported
  5. Once all data is captured, calculations are run to generate valuation results
  6. Reports are generated for client use
  7. After audit sign-off, the job is archived for historical reference

This flow directly maps to the technical components:

Business Process StepTechnical ComponentsDocumentation Reference
1. Initial ImportImportController.cs, ImportAssetRegisterSpreadsheetCommand.cs, AssetFileValidator.csImport Process, Field Data Collection Workflow
2. Valuation FrameworkAssetHierarchyController.cs, ComponentHierarchyController.cs, ValuationProfileController.csValuation Process Workflow
3. Job CreationJobController.cs, Job.csJob Model, JobController
4. Mobile Data CaptureContentController.cs, ImportController.cs (export/import endpoints)Mobile Data Collection, Field Data Collection Workflow
5. CalculationAssetController.cs (recalculate endpoint), valuation method implementationsValuation Process Workflow, Valuation Fields Dictionary
6. ReportingReportsController.cs, GetGeneralValuationReportsQuery.csReporting Process Workflow, ReportingServices
7. ArchivingJobController.cs (archive endpoint)Valuation Process Workflow

📋 Visual Business Process Maps

📋 Asset Valuation Workflow

Key Documentation References:

📊 Asset Entity Relationships

Key Documentation References:

🔗 Technical Implementation Map

Key Documentation References:

📋 Asset Valuation Process Flow

📋 1. Set up a File

Business ProcessTechnical ImplementationDescriptionDocumentation Reference
Create a 'client' and allocate a 'licence type'ClientController, SubscriptionControllerManages client data and subscription types (Multi, single, 3rd party)Valuation Process Workflow
Create 'Users' and allocate 'Roles'UserController, RoleControllerHandles user management and role-based access controlValuation Process Workflow
Create the 'Valuation Framework'AssetHierarchyController, ValuationProfileController, ValuationProfileRuleControllerSets up the asset hierarchy (AssetClass → AssetType → AssetSubType) and valuation profilesValuation Process Workflow
Create a valuation 'Job'JobControllerCreates and manages valuation jobs, with specific asset classes and effective dateJob Model, Valuation Process Workflow
Create and register AssetsAssetController, ImportControllerHandles asset creation and bulk import from ExcelAsset Model, Valuation Process Workflow

📋 2. Collect Key Data

Business ProcessTechnical ImplementationDescriptionDocumentation Reference
Field data collectionContentController, DocumentControllerManages content and documents uploaded from iPads/mobile devicesField Data Collection Workflow, Mobile Data Collection
Import data from client systemsImportController, ImportLogControllerHandles data import processes and logsImportController, Field Data Collection Workflow
Process and validate dataRevalidateServiceValidates imported data against business rulesValuation Process Workflow, Asset Fields Dictionary

🧮 3. Valuation Calculations

Business ProcessTechnical ImplementationDescriptionDocumentation Reference
Apply valuation methodologyAsset.cs, Component.cs (CreateValuation methods)Core valuation logic for assets and componentsAsset Model, Component Model, Valuation Fields Dictionary
Run calculationsRefreshJobDataServiceRefreshes calculated values for all assets in a jobValuation Process Workflow
Cost approach valuationApportionmentCostValuationMethod, DirectCostValuationMethod classesImplements different cost-based valuation approachesValuation Fields Dictionary, Valuation Fields Dictionary
Market approach valuationMarketApproach.cs, MarketValuationMethod classImplements market-based valuationValuation Fields Dictionary
Income approach valuationIncomeApproach.cs, IncomeValuationMethod classImplements income-based valuationValuation Fields Dictionary

📄 4. Generate Reports

Business ProcessTechnical ImplementationDescriptionDocumentation Reference
Financial reporting valuationGeneralValuationReportComprehensive valuation data export in Excel formatReport Business Technical Map, Reporting Process Workflow
Valuation methodology documentationMethodologyReportDocuments valuation approaches and assumptionsReport Business Technical Map, ReportingServices
Executive summariesSummaryReportProvides graphical and tabular overview for managementReport Business Technical Map, ReportsController
Disclosures preparationMovementsReconciliationReport, ChangesReportGenerates financial statement disclosure dataReport Business Technical Map, ReportingServices
Asset management outputsRenewalCostReport, CostToBringToSatisfactoryReportGenerates asset management planning dataReport Business Technical Map, Reporting Process Workflow

📊 Key Business Entities and Their Technical Implementation

📊 Asset Hierarchy

Business EntityTechnical ModelControllerDescription
Asset ClassAssetClass.csAssetClassControllerTop-level asset categorization (e.g., Buildings, Infrastructure)
Asset TypeAssetType.csAssetClassControllerSecond-level categorization within a class (e.g., Roads, Bridges)
Asset Sub-TypeAssetSubType.csAssetClassControllerDetailed categorization (e.g., Sealed Roads, Unsealed Roads)
AssetAsset.csAssetControllerIndividual asset with valuation characteristics

📊 Component Hierarchy

Business EntityTechnical ModelControllerDescription
Component NameComponentName.csComponentHierarchyControllerTop-level component categorization (e.g., Roof, Structure)
Component TypeComponentType.csComponentHierarchyControllerSecond-level categorization (e.g., Metal Roof, Tiled Roof)
Component Sub-TypeComponentSubType.csComponentHierarchyControllerDetailed categorization (e.g., Colorbond, Zincalume)
ComponentComponent.csComponentControllerIndividual component with specific lifecycle parameters

📊 Valuation Parameters

Business EntityTechnical ModelControllerDescription
Valuation ProfilesValuationProfile.csValuationProfileControllerDefines consumption score to RSP/RUL relationships
Asset AssumptionsAssetAssumptions.csAssumptionsControllerStores unit rates and indices for asset types
Component AssumptionsComponentAssumptions.csAssumptionsControllerStores lifecycle parameters for component types
Replacement CostsAssetReplacementCost.cs, ComponentReplacementCost.csAssetReplacementCostController, ComponentReplacementCostControllerDetailed replacement cost breakdowns

📊 Valuation Results

Business EntityTechnical ModelDescription
Asset ValuationAssetValuation.csStores calculated valuation results for an asset
Component ValuationComponentValuation.csStores calculated valuation results for a component
Replacement Cost ValuationAssetReplacementCostValuation.cs, ComponentReplacementCostValuation.csStores calculated replacement cost values

🧮 Valuation Approaches and Implementation

🧮 Cost Approach

Business ProcessTechnical ImplementationDescription
Apportionment CostApportionmentCostValuationMethodValues assets by apportioning costs across components
Direct CostDirectCostValuationMethodValues assets directly without component breakdown
Historical CostHistoricalCostValuationMethodValues assets based on historical costs and depreciation

🧮 Market Approach

Business ProcessTechnical ImplementationDescription
Market ValueMarketValuationMethodValues assets based on market data
Land and ImprovementsMarketApproach.cs (ImprovementsOnLand type)Separates land value from improvements
Item OnlyMarketApproach.cs (ItemOnly type)Values items without land consideration

🧮 Income Approach

Business ProcessTechnical ImplementationDescription
Income CapitalizationIncomeValuationMethodValues assets based on income streams
Income StreamsIncomeApproachItemIndividual income sources with capitalization factors

📊 Strategic Asset Management

Business ProcessTechnical ImplementationDescription
EasySAMStrategyControllerLifecycle optimization modeling tool
Projected RenewalsRenewalCostReportProjects renewal costs over time
Cost to Bring to SatisfactoryCostToBringToSatisfactoryReportCalculates costs to restore assets to satisfactory condition
Condition AnalysisDistributionByScoreReportAnalyzes asset portfolio by condition