Options Wise exists because we got tired of not being able to see our portfolio clearly after the market closed.
We were already deep in options trading — running a small fund, building quantitative tools on the side. The analysis infrastructure was there: a Python CLI that computed GEX distributions, Max Pain levels, Put/Call walls, Gamma flip points. What we didn’t have was something simple that answered the question you ask every day after 4pm: what is my portfolio actually worth right now, and what does the risk look like?
Every solution we found either required logging into a brokerage account, uploaded your positions to a server somewhere, or was built for institutional desks and priced accordingly. None of them were for a retail trader holding a handful of multi-leg US equity options across accounts in Hong Kong and Singapore.
So we decided to build it.
The first version didn’t work
The first attempt was called OptionsPulse. React Native on the front end, Python FastAPI on the back end, yfinance for market data. It looked reasonable on paper.
In practice: yfinance is unreliable. It’s a reverse-engineered scraper that breaks without warning. Building a product on top of it means your users experience failures you can’t predict or fix. The Python backend needed a server to run on — which meant infrastructure to maintain, uptime to care about, costs that don’t go away. And React Native kept reminding us that “write once, run anywhere” is a promise that doesn’t survive contact with the Android platform.
We got about halfway through before it became obvious that we were solving the wrong problems. The architecture was fighting us.
The reset
We stopped, wrote down what actually mattered, and started over.
Three decisions drove the rebuild:
Native Android only. We know Android development well and already had a Google Play developer account — meaning we could ship and share a build the same day it was ready. Dropping the cross-platform constraint let us write real Kotlin, use Jetpack Compose properly, and stop fighting the framework.
No server for user data. Positions are stored locally on the device using Room. Nothing is uploaded. No account, no sign-up. This started as a privacy decision and turned into a product feature — it’s one of the first things users notice, and it removes an entire category of trust problem.
Own the data layer. We replaced yfinance with a dedicated market API running on Cloudflare Workers. We control the endpoints, the caching, the reliability. The Black-Scholes pricing engine is implemented in Kotlin directly in the app. No dependency on a third-party pricing service, no round-trips that add latency to every valuation.
Nine working days
The rebuild went fast. We had already figured out the hard parts — what the data model should look like, which Greeks mattered, how to handle multi-leg aggregation. The first version was a wrong answer, but it was an informed wrong answer.
The task list had 83 items. We shipped with 80 done.
What those nine days covered: the Black-Scholes pricing core and its unit tests, the market data API and FX rates endpoint, the portfolio CRUD and valuation loop, the P&L chart with break-even markers, multi-currency display (USD, HKD, SGD, MYR, CNH, JPY), background refresh via WorkManager, and the Play Store submission.
Internationalisation was built in from day zero — not added later. Four languages: English, Traditional Chinese, Simplified Chinese, Japanese. The markets we’re targeting don’t all read English, and building i18n in after the fact is painful enough that we made it a day-one constraint.
What it is now
Options Wise is live on Android. You add your option legs — underlying, expiry, strike, direction, quantity, premium — and the app fetches after-hours quotes and implied volatility to compute theoretical valuations using Black-Scholes. What you see: theoretical NAV, unrealised P&L in your display currency, and net Delta, Gamma, Theta, Vega aggregated across all your legs. There’s a payoff diagram at expiry with break-even markers.
Aggregated Greeks across a multi-leg book, in a consumer app, without a brokerage login. It’s still surprisingly hard to find.
The monetisation plan exists — there’s a roadmap for paid features — but the first priority was getting the core experience right and in the hands of real users. We’ll know what to charge for once we know what people actually use.
What came from building our own tools first
The quantitative tooling we’d built before — the options pressure analyzer, the fund NAV tracker — shaped what we put in the app and what we left out. We knew which numbers you actually look at after the market closes, and which ones are noise. We knew that the payoff diagram matters more than the raw Greeks for most decisions. We knew that multi-currency display is a real problem for anyone trading US options from outside the US.
You build better products when the problem has already cost you something.