Introduction to Financial Ratio Analysis
Financial ratio analysis is the process of evaluating a company's financial statements to assess its performance, liquidity, and solvency. Ratios transform raw financial data into comparable metrics usable across companies and time periods.
Ratios are only meaningful when compared against industry benchmarks, historical trends, or competitor data. A single ratio in isolation tells you very little.
Liquidity Ratios
Liquidity ratios measure a firm's ability to meet short-term obligations without raising external capital.
Current Ratio
Interpretation:
- : Excellent short-term liquidity
- : Acceptable
- : Potential liquidity crisis (current liabilities exceed current assets)
Quick (Acid-Test) Ratio
Excludes inventory (least liquid current asset):
Cash Ratio
Most conservative liquidity measure:
Profitability Ratios
These measure how effectively a company generates profit from its resources.
Gross Profit Margin
Net Profit Margin
Return on Equity (ROE)
Return on Assets (ROA)
DuPont Analysis
ROE can be decomposed using the DuPont Formula:
Solvency (Leverage) Ratios
These assess long-term financial stability and reliance on debt.
Debt-to-Equity Ratio
Interest Coverage Ratio
An ICR below 1.5 signals potential default risk.
Efficiency (Activity) Ratios
Inventory Turnover
Accounts Receivable Turnover
Days Sales Outstanding (DSO)
Solved Example: ABC Manufacturing Ltd.
Given the following data (in NPR '000):
| Item | Value | |------|-------| | Current Assets | 4,500 | | Inventory | 1,200 | | Current Liabilities | 2,000 | | Revenue | 18,000 | | COGS | 12,600 | | Net Income | 2,160 | | Total Assets | 24,000 | | Shareholders' Equity | 9,600 | | Total Debt | 14,400 | | EBIT | 2,880 | | Interest Expense | 720 |
Calculations:
Python Implementation: Ratio Calculator
from dataclasses import dataclass
@dataclass
class FinancialData:
"""Financial statement data for ratio analysis."""
current_assets: float
current_liabilities: float
inventory: float
cash: float
revenue: float
cogs: float
net_income: float
total_assets: float
shareholders_equity: float
total_debt: float
ebit: float
interest_expense: float
def compute_ratios(d: FinancialData) -> dict[str, float]:
return {
# Liquidity
'current_ratio': d.current_assets / d.current_liabilities,
'quick_ratio': (d.current_assets - d.inventory) / d.current_liabilities,
'cash_ratio': d.cash / d.current_liabilities,
# Profitability
'gross_margin_%': (d.revenue - d.cogs) / d.revenue * 100,
'net_margin_%': d.net_income / d.revenue * 100,
'roa_%': d.net_income / d.total_assets * 100,
'roe_%': d.net_income / d.shareholders_equity * 100,
# Leverage
'd_e_ratio': d.total_debt / d.shareholders_equity,
'icr': d.ebit / d.interest_expense,
}
# ABC Manufacturing data
abc = FinancialData(
current_assets=4500, current_liabilities=2000,
inventory=1200, cash=800, revenue=18000,
cogs=12600, net_income=2160, total_assets=24000,
shareholders_equity=9600, total_debt=14400,
ebit=2880, interest_expense=720
)
for name, value in compute_ratios(abc).items():
print(f"{name:20s}: {value:.2f}")
Financial Ratio Analysis Quiz
4 questions · Select one answer per question
A company has Current Assets of NPR 6,00,000 and Current Liabilities of NPR 2,00,000. What is the current ratio?
Which ratio excludes inventory from the liquidity calculation?
In the DuPont analysis, ROE is decomposed into which three components?
An Interest Coverage Ratio (ICR) of 0.8 indicates:
Answer all questions to submit