The fundamental leg screens on financial ratios, dollar amounts (TTM), and growth rates — all normalized to trailing twelve months (TTM) and USD for cross-market comparability.
fundamental leg shape
"fundamental": [
{ "concept": "roe", "pattern": "above", "threshold": 0.2 },
{ "concept": "revenue", "pattern": "consecutive_growth", "N": 3 },
{ "concept": "pe", "pattern": "below_average" }
]
Conditions are AND-ed — all must be satisfied. There is no limit on the number of conditions.
Condition fields
| Field | Type | Required | Description |
|---|
concept | string | ✅ | The financial metric key. See the field catalog below, or resolve any phrase with POST /v1/financials/find. |
pattern | string | ✅ | The comparison type. See patterns below. |
threshold | number | depends | Absolute comparison value for above/below/between. |
N | number | depends | Number of periods for consecutive_growth/compound_growth. |
min / max | number | depends | Low and high bounds for between. |
:::tip Resolve any concept by name
POST /v1/financials/find accepts any phrase in any language — "수익성", "利益率", "profit margin" — and returns the canonical concept key to use. It is free (0 credits).
:::
Patterns
Absolute level patterns
| Pattern | Required | What it does |
|---|
above | threshold | Metric > threshold. For fractions (margins, ratios), use decimals: 0.2 = 20%. For dollar amounts, use full numbers: 1000000000 = $1B. |
below | threshold | Metric < threshold. |
between | min, max | Metric between min and max (inclusive). |
is_positive | — | Metric > 0. Useful for net_income, fcf, operating_income. |
is_negative | — | Metric < 0. net_debt is_negative = company is net cash. |
Peer-relative patterns
These compare the stock to its own cohort (same country + GICS sector by default). The benchmark is the cohort median unless specified.
| Pattern | Benchmark | What it does |
|---|
above_average | Cohort median (p50) | Metric above the sector/country median |
below_average | Cohort median (p50) | Metric below the median — cheapest-relative, not worst |
far_above_average | p90 | Metric in the top 10% of its cohort |
far_below_average | p10 | Metric in the bottom 10% of its cohort |
top_quartile | p75 | Metric in the top 25% |
bottom_quartile | p25 | Metric in the bottom 25% |
high | ~p80 | For valuation multiples: expensive relative to peers |
low | ~p20 | For valuation multiples: cheap relative to peers |
near | ±15% of median | Close to peer average — neither cheap nor expensive |
:::info Own-sector vs. whole-universe benchmark
By default, above_average benchmarks against the whole screen universe (all eligible stocks in the universe block). To benchmark each stock against its own sector specifically, add "vs_cohort": {"own": true}:
{ "concept": "pe", "pattern": "below_average", "vs_cohort": { "own": true } }
This means "cheaper than the median PE of its own sector", not cheaper than the whole market.
:::
Growth patterns
| Pattern | Required | What it does |
|---|
consecutive_growth | N | Metric has grown YoY for exactly N consecutive annual periods. E.g. revenue consecutive_growth N=3 = 3 years of growth. |
compound_growth | N | N-year CAGR is positive. N=5 = 5-year CAGR > 0 |
compound_growth with threshold | N, threshold | N-year CAGR > threshold. threshold=0.10 = 10%/yr CAGR. |
:::warning Fraction vs. percent auto-rescaling
For fraction metrics (margins, ROE, growth rates), thresholds ≥ 1.0 are automatically rescaled — 30 becomes 0.30. You can write "threshold": 30 or "threshold": 0.30 for a 30% margin and both work. The response notes[] confirms which was used.
:::
Field catalog
The screener supports two field families:
- Ratio / derived keys (fast, pre-materialized) — screened from a per-stock snapshot. Most common for screening.
- Raw statement fields (TTM, normalized to USD) — direct income statement, balance sheet, and cash flow items.
:::tip Full field catalog
The sections below cover the most commonly used fields. For the complete reference — 34 derived ratio keys + 209 statement fields with descriptions and accepted aliases — see the Fundamental Field Catalog →.
:::
Valuation ratios
| Key | Aliases | What it measures | Scale |
|---|
pe | price_to_earnings | Price / trailing EPS (TTM net income) | multiple; below 15 |
normalized_pe | — | Price / normalized income (strips one-time items) | multiple |
pb | price_to_book | Price / book value per share | multiple; below 1 |
ev_ebitda | ev_to_ebitda | Enterprise Value / EBITDA | multiple; below 10 |
dividend_yield | — | Annual dividend / price | fraction; above 0.03 = >3% |
fcf_yield | — | Free cash flow / market cap | fraction |
mcap | market_cap, market_cap_usd | Market cap (USD) | absolute; above 1000000000 = >$1B |
Profitability margins
All margins are fractions (0–1). Threshold 0.2 = 20%.
| Key | What it measures |
|---|
gross_margin | Gross profit / revenue |
operating_margin | Operating income / revenue |
net_margin | Net income / revenue |
ebitda_margin | EBITDA / revenue |
fcf_margin | Free cash flow / revenue |
Return metrics
All are fractions. Threshold 0.15 = 15%.
| Key | Aliases | What it measures |
|---|
roe | return_on_equity | Net income / average equity |
roa | return_on_assets | Net income / average total assets |
roic | — | NOPAT / (avg debt + avg equity) |
Leverage & coverage
| Key | Aliases | What it measures | Scale |
|---|
debt_to_equity | de | Total debt / shareholders' equity | ratio; below 1 |
debt_to_ebitda | — | Total debt / EBITDA | ratio; below 3 |
net_debt_ebitda | net_debt_to_ebitda | Net debt / EBITDA. Negative = net cash. | ratio; below 2 |
interest_coverage | — | EBIT / interest expense | ratio; above 3 |
ebitda_interest_coverage | — | EBITDA / interest expense | ratio; above 5 |
Liquidity
| Key | Aliases | What it measures | Scale |
|---|
current_ratio | — | Current assets / current liabilities | ratio; above 1.5 |
quick_ratio | acid_test | (Current assets − inventory) / current liabilities | ratio; above 1 |
Efficiency & working capital
All days-based metrics are in calendar days.
| Key | Aliases | What it measures |
|---|
asset_turnover | — | Revenue / average assets (times/yr) |
dio | — | Days inventory outstanding |
dso | — | Days sales outstanding (receivables) |
dpo | — | Days payable outstanding |
cash_conversion_cycle | ccc | DIO + DSO − DPO (working capital efficiency) |
capex_to_revenue | — | Capex as % of revenue |
capex_to_da | capex_da | Capex relative to depreciation (investment intensity) |
fcf_conversion | — | FCF / net income (earnings quality) |
accruals_ocf_ni | — | Operating cash flow / net income (accruals quality) |
Dividend & payout
| Key | Aliases | What it measures | Scale |
|---|
dividend_payout | payout_ratio | Dividends / net income | fraction; below 0.6 = under 60% |
dividend_yield | — | Annual dividend / price | fraction |
effective_tax_rate | — | Tax expense / pretax income | fraction |
Growth metrics
Growth metrics compare to the fund_growth_profile (annual series). Use consecutive_growth or compound_growth patterns.
| Key | What it measures |
|---|
revenue_growth_yoy | Year-over-year revenue growth (latest annual) |
net_income_growth_yoy | YoY net income growth |
revenue | Use with consecutive_growth N=3 to require 3 years of growing revenue |
net_income | Use with consecutive_growth to require consistent profitability growth |
ebitda | Use with consecutive_growth for EBITDA growth streak |
fcf | Use with consecutive_growth for FCF growth streak |
eps | Use with consecutive_growth for EPS growth streak |
Absolute dollar fields (TTM, USD)
These are the most commonly needed statement-level fields. All are TTM (trailing twelve months) and normalized to USD.
Income statement
| Key | Aliases | What it measures |
|---|
revenue | total_revenue, operating_revenue | Total revenue |
gross_profit | — | Revenue minus COGS |
operating_income | ebit | Operating profit (EBIT) |
ebitda | — | EBITDA |
normalized_ebitda | — | Adjusted EBITDA (excludes one-time items) |
net_income | net_income_common_stockholders | Net income to common shareholders |
normalized_income | — | Adjusted net income (Yahoo NormalizedIncome — strips unusual items) |
eps | diluted_eps | Diluted EPS (TTM) |
basic_eps | — | Basic EPS |
interest_expense | — | Total interest expense |
rd_expense | research_and_development | R&D spend |
sga_expense | — | Selling, general & administrative |
depreciation_amortization | da | D&A (non-cash) |
stock_based_compensation | sbc | SBC add-back |
dps | dividend_per_share | Annual dividend per share |
Cash flow
| Key | Aliases | What it measures |
|---|
operating_cash_flow | ocf | Cash from operations |
capex | capital_expenditure | Capital expenditure (stored as negative; use is_negative to find high-capex names) |
fcf | free_cash_flow | OCF minus capex |
dividends_paid | cash_dividends_paid | Total dividends paid |
buybacks | repurchase_of_capital_stock | Share buybacks |
Balance sheet
| Key | Aliases | What it measures |
|---|
total_assets | — | Total assets |
cash | cash_and_equivalents | Cash + short-term investments |
total_debt | long_term_debt | Total financial debt (current + non-current) |
net_debt | — | Total debt minus cash (negative = net cash) |
book_value | shareholders_equity | Total stockholders' equity |
current_assets | — | Current assets |
current_liabilities | — | Current liabilities |
inventory | — | Inventory |
accounts_receivable | — | Accounts receivable |
goodwill | — | Goodwill from acquisitions |
net_ppe | — | Net property, plant & equipment |
Sector-specific fields
These fields are available for the relevant sectors but return null for others.
Banking
| Key | What it measures |
|---|
net_interest_income | Interest earned minus interest paid — core banking profit driver |
non_interest_income | Fee-based revenue (trading, wealth management, advisory) |
non_interest_expense | Operating overhead |
credit_loss_provision | Loan-loss reserves set aside this period |
net_investment_income | Portfolio income |
Insurance
| Key | What it measures |
|---|
premiums_earned | Net premiums earned (after reinsurance cessions) |
net_premiums_written | New premium production |
gross_premiums_written | Total gross premiums before reinsurance |
realized_investment_gains | Realized P&L on investment portfolio |
Examples
Classic value: low PE + high ROE
"fundamental": [
{ "concept": "pe", "pattern": "below", "threshold": 15 },
{ "concept": "roe", "pattern": "above", "threshold": 0.15 }
]
3 consecutive years of revenue growth + profitable
"fundamental": [
{ "concept": "revenue", "pattern": "consecutive_growth", "N": 3 },
{ "concept": "net_income", "pattern": "is_positive" }
]
Cheaper than sector peers on PE + positive FCF
"fundamental": [
{ "concept": "pe", "pattern": "below_average" },
{ "concept": "fcf", "pattern": "is_positive" }
]
Net cash (no net debt) + high gross margin
"fundamental": [
{ "concept": "net_debt", "pattern": "is_negative" },
{ "concept": "gross_margin", "pattern": "above", "threshold": 0.4 }
]
Revenue > $1B + low debt
"fundamental": [
{ "concept": "revenue", "pattern": "above", "threshold": 1000000000 },
{ "concept": "debt_to_equity","pattern": "below", "threshold": 0.5 }
]
5-year CAGR > 15% on revenue
"fundamental": [
{ "concept": "revenue", "pattern": "compound_growth", "N": 5, "threshold": 0.15 }
]
EBITDA margin top quartile in own sector
"fundamental": [
{ "concept": "ebitda_margin", "pattern": "top_quartile", "vs_cohort": { "own": true } }
]
Bank screen: high NII + low credit losses
"fundamental": [
{ "concept": "net_interest_income", "pattern": "above_average" },
{ "concept": "credit_loss_provision", "pattern": "below_average" }
]