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