measure_portfolio
Measure a portfolio
The full measurement of one portfolio in one call. In: holdings as weights or money amounts.
Out: how many independent bets they make, each holding's share of the risk beside
its share of the money, the companies owned through the funds, what past crises did
and how long recovery took, and the numbered report. Typical questions: 'Analyze my
portfolio: 60% VTI, 30% VXUS, 10% BND.'; 'What should I know about what I hold?';
'Give me the full picture of this portfolio.'. Instead: for one narrow question use
the narrower tool: portfolio_structure (spread of risk), look_through (companies),
past_crises (crashes). For a quotable text with numbered figures, portfolio_report.
For the shortest answer, plain_findings. It does not recommend, predict or calculate
tax.
輸入參數baseunitsholdings必填
compare_portfolios
Compare portfolios side by side
Two to eight separate portfolios on one shared window of prices. In: {label: {ticker:
weight}}. Out: growth, volatility, worst fall, and how each moved against the
others. Typical questions: 'Compare 60/40 with an all-world fund.'; 'Which of these
three mixes fell less in 2022?'; 'Put my portfolio next to the S&P 500.'. Instead:
for one portfolio before and after a change, test_a_change or check_before_you_buy.
It does not recommend, predict or calculate tax.
輸入參數baseportfolios必填
test_a_change
Before and after a proposed change
Any change to one portfolio, measured before it is made: current and proposed holdings side
by side on the same prices. In: two sets of holdings. Out: structure, share of the
risk, falls in past crises, and what the change adds or removes; the figures are in
the structured result. Typical questions: 'What happens if I sell half my QQQ and
buy BND?'; 'Compare my portfolio now with this rebalanced version.'; 'I want to swap
VXUS for VWO: before and after?'. Instead: for adding ONE new holding (how much of
it is already owned, and a 'kept as cash' column) use check_before_you_buy. For one
holding at every weight, sweep_holding. For separate unrelated portfolios,
compare_portfolios. It does not recommend, predict or calculate tax.
輸入參數endbasestartcurrent必填proposed必填
search_symbols
Find a ticker by name
Finds tickers from a name, part of a ticker or an ISIN, with the exchange of each listing.
In: one search phrase. Out: up to ten listings, those not yet checked marked as
such. Typical questions: 'What's the ticker for Vanguard FTSE All-World?'; 'Find
IE00BK5BQT80.'; 'Is there a euro listing of the Nasdaq 100 ETF?'. Instead: when the
tickers are already written down, validate_symbols. A bare US-style symbol can name
a different fund than a European one with the same letters (EQQQ is a US ProShares
fund; the Invesco UCITS fund is EQQQ.DE / EQQQ.L): give the exchange suffix. It does
not recommend, predict or calculate tax.
輸入參數basequery必填
validate_symbols
Check symbols before measuring
Checks tickers before a measurement. In: up to 150 tickers. Out: which have usable price
history, their trading currency, and the closest listings for those that do not.
Typical questions: 'Check these tickers before you measure: VWCE, EQQQ, CSPX.'; 'Are
VTI and BND valid?'; 'Which of these symbols can you price?'. Instead: when only a
name is known, search_symbols. It measures nothing. It does not recommend, predict
or calculate tax.
輸入參數basetickers必填
portfolio_structure
How many independent bets, and where the risk sits
How many independent bets a portfolio's holdings make, from how their prices moved together
rather than how many tickers there are, and each holding's share of the risk beside
its share of the money, over the full record and recent years. Shares of the risk
are Euler contributions and add up to 100%. Typical questions: 'Am I really
diversified?'; 'Which of my holdings is behind most of the risk?'; 'Do my four funds
move as one?'. Instead: for the companies inside the funds, look_through. For
everything at once, measure_portfolio. It does not recommend, predict or calculate
tax.
輸入參數baseunitsholdings必填
look_through
What the funds hold underneath
The companies a portfolio owns through its funds, added up across funds. In: holdings. Out:
the largest companies with their share of the whole portfolio, companies reached
through more than one fund, the part of the money that buys a company a second time,
sectors, and how much of the money could be named. Typical questions: 'How much do
my ETFs overlap?'; 'What companies do I really own through VTI, QQQ and VXUS?'; 'How
much NVIDIA do I hold through my funds?'. Instead: for one fund on its own,
asset_info. Figures are minimums where a fund shows only its largest holdings; the
answer says how much of the money is named. It does not recommend, predict or
calculate tax.
輸入參數baseunitsholdings必填
past_crises
What past crises did to this mix
What past crises did to one portfolio held as it is today: 2008, 2020, 2022 and the others
inside its price history. In: holdings. Out: for each crisis the deepest fall, the
worst day and the days until the previous high came back; crises before a holding
existed are named as not tested. Typical questions: 'How much would 2008 have cost
me with 60% VTI, 20% VXUS, 20% BND?'; 'What did the 2020 crash do to this mix?';
'Simulate a market crash on my portfolio.'. Instead: for a loss chosen by the reader
('what would it take to lose 30%?'), reverse_stress. For the whole record,
return_history. Holdings in money give each fall in money; in percentages the falls
are percentages. It does not recommend, predict or calculate tax.
輸入參數baseunitsholdings必填
portfolio_report
The numbered report
The written report on one portfolio, every figure numbered F1, F2… beside its method and
window. In: holdings. Out: a text to quote or keep. Typical questions: 'Write me a
report on this portfolio I can keep.'; 'Give me the numbers with their sources.'; 'A
citable summary of my portfolio, please.'. Instead: for the full structured
measurement, measure_portfolio (which includes this report). For a few plain
sentences, plain_findings. It does not recommend, predict or calculate tax.
輸入參數baseunitsholdings必填
factor_exposure
Sensitivity to common return patterns
How a portfolio's daily moves line up with four common patterns: the market, small versus
large, value versus growth, momentum. Out: each sensitivity, whether it can be told
from zero, and how much of the movement the four explain. Typical questions: 'Am I a
growth investor without knowing it?'; 'What style is my portfolio really exposed
to?'; 'Is this tilted to small caps?'. Instead: for the number of independent bets,
portfolio_structure. It does not recommend, predict or calculate tax.
輸入參數baseunitsholdings必填
currency_effect
What exchange rates did to it
For a portfolio held in one currency but priced partly in others: how much is outside the
base currency, and what exchange rates added to growth, volatility and the worst
fall, against the same holdings currency-hedged. Typical questions: 'I'm in euros
but hold US funds: what did the dollar do to me?'; 'How much currency risk is in
this?'; 'Hedged or not, what was the difference?'. Limits: Only when some holdings
are priced in another currency than the holder's. base must be set to the holder's
currency. It does not recommend, predict or calculate tax.
輸入參數baseunitsholdings必填
health_axes
The portfolio along separate axes
One portfolio read along three separate questions: what its risk is built from, how it
behaved when markets broke, and what it returned for the risk taken, each with its
own figures and no overall score. Typical questions: 'Is anything off in how my
portfolio is built?'; 'How did this hold up in bad markets, and was the return worth
the swings?'; 'Check the construction of this portfolio.'. Instead: for the full
measurement, measure_portfolio. An axis without enough history comes back without a
reading. It does not recommend, predict or calculate tax.
輸入參數baseunitsholdings必填
sweep_holding
One holding across its whole range
One holding already in the portfolio, measured at every weight from none to all, the rest of
the money shared out in proportion: volatility, its share of the risk and the number
of independent bets at each point. Typical questions: 'How much BND does it take to
change anything?'; 'Show me my portfolio with 0% to 100% QQQ.'; 'At what weight does
gold start to matter here?'. Instead: for one specific change, test_a_change. For a
holding not yet owned, check_before_you_buy. It never says which weight to hold. It
does not recommend, predict or calculate tax.
輸入參數baseticker必填holdings必填
reverse_stress
What it would take to lose that much
Starts from a loss the reader names and finds the least extreme combination of market moves
that would cause it on this portfolio, beside the worst each move actually did in
the record; also each single company on its own. Typical questions: 'What would it
take to lose 30%?'; 'A third of my portfolio is my employer's stock: what would a
crash in it take from me?'; 'How bad would markets have to get for me to lose a
quarter?'. Instead: for what past crises actually did, past_crises. No probability
is computed: it says how large the moves would be, not how likely. It does not
recommend, predict or calculate tax.
輸入參數baselossholdings必填
return_history
The record, month by month
What one portfolio returned over its record: growth per year before and after inflation,
best and worst months and years, every 12-month stretch, returns by month and year,
and weight drift between rebalances. Typical questions: 'How did this portfolio do
over the years?'; 'What was its worst year?'; 'Returns after inflation, please.'.
Instead: for crises only, past_crises. For money put in every month, monthly_plan.
Past record, not a forecast. It does not recommend, predict or calculate tax.
輸入參數baseunitsholdings必填
plain_findings
The findings in plain words
Three or four plain sentences about one portfolio, how its risk is built and its worst
historical fall, each with its window. Typical questions: 'Explain my portfolio
simply.'; 'In plain words, what should I know?'; 'I'm new to investing: what does
this portfolio look like?'. Instead: for the figures in full, measure_portfolio. For
a quotable numbered report, portfolio_report. It does not recommend, predict or
calculate tax.
輸入參數baseunitsholdings必填
The latest daily close for each ticker, in its own currency and in the base currency, with
the date. Typical questions: 'What's the last price of VWCE?'; 'Turn 120 shares of
VTI into dollars.'; 'Latest close for these tickers.'. Instead: for history and
figures of one asset, asset_info. One price per ticker, no history. It does not
recommend, predict or calculate tax.
輸入參數basetickers必填
asset_info
One fund or share: what it is and holds
One fund or share on its own: name, type, exchange, yearly cost when published, measured
return, volatility and worst fall, and for a fund its largest holdings and sectors.
Typical questions: 'What is EQQQ.DE?'; 'Tell me about this ETF before I add it.';
'What's inside VXUS?'. Instead: for a whole portfolio's companies, look_through.
Non-US listings need the exchange suffix (VWCE.DE, IWDA.AS); search_symbols finds
it. It does not recommend, predict or calculate tax.
輸入參數ticker必填
monthly_plan
Money in every month, replayed
The same amount bought on the first trading day of each month, replayed on a portfolio's own
history with dividends reinvested: what it became against what was put in, the
deepest point below the money put in, and the same plan from every possible starting
January. Typical questions: 'If I put $500 a month into these, what would it have
become?'; 'Dollar-cost averaging into VTI since 2007?'; 'Monthly investing: what was
the hardest stretch?'. Instead: for withdrawals, living_off_it. For the record
itself, return_history. Before taxes and fees. It does not recommend, predict or
calculate tax.
輸入參數basestartmonthly必填holdings必填
walk_forward
Would refitting have helped? (out of sample)
Whether re-optimising an allocation would have helped: fit on the years before each date,
hold on prices not yet seen, repeat, and compare with the portfolio held and with
equal weights. Typical questions: 'Would an optimiser have beaten my portfolio?';
'Test max-Sharpe out of sample on these funds.'; 'Does rebalancing to an optimised
mix help?'. Limits: Only for that question; it is not for choosing weights and
returns no allocation to hold. It does not recommend, predict or calculate tax.
輸入參數basetickers必填holdingsobjectivestep_monthstrain_years
check_before_you_buy
Check before you buy
Before adding one new holding to a portfolio: how much of it is already owned through the
current funds, whether it adds an independent bet, what past crises would have done
with it, and a decision sheet with three columns: now, the same money kept as cash,
the money in the new holding. Typical questions: 'I'm thinking of adding $10,000 of
QQQ with new cash: what changes versus keeping it in cash?'; 'Check before I buy
SCHD.'; 'Test adding an ETF to my portfolio.'. Instead: for selling, reweighting or
several changes at once, test_a_change. The 'after' portfolio was never held; it
never says whether to buy. It does not recommend, predict or calculate tax.
輸入參數add必填baseunitsamount必填holdings必填
living_off_it
Living off it: withdrawals replayed
A yearly withdrawal, raised with real inflation, replayed from every start month the history
allows: how many starts lasted the full span, how many ran out and when, the lowest
point from the worst start, and the highest yearly rate that ran out from no start
in the record. Typical questions: 'Can I live off $1M taking $40,000 a year for 30
years?'; 'Would a 4% withdrawal have lasted on this portfolio?'; 'How long would
this money have lasted in retirement?'. Instead: for money put in every month
instead, monthly_plan. A count of past starts, never a probability. It does not
recommend, predict or calculate tax.
輸入參數baseunitsyearsamountholdings必填withdrawal必填