A4 Β· Pre-Catalyst Coiling
Last verified
A4 Β· Pre-Catalyst Coiling
A volatility-expansion setup: a stock compressing into a tight range right ahead of a dated catalyst, primed to break.
The short code A4 is display metadata only. The canonical identifier this archetype is keyed by everywhere β config, the screener_candidates.archetype column, the scorer emit β is the descriptive string precatalyst_coiling.
Dormant β not yet firing. A4 is coded and unit-tested but is not registered in
_SYNC_ARCHETYPE_EVALUATORS, the universe-sweep evaluator map. It does not emit candidates today. It stayed out of the sweep because it needs forward-catalyst (and, ideally, options-IV) inputs that werenβt wired into the universe feature build; it is scheduled to be wired in an upcoming change. Treat this article as the design contract, not a live signal.
Thesis
Volatility is mean-reverting and clusters in time. A stock that has gone quiet β realized vol crushed into the bottom of its yearly range, daily bars contracting β is coiling. When that compression happens directly ahead of a known, dated catalyst (an earnings date), the spring is loaded: the catalyst is the release mechanism, and a tight range guarantees a larger relative move when it resolves. The edge is not direction β itβs the volatility expansion itself. Cheap, quiet, range-bound names into a hard date tend to move more than the market is braced for.
Direction
LONG. It is classified among the long-bias archetypes, but note the directionality caveat below β the volatility edge is non-directional even though the archetype lives on the long board.
What it looks for
The evaluator (evaluate_precatalyst_coiling); thresholds from screener_config.json Β§ archetypes.a4:
- Realized-vol tight β
realized_vol_pct_1y <= rvol_pctile_max=20.0(vol in the bottom fifth of its trailing 252-day range). - Contraction pattern β an inside day (
inside_day=1) OR an NR7 (narrowest range of the last 7 days,nr7=1). - Catalyst proximity β an upcoming earnings date within
coil_catalyst_proximity_days=30trading days. Theproximity_factordecays linearly from 1.0 at zero days to 0.0 at 30 days. - Options IV leg (sparse by design) β when
options_legs_enabled=true, readsiv_pctile(=co_options_daily.iv_rank, 0β100). Low IV percentile (cheap options) amplifies the coil score viaiv_factor = 1 β iv_pctile/100.co_options_dailyis watchlist-only, so for most universe names this field is absent and the leg ABSTAINS β the score falls back torvol_factor Γ proximity_factorcleanly.
How it scores
The coil metric is rvol_factor Γ proximity_factor, where rvol_factor = 1 β rvol_pctile/100; when an IV percentile is present itβs multiplied by iv_factor too. Tighter vol, closer catalyst, and cheaper options all push the score up. The state machine:
noneβ quality fail, or realized vol above the 20th-percentile threshold.partialβ vol is tight plus either a pattern or a catalyst (but not both), or vol tight alone.primedβ vol tight AND a contraction pattern AND a catalyst inside the proximity window.
Pitfalls / when it fails
- It resolves both ways. This is a vol/positioning setup, NOT a directional prediction. A tight range into earnings can break violently down as easily as up. Sizing and structure must account for either resolution.
- Dormant today. Until A4 is registered in the sweep it produces nothing β the board will never show a coiling candidate.
- Sparse options. For non-watchlist names the IV-cheapness amplifier is unavailable, so the score reflects only vol-tightness and catalyst proximity.
- Catalyst data quality. Proximity depends on a clean forward earnings date; a stale or missing calendar entry weakens or zeroes the proximity factor.
Related
- The Screener System (vision)
- Screener Pipeline & Lifecycle (operations)
- Mechanical reference cards: Score Β· State Β· Triggers
- Sibling archetypes: A6 Β· Vol Mispricing Β· A1 Β· Post-Earnings Overreaction