Methodology

How the projections and signals on this site are calculated

Every forward-looking number here is produced by arithmetic on filed financial statements. There is no proprietary model and nothing hidden. This page describes exactly what happens, including where the approach is weak.

Revenue projection

Each future quarter is projected as:

forecast(q) = revenue from the same quarter one year earlier × median year-over-year growth of the last four quarters

Projecting from the matching quarter a year back handles seasonality, which dominates quarterly revenue — Apple's December quarter is always its largest, retailers spike at year end, and a model that ignores this will be wrong every time. Using the median of recent growth rates rather than the average stops one distorted quarter — an acquisition, a pandemic comparison, an accounting change — from dragging the entire forecast horizon.

Why not a neural network?

Because there isn't enough data for one. A company with a decade of filings offers roughly forty quarterly observations. A model with any real capacity would fit noise in a sample that small, and it would do so while being impossible to explain. We tested a language model against this task directly; it returned figures off by orders of magnitude.

The seasonal method was chosen empirically, not by preference. Backtested across a basket of large caps it produced roughly 7% mean absolute error, beating a weighted six-quarter mean (about 10%), a plain four-quarter average (about 7.5%), and longer medians (9–9.4%).

An earlier version also pulled the estimate toward a long-run growth average. That proved actively harmful: anchoring on a company's full history projected Tesla growing 52% a year off its 2010s hypergrowth. Removing the anchor was both simpler and more accurate — a reminder that added sophistication is not the same as added accuracy.

Every projection is backtested

The same method is re-run on data ending four quarters ago and scored against what actually happened since. The resulting error is displayed next to the projection.

This matters more than the projection itself. A forecast shown without its historical error implies a precision it doesn't have. When you see "±8% backtested", that is how far this method has typically missed for that company — and it is still no guarantee about the future.

Implied earnings per share

Projected revenue multiplied by the recent net margin, divided by a projected share count. Both additions are assumptions — that margins hold and that the share count keeps drifting at its recent rate — stacked on top of a projection that already carries error. It is therefore less reliable than the revenue figure it derives from, and the site says so wherever it appears.

Reading SEC filings is harder than it looks

Fundamentals come from EDGAR's structured filing data rather than a commercial feed. That gives decades of history straight from the source, but filings are not a tidy database. Some of what we handle:

  • Accounting tags drift. The same concept is filed under different tags across eras and industries. We merge several candidate tags in priority order rather than trusting the first one that returns data.
  • Banks aren't manufacturers. Lenders report total revenue under a concept that other filers don't use. Reading the general tag first understated one lender's quarterly revenue as $130 million against an actual $1.1 billion.
  • Cash flow accumulates. Cash-flow figures are filed year-to-date, not per quarter, so each quarter must be differenced from the previous one or three quarters of the year appear blank.
  • Fourth quarters are often missing. Companies file Q1–Q3 plus a full year. Q4 is derived by subtraction — but only for figures that legitimately sum. Share counts are period averages, so subtracting them produces nonsense, and those quarters are left out instead.
  • Some signals don't apply to financial companies. The accrual ratio compares profit against operating cash flow, but lenders book loan originations there, so the comparison is meaningless. Banks, insurers and real-estate filers are excluded from that signal by industry classification rather than shown a misleading result.

Dividends

Dividend amounts are split-adjusted, so a stock split doesn't register as a dividend cut and break a growth streak. Payment streaks are calculated by spacing: a gap materially longer than the company's usual interval counts as a skipped payment and ends the streak. Growth streaks count only complete calendar years, so a partial current year can't be mistaken for a reduction.

Altman Z and Piotroski F

Both are published academic formulas — Altman's from 1968, Piotroski's from 2000 — applied exactly as written, with their original thresholds. Nothing is fitted or tuned here, and every input is listed on the page so the arithmetic can be checked by hand.

They answer different questions. Z measures how fragile the balance sheet is: a level. F counts nine year-over-year improvements in profitability, debt and efficiency: a direction. Shown together because a company can be comfortably solvent and deteriorating, or financially stretched and improving, and the pair says more than either alone.

Two things are worth knowing when reading Z. One of its five terms is market value over total liabilities, so a highly valued company scores well partly because investors are paying a lot for it — the page shows what share of the score that term accounts for. And, like the accrual ratio, both formulas were derived for ordinary operating companies; banks, insurers and property filers are marked "not applicable" rather than shown a meaningless number. Balance-sheet figures use the latest filed period; profit, cash flow and revenue use trailing twelve months, and the year-over-year comparisons in F run against the twelve months ending four quarters earlier so seasonality isn't mistaken for improvement.

Technical indicators

RSI, moving averages and MACD are calculated by their standard definitions from closing prices. They describe how a price has behaved, nothing more. Conventional labels such as "overbought" or "golden cross" are descriptions of past movement, not predictions, and the site presents them that way. Each is defined in the glossary.

Automated summaries

Some explanatory text is generated by a language model summarising the figures already on the page. It can be wrong, and it is labelled where it appears. The underlying numbers, not the summary, are the thing worth reading.

Corrections

If a figure here disagrees with a company's filing, the filing is right and we want to know. See about for contact details.

None of this is investment advice. Projections are estimates of what a company may report, not forecasts of its share price, and they are routinely wrong. See the terms of use.

Look up a stock · Glossary · About