The sheet, made readable
The transaction log lives in a Google Sheet, and it stays there: the dashboard reads it, never writes it. Every sell row is one completed trade, and the app computes what the sheet cannot show, like how many days a position was actually held, by walking the buys and sells that opened and closed each lot.
The portfolio view merges that history with live prices, so cost, unrealized gain, realized gain, and dividends sit on one screen instead of five sheet tabs.