Event blockers: earnings & ex-dividend

WheelTrading.io checks every order before sending whether the expiry sits dangerously close to a quarterly earnings release or an ex-dividend date. If so, the send is blocked at first - you see an orange warning with all details and must tick a checkbox ("I understand the risks") before the order actually leaves the system.

Why?

  • Earnings: stocks often gap up/down after the report. Short PUTs

catch the downside (gap-down), short CALLs the upside.

  • Ex-dividend on PUTs: if your PUT is assigned at the ex-date you

get the shares at strike, but the dividend goes to the previous holder. Effectively you lose the dividend.

  • Ex-dividend on CALLs: the holder of an ITM call has a strong

incentive to early-exercise the day before ex-date to capture the dividend. You lose the shares and the dividend.

The knobs (globals)

In Settings → Event blockers (earnings & dividends) you can set per account:

FieldMeaningRecommended
Earnings blocker Put (days)PUT blocked if earnings fall within X days before expiry3
Earnings blocker Call (days)CALL blocked if earnings fall within X days before expiry3
Block Put before ex-dividend (days)PUT blocked if ex-date is within X days before expiry3-5
Block Call before ex-dividend (days)CALL blocked if ex-date is within X days before expiry5-10
Safe days after ex-dividendMinimum wait after ex-date before a new Covered Call is allowed7

Set a value to 0 to disable the respective blocker for this account.

How it appears in the workflow

  1. In the proposals list (Trades → To-Send):

proposals inside the blocker window carry an orange badge Earnings 2d or Ex-Div 1d next to the symbol. Hover shows the full explanation. The proposal does not disappear - it is simply flagged so you can decide consciously.

  1. On clicking "Send": the confirmation dialog blocks the send

button and shows an orange box "Event warning". Per hit you see the type (earnings/ex-div), days until the event, the exact date and your own blocker window - plus a plain-text reason.

  1. Mandatory acknowledgement: tick the box "I understand the

event risks and want to send the trade anyway". Only then the send button becomes active.

Example

CMCSA short PUT 22 USD, expiry 2026-07-02:

  • next ex-date: 2026-07-01 (1 day before expiry)
  • your global setting: 3 days
  • → backend response: "Ex-dividend date in 14 days

(2026-07-01). Your blocker window: 3 days. On assignment at the ex-date the dividend goes to the previous holder, you only get the shares at strike."

What the blocker does not do

  • It only looks at the next earnings / ex-dividend date before

expiry. Events after expiry are irrelevant - the trade is already closed by then.

  • It does not predict actual assignment. It is a **preventive

warning** based on expiry - what happens after assignment (e.g. cost-basis effects) is handled by the tax module separately.