/// <summary> /// Creates an instance of the OperationRatios class /// </summary> public OperationRatios() { RevenueGrowth = new RevenueGrowth(); OperationIncomeGrowth = new OperationIncomeGrowth(); NetIncomeGrowth = new NetIncomeGrowth(); NetIncomeContOpsGrowth = new NetIncomeContOpsGrowth(); CFOGrowth = new CFOGrowth(); FCFGrowth = new FCFGrowth(); OperationRevenueGrowth3MonthAvg = new OperationRevenueGrowth3MonthAvg(); GrossMargin = new GrossMargin(); OperationMargin = new OperationMargin(); PretaxMargin = new PretaxMargin(); NetMargin = new NetMargin(); TaxRate = new TaxRate(); EBITMargin = new EBITMargin(); EBITDAMargin = new EBITDAMargin(); SalesPerEmployee = new SalesPerEmployee(); CurrentRatio = new CurrentRatio(); QuickRatio = new QuickRatio(); LongTermDebtTotalCapitalRatio = new LongTermDebtTotalCapitalRatio(); InterestCoverage = new InterestCoverage(); LongTermDebtEquityRatio = new LongTermDebtEquityRatio(); FinancialLeverage = new FinancialLeverage(); TotalDebtEquityRatio = new TotalDebtEquityRatio(); NormalizedNetProfitMargin = new NormalizedNetProfitMargin(); DaysInSales = new DaysInSales(); DaysInInventory = new DaysInInventory(); DaysInPayment = new DaysInPayment(); CashConversionCycle = new CashConversionCycle(); ReceivableTurnover = new ReceivableTurnover(); InventoryTurnover = new InventoryTurnover(); PaymentTurnover = new PaymentTurnover(); FixAssetsTuronver = new FixAssetsTuronver(); AssetsTurnover = new AssetsTurnover(); ROE = new ROE(); ROA = new ROA(); ROIC = new ROIC(); FCFSalesRatio = new FCFSalesRatio(); FCFNetIncomeRatio = new FCFNetIncomeRatio(); CapExSalesRatio = new CapExSalesRatio(); DebttoAssets = new DebttoAssets(); CommonEquityToAssets = new CommonEquityToAssets(); CapitalExpenditureAnnual5YrGrowth = new CapitalExpenditureAnnual5YrGrowth(); GrossProfitAnnual5YrGrowth = new GrossProfitAnnual5YrGrowth(); GrossMargin5YrAvg = new GrossMargin5YrAvg(); PostTaxMargin5YrAvg = new PostTaxMargin5YrAvg(); PreTaxMargin5YrAvg = new PreTaxMargin5YrAvg(); ProfitMargin5YrAvg = new ProfitMargin5YrAvg(); ROE5YrAvg = new ROE5YrAvg(); ROA5YrAvg = new ROA5YrAvg(); AVG5YrsROIC = new AVG5YrsROIC(); NormalizedROIC = new NormalizedROIC(); RegressionGrowthOperatingRevenue5Years = new RegressionGrowthOperatingRevenue5Years(); }
/// <summary> /// Sets values for non existing periods from a previous instance /// </summary> /// <remarks>Used to fill-forward values from previous dates</remarks> /// <param name="previous">The previous instance</param> public void UpdateValues(OperationRatios previous) { RevenueGrowth.UpdateValues(previous.RevenueGrowth); OperationIncomeGrowth.UpdateValues(previous.OperationIncomeGrowth); NetIncomeGrowth.UpdateValues(previous.NetIncomeGrowth); NetIncomeContOpsGrowth.UpdateValues(previous.NetIncomeContOpsGrowth); CFOGrowth.UpdateValues(previous.CFOGrowth); FCFGrowth.UpdateValues(previous.FCFGrowth); OperationRevenueGrowth3MonthAvg.UpdateValues(previous.OperationRevenueGrowth3MonthAvg); GrossMargin.UpdateValues(previous.GrossMargin); OperationMargin.UpdateValues(previous.OperationMargin); PretaxMargin.UpdateValues(previous.PretaxMargin); NetMargin.UpdateValues(previous.NetMargin); TaxRate.UpdateValues(previous.TaxRate); EBITMargin.UpdateValues(previous.EBITMargin); EBITDAMargin.UpdateValues(previous.EBITDAMargin); SalesPerEmployee.UpdateValues(previous.SalesPerEmployee); CurrentRatio.UpdateValues(previous.CurrentRatio); QuickRatio.UpdateValues(previous.QuickRatio); LongTermDebtTotalCapitalRatio.UpdateValues(previous.LongTermDebtTotalCapitalRatio); InterestCoverage.UpdateValues(previous.InterestCoverage); LongTermDebtEquityRatio.UpdateValues(previous.LongTermDebtEquityRatio); FinancialLeverage.UpdateValues(previous.FinancialLeverage); TotalDebtEquityRatio.UpdateValues(previous.TotalDebtEquityRatio); NormalizedNetProfitMargin.UpdateValues(previous.NormalizedNetProfitMargin); DaysInSales.UpdateValues(previous.DaysInSales); DaysInInventory.UpdateValues(previous.DaysInInventory); DaysInPayment.UpdateValues(previous.DaysInPayment); CashConversionCycle.UpdateValues(previous.CashConversionCycle); ReceivableTurnover.UpdateValues(previous.ReceivableTurnover); InventoryTurnover.UpdateValues(previous.InventoryTurnover); PaymentTurnover.UpdateValues(previous.PaymentTurnover); FixAssetsTuronver.UpdateValues(previous.FixAssetsTuronver); AssetsTurnover.UpdateValues(previous.AssetsTurnover); ROE.UpdateValues(previous.ROE); ROA.UpdateValues(previous.ROA); ROIC.UpdateValues(previous.ROIC); FCFSalesRatio.UpdateValues(previous.FCFSalesRatio); FCFNetIncomeRatio.UpdateValues(previous.FCFNetIncomeRatio); CapExSalesRatio.UpdateValues(previous.CapExSalesRatio); DebttoAssets.UpdateValues(previous.DebttoAssets); CommonEquityToAssets.UpdateValues(previous.CommonEquityToAssets); CapitalExpenditureAnnual5YrGrowth.UpdateValues(previous.CapitalExpenditureAnnual5YrGrowth); GrossProfitAnnual5YrGrowth.UpdateValues(previous.GrossProfitAnnual5YrGrowth); GrossMargin5YrAvg.UpdateValues(previous.GrossMargin5YrAvg); PostTaxMargin5YrAvg.UpdateValues(previous.PostTaxMargin5YrAvg); PreTaxMargin5YrAvg.UpdateValues(previous.PreTaxMargin5YrAvg); ProfitMargin5YrAvg.UpdateValues(previous.ProfitMargin5YrAvg); ROE5YrAvg.UpdateValues(previous.ROE5YrAvg); ROA5YrAvg.UpdateValues(previous.ROA5YrAvg); AVG5YrsROIC.UpdateValues(previous.AVG5YrsROIC); NormalizedROIC.UpdateValues(previous.NormalizedROIC); RegressionGrowthOperatingRevenue5Years.UpdateValues(previous.RegressionGrowthOperatingRevenue5Years); }
/// <summary> /// Sets values for non existing periods from a previous instance /// </summary> /// <remarks>Used to fill-forward values from previous dates</remarks> /// <param name="previous">The previous instance</param> public void UpdateValues(OperationRatios previous) { if (previous == null) { return; } if (RevenueGrowth != null) { RevenueGrowth.UpdateValues(previous.RevenueGrowth); } if (OperationIncomeGrowth != null) { OperationIncomeGrowth.UpdateValues(previous.OperationIncomeGrowth); } if (NetIncomeGrowth != null) { NetIncomeGrowth.UpdateValues(previous.NetIncomeGrowth); } if (NetIncomeContOpsGrowth != null) { NetIncomeContOpsGrowth.UpdateValues(previous.NetIncomeContOpsGrowth); } if (CFOGrowth != null) { CFOGrowth.UpdateValues(previous.CFOGrowth); } if (FCFGrowth != null) { FCFGrowth.UpdateValues(previous.FCFGrowth); } if (OperationRevenueGrowth3MonthAvg != null) { OperationRevenueGrowth3MonthAvg.UpdateValues(previous.OperationRevenueGrowth3MonthAvg); } if (GrossMargin != null) { GrossMargin.UpdateValues(previous.GrossMargin); } if (OperationMargin != null) { OperationMargin.UpdateValues(previous.OperationMargin); } if (PretaxMargin != null) { PretaxMargin.UpdateValues(previous.PretaxMargin); } if (NetMargin != null) { NetMargin.UpdateValues(previous.NetMargin); } if (TaxRate != null) { TaxRate.UpdateValues(previous.TaxRate); } if (EBITMargin != null) { EBITMargin.UpdateValues(previous.EBITMargin); } if (EBITDAMargin != null) { EBITDAMargin.UpdateValues(previous.EBITDAMargin); } if (SalesPerEmployee != null) { SalesPerEmployee.UpdateValues(previous.SalesPerEmployee); } if (CurrentRatio != null) { CurrentRatio.UpdateValues(previous.CurrentRatio); } if (QuickRatio != null) { QuickRatio.UpdateValues(previous.QuickRatio); } if (LongTermDebtTotalCapitalRatio != null) { LongTermDebtTotalCapitalRatio.UpdateValues(previous.LongTermDebtTotalCapitalRatio); } if (InterestCoverage != null) { InterestCoverage.UpdateValues(previous.InterestCoverage); } if (LongTermDebtEquityRatio != null) { LongTermDebtEquityRatio.UpdateValues(previous.LongTermDebtEquityRatio); } if (FinancialLeverage != null) { FinancialLeverage.UpdateValues(previous.FinancialLeverage); } if (TotalDebtEquityRatio != null) { TotalDebtEquityRatio.UpdateValues(previous.TotalDebtEquityRatio); } if (NormalizedNetProfitMargin != null) { NormalizedNetProfitMargin.UpdateValues(previous.NormalizedNetProfitMargin); } if (DaysInSales != null) { DaysInSales.UpdateValues(previous.DaysInSales); } if (DaysInInventory != null) { DaysInInventory.UpdateValues(previous.DaysInInventory); } if (DaysInPayment != null) { DaysInPayment.UpdateValues(previous.DaysInPayment); } if (CashConversionCycle != null) { CashConversionCycle.UpdateValues(previous.CashConversionCycle); } if (ReceivableTurnover != null) { ReceivableTurnover.UpdateValues(previous.ReceivableTurnover); } if (InventoryTurnover != null) { InventoryTurnover.UpdateValues(previous.InventoryTurnover); } if (PaymentTurnover != null) { PaymentTurnover.UpdateValues(previous.PaymentTurnover); } if (FixAssetsTuronver != null) { FixAssetsTuronver.UpdateValues(previous.FixAssetsTuronver); } if (AssetsTurnover != null) { AssetsTurnover.UpdateValues(previous.AssetsTurnover); } if (ROE != null) { ROE.UpdateValues(previous.ROE); } if (ROA != null) { ROA.UpdateValues(previous.ROA); } if (ROIC != null) { ROIC.UpdateValues(previous.ROIC); } if (FCFSalesRatio != null) { FCFSalesRatio.UpdateValues(previous.FCFSalesRatio); } if (FCFNetIncomeRatio != null) { FCFNetIncomeRatio.UpdateValues(previous.FCFNetIncomeRatio); } if (CapExSalesRatio != null) { CapExSalesRatio.UpdateValues(previous.CapExSalesRatio); } if (DebttoAssets != null) { DebttoAssets.UpdateValues(previous.DebttoAssets); } if (CommonEquityToAssets != null) { CommonEquityToAssets.UpdateValues(previous.CommonEquityToAssets); } if (CapitalExpenditureAnnual5YrGrowth != null) { CapitalExpenditureAnnual5YrGrowth.UpdateValues(previous.CapitalExpenditureAnnual5YrGrowth); } if (GrossProfitAnnual5YrGrowth != null) { GrossProfitAnnual5YrGrowth.UpdateValues(previous.GrossProfitAnnual5YrGrowth); } if (GrossMargin5YrAvg != null) { GrossMargin5YrAvg.UpdateValues(previous.GrossMargin5YrAvg); } if (PostTaxMargin5YrAvg != null) { PostTaxMargin5YrAvg.UpdateValues(previous.PostTaxMargin5YrAvg); } if (PreTaxMargin5YrAvg != null) { PreTaxMargin5YrAvg.UpdateValues(previous.PreTaxMargin5YrAvg); } if (ProfitMargin5YrAvg != null) { ProfitMargin5YrAvg.UpdateValues(previous.ProfitMargin5YrAvg); } if (ROE5YrAvg != null) { ROE5YrAvg.UpdateValues(previous.ROE5YrAvg); } if (ROA5YrAvg != null) { ROA5YrAvg.UpdateValues(previous.ROA5YrAvg); } if (AVG5YrsROIC != null) { AVG5YrsROIC.UpdateValues(previous.AVG5YrsROIC); } if (NormalizedROIC != null) { NormalizedROIC.UpdateValues(previous.NormalizedROIC); } if (RegressionGrowthOperatingRevenue5Years != null) { RegressionGrowthOperatingRevenue5Years.UpdateValues(previous.RegressionGrowthOperatingRevenue5Years); } }
/// <summary> /// Applies updated values from <paramref name="update"/> to this instance /// </summary> /// <remarks>Used to apply data updates to the current instance. This WILL overwrite existing values. Default update values are ignored.</remarks> /// <param name="update">The next data update for this instance</param> public void UpdateValues(OperationRatios update) { if (update == null) { return; } RevenueGrowth?.UpdateValues(update.RevenueGrowth); OperationIncomeGrowth?.UpdateValues(update.OperationIncomeGrowth); NetIncomeGrowth?.UpdateValues(update.NetIncomeGrowth); NetIncomeContOpsGrowth?.UpdateValues(update.NetIncomeContOpsGrowth); CFOGrowth?.UpdateValues(update.CFOGrowth); FCFGrowth?.UpdateValues(update.FCFGrowth); OperationRevenueGrowth3MonthAvg?.UpdateValues(update.OperationRevenueGrowth3MonthAvg); GrossMargin?.UpdateValues(update.GrossMargin); OperationMargin?.UpdateValues(update.OperationMargin); PretaxMargin?.UpdateValues(update.PretaxMargin); NetMargin?.UpdateValues(update.NetMargin); TaxRate?.UpdateValues(update.TaxRate); EBITMargin?.UpdateValues(update.EBITMargin); EBITDAMargin?.UpdateValues(update.EBITDAMargin); SalesPerEmployee?.UpdateValues(update.SalesPerEmployee); CurrentRatio?.UpdateValues(update.CurrentRatio); QuickRatio?.UpdateValues(update.QuickRatio); LongTermDebtTotalCapitalRatio?.UpdateValues(update.LongTermDebtTotalCapitalRatio); InterestCoverage?.UpdateValues(update.InterestCoverage); LongTermDebtEquityRatio?.UpdateValues(update.LongTermDebtEquityRatio); FinancialLeverage?.UpdateValues(update.FinancialLeverage); TotalDebtEquityRatio?.UpdateValues(update.TotalDebtEquityRatio); NormalizedNetProfitMargin?.UpdateValues(update.NormalizedNetProfitMargin); DaysInSales?.UpdateValues(update.DaysInSales); DaysInInventory?.UpdateValues(update.DaysInInventory); DaysInPayment?.UpdateValues(update.DaysInPayment); CashConversionCycle?.UpdateValues(update.CashConversionCycle); ReceivableTurnover?.UpdateValues(update.ReceivableTurnover); InventoryTurnover?.UpdateValues(update.InventoryTurnover); PaymentTurnover?.UpdateValues(update.PaymentTurnover); FixAssetsTuronver?.UpdateValues(update.FixAssetsTuronver); AssetsTurnover?.UpdateValues(update.AssetsTurnover); ROE?.UpdateValues(update.ROE); ROA?.UpdateValues(update.ROA); ROIC?.UpdateValues(update.ROIC); FCFSalesRatio?.UpdateValues(update.FCFSalesRatio); FCFNetIncomeRatio?.UpdateValues(update.FCFNetIncomeRatio); CapExSalesRatio?.UpdateValues(update.CapExSalesRatio); DebttoAssets?.UpdateValues(update.DebttoAssets); CommonEquityToAssets?.UpdateValues(update.CommonEquityToAssets); CapitalExpenditureAnnual5YrGrowth?.UpdateValues(update.CapitalExpenditureAnnual5YrGrowth); GrossProfitAnnual5YrGrowth?.UpdateValues(update.GrossProfitAnnual5YrGrowth); GrossMargin5YrAvg?.UpdateValues(update.GrossMargin5YrAvg); PostTaxMargin5YrAvg?.UpdateValues(update.PostTaxMargin5YrAvg); PreTaxMargin5YrAvg?.UpdateValues(update.PreTaxMargin5YrAvg); ProfitMargin5YrAvg?.UpdateValues(update.ProfitMargin5YrAvg); ROE5YrAvg?.UpdateValues(update.ROE5YrAvg); ROA5YrAvg?.UpdateValues(update.ROA5YrAvg); AVG5YrsROIC?.UpdateValues(update.AVG5YrsROIC); NormalizedROIC?.UpdateValues(update.NormalizedROIC); RegressionGrowthOperatingRevenue5Years?.UpdateValues(update.RegressionGrowthOperatingRevenue5Years); CashRatio?.UpdateValues(update.CashRatio); CashtoTotalAssets?.UpdateValues(update.CashtoTotalAssets); CapitalExpendituretoEBITDA?.UpdateValues(update.CapitalExpendituretoEBITDA); FCFtoCFO?.UpdateValues(update.FCFtoCFO); StockholdersEquityGrowth?.UpdateValues(update.StockholdersEquityGrowth); TotalAssetsGrowth?.UpdateValues(update.TotalAssetsGrowth); TotalLiabilitiesGrowth?.UpdateValues(update.TotalLiabilitiesGrowth); TotalDebtEquityRatioGrowth?.UpdateValues(update.TotalDebtEquityRatioGrowth); CashRatioGrowth?.UpdateValues(update.CashRatioGrowth); EBITDAGrowth?.UpdateValues(update.EBITDAGrowth); CashFlowfromFinancingGrowth?.UpdateValues(update.CashFlowfromFinancingGrowth); CashFlowfromInvestingGrowth?.UpdateValues(update.CashFlowfromInvestingGrowth); CapExGrowth?.UpdateValues(update.CapExGrowth); CurrentRatioGrowth?.UpdateValues(update.CurrentRatioGrowth); WorkingCapitalTurnoverRatio?.UpdateValues(update.WorkingCapitalTurnoverRatio); NetIncomePerEmployee?.UpdateValues(update.NetIncomePerEmployee); SolvencyRatio?.UpdateValues(update.SolvencyRatio); ExpenseRatio?.UpdateValues(update.ExpenseRatio); LossRatio?.UpdateValues(update.LossRatio); }