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