@axmit/investment-analytics-types
Version:
Types for investment-analytics services
200 lines (199 loc) • 5.62 kB
TypeScript
export interface ITimeLine {
years: number;
months: number;
monthsCF: number;
}
export interface IExportCacheFlow {
operatingIncome: number;
operatingExpenses: number;
netOperatingIncome: number;
bridgePayments: number;
mortgagePayments: number;
netOperatingCF: number;
purchaseCAPEX: number;
constructionCAPEX: number;
divestmentCF: number;
netInvestmentCF: number;
purchaseLoanIN: number;
refinancingLoanIN: number;
purchaseAmortisation: number;
refinanceAmortisation: number;
purchaseLoanOut: number;
refinancingLoanOut: number;
equityContribution: number;
newFinancingCF: number;
totalNetCF: number;
}
export interface IAssetsBuiltUp {
purchase: number;
constructionValue: number;
}
export interface IAssetsBalanceSheet {
assetValue: number;
cash: number;
totalAsset: number;
}
export interface IEquity {
atPurchase: number;
otherValue: number;
totalEquity: number;
}
export interface ILiabilities {
purchaseLoan: number;
refinancingLoan: number;
equityAndLiabilities: number;
}
export interface IPropertyIncome {
grossRent: number;
vacancyLoss: number;
operatingIncome: number;
operatingExpenses: number;
netOperatingIncome: number;
mortgagePayments: number;
cashFlow: number;
}
export interface IPropertyRatios {
capRatePurchase: number;
capRateMarketValue: number;
}
export interface IPropertyOverview {
marketValue: number;
loanBalance: number;
propertyEquity: number;
loanToValueProperty: number;
moneyInvested: number;
moneyLeftInTheDeal: number;
}
export interface ISalesAnalysis {
equity: number;
sellingCosts: number;
proceedsAfterSale: number;
cashBalance: number;
totalCashBack: number;
}
export interface ICompanyPL {
revenue: number;
OPEX: number;
NOI: number;
interestPayments: number;
EBT: number;
TAX: number;
netProfit: number;
}
export interface ICompanyBS {
assetValue: number;
cash: number;
totalAssets: number;
totalEquity: number;
atPurchase: number;
equityAndLiability: number;
}
export interface IOverviewCF {
netProfit: number;
amortization: number;
netLoanChange: number;
capex: number;
netCF: number;
}
export interface IOverviewCFDetailed {
netOperatingCF: number;
CAPEX: number;
divestment: number;
netInvestmentCF: number;
equityContribution: number;
newLoans: number;
loanRepayment: number;
netFinancingActivities: number;
netCF: number;
equityRatio: number;
cashOnCashReturn: number;
returnOnEquity: number;
}
export interface ILTGeneralPeriodicRow<T> {
monthly: T;
annual: T;
}
export interface ILTGeneralOperationRow<T> {
purchase: T;
refinance: T;
}
export interface ILTGeneralValues {
summary: {
initialMarketValue: ILTGeneralOperationRow<number>;
purchasePrice: number;
purchaseCost: number;
developmentCosts: number;
financialCosts: number;
firstMortgage: ILTGeneralOperationRow<number>;
purchaseLoan: number;
developmentLoan: number;
totalOwnCapitalNeeded: ILTGeneralOperationRow<number>;
totalMoneyNeeded: number;
initialImprovements: number;
initialCashNeeded: number;
squareFt: number;
purchasePerSquareFt: number;
netRentPerSqFtYear: number;
projectTimelineMonths: number;
};
mortgages: {
loanToCostRatio: ILTGeneralOperationRow<number>;
loanToValueRatio: ILTGeneralOperationRow<number>;
loanAmount: ILTGeneralOperationRow<number>;
termMonths: ILTGeneralOperationRow<number>;
developmentCost: number;
developmentCostMonth: number;
interestRate: ILTGeneralOperationRow<number>;
loanPayment: ILTGeneralOperationRow<number>;
};
mortgagesDetailed: {
loanType: ILTGeneralOperationRow<string>;
termYears: ILTGeneralOperationRow<number>;
payment: ILTGeneralOperationRow<number>;
loanAmount: ILTGeneralOperationRow<number>;
interestRate: ILTGeneralOperationRow<number>;
};
income: {
grossRent: ILTGeneralPeriodicRow<number>;
vacancyLoss: ILTGeneralPeriodicRow<number>;
operatingIncome: ILTGeneralPeriodicRow<number>;
};
expenses: {
managementFees: ILTGeneralPeriodicRow<number>;
majorOperatingExpenses: ILTGeneralPeriodicRow<number>;
};
netPerformance: {
netOperatingIncome: ILTGeneralPeriodicRow<number>;
mortgagePayments: ILTGeneralPeriodicRow<number>;
cashFlow: ILTGeneralPeriodicRow<number>;
};
assumptions: {
appreciationRate: number;
incomeInflationRate: number;
expenseInflationRate: number;
salesCosts: number;
propertySaleYear: number;
};
loanOptions: {
typeOfLoan: string;
typeOfFinancing: string;
loanPaymentFrequency: string;
};
}
export interface ILongTerm {
timeLine: ITimeLine[];
exportCacheFlow: IExportCacheFlow[];
assetsBuiltUp: IAssetsBuiltUp[];
assetsBalanceSheet: IAssetsBalanceSheet[];
equity: IEquity[];
liabilities: ILiabilities[];
propertyIncome: IPropertyIncome[];
propertyRatios: IPropertyRatios[];
propertyOverview: IPropertyOverview[];
salesAnalysis: ISalesAnalysis[];
companyPL: ICompanyPL[];
companyBS: ICompanyBS[];
overviewCF: IOverviewCF[];
overviewCFDetailed: IOverviewCFDetailed[];
general: ILTGeneralValues;
}