Liquidity ratios (ratios.liquidity)¶
Answers the question "can the company pay in the short term?". Returns the current, quick and cash ratios, the net working capital and the treasury margin.
Formula¶
\[
\text{current ratio} = \frac{\text{current assets}}{\text{current liabilities}}
\qquad
\text{quick ratio} = \frac{\text{current assets} - \text{inventories}}{\text{current liabilities}}
\qquad
\text{cash ratio} = \frac{\text{cash}}{\text{current liabilities}}
\]
\[
\text{net working capital} = \text{current assets} - \text{current liabilities}
\]
\[
\text{treasury margin} = \text{current assets} - \text{inventories} - \text{current liabilities}
\]
Example¶
from decimal import Decimal
import fairmark as fm
r = fm.ratios.liquidity(
balances="closing",
closing={
"current_assets": 2500,
"inventories": 900,
"cash": 200,
"current_liabilities": 2000,
},
)
assert r.current_ratio["value"] == Decimal("1.25") # 2500 / 2000
assert r.quick_ratio["value"] == Decimal("0.8") # (2500 − 900) / 2000
assert r.treasury_margin == Decimal("-400") # 2500 − 900 − 2000
Inputs¶
| Field | Meaning | Default |
|---|---|---|
balances |
closing, or average of the opening and closing balance sheets |
required |
closing |
current_assets (inventories and cash included), inventories, cash, current_liabilities, currency units |
required |
opening |
Same fields at the start of the period | required with average balances, not used otherwise |
Outputs¶
| Field | Meaning |
|---|---|
current_ratio |
Current assets / current liabilities, multiple |
quick_ratio |
(Current assets − inventories) / current liabilities, multiple |
cash_ratio |
Cash / current liabilities, multiple |
net_working_capital |
Current assets − current liabilities, currency units |
treasury_margin |
Current assets − inventories − current liabilities, currency units |
Ratios are objects {"value": ..., "not_defined": ...}, as in every ratio group.
Conventions (explicit, reported in explain.conventions)¶
| Convention | Options | Default |
|---|---|---|
| Balances | closing, average of opening and closing | required |
| Not defined | zero current liabilities | fixed |
Errors¶
| Code | When |
|---|---|
FM-E001 |
Average balances without opening; a field is missing or unknown |
FM-E008 |
Arithmetic overflow (inputs far outside a realistic range) |
Accuracy¶
Margins are exact; each ratio is one decimal division, exact up to the 28 significant digits of the decimal type.
Verified against¶
- Golden cases in
tests/golden/ratios.liquidity/(closing and average balances, zero current liabilities), whose expected values come fromscripts/reference_ratios.py(Python decimal at 50 digits), with the closed form written in each file.