Changelog
What shipped, and what moved
Entries marked Math changed a formula. If a figure you wrote down has shifted, that is where to look first.
0.3.0
Positions, correlation, and pages for the things worth linking to.
- FeatureHoldings table with cost basis, weight, and realized and unrealized profit, tracked on an average-cost basis.
- FeatureCorrelation matrix across holdings, measured over the dates every holding shares.
- FeatureVolatility, annualized return, current drawdown, recovery length, and best and worst day added to the dashboard.
- MathThe risk-free rate behind the Sharpe ratio is now a setting rather than a fixed 4%. Existing readers keep 4% until they change it.
- FeatureTrade ledger is sortable and filterable, and individual trades can be deleted with an undo.
- FeatureExport every trade back out as CSV or JSON, and delete all local data from one place.
- FeatureMethodology, glossary, FAQ, privacy, mission, impact, and changelog now have their own pages.
- FeatureCommand palette on ⌘K, skeleton loading states, and an offline indicator.
- FixCompact currency no longer renders round amounts as “$950.0” on axis ticks.
0.2.0
Local price cache, and a name.
- FeatureEnd-of-day prices are cached in IndexedDB with their covered date ranges, so a repeat visit costs no API requests.
- PrivacyThe Alpha Vantage key moved from a build-time environment variable to per-device storage. A bundled key would have been readable by every visitor.
- FeatureOffline shell via a service worker, and installable as a progressive web app.
- FeatureDark theme, applied before first paint.
0.1.0
CSV import, portfolio value, drawdown, and Sharpe.
- FeatureImport trades from a broker CSV, with unreadable rows reported by line number rather than dropped.
- FeaturePortfolio value at every close since the first trade, plotted.
- MathMaximum drawdown and annualized Sharpe ratio, written as pure functions and covered by unit tests.