protected void calculate_button_Click(object sender, EventArgs e)
    {
        salesPrice         = Convert.ToDouble(sales_price_input.Value);
        downpaymentPercent = Convert.ToDouble(downpayment_input.Value) / 100.0;
        downpaymentValue   = salesPrice * downpaymentPercent;
        firstLienLTV       = 1.0 - downpaymentPercent;
        firstLienBalance   = salesPrice * firstLienLTV;

        downpayment.Text        = downpaymentValue.ToString("C2");
        first_lien_ltv.Text     = firstLienLTV.ToString("P");
        first_lien_balance.Text = firstLienBalance.ToString("C2");

        closingCost = Convert.ToDouble(closing_cost.Value);

        loanInterestRate = Convert.ToDouble(loan_interest_rate_input.Value) / 100.0;
        loanTerm         = Convert.ToDouble(loan_term_input.Value);
        loanBalance      = firstLienBalance;
        monthlyPayment   = Financial.Pmt(loanInterestRate / 12, loanTerm, loanBalance);

        loan_balance.Text    = loanBalance.ToString("C2");
        monthly_payment.Text = monthlyPayment.ToString("C2");

        yearlyTaxRate       = Convert.ToDouble(yearly_tax_rate.Value) / 100.0;
        yearlyInsuranceRate = Convert.ToDouble(yearly_insurance_rate.Value) / 100.0;
        monthlyTaxes        = -salesPrice * yearlyTaxRate / 12.0;
        monthlyInsurancePmt = -salesPrice * yearlyInsuranceRate / 12.0;

        monthly_taxes.Text         = monthlyTaxes.ToString("C2");
        monthly_insurance_pmt.Text = monthlyInsurancePmt.ToString("C2");

        monthlyMaintenance = Convert.ToDouble(monthly_maintenance.Value);
        otherExpense       = Convert.ToDouble(other_expense.Value);

        totalMonthlyCost        = otherExpense + monthlyMaintenance + monthlyInsurancePmt + monthlyTaxes + monthlyPayment;
        total_monthly_cost.Text = totalMonthlyCost.ToString("C2");

        numberOfUnits     = Convert.ToDouble(number_of_units.Value);
        rentPerUnit       = Convert.ToDouble(rent_per_unit.Value);
        monthlyRent       = numberOfUnits * rentPerUnit;
        monthly_rent.Text = monthlyRent.ToString("C2");

        monthlyPL      = monthlyRent + totalMonthlyCost;
        annualPL       = monthlyPL * 12.0;
        cashReturn     = monthlyRent * 12.0 / salesPrice;
        totalCapital   = downpaymentValue + closingCost;
        breakevenYears = totalCapital / annualPL;
        ROE            = annualPL / totalCapital;

        mortgage_label.Text  = String.Format("{0}-YR Mortgage", (loanTerm / 12.0).ToString("G3"));
        monthly_pl.Text      = monthlyPL.ToString("C2");
        annual_pl.Text       = annualPL.ToString("C2");
        cash_return.Text     = cashReturn.ToString("P");
        roe_.Text            = ROE.ToString("P");
        breakeven_years.Text = breakevenYears.ToString("G3");
        total_capital.Text   = totalCapital.ToString("C2");
    }
示例#2
0
 /// <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();
 }
示例#3
0
 /// <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);
 }
示例#4
0
        /// <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);
            }
        }
示例#5
0
        /// <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);
        }