WC / app.py
Gan1-V's picture
Create app.py
9f420f0 verified
import gradio as gr
import pandas as pd
def current_ratio_calculator(
cash,
marketable_securities,
accounts_receivable,
inventory,
prepaid_expenses,
accounts_payable,
short_term_debt,
accrued_liabilities,
unearned_revenue,
current_portion_ltd
):
# Totals
total_current_assets = (
cash
+ marketable_securities
+ accounts_receivable
+ inventory
+ prepaid_expenses
)
total_current_liabilities = (
accounts_payable
+ short_term_debt
+ accrued_liabilities
+ unearned_revenue
+ current_portion_ltd
)
# Metrics
working_capital = total_current_assets - total_current_liabilities
current_ratio = (
total_current_assets / total_current_liabilities
if total_current_liabilities != 0
else float("inf")
)
# Table data
data = pd.DataFrame({
"Component": [
"Cash & Cash Equivalents",
"Marketable Securities",
"Accounts Receivable",
"Inventory",
"Prepaid Expenses",
"Accounts Payable",
"Short-Term Debt/Loans",
"Accrued Liabilities/Expenses",
"Unearned Revenue",
"Current Portion of Long-Term Debt",
"Total Current Assets",
"Total Current Liabilities",
],
"Amount": [
cash,
marketable_securities,
accounts_receivable,
inventory,
prepaid_expenses,
accounts_payable,
short_term_debt,
accrued_liabilities,
unearned_revenue,
current_portion_ltd,
total_current_assets,
total_current_liabilities,
],
})
summary = f"""
### 📊 Current Ratio Analysis
- **Working Capital:** ₹ {working_capital:,.2f}
- **Current Ratio:** {current_ratio:.2f}
"""
return summary, data
with gr.Blocks() as demo:
gr.Markdown("## CURRENT RATIO Calculator")
with gr.Row():
with gr.Column():
gr.Markdown("### Current Assets")
cash = gr.Number(label="Cash & Cash Equivalents", value=0)
marketable_securities = gr.Number(label="Marketable Securities", value=0)
accounts_receivable = gr.Number(label="Accounts Receivable", value=0)
inventory = gr.Number(label="Inventory", value=0)
prepaid_expenses = gr.Number(label="Prepaid Expenses", value=0)
with gr.Column():
gr.Markdown("### Current Liabilities")
accounts_payable = gr.Number(label="Accounts Payable", value=0)
short_term_debt = gr.Number(label="Short-Term Debt / Loans", value=0)
accrued_liabilities = gr.Number(label="Accrued Liabilities / Expenses", value=0)
unearned_revenue = gr.Number(label="Unearned Revenue", value=0)
current_portion_ltd = gr.Number(label="Current Portion of Long-Term Debt", value=0)
btn = gr.Button("Calculate")
summary_output = gr.Markdown()
table_output = gr.Dataframe()
btn.click(
current_ratio_calculator,
inputs=[
cash,
marketable_securities,
accounts_receivable,
inventory,
prepaid_expenses,
accounts_payable,
short_term_debt,
accrued_liabilities,
unearned_revenue,
current_portion_ltd,
],
outputs=[summary_output, table_output],
)
demo.launch()