UK Property Affordability Calculator β¨
UK Property Affordability Calculator
Looking to leap into the UK property market? Discover your buying power with our intuitive Affordability Calculator, designed specifically for the UK housing landscape. Whether you’re a first-time buyer or considering your next property adventure, our tool demystifies the numbers for you.
Just enter your salary, savings, and monthly outgoings, and let our calculator do the rest. It will factor in the typical lending criteria, giving you an instant estimate of what you could afford. No need to wonder about mortgage multipliers or sift through your finances β we’ve streamlined the process.
With our Affordability Calculator, embark on your property search with confidence, knowing exactly where you stand. Dive in, it’s the first step to unlocking the door to your new home!
π©βπ» Scroll down to copy the function
create or replace function calculate_property_affordability(salary int, savings int, existing_property_value int, monthly_outgoings int, salary_multiplier float, is_first_time_buyer boolean) /* YOU MAY WISH TO CHANGE THE INPUT FIELD DATA TYPE, TO SUIT THE OUTPUT */
returns string
language python
runtime_version = 3.9
handler = 'calculate_property_affordability'
--packages = ('pandas','pandas')
as
$$
def calculate_property_affordability(salary, savings, existing_property_value=0, monthly_outgoings=0, salary_multiplier=4.45, is_first_time_buyer=False):
def stamp_duty(property_value):
if is_first_time_buyer:
thresholds = [425000, 925000, 1500000]
rates = [0.05, 0.10, 0.12]
else:
thresholds = [250000, 925000, 1500000]
rates = [0.05, 0.10, 0.12]
duty = 0
remaining_value = property_value
for i in range(len(thresholds)):
if remaining_value <= thresholds[i]:
break
taxable_value = min(remaining_value - thresholds[i], thresholds[i+1] - thresholds[i] if i+1 < len(thresholds) else float('inf')) duty += taxable_value * rates[i] remaining_value -= taxable_value if remaining_value > thresholds[-1]:
duty += (remaining_value - thresholds[-1]) * rates[-1]
return duty
loan_amount = salary * salary_multiplier
total_affordability = loan_amount + savings + existing_property_value - (monthly_outgoings * 12)
# Estimate property value by iteratively subtracting stamp duty until the value converges
estimated_value = total_affordability
while True:
sdlt = stamp_duty(estimated_value)
new_estimated_value = total_affordability - sdlt
if abs(new_estimated_value - estimated_value) < 1: # Convergence threshold
break
estimated_value = new_estimated_value
return estimated_value, stamp_duty(estimated_value)
$$;