We're the top company on Modern Data Stack! Give us an upvote here.
bubbles svg

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')

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]
                            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]:
                            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
                        estimated_value = new_estimated_value
                    return estimated_value, stamp_duty(estimated_value)





More Data Apps like this