Free spreadsheet · Manual tracking
Your holdings and notes, in one Google Sheet.
Bring snapshots from several brokerage accounts together, see totals for the same ticker, and keep your investment notes beside the numbers. Start with a free workbook you can use without an add-on or subscription.
No email signup. Import the downloaded file into your own Google Sheets account.
Two accounts. One ticker total.
Fictional USD example · Not current prices| Account | Ticker | Shares | Snapshot price | Value |
|---|---|---|---|---|
| Demo A · Taxable | AAPL | 10 | $100 | $1,000 |
| Demo B · IRA | AAPL | 5 | $100 | $500 |
| Demo A · Taxable | MSFT | 3 | $200 | $600 |
The Summary tab combines AAPL into 15 shares worth $1,500. All three rows total $2,100 in value, $1,890 in cost basis, and $210 in unrealized gain. These are worked examples, not investment recommendations or a connected-account demonstration.
Four tabs, ready to adapt
Start
Setup instructions, privacy reminders, worked totals, and the limits of the template.
Holdings
One row per account and ticker, with quantity, snapshot price, cost basis, and your own notes.
Summary
SUMIF formulas combine duplicate tickers across accounts and calculate their share of the total value.
Formula reference
Optional InvestSheet formula examples, stored as text. They do not run or connect any accounts in the manual template.
Set up your own tracker
- Download and import. Download the XLSX above. In a new Google Sheet, choose File → Import → Upload and select the file. Import it as a new spreadsheet, then check the fictional totals above before entering your data.
- Replace the examples. In Holdings, replace the three sample rows with one current snapshot per account and ticker. Use account nicknames, never account numbers, passwords, or connection tokens. Use a single currency for the whole workbook.
- Keep the formulas. Value in column H is quantity × snapshot price; gain/loss in I is value − total cost basis. Copy H:I down for new rows, up to row 1000. The template does not fetch prices or holdings.
- Update the summary. Add each ticker once in Summary. Copy its B:F formulas, then move or extend the TOTAL row to include every ticker. Column F is a fraction: format it as a percentage if you prefer.
- Keep notes attached to the right holding. Columns L:N hold your reasoning, target weight, and review date. Keep a stable row per account/ticker and update its data cells. Never paste a shuffled holdings list over existing notes. If you regularly replace imports, keep notes in a separate tab and look them up by a stable account/ticker key.
How duplicate tickers are combined
For the ticker in Summary A2, total shares across Holdings with:
=SUMIF(Holdings!$C$2:$C$1000,A2,Holdings!$E$2:$E$1000)Use column H instead of E for the corresponding total value.
What the free template does
It is a manual snapshot tracker with spreadsheet formulas. It does not include automatic brokerage connections, current market quotes, currency conversion, cash or debt tracking, transaction history, tax lots, or realized returns. Replace old snapshots instead of appending them to current totals, which would double-count holdings. Blank or zero totals should be checked against your own records.
Keep your completed workbook private. The download contains fictional examples and no linked brokerage account. You do not need to share your spreadsheet with us to use it.
Optional next step · Paid software
Want to reduce repeated holdings entry?
InvestSheet brings supported connected brokerage holdings into Google Sheets through IVS_BROKERAGE formulas. Keep your layout and notes, and use connected formula cells where they help. Setup and a data refresh are required; formulas read cached holdings, not a streaming price feed. Supported connections vary, and ongoing syncing requires a subscription.
=IVS_BROKERAGE("qty", "AAPL")Only returns a holding quantity after setup and refresh. Do not add connected totals to the same manual totals.