unison-calculators
Scenario Calculator
HomeBuyerScenarioCalculator
The HomeBuyer scenario calculator can be used to calculate the outcome of a homebuyer deal.
To get started initialize a HomeBuyerCalculator instance and run the #calculate function.
For instance, I could run:
let calculator = new HomeBuyerScenarioCalculator()
calculator.calculate(500000,50000,100000,{
isNewConstruction: false
})
And expect
{
finalPriceChange: 100000,
initialHomeValue: 500000,
unisonInvestment: 50000,
unisonLeverage: 4,
unisonSharingPercentage: 0.4,
unisonInvestmentPercentage: 0.1,
futureSalePrice: 600000,
unisonPayment: 90000,
unisonShareInChange: 40000
}
API documentation:
new HomeBuyerScenarioCalculator()
calculator.calculate(500000, 50000, 100000, {
isNewConstruction: false
})
HomeOwnerScenarioCalculator
The HomeOwner scenario calculator can be used to calculate the outcome of a homebuyer deal.
To get started initialize a HomeBuyerCalculator instance and run the #calculate function.
For instance, I could run:
let calculator = new HomeOwnerScenarioCalculator()
calculator.calculate(500000, 50000, 100000, {
qualifiesForNewPricing: false
})
And expect
{
finalPriceChange: 100000,
initialHomeValue: 500000,
unisonInvestment: 50000,
unisonLeverage: 4,
unisonSharingPercentage: 0.4,
unisonInvestmentPercentage: 0.1,
futureSalePrice: 600000,
unisonPayment: 90000,
unisonShareInChange: 40000
}
API documentation:
new HomeOwnerScenarioCalculator()
calculator.calculate(500000, 50000, 100000, {
qualifiesForNewPricing: false
})
Mortgage Calculators
HomeBuyerMortgageCalculator
The homebuyer mortgage calculator can be used to calculate mortgage payments with and without Unison.
To get started, initialize a new calculator with (optionally) an object containing any assumptions you want to overwrite.
You can then use the #calculate function to see payment outcomes for various combinations.
For instance, I could run:
var calculator = new HomeBuyerMortgageCalculator({assumptions: {mortgageYears: 30}})
calculator.calculate(500000,.1,.1)
And expect:
{
assumptions: {
mortgageYears: 30,
annualMortgageInsurancePremium: 0.0074,
annualMortgageInterestRate: 0.04,
annualPropertyInsuranceRate: 0.003,
annualPropertyTaxRate: 0.0125,
},
monthlyMortgagePayment: -1910,
monthlyPMIPayment: 0,
monthlyPropertyTaxPayment: -521,
monthlyPropertyInsurancePayment: -125,
totalMonthlyPayments: -2556,
clientDownPaymentAmount: 50000,
unisonDownPaymentAmount: 50000,
downPaymentAmount: 100000,
hasPMI: false,
}
Here are the default assumptions for any new calculator:
const DEFAULT_ASSUMPTIONS = {
mortgageYears: 30,
annualMortgageInterestRate: .04,
annualPropertyTaxRate: .0125,
annualPropertyInsuranceRate: .003,
annualMortgageInsurancePremium: .0074,
}
API documentation:
new HomeBuyerMortgageCalculator(options)
calculator.calculate(500000,.1,.1)