You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.6 KiB
Markdown
60 lines
2.6 KiB
Markdown
# Updated Equipment Acquisition & Simulation Algorithm
|
|
|
|
This document outlines the refactored logic for equipment acquisition cost calculation and simulation forecasting, implemented in February 2026.
|
|
|
|
## 1. Timeline Definitions
|
|
|
|
The simulation follows a strict temporal alignment to ensure consistency across the fleet:
|
|
|
|
| Parameter | Value | Description |
|
|
| :--- | :--- | :--- |
|
|
| **Base Year** | `2015` | The target year for all "Value of Money" (Net Present Value) calculations. |
|
|
| **Forecasting Start** | `2015` | The year from which future predictions and Economic Life reports begin. |
|
|
| **Calculation Start** | `2014` | The technical sequence start ($seq = 0$) used to establish an initial state. |
|
|
|
|
---
|
|
|
|
## 2. Capital Cost Adjustment (Value of Money)
|
|
|
|
To account for the time value of money, both the **Initial Acquisition Cost** and the **Replacement Cost** are normalized to the **2015 Base Year** using the project's inflation rate.
|
|
|
|
### 2.1 Adjustment Formula
|
|
|
|
The value of any cost $V$ at a specific $Year$ is adjusted to its equivalent value in $2015$ using the following formula:
|
|
|
|
$$V_{2015} = \frac{V_{Year}}{(1 + r)^{(Year - 2015)}}$$
|
|
|
|
Where:
|
|
- $V_{2015}$ = Adjusted value in 2015 terms.
|
|
- $V_{Year}$ = Raw cost recorded in the database or Maximo.
|
|
- $r$ = Inflation rate (from `lcc_ms_master`, defaults to $0.05$ if undefined).
|
|
- $Year$ = The year the cost was recorded ($Y_{acq}$ or $Y_{replace}$).
|
|
|
|
### 2.2 Total Acquisition Cost
|
|
|
|
The total capital cost $C_{total}$ stored in the master data is the sum of the adjusted initial cost and the adjusted first detected replacement cost:
|
|
|
|
$$C_{total} = \frac{C_{initial}}{(1+r)^{(Y_{acq} - 2015)}} + \frac{C_{replace}}{(1+r)^{(Y_{replace} - 2015)}}$$
|
|
|
|
---
|
|
|
|
## 3. Maintenance Cost Suppression Logic
|
|
|
|
A specific business rule is applied to prevent "double counting" or distorted maintenance records during major equipment replacement years:
|
|
|
|
### 3.1 Replacement Year Rule
|
|
In the **first year** where a `replace_cost > 0` is detected in Maximo ($Y_{replace}$):
|
|
- All **Material Costs** are set to $0.0$.
|
|
- All **Labor Costs** (and labor hours) are set to $0.0$.
|
|
|
|
### 3.2 Logic Rationale
|
|
The replacement cost is treated as a capital expenditure (CAPEX) that restarts the equipment's life cycle. Standard maintenance (OPEX) for that specific year is ignored because the replacement action supersedes regular repair tasks.
|
|
|
|
---
|
|
|
|
## 4. Implementation Reference
|
|
|
|
The logic is primarily contained in:
|
|
- `src/equipment/service.py`: `check_and_update_acquisition_data()` (Cost adjustments).
|
|
- `src/modules/equipment/insert_actual_data.py`: `query_data()` (Timeline and cost suppression).
|