calculators / app.py
dindizz's picture
Update app.py
718e167 verified
import gradio as gr
# Function to calculate total returns
def calculate_returns(initial_investment, annual_dividend_yield, monthly_sip, expected_return, time_duration):
months = time_duration * 12
monthly_return = (1 + expected_return) ** (1 / 12) - 1
total_value = initial_investment
for i in range(months):
total_value = (total_value + monthly_sip) * (1 + monthly_return)
total_value += total_value * (annual_dividend_yield / 12) # Add monthly dividend yield
return total_value
# Gradio interface function
def total_returns_calculator(initial_investment, annual_dividend_yield, monthly_sip, expected_return, time_duration):
annual_dividend_yield /= 100 # Convert percentage to decimal
expected_return /= 100 # Convert percentage to decimal
total_returns = calculate_returns(initial_investment, annual_dividend_yield, monthly_sip, expected_return, time_duration)
return f"Total Returns after {time_duration} years: {total_returns:.2f}"
# Gradio interface setup
inputs = [
gr.Number(label="Initial Investment Corpus"),
gr.Number(label="Annual Dividend Yield (%)"),
gr.Number(label="Monthly SIP Contribution"),
gr.Number(label="Expected Annual Return (%)"),
gr.Number(label="Time Duration (years)")
]
outputs = gr.Textbox(label="Total Returns")
gr.Interface(
fn=total_returns_calculator,
inputs=inputs,
outputs=outputs,
title="Total Returns Calculator",
description="Calculate the total returns of your investment with annual dividend yield and monthly SIP contributions."
).launch(share=True)