ICR / app.py
Gan1-V's picture
requirements.txt.
053c8d7 verified
import gradio as gr
import pandas as pd
def calculate_icr(
ebit,
term_loans,
debentures,
bonds,
wc_loans,
commercial_papers,
intercorp_deposits,
lease_liabilities,
ecb,
convertible_instruments
):
interest_components = {
"Interest on Term Loans": term_loans,
"Interest on Debentures": debentures,
"Interest on Bonds": bonds,
"Interest on Working Capital Loans": wc_loans,
"Interest on Commercial Papers": commercial_papers,
"Interest on Intercorporate Deposits": intercorp_deposits,
"Interest on Lease Liabilities": lease_liabilities,
"Interest on External Commercial Borrowings": ecb,
"Interest on Convertible Instruments": convertible_instruments
}
total_interest = sum(interest_components.values())
icr = ebit / total_interest if total_interest != 0 else 0
df = pd.DataFrame(
list(interest_components.items()),
columns=["Interest Expense Component", "Amount"]
)
summary = f"""
### Interest Coverage Ratio Summary
- **EBIT:** {ebit:,.2f}
- **Total Interest Expenses:** {total_interest:,.2f}
### **Interest Coverage Ratio (ICR) = EBIT / Total Interest Expenses**
**ICR:** {icr:.2f} times
"""
return summary, df
with gr.Blocks() as demo:
gr.Markdown("## Interest Coverage Ratio (ICR) Calculator")
with gr.Row():
ebit = gr.Number(label="EBIT (Earnings Before Interest and Taxes)", value=0)
gr.Markdown("### Components of Interest Expenses")
with gr.Row():
term_loans = gr.Number(label="Interest on Term Loans", value=0)
debentures = gr.Number(label="Interest on Debentures", value=0)
bonds = gr.Number(label="Interest on Bonds", value=0)
with gr.Row():
wc_loans = gr.Number(label="Interest on Working Capital Loans", value=0)
commercial_papers = gr.Number(label="Interest on Commercial Papers", value=0)
intercorp_deposits = gr.Number(label="Interest on Intercorporate Deposits", value=0)
with gr.Row():
lease_liabilities = gr.Number(label="Interest on Lease Liabilities", value=0)
ecb = gr.Number(label="Interest on External Commercial Borrowings", value=0)
convertible_instruments = gr.Number(label="Interest on Convertible Instruments", value=0)
btn = gr.Button("Calculate Interest Coverage Ratio")
summary_output = gr.Markdown()
table_output = gr.Dataframe()
btn.click(
calculate_icr,
inputs=[
ebit,
term_loans,
debentures,
bonds,
wc_loans,
commercial_papers,
intercorp_deposits,
lease_liabilities,
ecb,
convertible_instruments
],
outputs=[summary_output, table_output]
)
demo.launch()