How the scoring engine works

Forward-tracked, not backtested. Every recommendation since April 2026 was logged publicly before the outcome was known.

1. What the engine does

WheelHouse runs a scan on a fixed schedule and looks at options contracts on a watchlist of stocks. For each one it considers two kinds of trade: a cash secured put, where you agree to buy a stock at a set price and get paid for the promise, and a covered call, where you already own the stock and get paid for agreeing to sell it at a set price.

Every candidate is scored from 0 to 100 on fifteen signals: things like how much premium the contract pays relative to the strike price, how many days remain until expiry, and how liquid the contract is. The score is a summary of how good the setup looks at that moment.

The important part is the order of events. The score is published before anyone knows how the trade turns out. Nothing is scored after the fact, and no past score is ever rewritten. That is the whole point: a track record only means something if the predictions were recorded first.

2. The fifteen signals

Each signal adds or subtracts points. Positive signals describe an attractive setup; negative ones are penalties that push a candidate down or out.

SignalWhat it measuresPoints
1Premium % of strikeHow much the contract pays relative to the strike price. The single heaviest signal.up to 40
2Days to expiryHow long until the contract expires. Preferred windows differ for puts and calls.up to 30
3Capital efficiencyLower strike prices tie up less collateral for the same structure.up to 17
4IV rankHow expensive options on this stock are versus their own recent history.up to 10
5VolumeHow actively the contract traded. Thin contracts are harder to exit.up to 5
6Delta alignmentWhether the contract sits in the intended risk band.up to 3
7Support levelsWhether the strike sits near a price the stock has held before.up to +3
8Proven tickerA bonus for tickers with an established record in this system.up to +8
9Market conditionsA broad-market adjustment, applied differently to puts and calls.−10 to +10
10Ticker intelligenceAn adjustment from accumulated per-ticker history.−10 to +10
11Bid/ask spreadTight spreads are rewarded; wide ones are penalised.−8 to +3
12Open interestHow many contracts are outstanding. A liquidity check.−8 to +3
13Covered call momentumUnder review. Currently a penalty: the score is reduced when the stock is in a strong uptrend. The correction below explains why that is the wrong direction for a covered call, and new covered calls have been paused since 31 August 2026 while the scoring is reworked.0 to −20
14Earnings proximityA penalty near earnings, and a hard exclusion if earnings fall inside the contract's life. See section 5.0 to −15
15Open position penaltyA penalty only. Discourages stacking more of a ticker already held.0 to −25
0–100 is a ceiling, not a scale

If every positive signal fired at once the total would be 140, not 100. The engine takes the sum and clamps it into the 0–100 range, so a score of 100 means the total hit the cap, not that every signal was perfect. Several different combinations of signals reach 100, and the score alone does not tell you which one you are looking at.

3. Tracked versus declined

Scoring a setup and acting on it are separate steps. Every setup that scores 90 or above is published on the daily board, but only some are added to the tracked portfolio. The rest are shown with the reason they were held back, because a system that only publishes what it acted on is not a record. It is a highlight reel.

Tracked means the setup was added to the paper portfolio and its outcome will be recorded when it closes or expires. Declined means the engine flagged it but a portfolio rule held it back. These are the reasons:

ReasonWhat it means
RankingThe setup scored 90+ but other setups of the same type ranked higher that day. Only the top of each list is tracked.
Diversification capThe portfolio already holds the maximum number of positions in that ticker for the rolling seven-day window.
Too many expiriesTwo other expiry dates for the same ticker were already added in this scan. Three per ticker per scan is the ceiling.
DuplicateA matching position (same ticker, strike and expiry) already exists in the portfolio.
BlacklistedThe ticker is excluded from the portfolio on the basis of its own past results. The engine still surfaces its setups for visibility.
Pricing anomalyThe quoted premium and the calculated premium disagreed, so the setup was not tracked rather than tracked on a number that could not be trusted.

A seventh outcome, below_score, exists in the engine for setups under the tracking threshold. It never appears on the board, because the board only shows setups scoring 90 and above.

4. Disclosures

These are the things a reader would otherwise have to reverse-engineer from the data. They are stated here because the daily board does not state them.

Published results cover trades scoring 90 and above

The tracking threshold has not always been 90. It was raised to 90 on 14 April 2026. Trades recommended before that date ran under a looser rule, and they are excluded from the published track-record figures. Nothing scoring below 90 has been logged since 14 April.

This matters more than it sounds. The pre-14-April trades are a launch-period batch scored under different rules, so any figure that pooled them with current ones would be describing two different engines at once. The published figures describe the engine as it runs today.

Per-ticker history pools both trade types

Where the site shows a history line for a single ticker (a win rate and a running total), that figure combines cash secured puts and covered calls into one number. They are different trades with different risks, and the per-ticker line does not separate them. Read it as a summary of everything done on that ticker, not as a verdict on either strategy.

Quote-basis exclusion

A defect in the engine, fixed on 8 June 2026, meant that for earlier trades the premium used to score a setup and the premium recorded when the trade opened were taken from two different prices. The recorded outcome is unaffected, because it was always calculated from the same price the trade used. What changed is the basis of the score itself.

Affected trades are flagged rather than deleted or rescored: 32 as quote_basis_severe (the two prices differed by more than 5%) and 49 as quote_basis_moderate (3–5%). Published scores are never rewritten, because a score that was published before the outcome was known is a matter of record even when the method behind it later improves.

The flag is currently applied when building the signal-performance dataset. It is not applied to the headline track-record figures, which include these trades.

5. What the engine does not do

The score describes an options setup, not a company. The engine reads prices, volatility, liquidity and dates. It does not read financial statements, revenue, debt, margins or valuation, and it has no opinion on whether a business is good or a stock is cheap.

A score of 100 means the setup is attractive and nothing in the engine's checks is flagging. It is not a recommendation to own the company. If you would not want to hold a stock, a high score on its options does not change that: with a cash secured put, being assigned means buying the shares.

Two specific limits worth naming:

Earnings are refused outright. If a company reports earnings before the contract expires, the setup is excluded entirely: not penalised, not scored lower, but removed from consideration. A separate penalty applies when earnings fall shortly after expiry. The engine will not take a position across an earnings announcement.

There is no view on direction. The engine does not forecast whether a stock will rise or fall. It assesses whether an options setup is well-priced and well-structured, which is a different question and a narrower one.

All results published on this site are simulated paper trades, not real money.

6. How the engine changes

The fifteen signals and their weights were chosen by judgment, not fitted to data. That is deliberate. An engine tuned on its own history will look good on that history and prove nothing. But it means the weights are a starting hypothesis, and the point of publishing every score before the outcome is to accumulate the evidence that tests them.

The rule is that weights change on evidence, not on hunches. A change requires a stated reason, a measurable prediction of what it should do, and enough closed trades for the measurement to mean anything. Any change is recorded in the corrections section below, with the date and the reasoning. No past score is rewritten to match.

A first review of signal performance was scheduled at 300 closed trades and has begun. What it finds will be published here whether or not it supports the current weights.

7. Corrections

Corrections to previously published figures are recorded here, with the date and what changed.

Covered call results were overstated

Corrected 5 September 2026.

A covered call is two positions held together: 100 shares of a stock, and a call option sold against those shares. Until now this site recorded only the option half.

That produces a specific error. When the option expired worthless or was bought back cheaply, the trade was recorded as a gain, even in cases where the shares had fallen by more than the premium collected. The position lost money and the record said it made money.

The shares behind a covered call are assumed bought at market when the call is written. They are not shares acquired by assignment from a cash secured put, and the engine does not check whether any shares are held. Every covered call on this site is scored as a standalone buy-write.

Cash secured puts are not affected. A cash secured put has no share position, so the option result is the whole result. Those figures are unchanged.

Measured on closed trades scoring 90 or above, as of 5 September 2026:

As publishedCorrected
All closed trades (356)+$118,262 · 83.7%+$103,951 · 74.4%
Cash secured puts (254)+$110,272 · 87.4%Unchanged
Covered calls (102)+$7,990 · 74.5%-$6,321 · 42.2%

The entire difference is covered calls. On the corrected basis that book is a loss rather than a profit, and fewer than half of those trades made money.

The correction applies to every covered call in the record, not only those at 90 and above. Trades scoring below 90 also move, and they move upward: those bands were recorded as losses and are profits on the corrected basis.

Those bands are not a fair comparison and should not be read as one. Every trade below 90 was opened between 2 and 14 April 2026, before the scoring floor was raised, so they are a two week window rather than a track record. They also hold a much higher share of covered calls than the 90+ population, which is why the accounting change moves them further. The figures above are scoped to 90 and above because that is what the engine recommends today.

These figures are a snapshot taken on the date above and are not updated here. Current totals are on the receipts page. The correction is being applied across the site one surface at a time, so some pages may still show the old basis for a short period.

What changed because of it

On 30 August 2026 new covered calls stopped being added to the tracked portfolio. They are still scored and still appear on the daily board, tagged as paused.

The reason comes from the same analysis. The engine scores a covered call on how well the sold call is likely to perform, and a sold call performs best when the stock goes sideways or falls. So a higher score reliably selected for a weaker stock, and the shares are most of what a covered call is worth. The engine scored the option side heavily, and where it did consider the stock it counted a rising price against the trade, which is the direction a covered call needs. So it was good at one half of a two part position and was working against itself on the other. Cash secured puts are unaffected and continue as normal.

The site described covered calls as wheel legs

Corrected 11 September 2026.

The header on the receipts page described this as a wheel strategy scoring engine. That is true of the cash secured puts. It is not true of the covered calls, and half the engine's output is covered calls.

In a wheel, you sell a cash secured put, get assigned 100 shares, and write a covered call against those shares. The engine does not do that. It scores covered calls as standalone buy-writes: buy 100 shares at market, write a call against them. It does not check whether any shares are held, and nothing links a covered call to a put that came before it.

Zero of the 210 covered calls in the tracked book follow an assignment. Twenty six were recommended on a ticker that had been assigned earlier, but one assignment on 15 May 2026 sits behind six separate covered calls across eight weeks, and 100 shares can back only one call at a time. Those are ticker coincidences on a 37 name watchlist, not sequences.

The assumption is visible in the stored data. The recorded collateral for a covered call is the entry share price times 100 on all 203 closed ones, which is the cost of buying the shares at market. If they had come from an assignment the basis would be the put's strike.

No figure changes. The results were always the results of buy-writes. What was wrong was the description above them.

A second, smaller correction in the same pass: the covered call momentum signal was listed above as a penalty of 0 to 15 points. The maximum is 20. The tiered penalty reaches 15, and a further 5 is subtracted when the strike sits less than 3 percent above the share price on a rising stock. The table now reads 0 to 20. The wrong number did not start here. It came from a comment in the scoring code that also read 0 to 15, and this page copied it. That comment has been corrected too, so the fix covers the source and not only the page.

Why this is here

Section 6 of this page says that what the signal review finds will be published whether or not it supports the current weights. This is the first thing it found.

Educational content only. Nothing here is financial advice, and none of it is a recommendation to buy or sell any security. Options trading carries risk, including the loss of more than your initial investment. Past performance does not guarantee future results. Figures on this site come from simulated paper trades.
Structure and thresholds described here were last reviewed 30 August 2026.