@wealthx/borrow-capacity-lib
Version:
Borrow capacity calculation library for WealthX
51 lines (50 loc) • 2.9 kB
TypeScript
import { BorrowCapacityParams, LoanRepaymentParams, HEMCalculationParams, GrossToNetParams, NetToGrossParams } from "../types/calculations.types";
/**
* Calculate borrowing capacity based on income, expenses, and interest rate
* Formula based on: https://wealthx.atlassian.net/wiki/spaces/WD/pages/86343838/Finance+Borrow+capacity+formula
*
* @param params.monthlyIncome - NET Monthly income not including rental income
* @param params.monthlyExpense - NET Monthly expense
* @param params.interestRate - Annual interest rate (as decimal, e.g., 0.05 for 5%)
* @param params.bufferRate - Buffer of assessment rate (default 0.03)
* @param params.surplusAvailableForLoanRate - Actual portion of surplus available for loan (default 1.0)
* @param params.loanTerm - Default 30 years (360 months)
* @param params.numberOfApplicants - Number of applicants (default 1 for single, 2 for couple)
* @param params.numberOfDependants - Number of dependants (default 0)
* @param params.monthlyRentalIncome - NET Monthly rental income
* @returns Maximum borrowing capacity
*/
export declare function calculateBorrowCapacity(params: BorrowCapacityParams): number;
/**
* Calculate monthly repayment amount for a loan
* Formula based on: https://wealthx.atlassian.net/wiki/spaces/WD/pages/86343838/Finance+Borrow+capacity+formula
*
* @param params.interestRate - Annual interest rate (as decimal, e.g., 0.05 for 5%)
* @param params.loanTerm - Loan term in months (default 30 years)
* @returns Monthly repayment amount
*/
export declare function calculateLoanRepayment(params: LoanRepaymentParams): number;
/**
* Calculate HEM (Household Expenditure Measure) expense based on income, household composition, and period
*
* @param params.totalIncome - GROSS Total household ANNUAL income
* @param params.numberOfApplicants - Number of applicants (2 for couple, 1 for single)
* @param params.numberOfDependants - Number of dependants (0-3, capped at 3)
* @param params.period - Period type (weekly or monthly)
* @param params.bufferRate - Buffer rate to add on top (default 0.05 for 5%)
* @returns HEM expense amount
*/
export declare function calculateHEMExpense(params: HEMCalculationParams): number;
/**
* @param params.grossIncome - Annual gross income
* @param params.includeMedicareLevy - Whether to include 2% Medicare levy (default: true)
* @returns Net income after tax and Medicare levy
*/
export declare function grossToNet(params: GrossToNetParams): number;
/**
* Convert net income to gross income (reverse calculation)
* @param params.netIncome - Target net income after tax and Medicare levy
* @param params.includeMedicareLevy - Whether to include 2% Medicare levy (default: true)
* @returns Gross income required to achieve the target net income
*/
export declare function netToGross(params: NetToGrossParams): number;