🔗 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.csMarketValuationMethod.cs
API Endpoints:
POST /api/asset/applyMarketApproachGET /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.csIncomeValuationMethod.cs
API Endpoints:
POST /api/asset/applyIncomeApproachGET /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/recalculateGET /api/reports/GetGeneralValuationReports
UI Components:
ValuationDetail.tsxValuationEditor.tsx
Related Documentation: Valuation Fields Dictionary, Valuation Process Workflow
📋 Data Flow Explanation
Per the legacy documentation, the system operates with the following data flow:
- An initial asset register and attributes are sourced from the client and imported via Excel
- The user analyzes the data and creates an asset hierarchy and assumptions (the valuation framework)
- A job is created specifying which asset classes to value and the effective valuation date
- If field inspections are needed, data is exported to a mobile app for collection, then re-imported
- Once all data is captured, calculations are run to generate valuation results
- Reports are generated for client use
- After audit sign-off, the job is archived for historical reference
This flow directly maps to the technical components:
| Business Process Step | Technical Components | Documentation Reference |
|---|---|---|
| 1. Initial Import | ImportController.cs, ImportAssetRegisterSpreadsheetCommand.cs, AssetFileValidator.cs | Import Process, Field Data Collection Workflow |
| 2. Valuation Framework | AssetHierarchyController.cs, ComponentHierarchyController.cs, ValuationProfileController.cs | Valuation Process Workflow |
| 3. Job Creation | JobController.cs, Job.cs | Job Model, JobController |
| 4. Mobile Data Capture | ContentController.cs, ImportController.cs (export/import endpoints) | Mobile Data Collection, Field Data Collection Workflow |
| 5. Calculation | AssetController.cs (recalculate endpoint), valuation method implementations | Valuation Process Workflow, Valuation Fields Dictionary |
| 6. Reporting | ReportsController.cs, GetGeneralValuationReportsQuery.cs | Reporting Process Workflow, ReportingServices |
| 7. Archiving | JobController.cs (archive endpoint) | Valuation Process Workflow |
📋 Visual Business Process Maps
📋 Asset Valuation Workflow
Key Documentation References:
- Setup Phase: Valuation Process Workflow, JobController
- Data Collection: Field Data Collection Workflow, Mobile Data Collection
- Calculation: Valuation Process Workflow, Valuation Fields Dictionary
- Reporting: Reporting Process Workflow, Report Business Technical Map
📊 Asset Entity Relationships
Key Documentation References:
- Job and Asset Classes: Job Model, Asset Model
- Asset Hierarchy: Repository Structure, Asset Fields Dictionary
- Valuation Models: Valuation Fields Dictionary, ValuationProfile Model
- Component Structure: Component Model
🔗 Technical Implementation Map
Key Documentation References:
- Controllers: API Controllers Inventory, API Controllers
- Services: Services Inventory, Services
- Data Flow: Valuation Process Workflow, Field Data Collection Workflow
📋 Asset Valuation Process Flow
📋 1. Set up a File
| Business Process | Technical Implementation | Description | Documentation Reference |
|---|---|---|---|
| Create a 'client' and allocate a 'licence type' | ClientController, SubscriptionController | Manages client data and subscription types (Multi, single, 3rd party) | Valuation Process Workflow |
| Create 'Users' and allocate 'Roles' | UserController, RoleController | Handles user management and role-based access control | Valuation Process Workflow |
| Create the 'Valuation Framework' | AssetHierarchyController, ValuationProfileController, ValuationProfileRuleController | Sets up the asset hierarchy (AssetClass → AssetType → AssetSubType) and valuation profiles | Valuation Process Workflow |
| Create a valuation 'Job' | JobController | Creates and manages valuation jobs, with specific asset classes and effective date | Job Model, Valuation Process Workflow |
| Create and register Assets | AssetController, ImportController | Handles asset creation and bulk import from Excel | Asset Model, Valuation Process Workflow |
📋 2. Collect Key Data
| Business Process | Technical Implementation | Description | Documentation Reference |
|---|---|---|---|
| Field data collection | ContentController, DocumentController | Manages content and documents uploaded from iPads/mobile devices | Field Data Collection Workflow, Mobile Data Collection |
| Import data from client systems | ImportController, ImportLogController | Handles data import processes and logs | ImportController, Field Data Collection Workflow |
| Process and validate data | RevalidateService | Validates imported data against business rules | Valuation Process Workflow, Asset Fields Dictionary |
🧮 3. Valuation Calculations
| Business Process | Technical Implementation | Description | Documentation Reference |
|---|---|---|---|
| Apply valuation methodology | Asset.cs, Component.cs (CreateValuation methods) | Core valuation logic for assets and components | Asset Model, Component Model, Valuation Fields Dictionary |
| Run calculations | RefreshJobDataService | Refreshes calculated values for all assets in a job | Valuation Process Workflow |
| Cost approach valuation | ApportionmentCostValuationMethod, DirectCostValuationMethod classes | Implements different cost-based valuation approaches | Valuation Fields Dictionary, Valuation Fields Dictionary |
| Market approach valuation | MarketApproach.cs, MarketValuationMethod class | Implements market-based valuation | Valuation Fields Dictionary |
| Income approach valuation | IncomeApproach.cs, IncomeValuationMethod class | Implements income-based valuation | Valuation Fields Dictionary |
📄 4. Generate Reports
| Business Process | Technical Implementation | Description | Documentation Reference |
|---|---|---|---|
| Financial reporting valuation | GeneralValuationReport | Comprehensive valuation data export in Excel format | Report Business Technical Map, Reporting Process Workflow |
| Valuation methodology documentation | MethodologyReport | Documents valuation approaches and assumptions | Report Business Technical Map, ReportingServices |
| Executive summaries | SummaryReport | Provides graphical and tabular overview for management | Report Business Technical Map, ReportsController |
| Disclosures preparation | MovementsReconciliationReport, ChangesReport | Generates financial statement disclosure data | Report Business Technical Map, ReportingServices |
| Asset management outputs | RenewalCostReport, CostToBringToSatisfactoryReport | Generates asset management planning data | Report Business Technical Map, Reporting Process Workflow |
📊 Key Business Entities and Their Technical Implementation
📊 Asset Hierarchy
| Business Entity | Technical Model | Controller | Description |
|---|---|---|---|
| Asset Class | AssetClass.cs | AssetClassController | Top-level asset categorization (e.g., Buildings, Infrastructure) |
| Asset Type | AssetType.cs | AssetClassController | Second-level categorization within a class (e.g., Roads, Bridges) |
| Asset Sub-Type | AssetSubType.cs | AssetClassController | Detailed categorization (e.g., Sealed Roads, Unsealed Roads) |
| Asset | Asset.cs | AssetController | Individual asset with valuation characteristics |
📊 Component Hierarchy
| Business Entity | Technical Model | Controller | Description |
|---|---|---|---|
| Component Name | ComponentName.cs | ComponentHierarchyController | Top-level component categorization (e.g., Roof, Structure) |
| Component Type | ComponentType.cs | ComponentHierarchyController | Second-level categorization (e.g., Metal Roof, Tiled Roof) |
| Component Sub-Type | ComponentSubType.cs | ComponentHierarchyController | Detailed categorization (e.g., Colorbond, Zincalume) |
| Component | Component.cs | ComponentController | Individual component with specific lifecycle parameters |
📊 Valuation Parameters
| Business Entity | Technical Model | Controller | Description |
|---|---|---|---|
| Valuation Profiles | ValuationProfile.cs | ValuationProfileController | Defines consumption score to RSP/RUL relationships |
| Asset Assumptions | AssetAssumptions.cs | AssumptionsController | Stores unit rates and indices for asset types |
| Component Assumptions | ComponentAssumptions.cs | AssumptionsController | Stores lifecycle parameters for component types |
| Replacement Costs | AssetReplacementCost.cs, ComponentReplacementCost.cs | AssetReplacementCostController, ComponentReplacementCostController | Detailed replacement cost breakdowns |
📊 Valuation Results
| Business Entity | Technical Model | Description |
|---|---|---|
| Asset Valuation | AssetValuation.cs | Stores calculated valuation results for an asset |
| Component Valuation | ComponentValuation.cs | Stores calculated valuation results for a component |
| Replacement Cost Valuation | AssetReplacementCostValuation.cs, ComponentReplacementCostValuation.cs | Stores calculated replacement cost values |
🧮 Valuation Approaches and Implementation
🧮 Cost Approach
| Business Process | Technical Implementation | Description |
|---|---|---|
| Apportionment Cost | ApportionmentCostValuationMethod | Values assets by apportioning costs across components |
| Direct Cost | DirectCostValuationMethod | Values assets directly without component breakdown |
| Historical Cost | HistoricalCostValuationMethod | Values assets based on historical costs and depreciation |
🧮 Market Approach
| Business Process | Technical Implementation | Description |
|---|---|---|
| Market Value | MarketValuationMethod | Values assets based on market data |
| Land and Improvements | MarketApproach.cs (ImprovementsOnLand type) | Separates land value from improvements |
| Item Only | MarketApproach.cs (ItemOnly type) | Values items without land consideration |
🧮 Income Approach
| Business Process | Technical Implementation | Description |
|---|---|---|
| Income Capitalization | IncomeValuationMethod | Values assets based on income streams |
| Income Streams | IncomeApproachItem | Individual income sources with capitalization factors |
📊 Strategic Asset Management
| Business Process | Technical Implementation | Description |
|---|---|---|
| EasySAM | StrategyController | Lifecycle optimization modeling tool |
| Projected Renewals | RenewalCostReport | Projects renewal costs over time |
| Cost to Bring to Satisfactory | CostToBringToSatisfactoryReport | Calculates costs to restore assets to satisfactory condition |
| Condition Analysis | DistributionByScoreReport | Analyzes asset portfolio by condition |