KB / signal
3-2-1 Crack Spread
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.
3-2-1 Crack Spread
What it is
3-2-1 Crack Spread — registry key crack_spread.
Contextual refining-margin indicator; energy_regime drives scoring.
Source
Source module: energy
Data source: computed
Derived metric — produced inside the platform (app/sources/energy.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
3-2-1 crack spread in $/barrel: (2 × RBOB + 1 × HeatingOil) × 42 / 3 − WTI. RBOB and heating oil are in $/gallon (multiplied by 42 gal/barrel); WTI in $/barrel. See app/sources/energy.py:103.
Where it surfaces
- API field:
energy.crack_spreadonGET /api/v1/signals/latest - Surface:
daily_signalsrow (daily-cadence persistence) - Surface:
/signals/historytime series - Surface:
/signals/sparklines(UI sparklines) - Surface: change markers in the rendered report
Bands / thresholds
Classifier direction: range_is_better.
| Range | Label | Dot | Implication | Points |
|---|---|---|---|---|
| 15 – 25 | Normal | neutral | NEUTRAL | — |
| 25 – 40 | Wide | leaning | NEUTRAL | — |
| ≥ 40 | Very wide | cautionary | BEARISH | — |
| 5 – 15 | Narrow | cautionary | BEARISH | — |
| < 5 | Collapsed | adverse | BEARISH | — |
Health-score / alignment role
Display-only — has bands for surface labeling but does not contribute to the health score (scoring is handled by a companion metric).
Release cadence
- Publishes:
intraday
See also
- /kb/api/get-signals-latest — API endpoint that serves this field.