Methodology
How we pick the calls we surface as examples for you to consider. We're not going to publish the exact knobs and thresholds — those are the part of our work we'd like to keep ours — but we'll be specific about what kind of decision we're making and why.
What we optimize for
The single thing the engine tries to do is generate predictable monthly income from stocks you already own, with an assignment probability you've explicitly chosen, on timeframes that don't require you to babysit the position.
"Predictable" is doing a lot of work in that sentence. We'd rather give you a smaller premium that's likely to play out as expected than a larger premium that requires you to dodge volatility on Wednesday afternoon. The whole point of the product is that you read your Friday analysis, place the trade, and don't think about it again until next Friday.
What we deliberately don't optimize for
We are not trying to maximize premium per trade. Premium maximization is a well-known way to blow up a covered-call portfolio — the highest-premium strikes are usually the ones with the highest assignment probability, and a portfolio of maximum-premium trades is a portfolio of stocks that get called away constantly, forcing you back into the market to rebuild positions and creating tax events you didn't ask for.
We are also not trying to time the market. We don't predict where stocks are going this week. Our analyses don't change because we think a stock is "due for a pullback" or "about to rip." The engine is honest about not knowing those things, and the rules are designed to work whether or not we get the direction right.
How we pick the strike
For each position, the engine picks a strike based on the assignment probability you've chosen for that position. Lower assignment probability means a strike further above the current stock price — less premium collected, but a smaller chance your shares get called away. Higher assignment probability means a strike closer to the current stock price — more premium, but a larger chance of assignment.
The engine uses options market data — specifically the option's delta, which is roughly the market's estimated probability the option finishes in the money — to find a strike that matches your chosen probability band. We don't pick the strike arbitrarily, and we don't pick it based on round numbers like "$5 above current price." We pick it based on how the market is currently pricing the probability of assignment.
If no available strike at any expiration we'd consider lands inside the band you chose, we don't force a trade. We surface a skip for the week.
How we pick the expiration
The engine considers a window of expirations — short enough that you're not committing your shares for too long, long enough that the premium is worth collecting. We don't trade weekly options. The shortest expirations have the thinnest premium relative to the assignment risk they carry, and they require attention every Friday to manage. Our cadence is weekly analyses, not weekly trades.
Within the window, the engine picks the expiration where the math works best for your chosen assignment probability — generally favoring expirations that fall just after monthly options-expiration dates, where liquidity is highest and bid-ask spreads are tightest.
How we handle earnings
Earnings reports create concentrated, hard-to-predict moves. A stock can gap 10% either direction overnight on an earnings beat or miss. Selling a covered call across an earnings report means selling premium that's elevated because the market knows the move is coming — which sounds good — but it also means accepting a meaningfully higher chance of assignment in either direction.
Our default is to skip analyses on positions whose underlying company is reporting earnings before the expiration we'd otherwise pick. We'd rather wait a week or two and pick up the next reasonable trade than guess on an earnings reaction. If you disagree with this — some people want to sell elevated earnings premium — that's a legitimate view; the engine just isn't built to express it.
Strategy levels: what they actually change
Income Factory lets you choose a strategy level for your portfolio: Conservative, Moderate, or Aggressive. The level you pick changes the assignment-probability band the engine targets when picking strikes. Conservative means the engine targets a lower assignment probability — strikes further above current price, less premium, fewer assignments. Aggressive means the engine targets a higher assignment probability — strikes closer to current price, more premium, more assignments.
The strategy level does not change anything else. It doesn't change which expirations we consider, how we handle earnings, when we skip, or when we roll. It changes one thing: where on the option chain we look for a strike.
By design, the Moderate band is calibrated to balance premium collected against assignment frequency. Aggressive collects more premium per trade but accepts more frequent assignments and the rebuy-the-stock cycle they create. Conservative collects less premium but keeps more of your portfolio intact across the year. The estimator on your portfolio page shows the projected illustrative annual income for each level based on your inputs, so you can pick with the math in front of you.
When we surface a skip
Some weeks, the right answer for a position is "do nothing." The engine tells you to skip when:
- No available strike at any expiration we'd consider lands inside the assignment-probability band for your strategy level.
- The position has an earnings report scheduled before the expiration we'd otherwise pick.
- The premium available, even at the right strike and expiration, is too low to be worth the cost of the trade and the assignment risk you'd be accepting.
- The position currently has an open call on it that hasn't expired yet, in which case there's nothing new to do until that call resolves.
"Skip" is a real analysis, not the engine giving up. There's nothing wrong with a week where most of your positions get a skip; the math just doesn't work that week.
When we surface a roll example
Rolling means buying back a call you previously sold and selling a new one — usually at a higher strike, a later expiration, or both. We surface a roll example when:
- A call you sold is in the money or close to it as expiration approaches, and we think you'd rather keep the underlying shares than let them get called away.
- Rolling can be done for a net credit — meaning you collect more premium on the new call than you pay to close the old one — which means you're being paid to push the decision forward.
- The new strike and expiration the roll lands you at would itself have been a sensible trade in our framework. We don't roll into bad trades just to avoid assignment.
If we can't get a net credit on the roll, the engine generally surfaces letting the position get assigned. Paying to roll a position you'd rather be done with is a bad habit that compounds over time.
Strike protection is a related but separate concept: if the underlying stock has moved sharply against your original strike in a way that would expose you to a large loss on assignment, the engine flags the position for explicit attention rather than treating it as a routine roll. See your in-product guidance when this triggers.
What we monitor between Fridays
Analyses are generated and sent on Friday mornings, but the engine continues to watch your open positions through the week. Specifically, we track whether any open calls have moved in the money, whether assignment is becoming likely, and whether the upcoming Friday's analysis will need to address a position that's close to the line.
We do not generate intra-week trade analyses. The product is designed around a weekly rhythm; pinging you on a Wednesday afternoon to react to a Tuesday move is exactly the experience we're trying not to build.
What the engine does not do
- It doesn't pick stocks. The engine works with whatever portfolio you give it. It doesn't recommend buying or selling stocks outside of the covered-call analyses themselves.
- It doesn't trade naked options, spreads, or any non-covered strategy. Every analysis is a call sold against shares you already own at quantity sufficient to cover the contract.
- It doesn't predict market direction. The rules are designed to work without the engine needing to be right about where a stock is going.
- It doesn't take your other holdings into account. The engine sees only the positions you've added to Income Factory. If you have other investments elsewhere — bonds, real estate, retirement accounts at a different broker — the engine doesn't know about them and isn't trying to.
- It doesn't provide tax advice. We mention tax considerations because they affect whether a trade is a good idea, but everything we say about taxes is general. For your situation, talk to a tax professional.
Data sources
The engine uses third-party financial data providers for options pricing, implied volatility, and corporate-action data (earnings dates, dividends, splits). These providers are not affiliated with us and do not endorse our service. We license their data; we don't republish it as a standalone product.
End-of-day data is the basis for the Friday analyses. We do not use real-time streaming data for analysis generation. For the moments we send the analysis, the prices we quote are accurate; by the time you place the trade, the live market may have moved. The floor price in each analysis is there for that reason — it's the threshold below which we'd skip rather than chase.
Want more detail?
For edge cases, data quality notes, and the engine's behavior under unusual conditions, see Methodology Notes.
For the regulatory and risk picture, see Disclosures and Risk Disclaimers.