"I'd be a bum on the street with a tin cup if the markets were always efficient."
-Warren E. Buffett
A value stock screener for US-listed common equities and ordinary ADRs using publicly available SEC EDGAR, Nasdaq, and ECB data. Each company is scored on the latest usable annual SEC XBRL filing within a rolling 24-month window. REITs, ETFs, ETNs, BDCs, and other non-common-equity instruments are excluded. No API keys required.
Data sources include
- current price and market cap from Nasdaq, Inc.
- annual fundamentals from nightly SEC EDGAR
companyfacts.zip - annual filing metadata from nightly SEC EDGAR
submissions.zip - USD normalization for non-USD annual filings using official ECB FX history
The tool is designed to surface companies that may merit deeper intrinsic-value analysis.
- Earnings yield
- Free cash flow proxy
- Cash conversion
- Owner earnings
- Invested capital
- Return on invested capital
- Debt to equity
- Price to book
- Price to earnings
- Operating margin
- Gross margin, when gross profit is available
- Margin quality
If both current and prior annual filings include gross profit:
If gross profit is unavailable in either year:
If the current filing and immediately previous annual filing do not yield
a usable prior-year comparison, the company stays in the operating universe and
receives a neutral margin_quality rank contribution instead of a hard
exclusion.
- Earnings yield
- Price to book
- Return on equity
- Return on assets
- Equity to assets
- For normalized comparison, this analysis considers the most recent annual filings only.
- When multiple exchange symbols share one issuer CIK, the screener resolves a single canonical listing from SEC submissions
tickers; if SEC metadata does not disambiguate the symbols, the issuer is excluded instead of guessed. total_debtis a conservative all-financing-obligations measure, not a narrow funded-debt-only figure.- It counts borrowings, notes payable, convertible debt, secured debt, lease liabilities, and supplier-finance obligations when those balances are reported on the selected annual filing.
- For each financing category, the screener uses the larger of an explicit total-balance tag or the sum of recognized current and noncurrent tags, then adds the categories together.
- Missing debt is treated as zero only after this broader financing-obligation scan finds no recognized balance tags.
- Cash can come from either pure cash-and-equivalents tags or broader cash-plus-short-term-investment tags when the issuer reports liquid balances that way in standardized facts.
- Capex is scanned from a broader set of standardized annual reinvestment concepts, including a few sector-specific fallbacks. If no usable capex fact survives normalization, the operating model uses
$0.00capex rather than excluding the issuer, which broadens coverage but can overstate cash-conversion and owner-earnings metrics for some companies. - Negative book equity does not automatically exclude an operating company. When
equity <= 0, the operating model treatsP/BandDebt/Equityas not meaningful and leaves those fields blank instead of showing negative or infinite ratios. - When
equity + total_debt - cash <= 0, the operating model also treatsROICas not meaningful and assigns a neutral rank contribution instead of forcing an exclusion on buyback-heavy, asset-light businesses. - Annual filings older than 24 months from the run date are excluded instead of being used as indefinite fallback candidates.
- Operating companies must have at least two annual filings total. The selected filing must be recent, but prior-year margin comparison can come from the same accession's comparative facts or from the immediately prior annual filing.
- BDCs and similar 1940 Act issuers are permanently excluded with a narrow rule: explicit
Business Development/BDCname matches, or unmistakable BDC-style forms such as40-17G,40-APP,N-2,N-2ASR,N-23C-2,N-54A, andN-54Ccombined with clearly fund-like issuer wording such asfund,trust,capital, orinvestment. - Gross profit is optional in the operating model; if it is unavailable, margin quality falls back to operating-margin change only.
- Non-USD annual filings are converted to USD using ECB historical rates before scoring.
- When one accession publishes both local-currency and USD convenience amounts, the screener anchors the annual record to one monetary filing currency before selecting facts, rather than mixing units concept by concept. When both are equally complete, the non-USD monetary filing currency is preferred over USD convenience amounts.
- Nasdaq
Finance-sector issuers route to theFinancialmodel even when the industry label is noisy.
Weights:
owner_earnings = 0.30roic = 0.25low_debt = 0.15cash_conversion = 0.15margin_quality = 0.15
Weights:
earnings_yield = 0.30low_price_to_book = 0.25return_on_equity = 0.20return_on_assets = 0.15equity_to_assets = 0.10
The screener excludes:
- REITs
- ETFs
- ETNs
- BDCs and other 1940 Act investment-company structures
- funds
- listed notes and debentures
- warrants
- rights
- units
- preferreds
- depositary-share structures that do not represent ordinary common equity
Copy config.toml.example to config.toml and set the SEC user-agent with your email.
The default market-cap floor is $1B.
cargo runFor materially faster runs on the SEC bulk archives:
cargo run --releasecargo run -- --csvcargo run -- --us-onlycargo run -- config.toml --csv --us-onlyEach run prints separate Operating and Financial tables to stdout. A dated CSV
named omaha_sieve_YYYY-MM-DD.csv is written only when --csv is provided.
--us-only restricts the universe to issuers Nasdaq identifies as United States
and excludes ADR/depositary listings.
Copyright 2026 Dylan Walker Brown
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option. Please find an additional disclaimer of liability in the attached NOTICE file.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.