KB / signal
A1 post-earnings divergence score
Last verified
Auto-generated. This article is rebuilt from
app/signals/config/signal_definitions.jsonbyscripts/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
- API field:
screener.candidates.a1.scoreonGET /api/v1/signals/latest
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
- Publishes:
daily