AlphaStocks

Data Sources

Last Updated: March 2026

1. Overview

Every number on AlphaStocks originates from public, authoritative data sources. We do not use proprietary data feeds, analyst estimates, or third-party ratings. All scores are deterministic — given the same input data, the same output scores are produced every time. This makes every score fully reproducible and traceable back to its source.

Our data pipeline processes three primary inputs: financial statements from SEC EDGAR, market prices from Alpaca Markets, and company events from the same EDGAR filings (Form 8-K). Everything else — composite scores, fair value estimates, model signals, labels — is calculated from these inputs using our published methodology.

2. SEC EDGAR (Financial Statements)

The SEC EDGAR (Electronic Data Gathering, Analysis, and Retrieval) system is the official repository of corporate filings with the U.S. Securities and Exchange Commission. All publicly traded companies are required by law to file their financial statements here.

We ingest structured financial data from two filing types:

  • 10-K (Annual Reports): Comprehensive annual financial statements including income statement, balance sheet, and cash flow statement
  • 10-Q (Quarterly Reports): Interim quarterly financial data, providing more frequent updates between annual reports

Filings are parsed via the XBRL (eXtensible Business Reporting Language) format, which provides machine-readable, standardized financial data. From each filing, we extract:

  • Earnings & profitability: Earnings per share (EPS), net income, operating income, revenue, gross margins, operating margins, return on equity (ROE), return on assets (ROA), return on invested capital (ROIC)
  • Balance sheet strength: Total assets, total liabilities, shareholders' equity, book value per share, current ratio, debt-to-equity ratio, long-term debt, cash and equivalents
  • Cash flow: Operating cash flow, free cash flow, capital expenditures
  • Growth metrics: Revenue growth, earnings growth, book value growth (year-over-year and multi-year)
  • Sector-specific adjustments: FFO (Funds From Operations) for REITs; net premiums earned and total benefits, losses and expenses for insurers, whose ratio bounds the combined ratio from above
  • Share counts: Every share count is checked against reported EPS: implied shares = net income ÷ EPS (net income available to common where filed, so preferred dividends do not fail a correct count). A count within 15% of the implied one ÷ 1,000 or 1,000,000 was filed in thousands or millions and is rescaled (× the same, filed too large); with no count filed, the implied count is used and flagged; a count off by anything else is kept as filed and flagged, and no fair value is built on it. EPS below $0.10 checks nothing (cent rounding alone moves it too far). With no EPS to check against, the cover-page count of shares outstanding replaces a count more than 2× off it, or a missing one; only without either is the unit guessed from the price. A company with several share classes that reports EPS only per class (and so no count that reconciles) is counted in units of its listed class: net income available to common ÷ the listed class's diluted EPS, as filed in its 10-K or 10-Q — the class whose cover-page trading symbol is the ticker, or with one listed class the class with the most shares outstanding — used only within 2× of that class's own tagged diluted count (a loss year's two-class allocation can make the EPS no longer as-converted); per-share values are then per share of the class the price quotes. A filing that tags some counts in thousands beside others in units is first brought to one unit. Stock splits: a 10-K restates per-share data only for the years it presents, so each filing is put on the latest filing's share basis — the ratio read off the periods two filings both report, counted as a split only within 0.5% of a split ratio and only if the reported EPS moved inversely — and every older share count and per-share figure is adjusted by it. Where no filing links an older year to today's basis, a jump of more than 1.6× between consecutive share counts makes every multi-year per-share comparison across it unavailable.
  • Debt: where no debt line is tagged, instrument lines (convertible notes, credit lines, loans) are used. Debt counts as zero only when no debt line of any kind is tagged, nothing else in the filing says debt exists, the balance sheet is present (total liabilities, else assets less equity), and interest is at most 0.5% of liabilities and 0.5% of revenue. Otherwise debt stays unknown: unseen debt never reads as no debt. Debt is part of liabilities, so debt above total liabilities (else assets less equity) is a tagging error: that period's debt is left unknown, never used and never read as zero. A negative debt line is likewise dropped and never read as zero. A total-debt line includes the current maturities, so they are subtracted for non-current debt: the current-portion line when tagged, else the current-debt line less short-term borrowings tagged beside it.
  • Reporting currency: The reporting currency is the one most of a company's revenue and net income facts are filed in; convenience translations into another currency are dropped. Our prices are USD quotes, so for a company reporting in any other currency nothing that sets the price against its per-share figures is computed: it would need an FX rate and the ADR's shares-per-receipt ratio, and we model neither. Quality criteria from the filings alone are still scored.
  • International (IFRS) filers: Net income: IFRS profit attributable to owners of the parent comes before ProfitLoss, which includes non-controlling interests. Earnings for price ratios: P/E, PEG and the earnings-based fair values (justified P/E, P/FFO, the P/E context) use income from continuing operations when it is filed, else net income, so a disposal gain is not capitalised. A 10-K with no continuing-operations line reported no discontinued operations, so its net income counts as continuing in the trailing twelve months. The EPS records (Graham's ten years, Lynch's growth), Piotroski's ROA and the owner-earnings DCF keep net income, as their sources define them. Price ratios read the trailing-twelve-month row at the live price; quality ratios (ROE, margins) the latest fiscal year. Depreciation & amortization: Each later line is used only in a year where nothing before it is tagged; the last IFRS lines include impairment, which the 1986 letter's "certain other non-cash charges" covers. Capital expenditure: The IFRS combined line (PP&E, intangibles and other non-current assets) is the last fallback. Cost of revenue: Health-care benefit costs are added to cost of goods sold for filers with an insurance segment, unless the filer tags a total cost of revenue, which already includes them. Intangible assets: The total excluding goodwill when tagged; otherwise finite-lived plus indefinite-lived (the indefinite total, else trademarks, franchise rights, licences and other lines summed). Interest expense: Used only with no interest expense line: a net interest expense stands in for it (a floor — interest income is netted in); net interest income is ignored.

Update cadence:New filings are processed within 24 hours of appearing on EDGAR. During earnings season (January–February and July–August), dozens of filings may be processed daily.

3. Alpaca Markets (Market Prices)

Alpaca Markets provides real-time and historical stock price data through a regulated brokerage API. Alpaca is a FINRA member and SEC-registered broker-dealer.

From Alpaca, we use:

  • Current price:Latest traded price for each S&P 500 stock
  • 52-week range: High and low prices over the trailing 12 months, used for price context and range analysis
  • Momentum: the 12-1 month price return — the close about 30 days ago over the close about 365 days ago — ranked across the universe: 10 × the share of stocks with a lower return, for the Momentum axis
  • Market capitalization: Current share price multiplied by shares outstanding, used for weighting and context
  • Historical OHLCV: Open, High, Low, Close, and Volume data for historical analysis and backtesting

Update cadence:Price data is refreshed every 2 hours during U.S. market hours (9:30 AM – 4:00 PM ET, Monday through Friday). Outside market hours, the most recent closing price is displayed. Prices may be delayed by up to 15 minutes.

4. Company events (SEC Form 8-K)

Companies report material events to the SEC on Form 8-K: quarterly results, executive and director changes, auditor changes, restatements, major agreements. We record each filing's date and item codes from SEC EDGAR and show them, linked to the filing, to premium subscribers.

Events are context only: they do not change scores or ratings, which are based exclusively on financial statements and market prices.

Update cadence:with each company's daily SEC refresh.

5. Calculated Metrics

Everything beyond raw financial data and market prices is derived, not sourced from a third party. This includes:

  • Five model scores: Piotroski F-Score, Buffett Quality, Graham Defensive Criteria, Lynch Categories and PEG, Greenblatt Magic Formula — all computed from SEC EDGAR data
  • Four-axis composite score: Quality, Value, Momentum, and Timing — weighted and combined into a single 0–10 score
  • Fair value estimates: One fair value per stock, from one method chosen by sector profile. The market price is never an input: no blending toward it, no hiding a value that disagrees with it. Each value comes with its method and a low–base–high range, and is withheld only when the method's inputs are invalid, with the reason shown. The fair value is displayed; it is not an input to the composite score.
  • Score labels: “Strong fit” through “Poor fit” — descriptive category names mapped to numerical ranges, not analyst opinions or advice
  • Percentile rankings: Each stock ranked against all other S&P 500 companies on every metric

We do not use analyst estimates, consensus targets, sentiment scores, or any third-party ratings in our calculations. Every output is traceable to SEC filings and market prices. See our methodology for the complete formula and weights.

6. Update Frequency

Data TypeSourceUpdate Frequency
Financial statementsSEC EDGARWithin 24 hours of filing
Market pricesAlpaca MarketsEvery 2 hours (market hours)
Composite scoresCalculatedDaily after market close
Fair value estimatesCalculatedDaily
Company eventsSEC EDGAR (Form 8-K)Daily

7. Coverage

AlphaStocks covers all S&P 500 constituents — approximately 503 companies (the index includes some companies with multiple share classes). Coverage is rebalanced when S&P Dow Jones Indices adds or removes companies from the index.

When a company is added to the S&P 500, we begin scoring it within 24 hours, provided sufficient historical filing data is available on SEC EDGAR. When a company is removed from the index, its historical scores remain accessible but it is no longer included in active rankings or percentile calculations.

8. Limitations

Transparency requires being honest about what our data does not capture:

  • Backward-looking only: All data comes from past filings and historical prices. We do not use forward earnings estimates, analyst forecasts, or guidance.
  • No qualitative assessment: Management quality, corporate culture, pending litigation, regulatory changes, and competitive dynamics are not captured by any of our data sources.
  • Filing delays and restatements: Companies occasionally restate prior filings or file late. Our data reflects the most recently available filing at any given time.
  • No real-time events: Breaking news, CEO departures, product recalls, or geopolitical events are not reflected in scores until they appear in a subsequent SEC filing or in the market price.
  • U.S. equities only: Coverage is limited to S&P 500 constituents. International stocks, small caps, bonds, ETFs, and other asset classes are not covered.

← Back to homepage