For traders who sell premium

The risk manager that says no.

Screeners find you trades. Almost nothing watches how you get out. CondorBot holds the floor, the roll limit and the time-stop on condors you opened at your own broker, and it writes down what you chose at every fork. Including the forks where you chose to sit still. It runs in Telegram, so it finds you at 3 a.m. without you opening anything.

Advisory only. It has no order rights and no way to get them.
Your broker, your data key, your call — logged either way.

CAMPAIGN #13 · NBIS · IRON CONDOR A · 6 TD
SPOT $249.0 Δ PUT 0.07 P&L −$4
DEFENSE FLOOR −$240 (2× CREDIT) · ENFORCED MAX LOSS −$380 · WINGS 190 P 300 C +$120 CREDIT
monitor · tick every 5 min · tree: time-stop → take → stop → floor → breach → gap → vega
nothing to say is a valid message
⚠ ACTION · put side in the defense zone · Δ 0.31
Verdict: HOLD — floor −$240 intact · headroom $202 · rolls 0/2 · P&L −$38
Close put side −$156Time-roll 185/180 +$9Dist-roll 175/170 −$35Leave as isWhy?
✓ Leave as is → written to decisions · 10:14 ET
this signal stays quiet until it gets numerically worse: Δ +0.10 or the next zone
the floor and urgent signals never go quiet
⚠ RE-ISSUED · Δ 0.41 · +0.10 since your hold
Verdict: HOLD — floor −$240 intact · headroom $148 · rolls 0/2 · P&L −$92
Close put side −$198Time-roll 185/180 −$4Dist-roll 175/170 −$48Leave as isWhy?
✓ Bounce · Δ 0.19 · P&L −$16 · signal cleared, nothing to undo
your hold goes to Friday's journal — graded by outcome, not by feel
this time the rules held; the floor is for the time they don't
▶ replaying one session① drift② card③ hold recorded④ re-issue at Δ +0.10⑤ bounce · graded Friday
A trading day, by the clock

It keeps market hours.
You keep yours.

Jobs run on the New York trading calendar. Not calendar days, and not whatever your laptop thinks the date is. Every message carries two clocks, ET and yours. The grey line under each heading below has already been converted to your zone.

MON 08:00 ET

Calendar check

Any ticker with no future earnings date left gets named once, in one message. Index ETFs are exempt, since they never report.

09:30 ET

Intraday screen opens

26 checkpoints to 15:45, fifteen minutes apart. You hear from it only when a ticker changes rung, and nothing intraday touches the ledger.

09:45 ET

Morning digest

Verdict first. Every rejection names its gate; every survivor comes sized, priced and in two variants. All of it goes to the shadow ledger.

EVERY 5 MIN 

Monitor tick

Spot, mark, short-strike deltas, IV and days left all get snapshotted. The decision tree runs in priority order and the first node to trigger wins.

16:05 ET

Evening report

Where each campaign stands, how much floor is left, what you decided today, and the count of urgent signals you never answered.

FRI 16:15 ET

Weekly journal

Hit rate, roll verdict, what the skipped ideas would have done, and your follow rate against the verdicts.

Second line converted to your time zone. Your bot prints both, every message.

The premium seller's disease

Small wins are easy.
One undisciplined loss eats the year.

Selling premium wins often and loses badly. Every tool in the category optimises the fun part, which is finding the trade. Nothing is standing next to you at 3 a.m. when the position runs, when the roll will "definitely work this time", and when the third roll quietly turns the whole thing into a martingale.

76% → 0%

A 76%-POP condor pays nothing if you hold every winner to expiry and freeze on the one that breaks. The edge was never in the entry.

The arithmetic

Ten condors, $120 credit each, defined risk $380. Eight winners taken at +50% is +$480. Two losers cut at −2× credit is −$480. Dead even, and that is the good version.

Let one of those two run to the wing instead of cutting, and you are at −$380 on that trade alone. One missed exit erases four months of being right.

Roll → roll → ruin

"I just roll it out until it's green" is a martingale wearing an options costume. It works. It works. It works. Then one campaign eats twelve.

What the third roll actually costs

Roll one usually pays you. Roll two is roughly free. Roll three is where you start paying a debit to stay in a trade you would never open today, on a strike you would never pick today.

That is the test the bot puts in front of you every time, and it is the reason roll three does not exist here.

Memory lies

You remember the saves. You do not remember the slow bleeds. A ledger that totals a campaign across every roll it ever took, and records what you picked at each fork, has no such talent.

Why campaigns, not positions

Roll a losing put spread out a week and your broker shows you a fresh position with a fresh cost basis. The old loss disappears from the screen. It did not disappear from your account.

Here the campaign carries the whole chain: original credit, every roll credit and debit, every partial close. One number at the end, and it is not flattering by default.

What it actually doesFinds entriesEnforces exitsRecords your decisionsHolds order rights
Screener / scanneryes — dozens a daynonono
Alert room / newsletteryes"manage your risk"nono
Autotraderyesits rules, not yoursnoyes — that's the risk
CondorBotrarely — most mornings it says nohard floor · 2 rolls · time-stop · HARD gatesevery tap, including "leave as is"never — by architecture

Built for you if…

  • you already sell defined-risk spreads and know what a 10-delta condor is
  • you roll as a first defense and want a hard stop on how far that goes
  • you sleep in a different time zone than your positions
  • you'd rather read "no trade today" than a forced idea

Not for you if…

  • you want a signal service, or a bot that trades for you
  • you sell 0DTE, naked strangles or calendars. Not supported, and not on a roadmap either
  • you want the journal to flatter you
  • you're new to options. This enforces a playbook, it doesn't teach one
How a trade gets selected

Eleven tickers. Eight gates.
Most mornings one card — some mornings none.

The same pipeline runs every morning, in the same order. HARD gates judge the trade itself. Fail one and there is no card at all, not in chat, not in pro mode; there is no override button to look for. SOFT gates are limits on your book rather than on the trade. In pro mode those flag the card and name the reason, and you decide with a tap that gets written down as an override. The bot never overrides anything on its own, and it never opens anything quietly.

UNIVERSE IN · 11
SPYQQQIWM NBISNVDAAMDMU TSLADELLORCLUNH
RULEOne ticker, one open campaignNot a gate but a structural rule. A ticker with a running campaign never reaches the screen.○ NVDA — campaign #14 running, not screened
HARDEarnings calendarNo report inside the expiry window. Company-confirmed dates and estimated windows are kept apart, and the refusal says which one it is.✗ TSLA — earnings 26.08 · company-confirmed
✗ DELL — earnings expected 27.08–03.09
HARDRealized-vol filterNo entries after a knife day. Two calm sessions have to pass first.✗ NBIS — −14.4% yesterday · needs 2 calm sessions
HARDCooldownA ticker that stopped you out is locked for 5 trading days. It fires exactly when overriding it feels most reasonable, which is why it cannot be.✗ UNH — stopped out 3 td ago · locked 5 td
HARDIV richnessImplied has to beat realised: IV / RV20 ≥ 1.15. Inside 15% of that line counts as a near-miss, watched but never offered.✗ MU — IV/RV 0.92 < 1.15
◔ ORCL — IV/RV 1.09 · near-miss, watched
HARDLiquidityBid–ask capped per leg. Crossed or stale quotes are thrown out and noted, not averaged in.— remaining legs inside the spread cap
HARDMinimum creditMeasured on realistic fills after a haircut rather than on mid. The rule lives in one place, so the digest, the variants and the roll matrix cannot disagree about it.✗ SPY — credit below minimum on realistic fills
✗ IWM — credit below minimum on realistic fills
SOFTCluster & contour slotsAI and semi names share one slot, index ETFs get two, other single names one each. Three condors on one theme is one bet at triple size.⚑ AMD — AI/semi slot held by NVDA #14 until 28.08 · pro: flagged, not hidden
SOFTPosition sizeFixed fraction of the account per campaign; hot single names hard-capped at one lot.— QQQ sized: 2 lots = 1.5% of account
SURVIVED → …1 card: QQQ · two variants, sized, priced · 7 rejected · 1 open · 1 flagged · 1 watching
PRO MODE

A setting, not a tier.

Pro mode changes exactly one thing: SOFT gates flag the card instead of hiding it. You get "AMD, AI/semi slot held by NVDA #14 until 28.08" plus a numbered reason, and tapping Opened records an override. HARD gates do not notice pro mode at all, and neither do floors, rolls or time-stops. Exit discipline has no pro switch.

NEAR-MISS

Watched, never offered.

A ticker cut by exactly one HARD gate, and cut narrowly, gets an observation row: which gate, by how much, and the construction it would have been. No button anywhere on it. At expiry it gets priced like everything else, so the question of whether the line sits in the right place eventually gets a number rather than an opinion.

Every survivor is offered in two variants. Pick your temperament; the exits are pre-committed either way:

ParameterA · StandardB · Conservative
Short strike deltas (put / call)0.05–0.12 / 0.12–0.200.04–0.08 / 0.10–0.15
Take-profit+50% of credit+30% of credit
Stop−2× credit−1× credit
Defense triggerΔ ≥ 0.30 or strike touchΔ ≥ 0.20 or within 2%
Time-stop before expiry3 trading days5 trading days
On breachroll matrix or closeclose only — no rolls
POP shownmodel − 2 pp (ETF) / − 4 pp (single name)same haircut
Straight from the terminal

Not a mockup.
This is what it sends.

Six real message shapes from a single trading day. Verdict at the top, reasons under it, buttons at the bottom, and a couple of them have more examples folded inside.

CB
CondorBot
bot · 09:45 ET / your morning
🌅 DIGEST · THU 20.08 · 09:45 ET · local Verdict: 1 card · 7 rejected · 1 open · 1 flagged · 1 watching ✗ HARD calendar TSLA — earnings 26.08 (confirmed) in window DELL — earnings expected 27.08–03.09 ✗ HARD realized vol NBIS — −14.4% yesterday · 2 calm sessions first ✗ HARD cooldown UNH — stopped out 3 td ago · locked 5 td ✗ HARD IV richness MU — IV/RV 0.92 < 1.15 ✗ HARD min credit SPY, IWM — credit below min on real fills ○ open NVDA — campaign #14 running ⚑ SOFT slot AMD — slot held by NVDA #14 until 28.08 ◔ near-miss ORCL — IV/RV 1.09 · 5% short · no entry ━━ QQQ · $612.40 · ATM IV 21% · exp 28.08 (8d) A STANDARD −590P/+585P −635C/+640C credit ~$96 (realistic ~$86) · max risk $414 · RoR 21% POP 72% (jump-adj −2 pp) · Δ P 0.11 / C 0.13 · 2 lots = 1.5% B CONSERVATIVE −580P/+575P −645C/+650C credit ~$58 · POP 80% · Δ P 0.06 / C 0.08 · 1 lot
Opened AOpened BPassVariants
A morning with nothing in it

Roughly one morning in three reads like this. It is the cheapest message the bot sends.

🌅 DIGEST · TUE 18.08 · 09:45 ET Verdict: no card today · 9 rejected · 2 open ✗ HARD IV richness SPY 0.98 · QQQ 1.04 · IWM 0.91 (gate 1.15) ✗ HARD calendar NVDA, MU, DELL, TSLA ✗ HARD cooldown UNH — 2 td left ○ open NBIS #13, ORCL #15 Nothing is cheap enough to sell. Next screen 09:45 tomorrow.

Verdict first, reasons second, buttons last.

Every rejected ticker names the gate that killed it, and says whether an earnings date came from the company or from an estimate. On the mornings when this whole message is one line long, that line just saved you money.

Three things this message is doing
  • Opened A opens nothing. It creates a pending fill; the campaign exists only after you send the real credit and the number of contracts. Both are facts; neither is assumed from the recommendation.
  • Two POPs, one haircut. −2 pp on index ETFs, −4 pp on single names, covering the jump risk the model cannot see.
  • Variants (pro) fans the same construction along one axis: more conservative ↔ more credit. Same expiry, same engine, same minimum-credit rule.
CB
CondorBot
bot · during the session
⏱ INTRADAY · 11:15 ET · local · checkpoint 8/26 ORCL NEAR-MISS → PASS IV/RV 1.09 → 1.16 (gate 1.15) → /digest for the sized card MU REJECT → NEAR-MISS IV/RV 0.92 → 1.01 (15% band)
/digest

Silence means nothing moved.

26 checkpoints a session: 09:30, 09:45, then every 15 minutes until 15:45. Each ticker sits on a rung of REJECT, NEAR-MISS, FLAGGED or PASS. You hear about it only when a rung changes, and the number that moved it comes along.

Why it is this quiet
  • No buttons here at all. An intraday pass has no card behind it, so you pull the sized card with /digest, which runs the same code path as the morning.
  • Never written to the ledger. Intraday passes don't pollute the shadow record; the sample stays one-per-morning, comparable week to week.
  • One definition of "passes". The rung uses the morning's thresholds plus a 15% near-miss band. There is no second screener hiding in the intraday job.
CB
CondorBot
bot · during the session
⚠️ ACTION · #13 NBIS · 10:12 ET · local Put side in the defense zone — Δ short put 0.29 (entry 0.11) Verdict: HOLD floor −$240 intact · headroom $202 · rolls 0/2 · 6 td left campaign P&L −$38 (marked) · call side quiet (Δ 0.04) 1. Close put side: −$156 → campaign ≈ −$36 2. TIME-ROLL 185/180 next weekly: +$9 · Δnew 0.28 3. DIST-ROLL 175/170 next weekly: −$35 · Δnew 0.20 Mirror: as a NEW trade #2 is Δ0.28 for $9 — would you open it? 🌙 After the close? Gap below 195 at the open = close, don't roll.you · 10:14 ET: Leave as is ✓
Closed put sideRolled 185/180Rolled 175/170Leave as isWhy?
What sits behind "Why?"

The full roll matrix. It stays behind a button because the verdict was Hold, and a wall of numbers under a Hold is how people talk themselves into acting.

ROLL MATRIX · #13 put side · S 196.1 · 6 td credit Δnew BE buy-back 185/180 +7d +$9 0.28 183.4 −$156 180/175 +7d −$18 0.24 178.2 −$156 175/170 +7d −$35 0.20 173.6 −$156 185/180 +14d +$26 0.31 183.7 −$156 rolls used 0/2 · floor −$240 · headroom $202 gap plan: below 195 at the open → close, do not roll Mirror: would you open 185/180 at Δ0.28 for $9 as a new trade?

The verdict is the tree's. The decision is yours. Both get written down.

The recommendation on every card comes out of the decision tree. It is never assembled in the message from a delta. "Close" appears only when an exit node has fired: stop, floor, time-stop, pin risk or take-profit. A breach with the floor still intact says Hold, and lays the actions out as options.

What happens after you tap
  • "Leave as is" is a decision, not an ignore. It gets recorded, and it quiets this exact signal only until the numbers get worse by Δ +0.10 or a whole zone. Then the card comes back.
  • What never goes quiet: the floor, and any urgent signal. Urgent repeats three times, then stands in red in the evening report until you answer.
  • Why? opens the full roll matrix: pricing, escalation curve, gap scenarios. None of it is pushed at you while the verdict is Hold.
CB
CondorBot
bot · 16:05 ET / after the bell
🌙 EVENING · THU 20.08 · 16:05 ET · local #13 NBIS A · mark −$41 · Δ P 0.27 / C 0.04 · headroom $199 · 6 td #14 NVDA A · mark +$52 · 43% of credit (take at +50%) · 6 td #15 QQQ A · mark +$6 · opened today · 6 td Decisions today: #13 put-side breach → Leave as is (10:14 ET) 🔴 urgent signals unanswered: 0
The same thing on demand: /status

Any time, not only after the close. A partially closed campaign is where this earns its keep: #11 has had its call side bought back, so the bot prints one side and says so, rather than quietly showing you a strike that no longer exists.

you › /status #13 NBIS A · put −190/+185 Δ0.27 · call −300/+305 Δ0.04 mark −$41 · headroom $199 · rolls 0/2 · 6 td #11 AMD A · call side closed 18.08 for $62 live: put −140/+135 Δ0.08 · mark +$77 · 4 td #15 QQQ A · put −590/+585 Δ0.11 · call −635/+640 Δ0.13 mark +$6 · headroom $186 · rolls 0/2 · 6 td ATM IV: NBIS 118% · AMD 46% · QQQ 21%

One message after the bell. No dashboard to refresh.

Where every campaign stands in money and in distance, how much floor is left, and what you decided today. A partially closed campaign prints only the side that is still alive, because the engine asks a single source of truth before printing anything.

How to read the three lines
  • Floor headroom is the number to watch: −$41 against a −$240 floor leaves $199. When it hits zero the menu collapses to Close.
  • Take-profit is a GTC order you set at your broker; the report tells you where it sits relative to the mark.
  • Unanswered urgents get counted here: a signal that repeated three times and got no reply. Answering is one tap, and it is never done for you.
CB
CondorBot
bot · Friday 16:15 ET
📒 WEEKLY JOURNAL · WK 34 · FRI 16:15 ET Closed: 4 campaigns · hit rate 75% · week +$64 #12 QQQ A take-profit +50% · day 4 +$58 #11 SPY A take-profit +50% · day 6 +$71 #10 NBIS B stop −1.1× · cooldown 5 td −$96 #09 IWM B take-profit +30% · day 3 +$31 Roll verdict: 2 rolls this quarter — one saved +$42, one deepened −$18. Policy net +$24. Under review. Shadow ledger: 6 ideas the gates rejected would have netted −$212. The gates paid rent. Follow rate: 9 verdicts · followed 7 · overrode 2 (both recorded) SAMPLE — illustrative numbers, not a track record

Campaigns get judged. Rolls can't hide a loss.

A position gets rolled. A campaign gets judged across every roll it ever took. The weekly total includes what your roll habit contributed, whether that was saving trades or burying them, and what the ideas you skipped would have done.

What the journal is grading
  • Shadow ledger: every card the digest showed, opened or not, and every near-miss it refused is priced at expiry. The gates are on trial every week, same as you.
  • Follow rate: how often you did what the verdict said, and how the overrides turned out. It is the only honest way to find out whose judgement is better, yours or the tree's.
  • In three months you'll know, with receipts, whether your edge is real.
CB
CondorBot
bot · on request
you › /prompt 13 CAMPAIGN #13 · NBIS · iron condor A · opened 14.08 · 1 lot legs: −190P/+185P · −300C/+305C · exp 28.08 credit $120 · risk $380 · floor −$240 · rolls 0/2 · time-stop 25.08 snap 10:12 ET: S 205.4 · Δ P 0.29 / C 0.04 · ATM IV 118% · 6 td tree: breach_put · floor live → HOLD matrix: 185/180 +$9 Δ0.28 · 175/170 −$35 Δ0.20 · close put −$156 events before expiry: none decisions: 10:14 ET breach_put → hold question for the assistant: …
Copy

A second opinion, without a second system.

One command builds a time-stamped brief of the campaign: legs, money, floor, the tree's current node, the roll matrix, your past decisions. Paste it into Claude or ChatGPT, or send it to someone who trades better than you do. Every field is either a number or "n/a" with a reason, so there is nothing to fill in from memory.

Three notes on the brief
  • The bot itself never calls an AI. The verdict is deterministic and tested. The conversation is yours to have, or to skip.
  • Works on closed campaigns too, which gives you a post-mortem with the same fields.
  • The one place it's allowed to be technical. Everywhere else the bot speaks in sentences; raw codes never reach a message.

Tabs advance on their own until you pick one.

The discipline engine

Rules you can't talk yourself out of.

None of these are settings. They are invariants: enforced in the database, in the buttons and in the message text, and each one is pinned by a test that fails if some future change quietly softens it. The numbering is not decoration. It is the rulebook the engine actually runs on, and every card below opens onto a worked example.

INVARIANT 01

It never places an order.

There is no code path that can place, change or cancel a trade, and a test fails if anyone adds one. Your take-profit is a GTC order you set yourself. The bot's job is to remind you where it goes.

What that looks like
🔔 GTC REMINDER · #13 NBIS take-profit sits at +50% of credit = buy the condor back for $60 set it at your broker now, while you are looking at this I can't place it, and I can't check that you did
INVARIANT 02

Two rolls. Never a third.

Rolls inherit the campaign, so the loss travels with them. After 2/2 the button does not go grey. It is gone, and the database refuses the third row underneath it.

A campaign that used both
#07 TSLA · opened 02.07 · credit $138 · floor −$276 roll 1 · 09.07 · put 300/295 → 290/285 · +$21 · 7 more days roll 2 · 16.07 · put 290/285 → 280/275 · −$4 · 7 more days menu on 21.07: [Close] rolls 2/2 — no third option exists closed 23.07 at the time-stop · campaign −$88

Before this rule I would have paid roughly $40 for a third roll, on a strike I would not have picked as a fresh trade. That is the whole argument.

INVARIANT 03

The floor governs the menu, not the truth.

At −2× your opening credit, counting realised and marked together, everything except Close leaves the menu. Roll anyway at your broker and the bot still records it, stamped as an override and loudly. Refusing would only undercount your rolls.

The arithmetic, on one lot
credit $120 × 1 lot floor = −$240 (fixed at the fill, never recalculated) put side bought back realised −$180 call side still open marked −$64 total −$244 → floor breached menu: [Close] roll buttons removed /roll 13 → recorded, flagged OVERRIDE, rolls 1/2, warning printed

Two lots would put the floor at −$480. The owner types the credit for one condor; the engine scales it.

INVARIANT 04

HARD gates have no override button.

Calendar, realised vol, cooldown, IV richness, liquidity, credit. Fail one and no card is generated, in any mode. A gate that cannot be computed counts as NO rather than as a shrug, so knife days never reach your inbox at all.

A day the gate paid for itself
13.08 NBIS closes −14.4%, ATM IV 118%, RV20 annualised 214% 14.08 screen: IV/RV 0.55 vs gate 1.15 → no card that morning the premium looked enormous. It was cheap. 21.08 shadow ledger prices the trade it refused: −$212

Nothing about that morning felt like a refusal was correct. The gate does not consult feelings, which is the only reason it works.

INVARIANT 05

One ticker, one campaign. Clusters share a slot.

The AI and semi names count as a single bet between them. Index ETFs get two slots, other single names one each. In pro mode the card is flagged rather than hidden, and your override is a tap that gets written down.

The flag, and what it costs
⚑ SOFT AMD — AI/semi slot held by NVDA #14 until 28.08 open anyway and you hold two correlated short-vol positions [Opened A] → campaign written with gate_bypass=1, reason 7

Worth knowing the honest limit here: slots count names, not correlation. DELL against AMD runs about 0.45, ORCL against NBIS about 0.55. On a day when the AI complex moves together, your real concentration is higher than the slot count suggests.

INVARIANT 12

The verdict is the tree's, not the messenger's.

Every recommendation is the output of the decision tree. "Close" appears only when an exit node has fired. A breach with the floor still intact says Hold, and lays the actions out as options underneath.

Same breach, two verdicts
floor alive Δ 0.31 · headroom $202 · rolls 0/2 Verdict: HOLD + three priced options floor gone Δ 0.44 · headroom −$4 · rolls 0/2 Verdict: CLOSE · the roll options are not printed at all

Same ticker, same kind of breach, one number apart. Assembling that advice in the message layer instead of asking the tree is a review blocker in this codebase, not a style preference.

HONEST MATH

Numbers with the fantasy removed.

POP carries a jump haircut of −4 pp on single names and −2 pp on index ETFs. Distances are log-sigmas, ln(S/K)/σ√t, never percentages. Credit is quoted on fills you can actually get.

Model number vs printed number
model printed why POP 76% 72% −4 pp, single name jump risk credit $102 $86 mid is not a fill max risk $398 $414 computed off the printed credit RoR 25.6% 20.8% falls out of the two above

Money is held as integer cents throughout, so nothing in your P&L is ever a float that drifted. Small thing. It is also the kind of small thing that makes two reports disagree by a cent and destroys trust in both.

THE MIRROR LINE

Every roll gets interrogated.

The matrix prices each candidate and then asks the only question that matters: as a brand-new trade, would you open Δ0.28 for $9? If the answer is no, the roll is a no. The matrix lives behind Why?; the verdict does not.

Why the mirror question works

A roll feels like repair. Priced honestly it is two decisions at once: closing a trade you are losing on, and opening a new one you have not screened. The second half is the one nobody says out loud.

So the bot says it out loud, in the same line, with the delta and the credit you would be accepting. About half the rolls I used to take do not survive being asked.

TRUTH OVER CONVENIENCE

It refuses only what would be false.

Register a roll with uneven wings and the engine would print a max risk it knows is wrong, so it declines the entry. Fix the legs at your broker, or close. Inconvenient facts do get recorded, as rule 03 shows. False numbers do not.

The refusal, in full
⚠ NOT REGISTERED · #13 · uneven wings put wing $5, call wing $10 → max risk would print $760, real is $1760 your options: 1. bring the legs back to equal width at your broker, then /roll 2. /close 13 and register the close instead rolls_used stays at 1/2 · the trade at your broker is unaffected

The line runs through true and false, not through convenient and inconvenient. A tool that logs a number it knows is wrong is worse than one that logs nothing.

Track-record policy

Receipts, not backtests.

There is no equity curve on this page and there is not going to be one. Below is why, and what stands in its place.

Why no backtest

Historical option quotes do not exist in the data we run on. Bars and trades, nothing else. Model a condor's credit from bars and you land about 20% below what the market actually paid.

Why 20% is fatal rather than annoying

The minimum-credit gate sits at 20% of wing width. A 20% modelling error therefore lands exactly on the threshold, which means a backtest would reject roughly the trades the live bot accepts, and accept the ones it rejects. Every number downstream, win rate included, would be measuring a strategy nobody ran.

So there are no backtests in this marketing, and there will not be. The track record is the live journal and the shadow ledger, published weekly, losses in the same table as the wins.

The gates are on trial too

Every card the digest shows gets priced at expiry, opened or skipped, and so does every near-miss it refused. If the gates start rejecting winners you will read it in the journal, and you will read it before I get to explain it away.

Paid plans switch on after the launch gate

Nobody is charged before the live journal clears all four:

  • ≥ 12 weeks of live operation
  • ≥ 15 campaigns closed
  • net P&L > 0 across all of them
  • realized win rate ≥ stated POP − 8 pp

Until then, founding seats are free. Progress is printed in the public journal.

WEEKLY JOURNAL · WK 34SAMPLE
Closed: 4 campaigns · Hit rate 75% · Week +$64
#12QQQAtake-profit +50% · day 4+$58
#11SPYAtake-profit +50% · day 6+$71
#10NBISBstop −1.1× · cooldown 5 td−$96
#09IWMBtake-profit +30% · day 3+$31
Roll verdict: 2 rolls this quarter — one saved +$42, one deepened −$18. Policy net +$24. Under review.
Shadow ledger: the 6 ideas the gates rejected would have netted −$212. The gates paid rent.
Follow rate: 9 verdicts · followed 7 · overrode 2 (both recorded).
Cumulative: 9 wks · 16 campaigns · hit 69% · avg win $52 / avg loss $91 · net +$389
SHADOW-FIRST

Credit verticals are running in shadow. No launch date, just gates.

Bull-put and bear-call spreads are priced and logged next to every condor, and offered to nobody. They get a button when all four of these clear. The numbers were set before any data came in, which is the only time you can set them honestly:

FREQUENCY≥ 10 settled shadow observations
ECONOMICS≥ 8 of 10 profitable on risk · no loss worse than −1× credit · realized win rate ≥ stated POP − 8 pp
EYES ON≥ 10 owner marks "would take / wouldn't"
SLOTreturn ≥ half the condor's over the same period — half, because a vertical's return on risk is structurally half a condor's
Origin

One campaign, day by day.

This is campaign #06, a real one, and most of the rules on this page were pulled out of it one at a time. One lot on an AI name, $120 credit, $380 of defined risk, ten days on the clock. Two double-digit sessions in the middle of it.

SHORT PUT 190 249 281 240 196 191.5 205 CLOSED
DayWhat the market didWhat the bot didCampaign
1 · Tue 09.06Spot 249. Sold −190P/+185P and −300C/+305C, ten days out.Floor fixed at −$240. Time-stop set for 17.06. Take-profit reminder at +$60.−$6
2 · Wed 10.06Up 13% in a session. Spot 281, call delta 0.09 → 0.26.Nothing. Delta under 0.30, floor untouched.−$58
3 · Thu 11.06A megacap says it is entering the sector. Down 14.4%, back to 240.Nothing. Both sides bruised, neither in the defence zone.−$31
4 · Fri 12.06The slide keeps going. Spot 196, put delta 0.31.ACTION card. Verdict Hold, floor alive, three priced options and the mirror line. I left it.−$44
5 · Mon 15.06Low of 191.50, a dollar fifty above my short strike. Delta 0.41.Card re-issued: delta had worsened by 0.10 since my hold. Same verdict. Headroom $137.−$103
6 · Tue 16.06Bounce to 205, IV starts collapsing. Delta 0.19.Signal cleared on its own. Nothing to send.−$22
7 · Wed 17.06Three trading days left to expiry.TIME-STOP. Verdict Close. Bought the condor back for $114.+$6
The part I want you to notice

Four of those seven days, the correct action was to send nothing. That is most of the value and none of the demo appeal, which is why every other tool in this category would have found me eleven trades that week.

The campaign ended at +$6 on $380 of risk. Six dollars. A rounding error, and I will take a rounding error out of that week every time. What it is not is a track record, and the receipts section above says what I am willing to publish instead.

Two double-digit sessions, one that came within $1.50 of my short strike, and not a single decision I would have to explain to myself later. That is the entire product: the rules hold when you would rather hope.

I built this for one account. Mine.

I have been selling premium for years and I am good at the entries, which turns out not to be the skill that matters. What kept costing me money was the middle of a losing week, at midnight, alone, with a broker screen open and a very reasonable-sounding argument for one more roll. I did not need a signal. I needed something that would not negotiate.

So the bot cannot place orders, and it cannot be talked into anything, and the parts that stop me are the parts I deliberately made impossible to switch off. It runs on my own money every week. When it is wrong you will see that in the Friday journal, because I would rather show you a losing week than a curve I drew myself.

— Maksim, sole developer and only current user

Pricing

Cheaper than one bad roll.

Most subscriptions in this market sell you more trades. This one pays for itself the first time it stops one. 14-day trial, no card. The first 30 seats keep their price for as long as they stay.

Core

Index condors, one profile, two campaigns.

$15/mo
founding $15 $9 / mo for life
  • SPY, QQQ, IWM (the index core)
  • Profile A · Standard
  • 2 concurrent campaigns
  • Morning digest + 5-minute monitor
  • Evening report + weekly journal
  • Decision ledger & follow rate
  • Pro mode (a setting, not a tier)
Join the waitlist

You bring your own data key. Two minutes to create, free tier is enough, and signup walks you through it.

Why it works that way, and what it means for you

Quote licences do not let us redistribute market data, so there is no shared feed here. Your key, your rate limit, your privacy boundary. Keys are encrypted at rest.

No code path can send an order with your key. If your provider offers a paper account, use that key instead and the question disappears entirely, since the market data is identical either way.

One consequence worth knowing up front: IV-rank history starts accumulating on the day you connect, not before.

Questions traders actually ask

The fine print, in plain English.

Is this financial advice?

No. CondorBot is an educational analytics and journaling tool. The morning digest is the same impersonal publication for every subscriber. Monitoring applies only to positions you chose to open at your broker — the bot does the math on your trade; it doesn't tell you what's right for your situation. You remain the risk manager of record.

Does it trade my account?

No, and not as a promise. There is no code path that places, modifies or cancels an order, and a test fails if one appears. If you want belt and braces, give it a paper account's key. The market data is identical and it cannot touch real money.

Where does the market data come from?

From a market-data key you create with a supported provider. A free tier is enough and signup walks you through it. Quote licences do not allow commercial redistribution, so there is no shared feed here: every account is its own data budget and its own privacy boundary. Keys are encrypted at rest. One consequence to know up front is that IV-rank history starts accumulating on the day you connect.

Which brokers are supported?

All of them, because it connects to none of them. You confirm a fill with one tap and two numbers, the credit and the contract count, and the engine recomputes breakevens, risk and your floor from what you actually got. IBKR, Schwab, tastytrade, Fidelity, Firstrade: if you can trade a condor there, you can guard it here.

What's the difference between HARD and SOFT gates — and what is pro mode?

HARD gates judge the trade itself: earnings calendar, realised vol, cooldown, IV richness, liquidity, minimum credit. Fail one and there is no card and no override, in any mode. SOFT gates are limits on your book instead, meaning cluster slots and position size. Pro mode makes those flag rather than hide, and your tap is recorded as an override. Pro mode is a setting and comes with every plan. Exit discipline (floor, roll limit, time-stop) has no pro switch at all.

What happens if I ignore an alert?

Urgent alerts repeat three times, then are counted in red in your evening report and your weekly journal as unanswered. Note the difference from Leave as is: that's a recorded decision, and it quiets the signal only until it gets numerically worse. The bot never overrides you — it turns ignoring into a documented decision instead of a quiet one.

I sell strangles / verticals / the wheel, not condors.

Condors first, done properly. Credit verticals are already priced and logged in shadow, and they get promoted when the four gates above clear rather than when a roadmap slide says so. Naked strangles, calendars and diagonals are out by decision. Undefined risk and a second expiry are different games with different failure modes.

Does it use AI?

Not inside. The screener and the decision tree are deterministic and covered by tests, so the same inputs always produce the same verdict. The only AI touchpoint is /prompt, which builds a brief of your campaign that you paste into Claude or ChatGPT yourself if you want a second opinion.

Can I bring a position I already have open?

Yes. /add walks you through symbol, profile, legs, expiry, contracts and credit, and from then on it is monitored like anything else. Partial closes, assignments and rolls you executed at your broker are all first-class states, registered in a few taps.

I'm half a world away from New York. Does that matter?

It's the reason the bot exists. Every job runs on the exchange calendar, every message prints ET and your local time side by side, and every alert is two-story: what to do now, and what to do if you're reading it after the close.

Founding cohort · 30 seats

Get a risk manager before
you need one.

Founding members lock $9 or $19 for as long as they stay, vote on what gets built next, and get the full rulebook: every gate, every threshold, every invariant, written down. Nobody is charged before the launch gate clears.

✓ You're on the list. Watch your inbox — build updates ship with the Friday journal.

Couldn't reach the list right now. Try again in a minute.

One email a week at most. No sharing, no selling, unsubscribe in one click.