Skip to main content
Glama

financial_ratios_analysis

Calculate comprehensive financial ratios for investment analysis, cash flow projections, and automated financial reporting using Excel formulas.

Instructions

Calculate comprehensive financial ratios

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
asOfDateYes

Implementation Reference

  • Core handler function implementing the financial ratios analysis logic in FinancialReportGenerator class. Computes liquidity (current ratio), leverage (debt-to-equity, debt-to-assets), and profitability ratios (ROA, ROE) using generated balance sheet and income statement data.
    def financial_ratios_analysis(self, as_of_date: date) -> Dict: """Calculate comprehensive financial ratios""" balance_sheet = self.generate_balance_sheet(as_of_date) # Extract balance sheet items for calculations assets = balance_sheet['assets'] liabilities = balance_sheet['liabilities'] equity = balance_sheet['equity'] # Get income statement for the year year_start = date(as_of_date.year, 1, 1) income_statement = self.generate_income_statement(year_start, as_of_date) # Liquidity Ratios current_ratio = (assets['current_assets']['total'] / liabilities['current_liabilities']['total']) if liabilities['current_liabilities']['total'] > 0 else float('inf') # Leverage Ratios debt_to_equity = (liabilities['total_liabilities'] / equity['total']) if equity['total'] > 0 else float('inf') debt_to_assets = (liabilities['total_liabilities'] / assets['total_assets']) if assets['total_assets'] > 0 else 0 # Profitability Ratios roa = (income_statement['net_income'] / assets['total_assets']) * 100 if assets['total_assets'] > 0 else 0 roe = (income_statement['net_income'] / equity['total']) * 100 if equity['total'] > 0 else 0 return { 'as_of_date': as_of_date.isoformat(), 'liquidity_ratios': { 'current_ratio': round(current_ratio, 2), 'quick_ratio': 'N/A', # Would need inventory detail 'cash_ratio': 'N/A' # Would need cash detail }, 'leverage_ratios': { 'debt_to_equity': round(debt_to_equity, 2), 'debt_to_assets': round(debt_to_assets, 2), 'equity_multiplier': round(assets['total_assets'] / equity['total'], 2) if equity['total'] > 0 else float('inf') }, 'profitability_ratios': { 'gross_margin_pct': income_statement['gross_margin_pct'], 'operating_margin_pct': income_statement['operating_margin_pct'], 'net_margin_pct': income_statement['net_margin_pct'], 'return_on_assets_pct': round(roa, 2), 'return_on_equity_pct': round(roe, 2) } }
  • MCP tool registration defining the tool name, description, input schema (asOfDate: date string), and handler that bridges to the Python implementation via pythonBridge.
    name: "financial_ratios_analysis", description: "Calculate comprehensive financial ratios", inputSchema: { type: "object", properties: { asOfDate: { type: "string", format: "date" } }, required: ["asOfDate"] }, handler: async (args: any): Promise<ToolResult> => { try { const result = await pythonBridge.callPythonFunction({ module: 'financial_reporting', function: 'FinancialReportGenerator.financial_ratios_analysis', args: [args.asOfDate] }); return result; } catch (error) { return { success: false, error: error instanceof Error ? error.message : String(error) }; } } },
  • Input schema definition for the tool, specifying asOfDate as a required date-formatted string.
    inputSchema: { type: "object", properties: { asOfDate: { type: "string", format: "date" } }, required: ["asOfDate"] },

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jeremycharlesgillespie/excel-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server