Methodology
Definitions used across ETFPayout (calculation engine engine-1.0.0).
Data
Daily raw (unadjusted) closing prices from consolidated (SIP) market data, published after the US close. Distributions and splits come from provider corporate-action records with ex, record and pay dates; issuer notices (such as Section 19a) are stored alongside when available.
Market dates follow America/New_York. Weekends and holidays have no bars; missing days are never filled with a previous price as if it were new data.
TTM yield
Sum of per-share distributions with ex-dates in the trailing 365 days, converted to current share units for any later splits, divided by the latest close. Special distributions are included and labelled. If the fund has less than 12 months of history the value is marked.
Latest annualized payout
The most recent regular distribution × payments per year (from the observed schedule) ÷ latest close. It is hidden when the schedule is irregular or changed in the last six months, because annualizing a weekly payout as if it were monthly (or vice versa) is misleading. Neither number is a forecast or a total return.
Cash flow replay — order of each day
1. Splits effective at the open change share counts (not dollar amounts already owed).
2. Ex-date: shares held before the day's trades lock in the distribution as a receivable. Buying on the ex-date does not earn it; selling on or after the ex-date does not lose it.
3. Pay date: receivable becomes cash. It is not counted as income a second time.
4. Contributions arrive at the close.
5. Withdrawals are paid next. If cash is short, holdings are sold pro-rata at the close. The account never borrows and never goes below zero; unpaid amounts are reported as a shortfall.
6. Reinvestment and new purchases use only the cash left after withdrawals.
7. The account is valued at the close: holdings at raw close + cash + distributions owed.
Simulated trades use the raw daily close with no taxes, fees or slippage unless you add a fee. Real ledger records always replace simulated prices.
Returns
Total return is time-weighted with flows at the close: r = (V_t − F_t) ÷ V_(t−1) − 1, chained daily. Deposits are not counted as gains and withdrawals are not counted as losses. Periods starting from a zero balance are skipped.
Annualized return is shown only for periods of at least one year. Max drawdown is measured on the time-weighted index.
XIRR (money-weighted) uses the starting value, every external deposit and withdrawal, and the ending value, with a day/365 convention. Dividends paid into the account and reinvestments are internal, not external flows. It is not shown when the history before the start is unknown (for example, a holdings snapshot).
The “1Y total return” on fund pages is a standard reference that reinvests each distribution at the ex-date close. Cash-flow replays credit cash on the pay date, so results can differ slightly. We use raw prices plus distribution events; we never add distributions on top of an already-adjusted price series.
Return of capital and taxes
Section 19a notices estimate the sources of a distribution. Return of capital (ROC) is a tax classification, not by itself an economic loss, and we never subtract it again from returns. Estimates and final (Form 1099) classifications are stored separately. ETFPayout does not calculate your taxes.
Projections
What-if projections use only your inputs: price change per year (excluding distributions), distribution yield on the then-current price, payment frequency, reinvestment and flows. They run on a weekday calendar, are labelled hypothetical, and are never joined to historical results as one line. They are not probabilities or forecasts.
AI assistant
The assistant uses the same engine through a fixed set of tools. Figures it reports must come from a tool result, and each calculation is saved as a run you can open. It cannot write to your ledger, publish anything or change billing; it can only propose changes that you confirm.