AI stock screeners

Updated 2026-09-05

Use reproducible rules to select candidates and AI to investigate why they passed. Keep missing data, accounting differences and research judgments visible.

Separate candidate selection from a recommendation

Use explicit rules to reduce a defined universe, then ask AI to investigate the companies that pass. For example, screen for a documented relationship between cash generation and accounting earnings, then read the relevant filings to understand the difference. Define the metric, threshold and missing-data rule before running the screen. The result is a candidate list with reasons for further investigation. Keep qualitative follow-up separate from numeric selection so a reviewer can tell why each company appeared and what evidence is still needed.

Financial research workflow: collect public sources, extract facts, calculate and reconcile, generate cited explanations, and review the result.
Workflow illustration. Source-linked research and review are separate from trade execution.

Choose between filters, semantic review and experiments

Different screening tools solve different problems. Structured filters are easiest to reproduce when the fields have clear definitions. Semantic review can identify business descriptions and disclosed risks that a numeric field misses. Learned signals need an evaluation framework and a point-in-time dataset. Combine them in that order only when the task requires it. Do not use an LLM-generated rank as a substitute for defining the universe or resolving unavailable financial fields.

MethodUseful outputRequired control
Deterministic filterCandidate set and reason codesVersioned data and explicit thresholds
LLM qualitative reviewEvidence-linked follow-up questionsSource locators and abstention
Learned rankingExperimental signal scoresTraining split and held-out evaluation
Hosted screenerExportable candidatesCoverage, methodology and license review

Define a universe that survives historical review

Record exchange coverage, security types, share classes and the date on which membership is defined. Decide how to handle secondary listings, depositary receipts, suspended instruments and delisted companies. A historical screen built from today's surviving symbols answers a different question from a point-in-time screen. International screening also needs a policy for currencies and fiscal calendars. Keep excluded candidates with reason codes so reviewers can tell whether a company failed a rule or was absent because the provider lacked data.

Normalize fields before comparing companies

Map each metric to its source concept, period, currency and unit. Compare like accounting measures rather than treating every field named earnings as interchangeable. Preserve whether a value is reported, adjusted or derived and whether a later filing restates it. Ratios need a denominator policy; missing values, negative denominators and noncomparable periods should produce explicit states. The SEC's XBRL documentation explains aggregated company facts, but the original filing remains necessary when a tag or context does not capture the business meaning you need.

Run the rules in code with stable result states

The example is a deliberately small screening primitive, not a complete investment strategy. It compares a supplied metric with a supplied threshold and refuses missing or nonfinite inputs. The rule owner must still define the metric and choose an appropriate comparator. Keeping that decision outside the model makes the candidate set reproducible. Store the rule version and input references beside the result, then review the companies that pass using actual disclosures rather than asking the model to fill missing values.

from math import isfinite

def minimum_metric(value, threshold):
    if value is None or threshold is None:
        return {"state": "unavailable", "code": "MISSING_INPUT"}
    if not isfinite(value) or not isfinite(threshold):
        return {"state": "unavailable", "code": "NONFINITE_INPUT"}
    return {
        "state": "pass" if value >= threshold else "fail",
        "code": "MINIMUM_METRIC",
    }

Use AI to review the candidate evidence

For each candidate, provide the rule result, input definitions and source passages. Ask the model to identify accounting changes, one-off events, contradictory disclosures and questions requiring human investigation. Keep qualitative prose separate from the numeric rule. If a reviewer changes the candidate status, record the decision and its evidence as another layer. A useful output includes the original pass reason, a short explanation, supporting source locators and unresolved questions. Group related questions for follow-up rather than letting every candidate trigger an unrestricted research task.

Compare software using an exportable test packet

Give candidate tools the same authorized universe, data cutoff and rule definitions. Inspect whether they export input fields, exclusion reasons and source links, not just a final rank. For a hosted product, ask whether custom data, historical membership and revisions can be exported. For a local stack, account for maintaining data mappings and dependencies. OpenBB is a data-platform reference and Qlib an experiment reference; neither should be advertised as a complete tested APIsRouter screening product merely because an upper layer can call a model.

Budget review volume and record failed coverage

Compute inexpensive filters before sending long documents to a model, then cap how many candidates receive detailed review. Cache extraction by source revision and keep the screen snapshot immutable. A repeated run on unchanged inputs should be distinguishable from a new research event. Track unavailable candidates alongside model requests, data charges and review effort. Compare two screening methods using the same universe and cutoff, and inspect which candidates differ and why. This is more actionable than comparing final list lengths without examining coverage and rule definitions.

Evidence and scope

The comparison is based on official data and framework sources. The code is an illustrative filter primitive, not a current stock screen or a tested strategy. No candidate results, returns or measured task costs are supplied. Preserve a universe snapshot and a reviewed rule set when running your own screening case.

FAQ

Can natural-language screening replace explicit rules?

It can help draft rules, but the final field definitions, thresholds and missing-data behavior should be inspectable and reproducible.

Should missing data count as a failed screen?

Keep unavailable distinct from fail. A missing filing or unsupported field is a coverage problem, not evidence that the company violates the rule.

Can I screen multiple exchanges together?

Yes as a design choice, but first normalize security identity, reporting periods, currencies and accounting definitions for the intended comparison.

Does an AI score prove a candidate is attractive?

No. It is an output under a particular prompt and source set. Keep its evidence and evaluate any predictive interpretation separately.

What should a screening artifact include?

Universe version, rule version, field definitions, input references, pass/fail/unavailable states, qualitative notes and human review status.