Ejemplo n.º 1
0
def find_qualifying_loans(bank_data, credit_score, debt, income, loan,
                          home_value, monthly_debt_ratio, loan_to_value_ratio):

    # Run qualification filters
    bank_data_filtered = filter_max_loan_size(loan, bank_data)
    bank_data_filtered = filter_credit_score(credit_score, bank_data_filtered)
    bank_data_filtered = filter_debt_to_income(monthly_debt_ratio,
                                               bank_data_filtered)
    bank_data_filtered = filter_loan_to_value(loan_to_value_ratio,
                                              bank_data_filtered)
    # Printing the number of loans available.
    print(f"Found {len(bank_data_filtered)} qualifying loans")

    return bank_data_filtered
Ejemplo n.º 2
0
def find_qualifying_loans(bank_data, credit_score, debt, income, loan,
                          home_value):
    """Determine which loans the user qualifies for.

    Loan qualification criteria is based on:
        - Credit Score
        - Loan Size
        - Debit to Income ratio (calculated)
        - Loan to Value ratio (calculated)

    Args:
        bank_data (list): A list of bank data.
        credit_score (int): The applicant's current credit score.
        debt (float): The applicant's total monthly debt payments.
        income (float): The applicant's total monthly income.
        loan (float): The total loan amount applied for.
        home_value (float): The estimated home value.

    Returns:
        A list of the banks willing to underwrite the loan.

    """

    # Calculate the monthly debt ratio
    monthly_debt_ratio = calculate_monthly_debt_ratio(debt, income)
    print(f"The monthly debt to income ratio is {monthly_debt_ratio:.02f}")

    # Calculate loan to value ratio
    loan_to_value_ratio = calculate_loan_to_value_ratio(loan, home_value)
    print(f"The loan to value ratio is {loan_to_value_ratio:.02f}.")

    # Run qualification filters
    bank_data_filtered = filter_max_loan_size(loan, bank_data)
    bank_data_filtered = filter_credit_score(credit_score, bank_data_filtered)
    bank_data_filtered = filter_debt_to_income(monthly_debt_ratio,
                                               bank_data_filtered)
    bank_data_filtered = filter_loan_to_value(loan_to_value_ratio,
                                              bank_data_filtered)

    print(f"Found {len(bank_data_filtered)} qualifying loans")

    #Printing the bank_data_filtered to verify CSV file output after running save_csv
    #print(bank_data_filtered)

    return bank_data_filtered
def test_filters():
    csvpath = Path('../data/daily_rate_sheet.csv')
    bank_data = fileio.load_csv(csvpath)
    current_credit_score = 750
    debt = 1500
    income = 4000
    loan = 210000
    home_value = 250000

    monthly_debt_ratio = 0.375

    loan_to_value_ratio = 0.84

    filtered_bank_data = max_loan_size.filter_max_loan_size(loan, bank_data)
    filtered_bank_data = credit_score.filter_credit_score(
        current_credit_score, filtered_bank_data)
    filtered_bank_data = debt_to_income.filter_debt_to_income(
        monthly_debt_ratio, filtered_bank_data)
    filtered_bank_data = loan_to_value.filter_loan_to_value(
        loan_to_value_ratio, filtered_bank_data)

    assert len(filtered_bank_data) == 6