Process flow diagram
Start → Scan chains → Filter → Pair → Price → Compute viability → Base‑spread gates → bull put gates → Order‑ready → Submit → Outcome
%%{init: {"theme":"base","flowchart":{"curve":"basis"},"themeVariables":{
"fontFamily":"Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif",
"primaryTextColor":"#e5e7eb",
"primaryColor":"#111827",
"primaryBorderColor":"#94a3b8",
"lineColor":"#94a3b8",
"tertiaryColor":"#0e1729",
"tertiaryBorderColor":"#22d3ee",
"edgeLabelBackground":"#00000000"
}}%%
flowchart TB
A([Start]) --> SC[Scan put chains]
SC --> FLT[Filter DTE / non‑standard / delta bands / bid‑ask / strike caps]
FLT -->|No candidates| OUT[Stop: no viable chains]
FLT --> PR1[Per‑expiration pairing]
PR1 --> PR2[Pair short above long within max width]
PR2 --> PRICE[Price: mark diff → openPrice; width‑tier bump; caps]
PRICE --> VIAB[Compute viability — ROR, PL, winProb, liquidity]
VIAB -->|No viable| OUT
VIAB --> BASE[Base two‑leg spread gates]
BASE -->|Fail| OUT
BASE --> BP[ bull put specific gates ]
BP -->|Fail| OUT
BP --> ORDY[Order resource ready]
ORDY --> SUB[Submit LIMIT credit]
SUB --> DONE([Outcome: placed or queued])
classDef step fill:#111827,stroke:#94a3b8,color:#e5e7eb,stroke-width:1px;
classDef gate fill:#0e1729,stroke:#22d3ee,color:#e5e7eb,stroke-width:1px;
classDef out fill:transparent,stroke:#94a3b8,color:#cbd5e1,stroke-dasharray:5 3;
class A,SC,FLT,PR1,PR2,PRICE,VIAB,BASE,BP,ORDY,SUB,DONE step;
class OUT out;