pub struct EarnedValueMetric {Show 14 fields
pub id: String,
pub project_id: String,
pub measurement_date: NaiveDate,
pub bac: Decimal,
pub planned_value: Decimal,
pub earned_value: Decimal,
pub actual_cost: Decimal,
pub schedule_variance: Decimal,
pub cost_variance: Decimal,
pub spi: Decimal,
pub cpi: Decimal,
pub eac: Decimal,
pub etc: Decimal,
pub tcpi: Decimal,
}Expand description
Earned Value Management metrics for a project at a point in time.
EVM formulas:
- SV (Schedule Variance) = EV - PV
- CV (Cost Variance) = EV - AC
- SPI (Schedule Performance Index) = EV / PV
- CPI (Cost Performance Index) = EV / AC
- EAC (Estimate at Completion) = BAC / CPI
- ETC (Estimate to Complete) = EAC - AC
- TCPI (To-Complete Performance Index) = (BAC - EV) / (BAC - AC)
Fields§
§id: StringUnique metric ID
project_id: StringProject ID
measurement_date: NaiveDateMeasurement date
bac: DecimalBudget at Completion (total baseline budget)
planned_value: DecimalPlanned Value (BCWS — Budgeted Cost of Work Scheduled)
earned_value: DecimalEarned Value (BCWP — Budgeted Cost of Work Performed)
actual_cost: DecimalActual Cost (ACWP — Actual Cost of Work Performed)
schedule_variance: DecimalSchedule Variance (EV - PV)
cost_variance: DecimalCost Variance (EV - AC)
spi: DecimalSchedule Performance Index (EV / PV)
cpi: DecimalCost Performance Index (EV / AC)
eac: DecimalEstimate at Completion (BAC / CPI)
etc: DecimalEstimate to Complete (EAC - AC)
tcpi: DecimalTo-Complete Performance Index ((BAC - EV) / (BAC - AC))
Implementations§
Source§impl EarnedValueMetric
impl EarnedValueMetric
Sourcepub fn compute(
id: impl Into<String>,
project_id: impl Into<String>,
measurement_date: NaiveDate,
bac: Decimal,
planned_value: Decimal,
earned_value: Decimal,
actual_cost: Decimal,
) -> Self
pub fn compute( id: impl Into<String>, project_id: impl Into<String>, measurement_date: NaiveDate, bac: Decimal, planned_value: Decimal, earned_value: Decimal, actual_cost: Decimal, ) -> Self
Creates a new EVM metric by computing all derived values from the three fundamental inputs: PV, EV, AC, and BAC.
Sourcepub fn is_ahead_of_schedule(&self) -> bool
pub fn is_ahead_of_schedule(&self) -> bool
Returns true if the project is ahead of schedule (SPI > 1.0).
Sourcepub fn is_under_budget(&self) -> bool
pub fn is_under_budget(&self) -> bool
Returns true if the project is under budget (CPI > 1.0).
Sourcepub fn is_healthy(&self) -> bool
pub fn is_healthy(&self) -> bool
Returns true if the project is both on schedule and on budget.
Sourcepub fn variance_at_completion(&self) -> Decimal
pub fn variance_at_completion(&self) -> Decimal
Returns the variance at completion (BAC - EAC).
Trait Implementations§
Source§impl Clone for EarnedValueMetric
impl Clone for EarnedValueMetric
Source§fn clone(&self) -> EarnedValueMetric
fn clone(&self) -> EarnedValueMetric
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more