class RealEstateFinance::NetOperatingIncome

Attributes

accounting[R]
acquisition[R]
advertising[R]
maintenance[R]
management[R]
marketing[R]
monthly_income[R]
mortgage_interest[R]
non_payments[R]
repairs[R]
sale_costs[R]
taxes[R]
utilities[R]
vacancies[R]

Public Class Methods

new(monthly_income, vacancies, non_payments, taxes, mortgage_interest, marketing, advertising, management, legal, accounting, utilities, repairs, maintenance, acquisition, sale_costs) click to toggle source
# File lib/real_estate_finance/net_operating_income.rb, line 6
def initialize(monthly_income, vacancies, non_payments, taxes, mortgage_interest, marketing, advertising, management, legal, accounting, utilities, repairs, maintenance, acquisition, sale_costs)
  @monthly_income = monthly_income
  @vacancies = vacancies
  @non_payments = non_payments
  @taxes = taxes
  @mortgage_interest = mortgage_interest
  @marketing = marketing
  @advertising = advertising
  @management = management
  @legal = legal
  @accounting = accounting
  @utilities = utilities
  @repairs = repairs
  @maintenance = maintenance
  @acquisition = acquisition
  @sale_costs = sale_costs
end

Public Instance Methods

net_operating_income() click to toggle source
# File lib/real_estate_finance/net_operating_income.rb, line 24
def net_operating_income
  gpi = sprintf("%0.02f", (@monthly_income * 12)).to_f
  credit_losses = [@vacancies, @non_payments, @taxes, @mortgage_interest, @marketing, @advertising, @management, @legal, @accounting, @utilities, @repairs, @maintenance, @acquisition, @sale_costs]
  total_expenses = credit_losses.reduce(:+)
  expenses = sprintf("%0.02f", total_expenses).to_f
  noi = gpi - expenses
end