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 backfilled or rounded to zero, and the one estimate the site makes, the live tail between broker captures, is drawn dashed and labelled.
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.
Where the equity figures come from
Each account is valued from one of two sources. Reported: the broker's own equity figure, net of margin, at daily closes and at intraday instants. The broker's chart moves every deposit and withdrawal to the start of its history (its value for a past date is the account value plus the money moved in afterwards), so the site removes that shift with the account's complete transfer history and keeps the real account value; money moved to or from the broker's crypto account is internal. Computed: cash (including any margin debt as negative cash) plus every position valued at its closing mark times its contract multiplier. An account with any reported figure uses the reported source; the two are compared privately for reconciliation. Financing interest, fees, dividends and interest income change equity and therefore change the return. Percent returns on equity reflect leverage in their volatility; the site does not claim to be unleveraged.
Two figures per range
The headline is what the broker's chart shows, so the site matches the app: the change along its curve, NAV_end / (NAV_start + flows after the start) − 1, with the chart line on the same curve. Where that curve starts at or below zero (more was withdrawn later than the account held at the start, as for ranges reaching back before mid-2024) the broker's figure means nothing, and the headline is the time-weighted return instead, labelled as such. Beside the headline, when it differs, the flow-adjusted figure is the time-weighted return: for consecutive points 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 treated as invested at the start of the sub-period, chained over the range; over sub-periods longer than four days (the broker's monthly history) each flow is weighted by the share of the sub-period it was invested (Modified Dietz). 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
3M, YTD, 1Y, 5Y and Max use daily closes: the end is the latest close, the start is the last close on or before the end minus that span (YTD: 31 December of the prior year; Max: inception). When the history is shorter than the span, 3M, YTD, 1Y and 5Y start at inception, as the broker's own chart does, and say "since inception". When the broker feed covers every funded account, Live, 1D, 1W and 1M use its intraday points as well: 1D starts at the last point at or before local midnight (US Eastern) of the latest day, 1W and 1M at the last point at or before the same wall-clock instant 7 days or one month earlier, and Live covers the last 60 minutes and is unavailable when the latest point is older than that. When the broker feed has a gap of more than 20 minutes the tail of the series is estimated from quotes: shares move by their quotes, options by a Black-Scholes bridge repriced at the live underlying with the implied volatility of their last broker mark. Estimated points are drawn dashed and labelled; the feed's next points replace them. A trade after the last broker close, or a missing quote, makes the estimate unavailable. Without the feed those ranges follow the daily rules, and Live is built from intraday marks and is unavailable on any day with a contribution, withdrawal, trade or option event. Times on the chart are US Eastern.
Freshness
Every screen states the valuation date, the latest mark timestamp and the quote basis. "Broker feed" with an age means the latest reported point is that old: the account value is read from the broker every five minutes in the regular session and less often outside it, and the quote-based estimate only bridges gaps in that feed. Without the feed, "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 a close on the range start and on every portfolio valuation date in the range; a valuation date on a weekend or holiday uses the benchmark's last close within the previous four days. 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, strike, call/put and expiry; the strike is the only dollar figure on this site. The "All" and "Options" views fold them per underlying and per series and expand on click: shares first, then options from the earliest expiry to the latest.
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.
Statistics
The Stats tab shows long-run figures since inception, built on monthly time-weighted returns (the broker's history is monthly before September 2025). Annualized return: the compound annual growth rate over 1, 3, 5 and 10 years and since inception, where the history is long enough. Volatility: the standard deviation of monthly returns times √12. Sharpe ratio: mean monthly return in excess of the 3-month Treasury bill rate over its standard deviation, times √12; Sortino uses the downside deviation instead. Maximum drawdown: the largest fall from a peak, with its recovery. Against the S&P 500: beta and correlation of monthly returns, Jensen's alpha annualized, and up and down capture (the average portfolio return in the benchmark's up or down months over the benchmark's). Calmar: annualized return since inception over the maximum drawdown. Ratios need at least twelve complete months; benchmarks are price returns between the same dates.
Reconciliation
Provider-reported account values (statement snapshots and the broker feed's closes) and returns are stored privately and compared with the mark-based 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.