Fundamental screening methods

Quality stock screener: profitability, balance sheet and consistency

A quality stock screener combines capital profitability, financial leverage and earnings consistency within a comparable company universe. Define each calculation, use financial statements available at the same cutoff, and apply every rule to the same eligible sample. This worked screen requires ROIC of at least 12% and the industry median, debt/equity no higher than 1.0, and three profitable years with a limited operating-margin range. These are illustrative research thresholds, not a universal definition of quality or a buy signal.

Explore Market Screener

Freeze the common sample before calculating quality

The example is a fictional US industrial-machinery universe observed at 2026-04-01 00:00 UTC. Every included company has a December year end, USD reporting, comparable accounting treatment, FY2023 to FY2025 income statements and FY2024/FY2025 balance sheets publicly available before the cutoff. Amounts below are USD millions. All filings are assumed available by March 15, 2026; none of these names or figures represents a real investment candidate.

  • Start with the securities that existed at the observation date, one common-equity listing per issuer. Retain failed, excluded and later-delisted companies in the audit file.
  • Use the latest complete annual period shared by the comparison group. Do not combine one company's trailing quarter update with another company's older annual data.
  • Before any quality test, require all inputs, positive revenue in every year, positive beginning and ending invested capital, positive ending equity, nonnegative debt/cash, and a documented tax rate from 0% to 100%.
  • Use that complete, valid industry sample for ROIC, leverage and consistency together. Keep valid weak companies in the peer median; dropping them first changes the benchmark.
  • For real historical screens, preserve the filing acceptance timestamp and original document version. A current data-provider response may contain later restatements; it is not automatically a point-in-time archive.

Define the three tests precisely

This specification uses a financing-based invested-capital measure and a normalized 25% operating tax assumption for every synthetic company. NOPAT means net operating profit after tax. The tax assumption is a modeling choice, not an assertion about actual cash taxes. Damodaran describes after-tax operating income relative to book capital; this example explicitly averages the two balance-sheet dates instead of using beginning capital alone.

  • Debt includes current and noncurrent interest-bearing borrowings and finance-lease liabilities. Trade payables are excluded. This simplified example assumes no operating leases, minority interests, preferred shares or acquisitions; reconcile those items and operating earnings consistently before applying it to real issuers.
  • Cash means cash and cash equivalents only. Goodwill remains in book capital; research spending is not capitalized. Changing either policy can alter peer comparisons, so preserve the adjustment schedule.
  • Averaging two endpoints reduces dependence on one balance-sheet date but does not time-weight a large midyear acquisition. Such cases need a separate adjusted review.
  • TradingView's published ROIC definition uses net income divided by average total invested capital. Its labeled ROIC field therefore cannot be substituted for this NOPAT-based rule without reconciliation.
MeasureCalculationPass rule
Invested capital (IC)Interest-bearing debt + total book equity − cash and cash equivalents, at each year endBoth FY2024 and FY2025 IC must be positive before screening
ROICNOPAT = FY2025 operating EBIT × (1 − 0.25); average IC = (IC2024 + IC2025) / 2; ROIC = NOPAT / average ICROIC ≥ 12% AND ROIC ≥ same-industry sample median
LeverageFY2025 interest-bearing debt / FY2025 total book equityDebt/equity ≤ 1.0; this is gross debt, without cash netting
Profitability consistencyAnnual operating margin = operating EBIT / revenue; range = maximum margin − minimum margin over FY2023, FY2024 and FY2025EBIT > 0 in each of the three years AND margin range ≤ 5 percentage points

Recalculate five companies from raw inputs

Each triplet is ordered FY2023 / FY2024 / FY2025. Each balance tuple is debt / equity / cash. Tax is 25% for all rows. No rounding is applied until display. These five complete, valid companies form the entire industry comparison sample, including the companies that subsequently fail.

  • Atlas: IC2024 = 40 + 100 − 40 = 100; IC2025 = 60 + 120 − 40 = 140; average IC = 120. NOPAT = 24 × 0.75 = 18, so ROIC = 18 / 120 = 15%. Debt/equity = 60 / 120 = 0.50.
  • The sorted ROIC values are 9%, 12%, 15%, 15%, 20%; the median is 15%. The two ROIC gates together therefore require at least 15% in this sample. Ties at the median pass.
  • Cedar has margins of 8%, −2% and 8%. Its range is 10 percentage points and only two years are profitable. A positive latest-year ROIC does not erase the loss year.
Synthetic companyRevenue tripletOperating EBIT tripletFY2024 debt / equity / cashFY2025 debt / equity / cash
Atlas200 / 220 / 24020 / 22 / 2440 / 100 / 4060 / 120 / 40
Birch200 / 200 / 20020 / 20 / 20100 / 50 / 50100 / 50 / 50
Cedar200 / 200 / 20016 / −4 / 1620 / 100 / 2020 / 100 / 20
Dune200 / 200 / 20012 / 12 / 1240 / 80 / 2040 / 80 / 20
Elm240 / 280 / 32024 / 28 / 3240 / 100 / 4080 / 100 / 40

Record each result and its reason

Only Atlas and Elm pass all four gates. The ROIC column displays the floor and peer comparison separately, so the result remains explainable if the industry median changes. Profitability requires strictly positive EBIT; zero EBIT is a failure. Debt/equity of exactly 1.0 and a margin range of exactly 5 percentage points pass their inclusive limits.

CompanyNOPAT / average IC; ROIC≥12% / ≥15% medianDebt/equity ≤1Positive EBIT years; margin range ≤5ppResult
Atlas18 / 120; 15%Pass / Pass0.50: Pass3/3; 0pp: PassPass
Birch15 / 100; 15%Pass / Pass2.00: Fail3/3; 0pp: PassFail: leverage
Cedar12 / 100; 12%Pass / Fail0.20: Pass2/3; 10pp: FailFail: peer ROIC and consistency
Dune9 / 100; 9%Fail / Fail0.50: Pass3/3; 0pp: PassFail: both ROIC gates
Elm24 / 120; 20%Pass / Pass0.80: Pass3/3; 0pp: PassPass

Missing values are not financial failures

Three additional fictional records illustrate why a common eligible sample matters. They stay in the input audit log but do not enter the five-company median or the pass/fail denominator. These outcomes follow the eligibility policy before quality tests; no zero imputation or favorable default is allowed.

  • Apply the same out-of-scope policy to insurers, investment funds and REITs in this machinery screen. Utilities or other industries require their own declared peer set, not comparison to machinery margins.
  • A missing filing date, mixed currency, restated period unavailable at the cutoff or fewer than three comparable years also prevents admission until resolved. Record the exact reason.
  • Require at least five valid same-industry peers for this demonstration policy. Below that minimum, report insufficient peers instead of broadening to a convenient sector silently. Five rows illustrate arithmetic; they do not establish statistical reliability.
RecordObserved issueClassification and treatment
Fir MachinerySame inputs as Atlas except FY2024 EBIT is unavailableMissing: consistency cannot be measured. Exclude from the common sample; fetch the missing filing and rerun the entire sample.
Grove MachinerySame inputs as Atlas except FY2025 debt/equity/cash = 10/20/40; ending IC = −10Invalid for this specification: reject before division, even though averaging with beginning IC would give 45. Investigate the capital structure.
Harbor BankA deposit-taking bank, with no machinery comparison basisOut of scope: financial-company debt and capital serve different roles. Use a sector-specific framework; do not classify the bank as low quality.

Save the rule separately from the candidate list

Copy this specification into a research note or worksheet beside the source inputs. It is a portable record, not an import format for Pineify or TradingView. Save the eight input records, five eligible records, two passing records and every exclusion reason with the run timestamp. A saved screen can recalculate; it does not preserve an earlier decision by itself.

  • Version any change to the tax basis, cash treatment, denominator, industry classification or threshold. Compare old and new results rather than overwriting the original run.
  • For a repeat run, retain the source URL and page or XBRL tag for every input, fiscal dates, reporting units, publication time, extraction date and any accounting adjustments. Reconcile consolidated scopes.
Illustrative quality-v1 research specification; ratios use decimals.yaml
screen_id: quality-v1
as_of_utc: "2026-04-01T00:00:00Z"
universe: US industrial machinery, common equity, one listing per issuer
reporting: USD millions, December year end, common accounting basis
income_years: [2023, 2024, 2025]
balance_years: [2024, 2025]
filings: accepted before as_of_utc; preserve original versions
sample: intersection of complete, valid, in-scope rows before filters
missing: exclude and log; never replace with zero
validity: revenue > 0 each year; IC > 0 at both dates; ending equity > 0
input_bounds: debt >= 0; cash >= 0; 0 <= tax_rate <= 1
operating_tax_rate: 0.25
debt: interest-bearing borrowings plus finance leases, gross basis
capital: debt + total book equity - cash and cash equivalents
roic: operating_EBIT_2025 * (1 - tax_rate) / mean(IC_2024, IC_2025)
peer_group: same industry and basis; minimum 5 valid companies
peer_benchmark: median ROIC before quality filtering
rules:
  roic_floor: ">= 0.12"
  roic_peer: ">= peer_benchmark"
  debt_to_equity_2025: "<= 1.0"
  operating_EBIT: "> 0 in all three years"
  margin_range: "max(EBIT/revenue) - min(EBIT/revenue) <= 0.05"
combine: all rules must pass; evaluate unrounded values
outputs: inputs, source URLs, filing dates, adjustments, all gate results
technical_review: separate dated review; never modifies financial result

Move from financial review to supported technical fields

Use AI Finance Agent to retrieve available income-statement and balance-sheet data, then check the underlying public filings and calculation basis. Request the fiscal periods, filing dates, currency, raw line items and unresolved inputs. Provider-normalized fields are a starting point; manually verify historical availability, lease policy and restatements. The inspected Market Screener catalog supports technical columns but does not supply this ROIC, debt/equity, three-year margin test or Piotroski F-score.

  • Add only symbols available in the selector. Save the financial worksheet separately from the technical collection; the latter is not a historical filing archive.
  • Check bar and received timestamps and missing readings before comparing technical values. A refreshed page does not prove that every symbol has a new observation.
  • A quality pass with a technical failure remains a financial pass. Record the technical reason separately rather than changing quality thresholds to retain a preferred ticker.
Research stepWhere to do itConcrete handoff
Financial qualitySeparate worksheet, AI Finance Agent and public filingsCalculate every rule above; retain Atlas and Elm in the fictional example. Real results need real filing evidence.
Technical reviewPineify Market Screener for supported symbolsCreate a dated collection, choose 1D, and add Close (close), SMA 200 (sma200) and RSI 14 (rsi14). Review the displayed values; do not assume a custom cross-column financial filter.
Optional technical conditionRead the available columns and verify on TradingViewFor example, record Close > SMA 200 and 50 ≤ RSI 14 ≤ 70 separately. This is an optional illustrative overlay, not evidence of business quality.
Chart confirmationExact exchange-qualified TradingView symbolMatch daily interval, session, bar timestamp and adjustment basis. Inspect whether the bar is complete and explain discrepancies.

Generic quality and Piotroski F-score answer different questions

This screen is an explicitly chosen combination of profitability, leverage and consistency. Piotroski's original F-score is a fixed sum of nine binary financial-statement signals, developed in research on high book-to-market firms. A company can meet one framework and fail the other. Calling a customized three-factor screen an F-score would conceal a different model.

  • The nine F-score signals concern positive ROA, positive operating cash flow, improving ROA, cash flow exceeding earnings, declining leverage, improving liquidity, no new equity issuance, improving gross margin and improving asset turnover. Its prescribed periods and definitions matter.
  • Our screen evaluates an absolute debt/equity ceiling and operating-margin stability. Those rules are different from changes in leverage, liquidity or gross margin in the F-score.
  • Neither a high score nor a quality pass establishes a fair price, durable competitive advantage or future return. Review valuation, debt maturities, cash conversion and unusual accounting items separately.
Where Pineify fits

Pineify Market Screener

Organize supported symbols into collections and compare technical columns after completing the separate financial-quality review.

Also useful: AI Finance Agent. Retrieve available financial statements for research, then reconcile the inputs and dates against public filings before applying your saved quality rules.

Explore Market Screener

Frequently asked questions

Educational method with synthetic company data and illustrative thresholds, not investment advice. The screen has no demonstrated return record and does not establish valuation or suitability.

Sources and verification

Published by Pineify. Pineify is an independent product and is not affiliated with TradingView. Sources support the technical explanations; examples do not establish trading performance.