Methodology
This page describes exactly how the numbers on the portfolio page are computed. The site publishes percentages only. Whenever a rule cannot be satisfied, the affected figure is shown as unavailable with a reason; nothing is estimated, backfilled or rounded to zero.
Scope
- A taxable brokerage account and a retirement account, combined. Shares, funds and listed options only.
- Crypto is excluded everywhere. Provider headline figures that include crypto are not comparable and never shown.
- Nothing here is investment advice.
Equity, not exposure
Returns are returns on combined net asset value: cash (including any margin debt as negative cash) plus every position valued at its closing mark times its contract multiplier, summed across both accounts. Financing interest, fees, dividends and interest income change cash and therefore change the return. Percent returns on equity reflect leverage in their volatility; the site does not claim to be unleveraged.
Daily time-weighted return
Valuation dates are the dates that carry closing marks. For consecutive valuation dates p and d, with external flows F dated after p and up to d, the sub-period return is (NAV_d − NAV_p − F) / (NAV_p + F). Flows are treated as invested at the start of the sub-period, always. A period return is the chained product of its sub-period returns minus one. External flows are contributions, withdrawals and employer contributions. Transfers between the two accounts cancel. Dividends, interest, fees and margin interest are performance, not flows.
When a figure is unavailable
- NAV_p + F not positive: the day has no defined return (nonpositive equity).
- A held position without a closing mark on a valuation date: that date cannot be valued (missing marks). Stale marks are never substituted for returns.
- A range is available only if its start date exists and every day inside it is available. One unavailable day makes the whole range unavailable, naming the first blocking date. Days are never skipped.
- History begins on the first valuation date with anything in the ledger and positive equity, the inception date. If that first day cannot be valued, it blocks every range rather than being skipped. Current holdings are never projected backwards.
Ranges
The end of every range is the latest available valuation date. 1D starts at the previous valuation date. 1W, 1M, 3M, 1Y and 5Y start at the last valuation date on or before the end minus that span. YTD starts at the last valuation date on or before 31 December of the prior year. Max starts at inception. Live covers intraday marks from the last 60 minutes and is NAV_last / NAV_first − 1 over that window; it is not adjusted for intraday activity and is unavailable on any day with a contribution, withdrawal, trade or option event.
Freshness
Every screen states the valuation date, the latest mark timestamp and the quote basis. "Live" is only used when every held position has a realtime mark less than 15 minutes old; otherwise the label is "Delayed" with the age, or the live range is unavailable.
Benchmarks
Benchmarks are ingested mark series with an explicit proxy and series kind (price or total return), stated on the chart. A benchmark is shown for a range only if it has marks on the range start and on every portfolio valuation date in the range. The portfolio line is a total return net of fees and interest, so a price-return benchmark is not like for like.
Holdings
Weights are gross absolute invested exposure: the absolute value of net quantity × mark × multiplier per instrument, aggregated across accounts, summing to 100%. Cash and margin debt are excluded by construction. If a holding lacks a mark on the allocation date, the most recent close within 7 days is used and flagged stale; beyond that the whole allocation is unavailable. Holdings are never dropped or renormalized around a missing valuation. Options are labelled by underlying, call/put and expiry with a random id; strikes stay private.
Lots, shorts and options
- Lots are FIFO per account per instrument. Realized return on a long close is (proceeds − basis) / basis; on a short close (credit − cost) / credit. Fees are included.
- A trade that would cross zero is rejected, never split silently.
- Expiry: long −100%, short +100% of premium. Exercise and assignment move the premium into the share basis or proceeds; the option leg shows no realized %.
- Splits scale lot quantities. Other corporate actions are rejected until modelled.
- A lot without a known opening basis makes realized and unrealized % unavailable for that instrument.
Reconciliation
Provider-reported account values and returns are stored privately and compared with the computed series (value within the larger of 0.1% or one currency unit; returns within 0.25 percentage points). Only the status and date are published. No average of account returns is used anywhere.