Signal catalog
Every live signal, grouped by how far it is derived from the raw tape. Click any name for its full reference page.
Price
Price levels and records: quotes, bars, session levels, and rolling highs & lows — plus the signals those levels own (at / above / approaching / breaking).
Trades & quotes
Last trade and the current quote: price, bid/ask, and depth.
| Column | Type | Description |
|---|---|---|
ask | numeric | Best ask from the consolidated NBBO at the most recent snapshot tick. |
ask_size | integer | Round lots at the ask. Raw count — NOT multiplied by 100. |
bid | numeric | Best bid from the consolidated NBBO at the most recent snapshot tick. |
bid_size | integer | Round lots at the bid. Raw count — NOT multiplied by 100. Multiply by 100 to get share count. |
price | numeric | Most recent trade price. |
Latest bars
OHLC of the latest minute bar and the prior session's daily bar.
| Column | Type | Description |
|---|---|---|
min_close | numeric | Current minute bar’s most-recent close (last print). |
min_high | numeric | Current minute bar’s running high. |
min_low | numeric | Current minute bar’s running low. |
min_open | numeric | Current minute bar’s open. Updates every snapshot tick during market hours. |
prev_day_high | numeric | Previous trading day’s session high. |
prev_day_low | numeric | Previous trading day’s session low. |
prev_day_open | numeric | Previous trading day’s official open. |
previous_close | numeric | Official prior-session close. |
Session levels & position
Today's session levels (open, high, low) and where price sits relative to them and yesterday's landmarks.
| Column | Type | Description |
|---|---|---|
session_high | numeric | Highest trade so far today. |
session_low | numeric | Lowest trade so far today. |
session_open | numeric | Today’s opening print. |
above_premarket_high | state | Close above the pre-market session high.close > max(price[04:00..09:30]) |
above_session_open | state | Close above today’s session-open price.close > open_0930 |
above_yesterday_close | state | Close above the prior session’s close.close > close_prev |
above_yesterday_high | state | Close above the prior session’s intraday high.close > high_prev |
at_session_high | state | At today’s intraday session high (within tolerance).price >= session_high * 0.999 |
at_session_low | state | At today’s intraday session low (within tolerance).price <= session_low * 1.001 |
below_premarket_low | state | Close below the pre-market session low.close < min(price[04:00..09:30]) |
below_yesterday_low | state | Close below the prior session’s intraday low.close < low_prev |
tested_session_high_recent | state | Price touched today’s session high within the last 5 minutes.max(close, last 5 min) >= session_high * 0.999 |
tested_session_low_recent | state | Price touched today’s session low within the last 5 minutes.min(close, last 5 min) <= session_low * 1.001 |
Highs & lows
Rolling-window highs and lows (5-day, 20-day, 52-week), their dates and distances, and the at/approaching/breaking signals those levels own.
| Column | Type | Description |
|---|---|---|
days_since_52w_high | integer | Trading days since the most recent 52-week high. |
days_since_52w_low | integer | Trading days since the most recent 52-week low. |
high_20d | numeric | Highest trade in the trailing 20 trading days. |
high_20d_eod | numeric | Highest close over the last 20 trading sessions. Close-basis. For the intraday-wick variant use `at_20d_high`. |
high_52w | numeric | Highest trade in the trailing 52 weeks (live, includes today). |
high_52w_date | date | Date the trailing-52-week high was set. Useful for "fresh 52w highs in the last 30 days" scans. |
high_52w_eod | numeric | Highest close over the trailing 52 weeks. The `_eod` distinguishes from the canonical intraday `52_week_high` (which captures wicks). |
high_5d | numeric | Highest intraday high over the last 5 trading sessions, inclusive of the current session. |
high_5d_eod | numeric | Highest close over the last 5 trading sessions. Close-basis (no intraday wicks) — pair with `high_5d` to distinguish. |
last_20d_high_date | date | Date the trailing-20-day high was set. |
last_20d_low_date | date | Date the trailing-20-day low was set. |
low_20d | numeric | Lowest trade in the trailing 20 trading days. |
low_20d_eod | numeric | Lowest close over the last 20 trading sessions. Close-basis. |
low_52w | numeric | Lowest trade in the trailing 52 weeks (live, includes today). |
low_52w_date | date | Date the trailing-52-week low was set. |
low_52w_eod | numeric | Lowest close over the trailing 52 weeks. |
low_5d | numeric | Lowest intraday low over the last 5 trading sessions, inclusive of the current session. |
low_5d_eod | numeric | Lowest close over the last 5 trading sessions. Close-basis. |
pct_from_52w_high | numeric | Percent below the 52-week high. Always >= 0 (use the `at_52w_high` flag to test highs). |
pct_from_52w_low | numeric | Percent above the 52-week low. Always >= 0. |
position_in_52w_range | numeric | Where the live price sits in the 52-week range, 0–100. 0 = at low, 100 = at high. |
52_week_high | state | Price printed a new 52-week high today.high > max(high) over the prior 252 sessions |
52_week_low | state | Price printed a new 52-week low today.low < min(low) over the prior 252 sessions |
approaching_52w_high | state | Price is within 5% of the 52-week high.close >= high_52w * 0.95 AND close < high_52w AND (close > sma_20 AND close > sma_50, OR >= 3 of last 5 days up) AND volume > avg_volume_10d |
approaching_52w_low | state | Price is within 5% of the 52-week low.close <= low_52w * 1.05 AND close > low_52w AND (close < sma_20 AND close < sma_50, OR >= 3 of last 5 days down) AND volume > avg_volume_10d |
at_20d_high | state | Price is at or above the 20-day high.close >= high_20d |
at_20d_low | state | Price is at or below the 20-day low.close <= low_20d |
at_52w_high | state | Price is within 0.5% of the 52-week high.close >= high_52w |
at_52w_low | state | Price is within 0.5% of the 52-week low.close <= low_52w |
Support & resistance
Pivot-detected price levels a ticker has repeatedly touched, and whether price is at one now. Levels are found nightly across the equity universe; a ticker with too little history has none and its flags read NULL rather than false.
| Column | Type | Description |
|---|---|---|
at_resistance | state | Price is testing a detected resistance level.Price within 1.5 × ATR(20) of an active detected resistance level — a cluster of two or more historical swing highs within an ATR-scaled band, still unbroken. |
at_support | state | Price is testing a detected support level.Price within 1.5 × ATR(20) of an active detected support level — a cluster of two or more historical swing lows within an ATR-scaled band, still unbroken. |
Volume
How much traded: absolute quantities and averages, and activity relative to baseline.
Volume & averages
Absolute trading quantities: today's and prior volumes, dollar volume, averages, bar-level counts.
| Column | Type | Description |
|---|---|---|
avg_volume_10d | bigint | 10-day trailing average daily volume. |
avg_volume_30d | bigint | 30-day trailing average daily volume. |
day_dollar_volume | numeric | Today’s cumulative dollar volume traded. |
min_day_accumulated_dollar_volume | numeric | Today’s cumulative dollar volume across the session so far. |
min_day_accumulated_volume | bigint | Today’s cumulative shares traded across the session so far (4 AM ET onward). |
min_dollar_volume | numeric | Current minute bar’s dollar volume (close × volume approximation). |
min_trade_count | integer | Current minute bar’s number of trades. |
min_volume | integer | Current minute bar’s accumulated shares traded. |
prev_day_volume | bigint | Previous trading day’s total volume (raw shares). |
volume_today | bigint | Shares traded so far today. |
Relative & unusual volume
Trading activity relative to baseline: relative volume, bursts, unusual-volume flags, liquidity conditions.
| Column | Type | Description |
|---|---|---|
relative_volume | numeric | Ratio of today’s pace-adjusted volume to the 10-day average. 2.0 means 2× normal. |
volume_change_vs_avg | numeric | Ratio of today’s pace-adjusted volume to its 10-day average. Numeric surface of the same denominator `relative_volume` uses. |
volume_trend_5d | text | Slope of daily volume regressed over the last 5 trading days. Positive = building, negative = drying. |
high_volume_alert | event | Today’s volume is at least 2× the 30-day average.minute_volume > 5 x (avg_volume_10d / 390), i.e. this minute's volume exceeds 5x the typical per-minute pace from the 10-day average |
illiquid | state | Thinly traded — 10-day average volume is under 100k shares.avg_volume_10d < 100000 |
low_volume_regime | state | This name is in a sustained quiet stretch.avg(volume, 10) <= 0.75 * avg_volume_10d |
quiet_minute | state | A sustained quiet stretch — 10-minute volume average well below recent baseline.avg(volume, 10m) < 0.5 * avg(volume, prior 30m) |
volume_burst_3x | event | Current minute volume ≥ 3× recent average.volume >= 3 * avg(volume, 30 min prior) |
volume_burst_5x | event | Current minute volume ≥ 5× recent average.volume >= 5 * avg(volume, 30 min prior) |
Price action
How price is moving: behaviors recognized directly from the price record — changes, gaps, momentum episodes, range structures — with no indicator in between.
Performance & change
Price change over standard horizons — today through 1 year — plus streaks and day-mover flags.
| Column | Type | Description |
|---|---|---|
change_1m | numeric | Percent change vs. close ~21 trading days ago. Daily; see `change_1w` for note. |
change_1w | numeric | Percent change in close vs. the close 5 trading days ago. Computed post-close; does NOT update intraday — use `from_open_pc` + `day_change_pct` for intraday-aware change. |
change_1y | numeric | Percent change vs. close ~252 trading days ago. |
change_3m | numeric | Percent change vs. close ~63 trading days ago. |
change_6m | numeric | Percent change vs. close ~126 trading days ago. |
change_ytd | numeric | Percent change since the first trading day of the calendar year. |
day_change | numeric | Absolute change vs `previous_close`. |
day_change_pct | numeric | Percent change vs `previous_close`. Expressed as a decimal fraction (0.05 = 5%), not a whole percent. |
days_down | integer | Consecutive trading days closing lower than the prior close. Resets to 0 on an up day. |
days_up | integer | Consecutive trading days closing higher than the prior close. Resets to 0 on a down day. |
from_open_pc | numeric | Intraday: percent change from today’s session open to the latest snapshot price. Resets at session boundary. |
price_down_3pct | event | Intraday move of -3% or worse vs prior close.day_change_pct <= -3 |
price_up_3pct | event | Intraday move of 3%+ vs prior close.day_change_pct >= 3 |
top_gainer | state | Among the session's top 20 gainers.Ranks in the top 20 by day_change_pct among active tickers with price above $1 and session volume above 100k shares. |
top_loser | state | Among the session's top 20 losers.Ranks in the bottom 20 by day_change_pct among active tickers with price above $1 and session volume above 100k shares. |
Gaps
Opening gaps: size, direction, extremes, and intraday fill.
| Column | Type | Description |
|---|---|---|
gap | numeric | Overnight gap as percent: `(today_open − prev_close) / prev_close`. Signed — positive = gap up, negative = gap down. Use this for custom gap thresholds; the boolean shortcuts `gap_up` (≥3%) and `gap_up_extreme` (≥10%) cover the canonical levels. |
gap_pct | numeric | Percent change of `session_open` vs `previous_close`. One value per session. |
gap_down | event | Today opened 3%+ below prior close.(close_prev - open) / close_prev >= 0.03 AND price still below close_prev (gap has not been reclaimed) |
gap_down_extreme | event | Today opened 10%+ below prior close.(close_prev - open) / close_prev >= 0.10 |
gap_filled_today | event | Today’s opening gap was closed by an intraday move.Opened with gap >= 0.5% AND intraday range straddled close_prev. |
gap_up | event | Today opened 3%+ above prior close.(open - close_prev) / close_prev >= 0.03 AND price still above close_prev (gap has not been filled negative) |
gap_up_extreme | event | Today opened 10%+ above prior close.(open - close_prev) / close_prev >= 0.10 |
Intraday momentum
Directional strength read straight off the session's bars: drives, drifts, spikes, rallies, exhaustion.
| Column | Type | Description |
|---|---|---|
afternoon_drift_up | state | Afternoon session net up.close_1600 > close_1200 |
last_hour_rally | event | Final hour of session net up.close_1600 > close_1500 * 1.005 |
last_hour_selloff | event | Final hour of session net down.close_1600 < close_1500 * 0.995 |
microspike_down | event | Single 1-minute candle return ≤ −1%.(close - open) / open <= -0.01 |
microspike_up | event | Single 1-minute candle return ≥ +1%.(close - open) / open >= 0.01 |
momentum | state | momentum present |
momentum_down | state | Sustained downward momentum on the daily bars.Three or more consecutive down days whose average daily move exceeds about 1%. |
momentum_exhaustion_down | event | Downward momentum showing signs of exhaustion.rsi_14 < 30 AND days_down >= 5 |
momentum_exhaustion_up | event | Upward momentum showing signs of exhaustion.rsi_14 > 70 AND days_up >= 5 |
momentum_strong_down | event | Strong downward momentum across multiple measures.days_down >= 3 AND volume_trend_5d = 'increasing' |
momentum_strong_up | event | Strong upward momentum across multiple measures.days_up >= 3 AND volume_trend_5d = 'increasing' |
momentum_up | state | Sustained upward momentum on the daily bars.Three or more consecutive up days whose average daily move exceeds about 1%. |
morning_strength | state | First two hours of session net positive.close_1130 > open_0930 |
opening_drive_down | event | First 5 minutes of session down < −0.5%.close_0935 < open_0930 * 0.995 |
opening_drive_up | event | First 5 minutes of session up > +0.5%.close_0935 > open_0930 * 1.005 |
pre_close_drift_down | event | Last 10 minutes before close net down.close_1600 < close_1550 |
pre_close_drift_up | event | Last 10 minutes before close net up.close_1600 > close_1550 |
pre_earnings_drift | state | Stock has moved ≥5% (absolute) over the trailing week with earnings within 7 days — a setup the literature shows often continues through the report.days_to_earnings BETWEEN 1 AND 7 AND ABS(change_1w) >= 0.05 |
rapid_move_down_5m | state | Price down more than −0.5% in the last 5 minutes.(close - close_5m_ago) / close_5m_ago <= -0.005 |
rapid_move_up_5m | state | Price up more than +0.5% in the last 5 minutes.(close - close_5m_ago) / close_5m_ago >= 0.005 |
three_down_hours | state | Three consecutive lower hourly closes.close < close_1h_ago < close_2h_ago < close_3h_ago |
three_up_hours | state | Three consecutive higher hourly closes.close > close_1h_ago > close_2h_ago > close_3h_ago |
Ranges & reversals
Range structures and their resolution: opening range, breaks, consolidation, pullbacks, reversals, unusual range width.
| Column | Type | Description |
|---|---|---|
above_opening_range | state | Price is trading above the first 15-minute opening-range high.close > or_high (OR = first 15 min after 09:30 ET) |
below_opening_range | state | Price is trading below the first 15-minute opening-range low.close < or_low (OR = first 15 min after 09:30 ET) |
consolidating_15m | state | Last 15 minutes traded in a tight range.high_15m - low_15m < 0.5 * ((max(close, 30m) - min(close, 30m)) / 15) (ATR-30m proxy, not true ATR) |
consolidation | state | Price is range-bound — the last 5 sessions span less than 5%.(max(high) − min(low)) / midpoint < 0.05 over 5 bars |
expanded_hourly_range | state | This hour’s range is unusually wide.(high - low) > 1.5 * atr_hourly_20 |
hourly_reversal_bearish | event | Higher high, lower close than the prior hour.high > high_1h_ago AND close < close_1h_ago |
hourly_reversal_bullish | event | Lower low, higher close than the prior hour.low < low_1h_ago AND close > close_1h_ago |
in_opening_range | state | Price is inside the first-hour high/low range.or_low <= price <= or_high (OR = first 15 min after 09:30 ET) |
narrow_hourly_range | state | This hour’s range is unusually narrow.(high - low) < 0.5 * atr_hourly_20 |
pullback | state | Pullback to the 20-day moving average within an uptrend.in_uptrend (sma_50 > sma_200 AND price > sma_200) AND price below the 20-day or 50-day SMA by < 2% AND price down >= 2% from the 5-day high. Live evaluation at minute resolution. |
range_break_15m_down | event | Broke below the prior 15-minute low.close < min(low, prior 15 min) |
range_break_15m_up | event | Broke above the prior 15-minute high.close > max(high, prior 15 min) |
range_expansion | event | Today's true range > 2 × ATR(14) with volume — direction-agnostic regime-change tag.true_range > 2 * atr_14 AND volume > 1.5 * avg_volume_10d AND volume > 100,000 |
repeated_test_of_high | state | Tested today’s session high three or more times — failed-breakout setup.Close within 0.1% of the session high (close >= session_high * 0.999) on at least 3 minutes this session. |
repeated_test_of_low | state | Tested today’s session low three or more times — failed-breakdown setup.Close within 0.1% of the session low (close <= session_low * 1.001) on at least 3 minutes this session. |
sticky_breakout | state | Latches on when price makes a 52-week high and stays on until the nightly reset — a persistent breakout tag.set on a 52-week-high breakout; reset each night |
Technicals
Named technical indicators (SMA, EMA, VWAP, RSI, stochastics, MACD, ADX, Bollinger, ATR) and every signal computed through one. The test: a named mathematical object sits between the bars and the signal.
Moving averages & VWAP
SMAs, EMAs, and VWAPs, with the distances, above/below states, and crosses they own.
| Column | Type | Description |
|---|---|---|
day_vwap | numeric | Today’s session volume-weighted average price. |
ema_12 | numeric | 12-day EMA. Fast-side input of canonical MACD (`macd = ema_12 − ema_26`). |
ema_21 | numeric | 21-day EMA. Often paired with `ema_9` for short-trend bias; also serves as a dynamic-support reference. |
ema_26 | numeric | 26-day EMA. Slow-side input of canonical MACD (`macd = ema_12 − ema_26`). |
ema_9 | numeric | 9-day exponential moving average of close. Most-recent-weighted; reacts faster than the same-period SMA. Commonly paired with `ema_21` for short-trend bias. |
min_vwap | numeric | Current minute bar’s volume-weighted average price. |
pct_from_sma_10 | numeric | Percent difference between current close and `sma_10`. Positive = above MA, negative = below. Continuous version of the `above_sma_10` boolean. |
pct_from_sma_100 | numeric | Percent difference between current close and `sma_100`. Daily-cadence because the slow MA changes slowly. |
pct_from_sma_20 | numeric | Percent difference between current close and `sma_20`. Continuous version of the `above_sma_20` boolean. |
pct_from_sma_200 | numeric | Percent distance from the 200-day SMA. Negative when price is below the average. |
pct_from_sma_50 | numeric | Percent distance from the 50-day SMA. Negative when price is below the average. |
pct_from_vwap | numeric | Percent distance from today’s VWAP. |
prev_day_vwap | numeric | Previous trading day’s session VWAP. |
sma_10 | numeric | 10-day simple moving average. |
sma_100 | numeric | 100-day simple moving average of close. Slower than `sma_50`, faster than `sma_200` — useful for intermediate-term trend. |
sma_20 | numeric | 20-day simple moving average. |
sma_200 | numeric | 200-day simple moving average. |
sma_50 | numeric | 50-day simple moving average. |
vwap | numeric | Daily volume-weighted average price from market open through the most recent print. Updates intraday with each new tick. |
above_sma_10 | state | Price is above the 10-day simple moving average.close > sma_10 |
above_sma_20 | state | Price is above the 20-day simple moving average.close > sma_20 |
above_sma_200 | state | Price is above the 200-day simple moving average.close > sma_200 |
above_sma_50 | state | Price is above the 50-day simple moving average.close > sma_50 |
above_vwap | state | Price is above today’s volume-weighted average price.close > vwap |
above_vwap_minute | state | Current price above session VWAP.close > vwap_session |
death_cross | event | 50-day SMA crossed below 200-day SMA today.Yesterday: sma_50 ≥ sma_200. Today: sma_50 < sma_200. |
death_regime | state | Long-term downtrend regime — 50-day SMA below 200-day SMA.sma_50 < sma_200 |
golden_cross | event | 50-day SMA crossed above 200-day SMA today.Yesterday: sma_50 ≤ sma_200. Today: sma_50 > sma_200. |
golden_regime | state | Long-term uptrend regime — 50-day SMA above 200-day SMA.sma_50 > sma_200 |
held_above_vwap_30m | state | Price has stayed above session VWAP without dipping for at least 30 minutes.close > vwap_session for every minute in the last 30 |
held_below_vwap_30m | state | Price has stayed below session VWAP without lifting for at least 30 minutes.close < vwap_session for every minute in the last 30 |
sma_10_crossed_above_50_today | state | The 10-day SMA crossed above the 50-day SMA today — a short-term bullish cross.sma_10 crossed above sma_50 vs. the prior session |
sma_10_crossed_below_50_today | state | The 10-day SMA crossed below the 50-day SMA today — a short-term bearish cross.sma_10 crossed below sma_50 vs. the prior session |
vwap_cross_down | event | Crossed below session VWAP this minute.close_prev_min >= vwap_session AND close < vwap_session |
vwap_cross_up | event | Crossed above session VWAP this minute.close_prev_min <= vwap_session AND close > vwap_session |
Oscillators
Bounded momentum oscillators: RSI and stochastics, with their threshold flags.
| Column | Type | Description |
|---|---|---|
rsi_14 | numeric | Relative Strength Index, 14-period. Range 0–100. |
rsi_7 | numeric | Relative Strength Index over 7 periods - a faster, more sensitive RSI. Range 0-100. |
stochastic_d | numeric | Stochastic oscillator %D: 3-period smoothing of %K. |
stochastic_k | numeric | Stochastic oscillator %K: where price sits within its recent high-low range, 0-100. |
rsi_overbought | state | RSI(14) is in overbought territory.rsi_14 > 70 |
rsi_oversold | state | RSI(14) is in oversold territory.rsi_14 < 30 |
Trend & direction
Trend direction and strength: MACD, ADX/±DI, SMA-based trend reads, and reversal composites.
| Column | Type | Description |
|---|---|---|
adx_14 | numeric | Average Directional Index (14-period): trend strength from 0 to 100. |
macd_histogram | numeric | MACD line minus signal. Positive when bullish, negative when bearish. |
macd_line | numeric | MACD line (12-EMA minus 26-EMA). |
macd_signal | numeric | MACD signal line (9-EMA of MACD line). |
minus_di | numeric | -DI (14-period): the bearish directional-movement component of the ADX system. |
plus_di | numeric | +DI (14-period): the bullish directional-movement component of the ADX system. |
trend_long | text | Long-term trend classification from `sma_200` slope. One of `uptrend`, `downtrend`, `sideways`. |
trend_medium | text | Medium-term trend classification from `sma_50` slope. One of `uptrend`, `downtrend`, `sideways`. |
trend_short | text | Short-term trend classification from short-MA slope. One of `uptrend`, `downtrend`, `sideways`. |
in_downtrend | state | Stacked downtrend across short, medium, and long horizons.close < sma_50 AND sma_50 < sma_200 |
in_uptrend | state | Stacked uptrend across short, medium, and long horizons.close > sma_50 AND sma_50 > sma_200 |
macd_above_signal | state | MACD line is above its signal line.macd > macd_signal |
macd_below_signal | state | MACD line is below its signal line.macd < macd_signal |
trend_reversal_bearish_today | event | Trend flipped from up to down today.Yesterday: sma_50 > sma_200. Today: macd_bearish AND rsi_14 < 50. |
trend_reversal_bullish_today | event | Trend flipped from down to up today.Yesterday: sma_50 < sma_200. Today: macd_bullish AND rsi_14 > 50. |
Volatility & bands
Volatility measures and deviation envelopes: ATR, Bollinger machinery, VWAP σ-bands.
| Column | Type | Description |
|---|---|---|
atr_14 | numeric | 14-day Average True Range. |
atr_percent | numeric | ATR(14) as a percent of price. Useful as a volatility filter. |
bollinger_lower | numeric | Lower Bollinger band (20-period, 2σ). |
bollinger_middle | numeric | 20-day SMA — the centerline of the Bollinger band. `bollinger_upper` and `bollinger_lower` are already documented; this fills in the missing middle. |
bollinger_pct_b | numeric | Position within Bollinger bands. 0 = at lower band, 1 = at upper band, >1 = outside. |
bollinger_upper | numeric | Upper Bollinger band (20-period, 2σ). |
bollinger_width | numeric | `(bollinger_upper − bollinger_lower) / bollinger_middle`. Normalized width — measures volatility regime. Narrow widths often precede expansion (see `bollinger_squeeze` in flags.ts). |
vwap_lower_band | numeric | VWAP − 2 standard deviations. Dynamic support reference. |
vwap_upper_band | numeric | VWAP + 2 standard deviations of intraday price action. Dynamic resistance reference. |
at_bollinger_lower | state | Price has reached the lower Bollinger band.abs(close - bb_lower) / close < 0.02 (within 2% of the lower band, above or below) |
at_bollinger_upper | state | Price has reached the upper Bollinger band.abs(close - bb_upper) / close < 0.02 (within 2% of the upper band, above or below) |
bollinger_squeeze | state | Bollinger band width compressed to a multi-week low — volatility is contracted.bollinger_width < 0.04 |
Fundamentals
Company financials: statement lines as reported, ratios derived from them, market-price multiples on top of them, share structure, and short positioning.
Income statement
Income-statement lines as reported, EPS, and their growth rates.
| Column | Type | Description |
|---|---|---|
basic_earnings_per_share | numeric | Basic EPS for the most-recently reported quarter. Signed. |
benefits_costs_expenses | bigint | Benefits and post-employment costs line item, where reported. Mostly insurance / utility issuers. |
cost_of_revenue | bigint | Cost of goods sold for the quarter. |
costs_and_expenses | bigint | Total costs and expenses reported on the income statement (COGS + opex). |
diluted_eps_ttm | numeric | Trailing-12m diluted EPS. |
earnings_growth_yoy | numeric | Year-over-year EPS growth percent from the most recently reported quarter vs. the same quarter prior year. Signed; positive = growth. |
ebitda | bigint | Earnings before interest, taxes, depreciation, and amortization (TTM). |
eps | numeric | Earnings per share (trailing twelve months). |
gross_profit | bigint | `revenues − cost_of_revenue` for the quarter. |
gross_profit_ttm | bigint | Trailing-12m gross profit. |
income_loss_from_continuing_operations_after_tax | bigint | After-tax income from continuing operations for the quarter. |
income_loss_from_continuing_operations_before_tax | bigint | Pre-tax income from continuing operations for the quarter. |
income_tax_expense_benefit | bigint | Income tax expense (positive) or benefit (negative) for the quarter. |
income_tax_expense_benefit_deferred | bigint | Deferred portion of income tax. Rare line item. |
net_income_loss | bigint | Bottom-line net income/loss for the quarter. Signed. |
net_income_loss_attributable_to_noncontrolling_interest | bigint | Portion of net income attributable to minority owners of consolidated subsidiaries. Usually 0 for non-conglomerates. |
net_income_loss_attributable_to_parent | bigint | Net income attributable to the parent entity (excludes noncontrolling interest). |
net_income_loss_available_to_common_stockholders_basic | bigint | Net income available to common shareholders — numerator for basic EPS. |
nonoperating_income_loss | bigint | Non-operating income/loss (interest income, gains/losses on investments, etc.) for the quarter. Signed. |
operating_expenses | bigint | Sum of operating costs reported on the income statement for the quarter (excludes COGS). |
operating_income_loss | bigint | Operating income or loss for the quarter. Signed. |
research_and_development | bigint | R&D spend for the quarter. NULL for companies that don't report R&D as a line item. |
revenue_growth_yoy | numeric | Year-over-year revenue growth: most-recent quarter vs same quarter prior year. Signed; positive = growth. |
revenue_growth_yoy_quarterly | numeric | YoY quarterly revenue growth. Signed. |
revenue_per_share_ttm | numeric | Trailing-12m revenue divided by diluted shares outstanding. USD per share. |
revenue_ttm | bigint | Trailing-twelve-month revenue. |
revenues | bigint | Total revenue for the most-recently reported quarter, from filed income statements. |
selling_general_and_administrative_expenses | bigint | SG&A for the quarter. |
wages | bigint | Wages and salaries line item, where reported. Rare — most companies fold this into SG&A. |
Balance sheet
Balance-sheet lines as reported.
| Column | Type | Description |
|---|---|---|
accounts_payable | bigint | Trade payables to suppliers as of the quarter end. |
assets | bigint | Total assets on the balance sheet as of the most recently reported quarter. |
book_value | numeric | Trailing-12m book value per share. Computed from `equity_attributable_to_parent / diluted_average_shares`. |
cash_on_hand | bigint | Cash plus cash equivalents — the most-liquid balance-sheet line. |
current_assets | bigint | Assets expected to be converted to cash or used up within 12 months. |
current_liabilities | bigint | Liabilities due within 12 months — accounts payable, short-term debt, accrued expenses. |
equity | bigint | Total shareholders' equity. |
equity_attributable_to_noncontrolling_interest | bigint | Equity attributable to minority shareholders of consolidated subsidiaries. Usually 0 for non-conglomerates. |
equity_attributable_to_parent | bigint | Equity attributable to the parent entity's shareholders (excludes minority interest). |
fixed_assets | bigint | Property, plant, and equipment (PP&E), net of accumulated depreciation. |
inventory | bigint | Inventory on hand. NULL for service and financial companies that don't carry inventory. |
liabilities | bigint | Total liabilities on the balance sheet. |
liabilities_and_equity | bigint | Total liabilities + total equity. Should equal `assets` (balance-sheet identity). Documented for completeness — useful as a sanity check rather than a scan target. |
long_term_debt | bigint | Long-term debt obligations. Often NULL because issuers fold this into `noncurrent_liabilities` instead of breaking it out. |
noncurrent_assets | bigint | Long-lived assets — property, plant, equipment, intangibles, long-term investments. |
noncurrent_liabilities | bigint | Liabilities due beyond 12 months — long-term debt, deferred taxes, pension obligations. |
other_current_assets | bigint | Current assets not separately broken out (prepaid expenses, short-term receivables, etc.). |
other_current_liabilities | bigint | Current liabilities not separately broken out. |
other_noncurrent_assets | bigint | Non-current assets not separately broken out (intangibles, deferred tax assets, etc.). |
Cash flow
Cash-flow-statement lines and free cash flow.
| Column | Type | Description |
|---|---|---|
free_cash_flow | bigint | Operating cash flow minus capital expenditures. Cash the business generates above what it needs to maintain operations. |
net_cash_flow | bigint | Sum of operating + investing + financing cash flow — period change in cash. |
net_cash_flow_continuing | bigint | Total cash flow excluding discontinued operations. Rare line item — populated only for companies in active discontinued-ops winddown. |
net_cash_flow_from_financing_activities | bigint | Net cash from financing (debt, dividends, buybacks). |
net_cash_flow_from_financing_activities_continuing | bigint | Financing cash flow excluding discontinued operations. |
net_cash_flow_from_investing_activities | bigint | Net cash from investing activities (capex, acquisitions). Negative for net spend. |
net_cash_flow_from_investing_activities_continuing | bigint | Investing cash flow excluding discontinued operations. |
net_cash_flow_from_operating_activities | bigint | Net cash from operations for the quarter. |
net_cash_flow_from_operating_activities_continuing | bigint | Same as `net_cash_flow_from_operating_activities` but excludes discontinued operations. |
Margins & ratios
Ratios computed entirely from statement lines — margins, returns, liquidity, leverage. No market price in the formula.
| Column | Type | Description |
|---|---|---|
current_ratio | numeric | Current assets ÷ current liabilities. Short-term liquidity. >1 = able to cover short-term obligations from current assets. |
debt_to_equity | numeric | Total debt divided by total shareholders' equity. Common leverage ratio; lower = less leveraged. |
gross_margin | numeric | `gross_profit / revenues` for the quarter. |
operating_margin | numeric | `operating_income_loss / revenues` for the quarter. |
operating_margin_ttm | numeric | Trailing-12m operating margin. |
profit_margin | numeric | Net income ÷ revenue. Quarterly. |
profit_margin_ttm | numeric | Trailing-12m profit margin. |
quick_ratio | numeric | (Current assets − inventory) ÷ current liabilities. Stricter liquidity — assumes inventory isn't quickly convertible. |
return_on_assets | numeric | Net income ÷ total assets. Quarterly figure. |
return_on_assets_ttm | numeric | Trailing-12m return on assets. |
return_on_equity | numeric | Net income ÷ shareholders' equity. Quarterly figure. |
return_on_equity_ttm | numeric | Trailing-12m return on equity. |
high_margin | state | Trailing-twelve-month profit margin is above 20%.profit_margin_ttm > 0.20 |
profitable | classification | Most-recently-reported quarter had positive net income.net_income_loss > 0 |
Valuation
Metrics crossing market price with financials — cap, EV, multiples, yield, beta — plus the size/style tags they own (cap tiers, beta tags, value_stock).
| Column | Type | Description |
|---|---|---|
beta | numeric | Trailing beta vs SPY. Null for issuers with insufficient price history. |
cap_class | text | Market-capitalization tier. One of `nano` (<$50M), `micro` ($50M–$300M), `small` ($300M–$2B), `mid` ($2B–$10B), `large` ($10B–$200B), `mega` (≥$200B), or `unknown` when `market_cap` is null. Updates daily post-close as `market_cap` moves. Preferred over the legacy `nano_cap/micro_cap/small_cap/mid_cap/large_cap/mega_cap` boolean columns (which remain in sync as backward-compat shortcuts). |
dividend_yield | numeric | Forward dividend yield as a fraction (0.025 = 2.5%). Null for non-payers. |
enterprise_value | bigint | Market cap + total debt − cash. |
ev_to_ebitda | numeric | `enterprise_value` ÷ `ebitda`. Capital-structure-neutral profitability multiple. |
ev_to_sales | numeric | `enterprise_value` ÷ `revenue_ttm`. Capital-structure-neutral revenue multiple. |
forward_pe | numeric | Forward price-to-earnings ratio using next-12m consensus EPS. Lower = cheaper on forward basis. |
market_cap | bigint | Market capitalization. Updated daily; intraday change derived from `price` × `shares_outstanding`. |
pe_ratio | numeric | Price-to-earnings ratio (trailing twelve months). Null for unprofitable issuers. |
peg_ratio | numeric | PE ratio divided by EPS growth rate. Sparsely populated — PEG is only computed for tickers with positive earnings growth and analyst coverage. |
price_to_book | numeric | Current price ÷ `book_value`. Common value-investing metric. |
price_to_cash_flow | numeric | Current price ÷ operating cash flow per share. Less manipulable than P/E. |
price_to_free_cash_flow | numeric | Current price ÷ `free_cash_flow` per share. Strictest cash-based valuation. |
price_to_sales | numeric | Current price ÷ `revenue_per_share_ttm`. Often used when companies have no earnings. |
high_beta | classification | Beta above 1.5: moves more than the market.beta > 2.0. |
high_dividend_yield | classification | Dividend yield above 4%.dividend_yield >= 0.04. |
large_cap | classification | Market cap between $10B and $200B.market_cap >= 10B AND market_cap < 200B. |
low_beta | state | Beta below 0.5 — moves much less than the market.beta < 0.5 |
mega_cap | classification | Market cap above $200B.market_cap >= 200B. |
micro_cap | state | Market cap between $50M and $300M.50e6 ≤ market_cap < 300e6 |
mid_cap | classification | Market cap between $2B and $10B.market_cap >= 2B AND market_cap < 10B. |
nano_cap | state | Market cap below $50M.market_cap < 50e6 |
small_cap | classification | Market cap between $300M and $2B.market_cap >= 300M AND market_cap < 2B. |
value_stock | classification | Trades at a value-style P/E.pe_ratio > 0 AND pe_ratio < 15. |
Short interest
Short positioning: readings, ratios, days-to-cover, and their flags.
| Column | Type | Description |
|---|---|---|
days_to_cover | numeric | Short interest divided by 30-day average daily volume. Trader’s "how many days of normal trading to cover all shorts" measure. |
short_interest | bigint | Raw shares-shorted count as last reported (FINRA bi-monthly). Pair with `short_interest_settlement_date` (profile.ts) for the as-of date. |
short_interest_settlement_date | date | Settlement date of the most recent short-interest report. |
short_percent_of_float | numeric | Short interest as a fraction of the free float. 0.10 = 10% of float is short. |
short_volume_ratio | numeric | Share of the day's volume executed as short sales (0–1). |
high_short_interest | state | More than 20% of the float is sold short.short_percent_of_float > 20 |
short_volume_spike | state | More than 60% of the day's volume was executed as short sales.short_volume_ratio > 0.60 |
Events
What happened or is scheduled to happen to the company: earnings, dividends, IPOs, share-capital changes, insider transactions.
Earnings
The earnings calendar and its outcomes: dates, windows, surprises, streaks.
| Column | Type | Description |
|---|---|---|
days_to_earnings | integer | Calendar days until next earnings announcement. Negative after report. |
earnings_beat_streak | integer | Consecutive quarters the company has beaten consensus EPS estimates. Resets to 0 on a miss. |
earnings_date | date | Next scheduled earnings announcement date. Null if not scheduled. |
earnings_fiscal_quarter | text | Fiscal quarter the next earnings report covers (e.g. "2026Q1"). Distinct from calendar quarter — covers companies whose fiscal year doesn't match the calendar. |
earnings_report_time | text | When in the trading day the next earnings will be reported. One of `BMO` (before market open), `AMC` (after market close), `DMH` (during market hours). |
last_earnings_surprise | numeric | `last_reported_eps − last_eps_estimate`. Signed; positive = beat. |
last_earnings_surprise_pct | numeric | Beat as percent of consensus. |
last_reported_eps | numeric | Actual EPS reported in the most recent earnings announcement. |
earnings_approaching | state | Earnings within 3 days.days_to_earnings = 3 (exactly three days before the scheduled earnings date) |
earnings_next_week | state | Earnings 8–14 days out — useful for the lead-up swing window.days_to_earnings >= 8 AND days_to_earnings <= 14 |
earnings_published | state | Earnings report date has passed (next earnings date is in the past).days_to_earnings <= 0 |
earnings_this_week | state | Earnings announcement scheduled in the next 7 days.0 <= days_to_earnings <= 7. Sourced from the forward earnings calendar plus the historical earnings table. |
earnings_today | event | Earnings reported today.EXISTS(ticker_earnings_history row with reported_date = today). Both pre-market and post-market reports count. |
earnings_tomorrow | state | Earnings reported in 1 calendar day. Pair with `earnings_report_time` to know BMO vs. AMC.days_to_earnings = 1 |
recently_reported_earnings | state | Reported earnings within the last 5 days.EXISTS(ticker_earnings_history row with reported_date in [today - 5d, today - 1d]). Captures the post-earnings reaction window. |
Dividends
Dividend amount, schedule, and approach flags.
| Column | Type | Description |
|---|---|---|
dividend | numeric | Most-recent dividend amount per share. |
dividend_date | date | Date of the most-recent dividend payment. |
dividend_frequency | integer | Payment frequency: `quarterly`, `monthly`, `semiannual`, `annual`. |
dividend_approaching | state | The ex-dividend date falls within the next 7 days.ex_dividend_date between today and today + 7d |
IPOs
IPO dates and status, from pending through recently listed.
| Column | Type | Description |
|---|---|---|
ipo_date | date | Date of the company's IPO, when known. |
ipo_in_7d | state | A firm IPO listing date falls within the next 7 days.IPO calendar listing date within 7 days |
pending_ipo | state | The ticker is in the IPO calendar but has not started trading.in the IPO calendar, pre-first-trade |
recently_ipoed | state | The company listed within the last 90 days.list_date >= today − 90d |
Splits & share changes
Events that alter share count or float: splits, buybacks, dilution.
| Column | Type | Description |
|---|---|---|
float_effective_date | date | As-of date for the current float-shares figure. |
buyback_30d | state | Shares outstanding fell more than 1% over the last 30 days.shares_outstanding < 30d-ago × 0.99 |
dilution_30d | state | Shares outstanding rose more than 3% over the last 30 days.shares_outstanding > 30d-ago × 1.03 |
split_recent | state | A stock split occurred in the last 7 days or is scheduled within 14 days.split execution_date between today − 7d and today + 14d |
Insider activity
Insider (Form 4) transaction flags: C-suite buys and sells, clustered buying.
| Column | Type | Description |
|---|---|---|
insider_c_suite_buy | state | A C-suite insider (CEO/CFO/COO/President/Chair) bought shares in the last 7 days.insider acquisition within 7d by an insider titled CEO, CFO, COO, President, Chairman, or Director |
insider_c_suite_sell | state | A C-suite insider (CEO/CFO/COO/President/Chair) sold shares in the last 7 days.insider disposal by a C-suite title within 7d |
insider_cluster_buy | state | Two or more distinct insiders bought shares in the last 14 days.count(distinct insider buyers) ≥ 2 within 14d |
Profile
Who and what the security is: categorical classification and identity data. Lookup information, not signals.
Classification
Categorical facts: sector, industry, SIC, exchange, country, currency, asset class and sub-class.
| Column | Type | Description |
|---|---|---|
asset_class | text | Asset class of the ticker: stocks, rates, crypto, or fx. |
asset_type | text | Asset class. One of `equity`, `etf`, or `crypto`. |
country | text | ISO country code of the issuer. |
currency_name | text | Currency the prices are quoted in (`usd`, `eur`, `gbp`, etc.). Effectively always `usd` for US-listed equities. |
exchange | text | Primary listing exchange, human-readable name — e.g. `NASDAQ`, `NYSE`, `NYSE Arca`, `Cboe BZX`, `NYSE American`. See `exchange_mic` for the raw ISO 10383 code. Null for a small number of delisted/edge names. |
exchange_mic | text | Primary listing exchange as an ISO 10383 **MIC code**: `XNAS` = NASDAQ, `XNYS` = NYSE, `ARCX` = NYSE Arca, `BATS` = Cboe BZX, `XASE` = NYSE American. The `?exchange=` filter accepts either this code or the human name. |
industry | text | GICS industry within the sector. |
sector | text | GICS sector. One of: Technology, Healthcare, Financials, Consumer Discretionary, Consumer Staples, Energy, Industrials, Materials, Utilities, Real Estate, Communication Services. |
sic_code | text | SIC code — the SEC's Standard Industrial Classification for the company's industry. |
sic_description | text | Plain-text label for the company's SIC industry code. |
ticker_category | text | Sub-class within an asset class, e.g. treasury_curve or policy_rate. |
Identifiers & reference
Which company this is: name, IDs (CIK, FIGI), listing status, contact, branding, employees.
| Column | Type | Description |
|---|---|---|
address_address1 | text | Company headquarters street address. |
address_city | text | Company headquarters city. |
address_postal_code | text | Company headquarters postal code. |
address_state | text | Company headquarters state or region. |
branding_icon_url | text | URL of the company's square icon image. |
branding_logo_url | text | URL of the company's logo image. |
cik | text | SEC Central Index Key — the company's identifier in EDGAR filings. |
composite_figi | text | Composite FIGI — Bloomberg's cross-exchange security identifier. |
description | text | Business description of the company. |
homepage_url | text | Company homepage URL. |
inactive_at | timestamp without time zone | When the ticker was marked inactive. |
inactive_reason | text | Why the ticker was marked inactive (e.g. delisted, stale data). |
list_date | text | Date the symbol was first listed on its exchange. |
name | text | Company or asset display name. |
phone_number | text | Company contact phone number. |
round_lot | integer | Standard trading lot size for the symbol. |
share_class_figi | text | Share-class FIGI — Bloomberg identifier for this specific share class. |
ticker_root | text | Root symbol — the base ticker without class or suffix modifiers. |
total_employees | integer | Number of full-time employees as last reported. Useful for size-based filters ("small-cap by employee count"). |
active | state | Ticker is actively traded — not delisted or halted.active = true |
Analyst ratings
Third-party analyst judgment: the consensus, individual firm actions, price targets, and forward estimates.
Consensus ratings
The aggregate analyst opinion: consensus rating, the buy/hold/sell distribution, coverage depth.
| Column | Type | Description |
|---|---|---|
analyst_consensus_rating | text | Consensus analyst rating across contributing firms. One of `strong buy`, `buy`, `hold`, `sell`, `strong sell`. NULL for tickers without analyst coverage. |
analyst_consensus_rating_value | numeric | Consensus rating as a numeric score on the standard 1–5 scale (1 = strong buy, 5 = strong sell). Lower is more bullish. |
analyst_count_buy | integer | Number of contributing firms rating the ticker as buy. |
analyst_count_hold | integer | Number of contributing firms rating the ticker as hold (neutral). |
analyst_count_sell | integer | Number of contributing firms rating the ticker as sell. |
analyst_count_strong_buy | integer | Number of contributing firms rating the ticker as strong buy. |
analyst_count_strong_sell | integer | Number of contributing firms rating the ticker as strong sell. |
analyst_count_total | integer | Total number of contributing firms covering the ticker with any rating. Sum of the five `analyst_count_*` buckets. `well_covered` fires when this is at least 10. |
analyst_count_with_target | integer | Number of contributing firms whose rating includes a published 12-month price target. Always ≤ `analyst_count_total`. |
bearish_consensus | state | Consensus analyst rating is `sell` or `strong sell`.analyst_consensus_rating IN ('sell', 'strong sell') |
bullish_consensus | state | Consensus analyst rating is `strong buy` or `buy`.analyst_consensus_rating IN ('strong buy', 'buy') |
well_covered | classification | Ten or more analyst firms cover the ticker.analyst_count_total >= 10 |
Upgrades & downgrades
Individual firm actions: rating changes, initiations, and price-target changes.
| Column | Type | Description |
|---|---|---|
last_rating_action | text | Action taken in the most recent rating change. Common values: `upgrades`, `downgrades`, `initiates_coverage_on`, `maintains`, `reiterates`, `assumes`, `reinstates`, `suspends`. |
last_rating_date | date | Date of the most recent rating action across all firms covering the ticker. |
last_rating_firm | text | Name of the firm that issued the most recent rating action. |
recent_downgrade | state | At least one analyst downgraded the ticker in the last 7 days.EXISTS (SELECT 1 FROM analyst_events WHERE ticker = t.ticker AND action = 'downgrades' AND timestamp >= NOW() - INTERVAL '7 days') |
recent_initiation | state | At least one analyst initiated coverage in the last 7 days.EXISTS (SELECT 1 FROM analyst_events WHERE ticker = t.ticker AND action = 'initiates_coverage_on' AND timestamp >= NOW() - INTERVAL '7 days') |
recent_target_lower | state | At least one analyst lowered their price target in the last 7 days.EXISTS (SELECT 1 FROM analyst_events WHERE ticker = t.ticker AND price_target_action = 'lowers' AND timestamp >= NOW() - INTERVAL '7 days') |
recent_target_raise | state | At least one analyst raised their price target in the last 7 days.EXISTS (SELECT 1 FROM analyst_events WHERE ticker = t.ticker AND price_target_action = 'raises' AND timestamp >= NOW() - INTERVAL '7 days') |
recent_upgrade | state | At least one analyst upgraded the ticker in the last 7 days.EXISTS (SELECT 1 FROM analyst_events WHERE ticker = t.ticker AND action = 'upgrades' AND timestamp >= NOW() - INTERVAL '7 days') |
Price targets
Where analysts say it's going: consensus/high/low targets and price-versus-target state.
| Column | Type | Description |
|---|---|---|
analyst_consensus_target_price | numeric | Mean of contributing analysts' 12-month price targets. |
analyst_target_price_high | numeric | Highest single-analyst 12-month price target across contributing firms. |
analyst_target_price_low | numeric | Lowest single-analyst 12-month price target across contributing firms. |
analyst_target_upside_pct | numeric | Implied upside from the current price to the consensus target, in percent. `(analyst_consensus_target_price - price) / price * 100`. Negative when price is above target. Recomputed every minute during market hours. |
above_price_target | state | Current price is above the consensus analyst target.price > analyst_consensus_target_price |
below_price_target | state | Current price is below the consensus analyst target.price < analyst_consensus_target_price |
target_downside_above_10pct | state | Current price is more than 10% above the consensus target — significant implied downside.analyst_target_upside_pct < -10 |
target_upside_above_10pct | state | Consensus price target implies more than 10% upside from the current price.analyst_target_upside_pct > 10 |
target_upside_above_25pct | state | Consensus price target implies more than 25% upside from the current price.analyst_target_upside_pct > 25 |
Estimates
What analysts say it will earn: forward EPS/revenue estimates and their revisions.
| Column | Type | Description |
|---|---|---|
eps_estimate_revision_down_30d | integer | Count of analysts who lowered their next-quarter EPS estimate in the last 30 days. |
eps_estimate_revision_up_30d | integer | Count of analysts who raised their next-quarter EPS estimate in the last 30 days. A positive read on forward sentiment momentum. |
last_eps_estimate | numeric | Consensus EPS estimate going into the most recent earnings announcement. |
next_eps_estimate | numeric | Wall Street consensus EPS estimate for the next reported quarter — weighted average across analyst contributors. |
next_eps_estimate_high | numeric | Highest single-analyst EPS estimate for the next reported quarter. |
next_eps_estimate_low | numeric | Lowest single-analyst EPS estimate for the next reported quarter. |
next_revenue_estimate | bigint | Wall Street consensus revenue estimate (USD, full dollars) for the next reported quarter. |
estimate_revised_down | state | At least one analyst lowered their next-quarter EPS estimate in the last 30 days.eps_estimate_revision_down_30d > eps_estimate_revision_up_30d AND total 30d revisions (up + down) >= 3 |
estimate_revised_up | state | At least one analyst raised their next-quarter EPS estimate in the last 30 days.eps_estimate_revision_up_30d > eps_estimate_revision_down_30d AND total 30d revisions (up + down) >= 3 |
high_earnings_estimate | classification | Consensus next-quarter EPS estimate exceeds an absolute $1.00 per share threshold.next_eps_estimate > 1.00 |
loss_estimate | classification | Analyst consensus expects negative EPS for the upcoming report.next_eps_estimate < 0 |
profitable_estimate | classification | Analyst consensus expects positive EPS for the upcoming report.next_eps_estimate > 0 |
News
Signals derived from news coverage: article volume and sentiment.
| Column | Type | Description |
|---|---|---|
news_volume | numeric | Count of news articles published in the last 24 hours mentioning this ticker with a relevance score ≥ 0.6. Refreshed every 15 minutes. Null when no qualifying articles in the window. |
news_volume_weighted_sentiment | numeric | Range -1.0 to +1.0. The relevance-weighted average sentiment of articles in the last 24 hours, attenuated by `tanh(news_volume / 15)` so quiet tickers (1-2 articles) read near zero regardless of sentiment sign. Strong negative = loud bad news; strong positive = loud good news; values near 0 = quiet or mixed. Null when no qualifying articles. |
Author your own
The catalog is the built-in vocabulary, not the ceiling: custom signals let you name a SQL expression over these columns and use it anywhere a built-in works.