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.6.0
A sample portfolio, an explicit licence, and only claims we can show.
- FeatureOne button loads a worked example — ten trades and nineteen years of generated prices — so every tool can be seen working without a broker export or an API key.
- FixThe site no longer describes itself as a nonprofit funded by donations and grants. That is a claim about corporate structure and funding, and the guarantee that actually holds is architectural: there is no server to receive your trades.
- FeatureThe source is now published under the MIT licence. Previously it carried none, which reserves every right by default.
0.5.0
Eight tools, a phone that works, and a policy that is tested.
- FeatureTax-loss scanner, dividend snowball, historical stress test, and a correlation page — each with its own route, grouped under Analytics, Planning, and Optimization.
- FixThe analysis page no longer scrolls sideways on a phone, and every control is at least 44px on a touch screen.
- PrivacySecurity headers are now verified by the test suite rather than only reviewed, and the app requests no eval permission. Dependencies carry no known vulnerabilities.
- FixRemoved a nonprofit filing status from the site's structured data. It named a registration nothing here claims, and structured data has to be true.
0.4.0
Four new tools, one theme, and a test suite that watches the network.
- FeatureRebalance calculator: set target weights and see the trades that reach them. It reports drift too small to place in whole shares rather than calling it nothing to do.
- FeatureComparison against SPY — beta, alpha, tracking error, and information ratio over the days both series cover.
- MathMonte Carlo projection by resampling the portfolio's own daily returns. Seeded from the return series, so the same trades always produce the same projection, and it declines to draw anything under 20 days of history.
- FeatureTrade journal: notes and tags on individual trades, stored on this device with everything else. Deleting a trade deletes its note.
- PrivacyErrors are recorded in a local diagnostics log you can read and export from Settings, and sent nowhere. Security headers now name the single host this app is allowed to contact.
- FixCard headings are real headings, so the dashboard is navigable by heading rather than reading as one block.
- FeatureThe command palette is gone. On a site where every page is one click from the masthead, a second way to reach them was weight without a use.
- FeatureVeluma renders light only. The theme toggle and the script that applied a saved theme before paint have been removed.
- FixEvery icon is now generated from a single source SVG, so the favicon and the wordmark can no longer drift apart.
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.