What your portfolio
actually looks like.
Add your accounts and holdings to see your combined allocation across US stocks, international stocks, bonds, Bitcoin, and cash.
The question it answersWhat is my actual asset allocation once I combine every account I hold?
Rules: United States. Privacy: runs in your browser. What you enter stays on your device.
All data stays in your browser. Nothing is sent to any server.
What this tool assumes
- Holdings are entered by name and assigned a category manually.
- Cash drag uses a fixed 3.4% inflation rate (BLS CPI-U, 12 months to August 2026) and assumes the cash earns no interest. Interest you earn reduces the real loss.
- Holdings with the same name in different accounts (ignoring capital letters and extra spaces) count as one holding for the concentration warning, so VTI in a 401(k) and VTI in a brokerage account are added together.
- Bitcoin in any account type other than Self-custody Bitcoin is treated as held by a custodian.
- Each holding value must be at least $0.01 and no more than $1 trillion. Other values are rejected with a message, not changed.
- Account and holding names can be up to 120 characters. The name fields stop taking text at 120 characters, and a longer name is rejected with a message, not shortened.
- If the data saved in this browser cannot be read, nothing is loaded and a message says so. The saved data stays until you add, change or clear an account.
Not financial advice. Your numbers stay in your browser.
HOW THIS IS CALCULATED
This tool runs entirely in your browser: no data is sent to any server. Accounts and holdings are saved in this browser's local storage so they reappear on the next visit; “Clear all” deletes them. If the saved data fails validation (a name over 120 characters, a value outside $0.01 to $1 trillion, or damaged data), nothing is loaded and a message says so; the saved data is replaced the next time you add, change or clear an account.
- Total = the sum of every holding's value. Each category's share = category total ÷ total, shown to one decimal place in the legend and the chart tooltip, and rounded by largest remainder so the legend adds to exactly 100.0%. When two categories tie for the extra 0.1%, the one listed first gets it, so two equal holdings can read 0.1% apart. A category above $0 that rounds to 0.0% reads <0.1%, and one below the whole total that rounds to 100.0% reads >99.9%.
- Tax-advantaged = holdings in 401(k)/403(b), Traditional IRA, Roth IRA and HSA accounts. Every other account type, including checking, savings, exchanges, self-custody and real estate, counts as taxable. The two percentages are whole numbers rounded as a pair so they add to 100%; a side above $0 that rounds to 0% reads <1% and the other side >99%.
- Self-custody share = Bitcoin held in self-custody accounts ÷ all holdings in the Bitcoin category, rounded down to one decimal place; a share above 0 that rounds down to 0.0% reads <0.1%.
- Warnings: the largest single holding above 25% of the total, after adding together holdings with the same name in different accounts (ignoring capital letters and extra spaces), with the loss from a 50% drop, share × 50%; cash above 20%; no Bitcoin; Bitcoin above 50%; less than half of Bitcoin in self-custody (Bitcoin in any other account type counts as held by a custodian); REITs in a taxable account. Shares in the warnings are shown to one decimal place. A share that rounds down to the limit reads “just over” the limit, a share under 100% (or a drop under 50%) that rounds up to it reads “just under” it, and a share above 0 that rounds to 0.0% reads “less than 0.1%”.
- Cash drag, shown with the cash warning, is cash × 3.4%, the BLS 12-month rise in the CPI-U to August 2026[1]. It is the loss for cash earning nothing; interest from a money market fund or savings account is not subtracted, so the figure is an upper bound for cash that pays interest. The loss is measured in end-of-year dollars; in today's dollars it is cash × 3.4% ÷ 1.034, about 3.3%.
- A holding value must be at least $0.01 and no more than $1 trillion, and an account or holding name at most 120 characters; other entries are rejected with a message, not changed.
- Dollar amounts under $10 show cents, amounts from $10 to under $1 million are rounded to whole dollars, and larger amounts are shown in millions, billions or trillions to two decimals. An amount that would read 1000.00 in one unit is shown as 1.00 of the next.
- Export CSV writes one row per holding: account name, account type as shown in the dropdown, holding name, category and value. Text fields are quoted, embedded quotes are doubled, and any text field that starts with =, +, -, @, a tab or a carriage return gets a leading apostrophe so a spreadsheet treats it as text.
Values are what you type: the tool does not look up prices and does not split a fund into its underlying holdings. Verify the methodology or inspect the source code in your browser's dev tools.
Where to go from here
Sources
Bracketed numbers in the text link to these sources. Figures, rates and rules change: check each source’s date before acting on it.
- U.S. Bureau of Labor Statistics, Consumer Price Index news release, August 2026. Checked 2026-09-26. ↩
Calculators are educational estimates, not financial advice. Disclosures · How pages are reviewed