The conviction score is a 0-100 number built from two layers. The signal layer measures the directional case from the chart: composite signal strength, its confidence, trend-regime agreement, an RSI check, and a volume and relative-strength adjustment. The options layer measures whether the options market pays for that case: the expiration score, the implied-versus-realized volatility regime, the probability of profit of the chosen spread, and decay per unit of volatility risk. An earnings penalty is subtracted, the total is clamped to 0-100, and letter grades sit at 90, 75, 60 and 45.
How these pages were written: from the engine source as deployed in September 2026, with thresholds quoted as the code holds them. Thresholds change with releases and the changelog records each change. This is a description of arithmetic, not advice about what to trade.
Source module: strategy/conviction.py, function compute_conviction.
The score has a signal layer and an options layer, and the split is the point: a strong chart on a stock whose options are priced wrong for the structure scores in the middle, and so does a beautifully priced chain on a stock with no directional case. The signal layer reads the chart. The options layer reads the chain. Both have to agree for a score to reach the top band.
The layers are weighted differently by scoring mode. There are three modes, and the mode is derived from the legs of the candidate structure, never chosen by hand: directional (debit verticals and long singles), credit spread (bull put, bear call, iron condor), and long volatility (straddles and strangles).
In directional mode the signal layer has a raw maximum of 56 points:
In credit-spread mode the signal layer is smaller and shaped differently, because a premium seller wants a quiet chart more than a strong one: confidence caps at 7, trend alignment at 5, RSI at 5, a range bonus of up to 5 rewards a ranging regime, and the volume and relative-strength adjustment runs -5 to +2.5. A stock underperforming the index while the candidate is a bull put spread takes the full penalty; relative strength contradicting the trade is treated as a hard problem, not a nuance.
Four components, with caps that depend on the mode. Directional mode: expiration 20, implied-volatility regime 15, probability of profit 10, theta-to-vega 5. Credit-spread mode: expiration 20, volatility regime 25, probability of profit 15, theta-to-vega 10. Long-volatility mode: expiration 20, volatility regime 30, probability of profit 5, theta-to-vega 10.
A skew modifier of 0 to -5 applies in credit-spread mode only and can only subtract: a steep put skew against a bull put spread, or an inverted call skew against a bear call spread, costs the full five points. The old skew bonus was removed after the literature review found no separately harvestable skew premium. A dealer-gamma adjustment of -5 to +5 then applies when gamma-exposure data is present; in credit mode a negative-gamma regime subtracts and a positive-gamma regime adds, and long-volatility mode inverts the sign at reduced size.
An earnings date inside the trade's window subtracts points in the two premium-selling and directional modes: 40 when the date is critical, 25 when high, 12 when moderate, 3 when low. Long-volatility mode inverts this, because an event inside the window is the thesis: it adds 6, 4 or 2 points instead. The final score is signal layer plus options layer minus the earnings penalty, clamped to 0-100.
Two things sit outside the arithmetic. In credit-spread mode a liquidity hard gate caps the score and marks the trade blocked when the chain is untradeable: an F liquidity grade, a spread bid-ask wider than 10 percent of mid on a real-time feed, or both legs at zero volume. And a freshness check marks the result stale when the quote behind it is more than 30 minutes old during regular trading hours, because a decision on a stale quote is not the decision the score describes.
It does not know the size of the position, the rest of the book, or the account it would trade in; those belong to the agent's confidence gate and the portfolio views. It is a ranking of candidates against a fixed rubric, and the rubric's weights are hand-set priors: the calibration report is where each component's actual relationship to outcomes is measured, and a component that does not rank outcomes is a component whose weight is in question.
It is a 0-100 number: a signal layer from the chart plus an options layer from the chain, minus an earnings penalty, clamped to the range. Grades sit at 90 for A, 75 for B, 60 for C and 45 for D; below 45 is F.
Because the options layer has to agree. A strong directional case on a stock whose options are priced wrong for the chosen structure earns its signal points and loses its volatility-regime points, and the two layers only add up to the top band when both align.
The component is zero and the card marks it unavailable. There is no default value, so a missing input lowers the score rather than being filled in with a guess.
More in Methodology: how the engine computes: How Probability of Profit Is Computed and Checked · How Tape Fit Scores a Strike Against the Chart · How the Paper Trading Agent Decides: the Gate