Skip to main content

CLI screener for US stocks based on LLM + financial metrics (P/FCF, EV/EBITDA, SOTP, float/EV)

Project description

ai-asset-screener

General info

ai-asset-screener is a CLI tool for fast, fundamentals-driven equity screening with LLM-assisted reading of 10-K filings. It pulls core metrics from Yahoo Finance, enriches them with fair-value EV adjustments and insurance float extracted from 10-Ks, and builds a segment-level SOTP model. The tool issues BUY/SELL/UNSURE signals per metric and per peer group using robust, outlier-aware rules, then aggregates them into a final verdict. Configuration is done via environment variables (.env supported): LLM_MODEL (required), plus either an OpenAI-compatible LLM_ENDPOINT or LLM_OPENAI_API_KEY. Results are printed as readable console reports with group details and a summary table; intermediate data and 10-K parses are cached under cache/. Logging goes to asset.log.

Features list

  • Data foundation

    • Yahoo Finance fetch (market cap, EV, debt, cash, FCF TTM, EBIT/EBITDA TTM, Forward P/E) with local JSON caching per ticker.
    • EDGAR 10-K ingestion (via edgartools) to analyze notes and segment disclosures; large-file chunking and caching.
  • Fair-value EV adjustments (10-K notes => EV)

    • LLM extracts candidate items with signed deltas (USD millions): e.g., lease liabilities, pension deficits, TRA payables, contingent consideration, AROs, environmental liabilities, FV uplifts/discounts.
    • Canonicalization + whitelist/blacklist filters (drops obligations without recognized liabilities, operating-lease obligations schedules, VIE “exposures”, deferred taxes, etc.).
    • Sanity caps by category and as a fraction of EV; duplicates merged; EV and EV/EBITDA recomputed.
  • Insurance float model (insurers only)

    • LLM reads balance/notes to assemble float components (USD millions):

      • Unpaid losses & LAE (net), Unearned premiums (net), Future policy benefits, Policyholders’ account balances, Other insurance liabilities; − Reinsurance recoverable, (Re)insurance balances receivable, Deferred charge assets for retroactive reinsurance.
    • Strict netting rules (prefer NET where disclosed), scale sanity checks, and Float/EV ratio computed.

  • SOTP (Sum-of-the-Parts) from operating segments

    • LLM extracts operating segments (ASC 280) for the latest year and parses a clean table: Segment | Revenue | Operating income.
    • Segment valuation via peer median EV/EBIT; fallback: EV/EBITDA × 1.25 when EV/EBIT is sparse.
    • Loss-making segments: insurers => EV≈0 (conservative); others => fallback EV/Sales ≈ 1× if revenue is available.
    • Outputs per-segment implied EVs, peer bucket used, multiples applied, and a premium/discount vs current EV.
  • Signals & robustness

    • Metric signals (IQR rule):

      • Forward P/E, P/FCF, EV/EBITDA => BUY if value < Q1, SELL if > Q3, else UNSURE (with caps for outliers).
      • Float/EV signal for insurers uses peer quartiles within subsector (P&C / Life / Reins / Conglom).
    • SOTP signal: discount/premium threshold ±10% => BUY/SELL; otherwise UNSURE.

    • Majority vote across available signals with tie-break priority: EV/EBITDA > P/FCF > Forward P/E.

  • Peer groups & auto-scoping

    • Built-in universes (e.g., BIG_TECH, SEMI, CLOUD_SOFTWARE, INTERNET_ADS, ECOMMERCE, AUTO_EV, ASSET_MANAGERS, CONGLOMERATES, INSURANCE, CRYPTO miners/exchanges).
    • Auto-selection of relevant groups for a ticker or explicit filtering via --group.
  • DX & ops

    • .env support; clear stdout reports (per group + consolidated table).
    • Persistent caching for Yahoo snapshots and 10-K-derived artifacts.
    • Structured logging to asset.log.

How to run:

pip install ai-asset-screener
ai-asset-screener --ticker=ADBE --group=BIG_TECH_CORE  --use-cache

.env file example:

LLM_ENDPOINT = "http://localhost:1234/v1"
LLM_MODEL = "openai/gpt-oss-20b"

Add LLM_OPENAI_API_KEY if you use commercial OpenAI API and remove LLM_ENDPOINT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ai_asset_screener-0.1.1.tar.gz (30.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_asset_screener-0.1.1-py3-none-any.whl (36.0 kB view details)

Uploaded Python 3

File details

Details for the file ai_asset_screener-0.1.1.tar.gz.

File metadata

  • Download URL: ai_asset_screener-0.1.1.tar.gz
  • Upload date:
  • Size: 30.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for ai_asset_screener-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c441c7cc53f5237dd07c78e0ab1aaee53cdef3b460f5f373e332bd608758983a
MD5 cf4f8943268184e2db50c4fd6f14f49d
BLAKE2b-256 d21a7dbc0cc3ce0acec1cffbc994d82fce91afd1aff6426db60a6ae9bb56aee7

See more details on using hashes here.

File details

Details for the file ai_asset_screener-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ai_asset_screener-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0be555c4cc129f96b1060c3d14272a2ef7e0f0296ef6ba4dc01dcc4f820104ad
MD5 3cba9e395bf80b768bd1132ac6f2fc27
BLAKE2b-256 0e03e917904d6d2d8593de7272c3b158a23e3de6be453d4be75751178d06bcb8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page