QR

Methodology

The setup score

Each covered stock has a setup score from −100 to +100. It measures momentum, not value.

Every input is scored the same way: the latest reading against its own trailing 30-session mean, as a z-score, clamped at 2 standard deviations, rescaled to ±100. An input whose rise hurts the stock is sign-flipped first. An input with fewer than 5 readings is left out and the rest are averaged as usual.

Inputs are grouped into three buckets: pricing, demand, and macro. A bucket is the plain average of its present inputs. The composite blends the buckets with per-stock weights. Missing buckets are dropped and the weights renormalize over what remains.

The composite maps to a state through a hysteresis band: safe is entered at +25 and left below +15, warning is entered at −25 and left above −15, watch is the band between. That is deliberate: it turns boundary noise into a small number of real regime changes.

Each day's state also gets a weight stress test. The composite is recomputed across a grid of nearby weight sets, every bucket weight shifted up or down 10% and renormalized, with the hysteresis replayed along each grid path. The state is robust when every path lands in the published state, thin when any path disagrees, and the share of agreeing paths is the number on the chip. One caveat: this tests sensitivity to the weights, not to the model. A state can be weight-robust and still rest on the wrong inputs.

Quality tiers
real interp est

Every stored reading carries a quality tag. real is an observed print. interp is interpolated between two known points. est is an estimate, usually reconstructed history. Charts draw them as solid, dashed, and dotted lines. A line segment takes the weaker of its two endpoints.

A day's score confidence is the weakest tag among that day's contributing inputs. One estimated input marks the whole day.

A freshly fetched price that moved implausibly far is quarantined as unconfirmed: it shows with an amber dashed marker until the next fetch confirms or replaces it.

The backtest strip

The strip under each signal timeline answers one question: what did the stock do in the sessions after days in each state. It shows the average and median forward move at 5, 20, and 60 sessions, the share of up outcomes, and the drawdown after each flip into the state.

What it is not: proof of a trading edge. The covered window is one in-sample bull market. Raw returns are positive in every state. A few cells clear the all-days average by fractions of a point. Dozens of overlapping cells are tested at once with no correction for that multiplicity, so the small greens that appear are consistent with noise. The number colored is only the edge against the all-days average, and it grays out inside a per-horizon band.

Forward windows overlap: n days give only about n divided by the horizon in independent samples. A cell with fewer than 3 independent windows stays gray no matter how large its edge reads: the sample cannot support a color.

What the score has earned so far is early regime notice: it flags when the inputs roll over. That is what it is for. It is not a return promise.

Event reactions by class

Every catalyst on the timeline carries a hand-set impact tag: bullish, bearish, neutral, or unknown. Pooled across all covered stocks, this is what the tape actually did in the sessions after events of each type — the number of events, and the mean and median move at T+1 and T+5, with the per-stock make-up of each class. It describes what happened. It is not a claim that the tags predict anything, and no cell here is a signal.

Event type Events T+1 T+5 Composition
meanmedianmeanmedian

Per stock the count is far too small to read on its own — four or five events each — so classes are pooled across stocks, and the composition column is shown so no pooled class can look like a trend when it is really one stock. The mean and median sit side by side on purpose: at this sample a single outlier can drag a mean well past its median, so where the two disagree the median is the more honest read.

T+k is the k-th base-metric trading session on or after the event date, measured against the last close strictly before it; T+1 is the immediate reaction, T+5 a week of sessions later. Most events here print after the close, so their T+1 leans on a print-day close that is itself pre-reaction — read T+1 for after-close events lightly. “Unknown” is almost entirely earnings, tagged with no pre-event directional call, which is why it is the largest class and should not be read as a directional cohort.

How edges are sourced

The value-chain panel shows who supplies and who buys from a covered stock, with a revenue-share weight per counterparty. Every weight is a dated vintage carrying the exact quote and URL it came from. New disclosures add new vintages. Old ones are never edited.

Filed concentration disclosures name no one, so those rows are rank slots: largest customer, second largest, third. A slot may be a different company in each period, and the panel never claims otherwise. Named shares come only from sources that name the company, and they carry an estimate tag and their own dated receipt.

A grey row means missing coverage: QuantRater has no model for that entity. Grey is not a neutral signal. It is an absence.

How data reaches the site

Market feeds are pulled automatically: prices on a 15-minute timer, memory pricing checked once a day. Slow-moving manual metrics are entered as ritual prints: each print records the value, the date it describes, and a verbatim source quote. The print file is append-only and is re-applied in full on every deploy, so a recorded number can never be silently lost or changed.

Gaps are never bridged. A session with no data stays empty, charts break their lines there, and a foreign market's holiday is not filled with a neighbor's price. When the model needs a value between known points it labels the result interp and draws it dashed. Nothing is backfilled quietly.

every claim on this page describes the running system: the score constants, quality tags, backtest gates, edge vintages, and fetch cadence above are read from the same code and data that render the monitors. compare · home