You may use the following Python script to determine the final amount of a monthly savings plan. You are able to set the principle amount, the monthly payment, the interest rate and the term. The script also has the ability to compound the interest monthly, quarterly or annually.

``````def calculate_final_amount(principal, monthly_deposit, annual_interest_rate, num_of_years, compounding_period):
# Convert interest rate to monthly rate
monthly_interest_rate = (annual_interest_rate / 100) / 12

# Calculate the number of months
num_of_months = num_of_years * 12

# Calculate the number of compounding periods
if compounding_period == "monthly":
num_of_compounding_periods = num_of_months
elif compounding_period == "quarterly":
num_of_compounding_periods = num_of_years * 4
elif compounding_period == "annually":
num_of_compounding_periods = num_of_years
else:
raise ValueError("Invalid compounding period entered!")

# Calculate the final amount
final_amount = principal
for _ in range(num_of_compounding_periods):
final_amount += monthly_deposit
final_amount *= (1 + monthly_interest_rate)

return round(final_amount, 2)

# Example usage
principal_amount = float(input("Enter the principal amount: "))
monthly_deposit_amount = float(input("Enter the monthly deposit amount: "))
annual_interest_rate = float(input("Enter the annual interest rate: "))
num_of_years = int(input("Enter the number of years: "))
compounding_period = input("Enter the compounding period (monthly, quarterly, or annually): ")

final_amount = calculate_final_amount(
principal_amount, monthly_deposit_amount, annual_interest_rate, num_of_years, compounding_period
)

print("The final amount after {} years is: {:.2f}".format(num_of_years, final_amount))
``````