Built a Black-Scholes Options calculator to model strategies including profit probability
Author shares a custom Black-Scholes options calculator tool for modeling strategies, P/L, and profit probability.
Hi all,
Sharing a modeling tool (https://opcalc.app/) that calculates your options P/L trade against stock price scenarios at different dates and expiries. Features a custom builder up to 8-legs. This runs on the theoretical Black-Scholes calculation model. 15-minute delayed stock prices are pulled via API.
https://preview.redd.it/es4szpfu3n6h1.png?width=2122&format=png&auto=webp&s=3edcf449fdc19f0d8b4fe38c47c0f9a49f6bcd26
The options chain defaults to theoretical premiums and is editable for a more accurate POP + max P/L and breakeven forecast including Greeks preview.
There's also a learning hub with explanations and pre-built strategies including covered calls, iron condors, spreads, etc. No account or email capture.
I built this because I needed a way to model trades and strategies without jumping between my brokerage and clunky tools.
Check r/opcalc and/or DM for follow-ups.
Useful project. The feature I would want most is an assumptions panel that makes the model hard to misuse: IV source, rate/dividend input, days-to-expiry convention, liquidity/spread warning, and a clear note that probability is model-based, not a guarantee. For strategy modeling, showing how the payoff changes when IV moves is often more useful than the static expiration graph.
u/CODE_HEIST Good feedback. Really appreciate this. you've named the right gaps. The IV source is ATM implied vol back-solved from the chain, rate is risk-free, no dividend adjustment (yet). DTE uses calendar days to 4pm ET close. The IV shift modeling is partially there. the P/L chart shows multiple time curves so you can see theta erosion, but a dedicated IV slider showing payoff change at ±X% IV is now on the list. Liquidity/spread warning and the assumptions panel are fair additions. Adding these to the roadmap.
That sounds like the right direction. The only thing I would be careful with is hiding assumptions once the tool gets more features. The assumptions panel should stay visible enough that a user cannot treat the output like an oracle. A simple "model inputs changed" warning when IV, rate, or DTE assumptions move would probably prevent a lot of misuse.
100% agree. Thanks for the suggestions.
option pricing is off. for AMD , jun 19th 500 call is showing 0.20 or something. in the actual chart in my broker it is showing 9.x.
u/No_Fox9998 chain premiums are theoretical Black-Scholes estimates, not live market prices. Only the stock price is pulled via API. You can manually enter the actual premium from your broker to get an accurate P/L model.
Your first step to a deep rabbit hole. The next step starts once you find out BSM is inaccurate model.
yeah this tracks with what i've seen too. you're not alone in this.
u/Miamiconnectionexo thanks, I hope it's helpful!
looks clean, nice that theres no email wall. one thing worth flagging for anyone leaning on the pop number, its coming straight out of black scholes which assumes a clean lognormal move and a single iv, so it tends to read a little optimistic on names that actually gap. the real distribution has fatter tails than the model, so a 70% pop on a short put can feel safer than it is right before a catalyst. doesnt make it wrong, just worth sanity checking the iv youre feeding it. you pulling iv per strike or using one number for the whole chain?
u/Spiritual_Bat7343 good call-out. This is where Black-Scholes has its limits. The POP uses ATM IV, no per-strike, but skew is reflected in the chain premiums. Although I'd love to implement per-strike POP. IV is, however, adjustable to model IV crush scenarios.
Damn dude it looks really good. One suggestion though, im looking at spy and it doesnt let you choose custom strike prices because it doesnt show strike prices above or below a certain range so you ahould be able to choose it
u/Open-Resident-7429 super thanks for the note. I'll look into this.
Nice! Thanks for sharing. Which data API are you using?
u/cutemarketscom thanks! Pulling stock price data from Finnhub. Looking into data APIs for live options premiums also.

r/options