Skip to content

KB / signal

A1 post-earnings divergence score

Last verified

Auto-generated. This article is rebuilt from app/signals/config/signal_definitions.json by scripts/build_signals_kb.py. Edit the registry entry and re-run the script — do not edit this file directly.

A1 post-earnings divergence score

What it is

A1 post-earnings divergence score — registry key a1_post_earnings_score.

Raw divergence score for the A1 post-earnings overreaction archetype: (-gap_pct) * max(surprise, 0), with an optional basing bonus. Higher = bigger drop on a better number. Comparable only within the A1 archetype (cross-archetype normalization is Session 1.4 rank.py). Not persisted to daily_signals — lives in the future screener_candidates table.

Source

Source module: screener
Data source: computed

Derived metric — produced inside the platform (app/sources/screener.py or equivalent) rather than fetched as a raw upstream value. See the How it's computed section below for the formula.

How it’s computed

(-gap_pct) * max(eps_or_rev_surprise, 0) * basing_bonus_multiplier_if_confirmed. gap_pct in percentage points (e.g. -11.2 for an 11.2% gap down). Basing bonus (default 1.15x) applied when RSI recovery or SMA reclaim is confirmed. Score is 0 when any core screen condition fails.

Where it surfaces

Health-score / alignment role

Data carrier — no implication, no health-score contribution.

Persisted for downstream consumers (sparklines, base-rate matcher, calibration substrate) but does not classify into BULLISH / NEUTRAL / BEARISH and does not contribute to the 0-100 health score.

Release cadence