4 palettes × 2 modes = 8 themes Active: Midnight Navy / Dark
Local portfolio tracker. Create brokerage accounts, then record buys, sells, acquisition dates and prices. Account, brokerage and combined allocations, target drift, FIFO lots and risk checks update immediately. Prices may be entered manually or refreshed on demand without an API key. Click Update prices whenever you want the latest available published close; no scheduled background updates. Information is stored in this browser where supported; use Backup Portfolio Database to preserve it.
Realized and unrealized performance

Portfolio profit & loss — grand total, brokerages, accounts

From the transaction ledger and current prices (manual or downloaded). Every buy, sale or price change updates all three levels.

SAMPLE PREVIEW
EXAMPLE DATA — These are hypothetical brokerages, accounts, trades, and prices. Use Clear all to start your own portfolio, or Restore Portfolio Database to import a saved portfolio. Your existing saved data is never replaced automatically.
Grand total · Realized P/L
$1,025.00
18.6% on cost basis
Profits and losses on sold shares across every account.
Grand total · Unrealized P/L
$4,917.00
7.9% on cost basis
Open holdings at the latest saved prices.
Grand total · Combined P/L
$5,942.00
8.7% on cost basis
Realized plus unrealized, across all brokerages.
Live P/L charts — brokerages and accounts

Bar lengths represent combined realized + unrealized P/L. Each bar also displays the dollar gain or loss and its cost-basis percentage.

CHARTS EMBEDDED BELOW

Brokerages — combined P/L

Realized + unrealized · dollars (cost-basis % in parentheses)
Brokerages — combined P/L$0LossGainFidelityFidelity: $1,650.00 (11.0%)$1,650.00 (11.0%)SchwabSchwab: $3,916.00 (12.7%)$3,916.00 (12.7%)TastytradeTastytrade: -$410.00 (-3.2%)-$410.00 (-3.2%)VanguardVanguard: $786.00 (8.2%)$786.00 (8.2%)

Accounts — combined P/L

Realized + unrealized · dollars (cost-basis % in parentheses)
Accounts — combined P/L$0LossGainFidelity · Individual Br…Fidelity · Individual Brokerage: $800.00 (9.6%)$800.00 (9.6%)Fidelity · Roth IRAFidelity · Roth IRA: $850.00 (12.8%)$850.00 (12.8%)Schwab · Roth IRASchwab · Roth IRA: $616.00 (8.9%)$616.00 (8.9%)Schwab · Taxable BrokerageSchwab · Taxable Brokerage: $3,300.00 (13.9%)$3,300.00 (13.9%)Tastytrade · Trading Acc…Tastytrade · Trading Account: -$410.00 (-3.2%)-$410.00 (-3.2%)Vanguard · Traditional IRAVanguard · Traditional IRA: $786.00 (8.2%)$786.00 (8.2%)
Grand total — all brokerages

Total profit & loss ($)

Net gain/loss in US dollars · same horizontal scale for all groups in this chart
Total profit & loss ($)-$5,942.00-$2,971.00$0.00$2,971.00$5,942.00Entire portfolioRealizedEntire portfolio · Realized: $1,025.00$1,025.00UnrealizedEntire portfolio · Unrealized: $4,917.00$4,917.00CombinedEntire portfolio · Combined: $5,942.00$5,942.00
The grand total combines every account. Dollar P/L is realized + unrealized, not cash withdrawn or a time-weighted return.
Brokerage performance comparison
RealizedUnrealizedCombinedRed bars extend left of zero for losses.

Dollar gain / loss

Net gain/loss in US dollars · same horizontal scale for all groups in this chart
Dollar gain / loss-$3,916.00-$1,958.00$0.00$1,958.00$3,916.00FidelityRealizedFidelity · Realized: -$100.00-$100.00UnrealizedFidelity · Unrealized: $1,750.00$1,750.00CombinedFidelity · Combined: $1,650.00$1,650.00SchwabRealizedSchwab · Realized: $900.00$900.00UnrealizedSchwab · Unrealized: $3,016.00$3,016.00CombinedSchwab · Combined: $3,916.00$3,916.00TastytradeRealizedTastytrade · Realized: $225.00$225.00UnrealizedTastytrade · Unrealized: -$635.00-$635.00CombinedTastytrade · Combined: -$410.00-$410.00VanguardRealizedVanguard · Realized: $0.00$0.00UnrealizedVanguard · Unrealized: $786.00$786.00CombinedVanguard · Combined: $786.00$786.00

Gain / loss on cost basis

Percent gain/loss versus corresponding FIFO cost basis · same horizontal scale for all groups in this chart
Gain / loss on cost basis-40.9%-20.5%0.0%20.5%40.9%FidelityRealizedFidelity · Realized: -9.3%-9.3%UnrealizedFidelity · Unrealized: 12.6%12.6%CombinedFidelity · Combined: 11.0%11.0%SchwabRealizedSchwab · Realized: 40.9%40.9%UnrealizedSchwab · Unrealized: 10.6%10.6%CombinedSchwab · Combined: 12.7%12.7%TastytradeRealizedTastytrade · Realized: 10.0%10.0%UnrealizedTastytrade · Unrealized: -6.0%-6.0%CombinedTastytrade · Combined: -3.2%-3.2%VanguardRealizedNo sales (—)UnrealizedVanguard · Unrealized: 8.2%8.2%CombinedVanguard · Combined: 8.2%8.2%
Individual account performance comparison

Dollar gain / loss

Net gain/loss in US dollars · same horizontal scale for all groups in this chart
Dollar gain / loss-$3,300.00-$1,650.00$0.00$1,650.00$3,300.00Fidelity · Individual BrokerageRealizedFidelity · Individual Brokerage · Realized: -$100.00-$100.00UnrealizedFidelity · Individual Brokerage · Unrealized: $900.00$900.00CombinedFidelity · Individual Brokerage · Combined: $800.00$800.00Fidelity · Roth IRARealizedFidelity · Roth IRA · Realized: $0.00$0.00UnrealizedFidelity · Roth IRA · Unrealized: $850.00$850.00CombinedFidelity · Roth IRA · Combined: $850.00$850.00Schwab · Roth IRARealizedSchwab · Roth IRA · Realized: $0.00$0.00UnrealizedSchwab · Roth IRA · Unrealized: $616.00$616.00CombinedSchwab · Roth IRA · Combined: $616.00$616.00Schwab · Taxable BrokerageRealizedSchwab · Taxable Brokerage · Realized: $900.00$900.00UnrealizedSchwab · Taxable Brokerage · Unrealized: $2,400.00$2,400.00CombinedSchwab · Taxable Brokerage · Combined: $3,300.00$3,300.00Tastytrade · Trading AccountRealizedTastytrade · Trading Account · Realized: $225.00$225.00UnrealizedTastytrade · Trading Account · Unrealized: -$635.00-$635.00CombinedTastytrade · Trading Account · Combined: -$410.00-$410.00Vanguard · Traditional IRARealizedVanguard · Traditional IRA · Realized: $0.00$0.00UnrealizedVanguard · Traditional IRA · Unrealized: $786.00$786.00CombinedVanguard · Traditional IRA · Combined: $786.00$786.00

Gain / loss on cost basis

Percent gain/loss versus corresponding FIFO cost basis · same horizontal scale for all groups in this chart
Gain / loss on cost basis-40.9%-20.5%0.0%20.5%40.9%Fidelity · Individual BrokerageRealizedFidelity · Individual Brokerage · Realized: -9.3%-9.3%UnrealizedFidelity · Individual Brokerage · Unrealized: 12.5%12.5%CombinedFidelity · Individual Brokerage · Combined: 9.6%9.6%Fidelity · Roth IRARealizedNo sales (—)UnrealizedFidelity · Roth IRA · Unrealized: 12.8%12.8%CombinedFidelity · Roth IRA · Combined: 12.8%12.8%Schwab · Roth IRARealizedNo sales (—)UnrealizedSchwab · Roth IRA · Unrealized: 8.9%8.9%CombinedSchwab · Roth IRA · Combined: 8.9%8.9%Schwab · Taxable BrokerageRealizedSchwab · Taxable Brokerage · Realized: 40.9%40.9%UnrealizedSchwab · Taxable Brokerage · Unrealized: 11.1%11.1%CombinedSchwab · Taxable Brokerage · Combined: 13.9%13.9%Tastytrade · Trading AccountRealizedTastytrade · Trading Account · Realized: 10.0%10.0%UnrealizedTastytrade · Trading Account · Unrealized: -6.0%-6.0%CombinedTastytrade · Trading Account · Combined: -3.2%-3.2%Vanguard · Traditional IRARealizedNo sales (—)UnrealizedVanguard · Traditional IRA · Unrealized: 8.2%8.2%CombinedVanguard · Traditional IRA · Combined: 8.2%8.2%
Detailed dollar and percent totals
Portfolio / brokerage / accountRealized $Realized %Unrealized $Unrealized %Combined $Combined %
GRAND TOTAL · all brokerages$1,025.0018.6%$4,917.007.9%$5,942.008.7%
Fidelity · all accounts-$100.00-9.3%$1,750.0012.6%$1,650.0011.0%
Schwab · all accounts$900.0040.9%$3,016.0010.6%$3,916.0012.7%
Tastytrade · all accounts$225.0010.0%-$635.00-6.0%-$410.00-3.2%
Vanguard · all accounts$0.00—$786.008.2%$786.008.2%

Calculation: Realized = FIFO sale proceeds minus cost of shares sold; unrealized = current marked value minus remaining lot cost. Combined = realized + unrealized. Each percentage divides the respective gain/loss by the associated FIFO cost basis; the combined percentage uses the sum of sold-lot and remaining-lot costs. These are cost-basis gain percentages, not time-weighted or money-weighted account returns. Sold-lot cost basis can count reinvested capital more than once. Missing purchase/sale prices or current quotes cause affected totals to display Incomplete rather than an invented percentage. Excludes commissions, dividends, taxes, interest, external cash flows and corporate actions.

Combined exposure & investment outcomes

Total portfolio — value, P/L & annualized performance

One consistent view of all brokerage accounts and sectors. Dollar values are current securities holdings; P/L includes past sales. Change the grouping and chart measure below.

SAMPLE DATA
Current securities value—
Show totals by

Brokerages · current securities value

Dollar value and share of the overall portfolio
BrokerageCurrent valuePortfolio weightRealized P/LUnrealized P/LCombined P/LCombined P/L %Annualized XIRR
Preparing overview…

Current-value weights use marked holdings only (cash excluded). Combined P/L includes both sold and still-open shares. Annualized XIRR measures dated securities flows, not a brokerage's full cash-inclusive return.

Historical snapshots • updated when prices are refreshed

Portfolio performance over time

Compare invested capital, open and realized P/L, and annualized returns using aligned charts; trade markers show dated Buy (B) and Sell (S) transactions, including the first purchase. Select a marker to inspect the actual trade; markers are transactions, not assumed historical market prices. Compare your portfolio, brokerages, accounts, or sectors.

0 saved snapshots

Capital deployed & performance over time

Compare remaining FIFO investment capital, current holdings value, open P/L, realized P/L, and annualized XIRR. Uses the View by, Time range, and Comparison selectors above. Dollar figures and annualized percentages use separate charts.

Preparing capital and performance charts…

Invested capital is the remaining FIFO purchase cost of held shares, not cumulative deposits or a cash balance. Historical capital can be reconstructed from dated trades, but historical market values and returns only appear at saved valuation snapshots. Realized P/L is cumulative across recorded sales. Annualized XIRR is a securities-only estimate; percentages are never plotted against a dollar axis.

Historical graph preparing…

A new dated snapshot is saved after each successful online price refresh.

One snapshot is kept per Eastern calendar day; repeating a refresh updates that day's point. Buy (B) and Sell (S) markers are dated ledger events; hover for Bought/Sold or tap to inspect details. The dashed invested-cost line is derived from recorded purchases and FIFO sales starting with the oldest acquisition date; it is not historical market value. Observed price/P&L lines begin only with saved snapshots, never fabricated back to acquisition. Cash balances, dividends, and fees are excluded. Example snapshots are simulated, clearly marked, and not real historical prices.

Holding-period and cash-flow adjusted

Annualized investment outcomes

Annualized money-weighted return (XIRR) from actual dated buys, sales, and marked holdings. Includes all accounts and brokerages; recomputes after trades or price updates.

SAMPLE DATA
Unlike the cost-basis gain percentage above, XIRR accounts for when shares were purchased and sold. It treats each purchase as money invested, each sale as proceeds withdrawn from the modeled security sleeve, and still-held shares as a final value at the last price date. This excludes idle cash, dividends, fees, taxes, deposits, and withdrawals, so it is not your brokerage account's official total return.
Annualized return · all holdings
—
Calculating…

Brokerages — annualized return

Money-weighted, % per year

Accounts — annualized return

Money-weighted, % per year

Annualized outcomes by brokerage and account

ScopeAnnualized XIRRCombined P/LFirst buy → valuation / last saleStatus
Calculating…

Annualized outcomes by ticker — combined across accounts

TickerAnnualized XIRRCombined P/LFirst buy → valuation / last saleStatus
Calculating…

Method: XIRR solves the annual rate that equates dated buy outflows, sale inflows, and remaining market value. Returns below 90 days are highly sensitive to short-term moves. Values may be unavailable when any required execution or current price is missing. Quotes must share a common as-of date for combined results.

Brokerages & accounts

Set up one record for each account, even if you hold the same symbol in several accounts. Use descriptive account names — do not enter full account numbers.

0 accounts
Consolidated portfolio

Account-level results, transactions and acquisition lots stay separate; consolidated risk checks combine the same ticker across accounts. Cash balances and sale proceeds are not tracked.

Live risk and allocation analytics

Allocation & optimization center

Three linked levels — position within account, within brokerage, and across the full portfolio. Every completed transaction and quote change recalculates all three.

Calculated from ledger

Brokerage and account allocation

See what percentage of total assets is held at each brokerage, then the share in every account within that brokerage. Weights reflect the current marked value of securities only; cash is excluded.

Brokerage / accountCurrent value% of brokerage% of overall portfolioLargest holding in scopeView
Add an account and enter holdings to begin.

Individual position allocation — all three levels

One line per security held in each account. Brokerage and overall weights aggregate the same ticker across sibling accounts; these two numbers are intentionally repeated where the ticker appears in more than one account.

Brokerage / accountTickerSharesMarket valueWeight in accountWeight in brokerageWeight overall
Record a buy to see security weights.

Targets, drift & rebalance illustrations

Targets are optional and separately saved for the overall portfolio, each brokerage, and each account. Blank means no target; zero means a deliberately specified 0% target.

TickerShares in scopeCurrent valueCurrent weightTarget weight (%)Difference (pp)Assessment & illustrative change
Set prices and targets to compare allocation.
Targets are personal planning assumptions, not investment recommendations.

Dynamic management insights

These explanations update after purchases, sales, price edits and target changes.

Allocation is based on manually marked market value, not historic purchase cost. An account's weight within a brokerage and a security's weight within an account are different measures. Scope-specific thresholds are informational; a locally concentrated small account does not necessarily imply excessive portfolio-wide concentration. Market and sector correlations, ETF look-through, taxes, and transaction funding are not modeled.

Internet price updates — on demand

Market Data NO API KEY

Download the latest available published U.S. closing price per held ticker. Holdings, trades and FIFO cost basis stay unchanged; allocation, P/L and risk views recalculate immediately.

Manual · keyless
How to update1. Click Update prices in the toolbar or Refresh closing prices here.
2. Review ticker status and trading dates.
3. Check the automatically refreshed P/L, annualized performance, allocations and risk analysis.

Source: Data by TGMCharts. U.S. stocks and ETFs with covered symbols. No registration, API key or scheduler. Price coverage, availability and update times vary.

This button downloads last published regular-session closing prices, not intraday or after-hours quotes. Dates older than the expected market session are flagged. Failed or unsupported symbols keep the last saved price.

Privacy: Only held ticker symbols are requested from TGMCharts; purchase dates, account names, shares, trade prices, and your entire transaction history remain on this device. No iCloud sync is enabled by this standalone HTML version.

Ready for manual updatesClick Update prices when online. Your saved and manually entered prices remain until a valid closing price replaces them.

All prices are in USD. The service is external and may return older data, missing symbols or rate-limit errors. Review your provider status before making investment decisions. Source terms & limits.

Portfolio overview

Portfolio value, invested value, open P/L & realized P/L

Current totals across all recorded brokerage accounts.

Portfolio value
—(—)
Waiting for holdings
Invested value
—
Current security prices
Open P&L
—(—)
Remaining FIFO cost basis
Realized P&L
—(—)
Closed lots, before fees and tax

Add a transaction

Use Buy to establish an acquisition lot; Sell reduces the oldest lots first (FIFO).

Local save

 Create or edit an account under Portfolio before recording trades.

Buy price and market price are optional; add them later for P&L and allocation checks.
Step 1: Create a brokerage account, select it above and enter ticker, shares and date.
Step 2: Enter current prices in Holdings for useful risk analysis.
Step 3: Set your concentration limits under Allocation & Risk → Risk policy sliders.

Current holdings 0 tickers

Each row belongs to one account. Same-symbol exposure is combined in the risk review. Click Sell to prefill a sale in the correct account.

0 priced0 shares
Security / classBrokerage / accountSharesOldest buyFIFO avg costLast price
(editable)
Market valueOpen P&LWeightSector / action

Weight is relative to the selected view (individual account, brokerage or overall). The Allocation Center above shows all three simultaneously. Weight uses the current marked value of securities only, excluding cash and sale proceeds. With missing prices, weights are withheld rather than estimated.

Remaining acquisition lots

Lot history after FIFO sales; useful for holding-period review.

0 lots
TickerBrokerage / accountAcquiredShares remainingPrice paidLot cost

Transaction ledger

Every buy and sell. Edit trade execution prices directly; sales use FIFO.

DateBrokerage / accountAction / tickerSharesUnit priceGain on sale
Import format & important limitations

Holdings CSV: Import columns brokerage,account,account_type,symbol,shares,acquired,cost,current_price,sector,type,action (only symbol, shares and acquired are required if you select a default account before importing). Optional action is BUY or SELL. Imported rows are added to the existing ledger; accounts named in the CSV will be matched or created. Use Backup Portfolio Database for full-fidelity save and restore, including brokerages, account assignments, sales, FIFO lots, prices, classifications and risk settings. CSV values with commas may be quoted. Position targets and their scopes are preserved in JSON backups, not CSV snapshots. An exported holdings CSV is a position snapshot, not a full historical lot reconstruction; use JSON backups to preserve all purchase dates and gains.

Educational accounting model, not an official brokerage or tax report. No quotes, options positions, commissions, corporate actions, splits, dividends, FX conversion, withholding, wash sales, specific-lot sales or unrealized total-return history are automatically processed. FIFO lots are an estimate only. A favorable status means the selected concentration limits are satisfied, not that securities are good investments.

Portfolio Desk · Help & Risk Management Guide
Portfolio Desk · Installation & First Launch