Tenha em atenção que não existe uma fórmula padrão para calcular os indicadores de preços de propriedades. As nossas fórmulas diferem do Indicador Case-Shiller, Indicador de Preço Imobiliário do Reino Unido, etc.
Relação Preço para Rendimento é uma medida básica para a acessibilidade de compra de um apartamento (menor é melhor). É geralmente calculado como a razão entre o valor mediano dos preços dos apartamentos para o valor mediano dos rendimentos familiares disponíveis, expresso como anos de rendimentos (apesar das variações serem utilizados noutros lugares). A nossa fórmula assume e utiliza:
1.5 * salário líquido médio (é assumido que 50% é a percentagem de mulheres trabalhadoras)Crédito como Percentagem de Rendimento é a relação entre o atual custo mensal do crédito para o rendimento base familiar (menor é melhor). Salário mensal médio é utilizado para estimar o rendimento familiar. Assume que 100% do crédito é utilizado em 20 anos para a casa (ou apartamento) de 90 metros quadrados cujo preço por metro quadrado é a média dos preços do metro quadrado no centro da cidade e fora do centro da cidade.
Indicador de Acessibilidade de Empréstimo é o inverso do crédito como percentagem de rendimento. A fórmula utilizada é : (100 / crédito como percentagem de rendimento) (maior é melhor).
Relação Preço para Renda é o custo médio de propriedade a dividir pelo valor recebido da renda (se comprando para alugar) ou a renda estimada que seria paga se alugando (se comprando para morar). Valores menores sugerem que é melhor comprar do que arrendar, e valores maiores sugerem que é melhor arrendar do que comprar. A nossa fórmula para estimar a renda por metro quadrado assume que um apartemento de 1 quarto tem 50 metros quadrados e um apartamento de 3 quartos tem 110 metros quadrados. Não tem em consideração impostos ou custos de manutenção.
Rendimento Bruto é o total de renda bruta anual a dividir pelo preço da casa (expresso em percentagens). Maior é melhor.
Estas fórmulas escritas na linguagem de programação Java são as seguintes:
public double calculateMedianHousePriceOutsideOfCentre() {
return getBuyPricePerSquareMeterOutsideOfCentre() * 90;
}
public double calculateMedianHousePriceCityCentre() {
return getBuyPricePerSquareMeterCityCentre() * 90;
}
public double calculateMedianHousePrice() {
return (calculateMedianHousePriceCityCentre() + calculateMedianHousePriceOutsideOfCentre()) / 2;
}
public double calculateHousePriceToIncomeRatio() {
return calculateMedianHousePrice() / calculateMedianFamilyDisposableIncomeYearly();
}
double calculateMonthlyPaymentFor20YearsMontgage() {
double monthlyInterestRate = (getCreditInterestRateAnnual() / 12) / 100;
double leaseAmount = calculateMedianHousePrice();
double monthlyPayment = leaseAmount / ( (1 - (1 / Math.pow(1 + monthlyInterestRate, 240))) / monthlyInterestRate);
return monthlyPayment;
}
public double calculateMortgagePercentageOfIncome() {
return calculateMonthlyPaymentFor20YearsMontgage() / calculateMedianFamilyDisposableIncomeMonthly() * 100;
}
public double calculateAffordabilityIndex() {
return 100 / calculateMortgagePercentageOfIncome();
}
public double calculateAverageYearlyRentPerSquareMeterCityCentre() {
return (getRent50SqmCityCentre() / 50 + getRent110SqmCityCentre() / 110) / 2.0 * 12.0;
}
public double calculateAverageYearlyRentPerSquareMeterOutsideOfCentre() {
return (getRent50SqmOutsideCentre() / 50 + getRent110SqmOutsideCentre() / 110) / 2.0 * 12.0;
}
public double calculatePriceToRentRatioCityCentre() {
return getBuyPricePerSquareMeterCityCentre() / calculateAverageYearlyRentPerSquareMeterCityCentre();
}
public double calculatePriceToRentRatioOusideOfCentre() {
return getBuyPricePerSquareMeterOutsideOfCentre() / calculateAverageYearlyRentPerSquareMeterOutsideOfCentre();
}
public double calculateGrossRentalYieldCityCentre() {
return calculateAverageYearlyRentPerSquareMeterCityCentre() / getBuyPricePerSquareMeterCityCentre() * 100;
}
public double calculateGrossRentalYieldOutsideOfCentre() {
return calculateAverageYearlyRentPerSquareMeterOutsideOfCentre() / getBuyPricePerSquareMeterOutsideOfCentre() * 100;
}