Skip to content

    Calculation methodology · 1 October 2026

    A deterministic route, with the limits visible.

    TrustPortfolio has two calculation flows: a free browser-local allocation builder using supplied holdings, and a private founder Router using connected-account evidence. Both keep unknown exposure visible. Neither predicts returns or executes a trade.

    Free builder

    Company targets and sector balance

    Select ETFs from your supplied holdings CSV and set company targets as percentages of the whole proposed portfolio. The builder calculates non-negative ETF allocation weights totalling 100%, subject to ETF maximums and an optional sector limit.

    company exposure (%) = Σ ETF allocation fraction × supplied company weight (%)

    objective = Σ company target error² + sector penalty × Σ sector drift²

    Errors and drift are measured in percentage points. Sector drift compares the result with an equal-weight mix of your selected ETFs, including unknown sector exposure. This comparison is not a diversification recommendation and may itself violate your limits.

    Calculation, data and proof limits

    The deterministic convex calculation reports its numerical optimality tolerance and remaining objective gap. A certified result is optimal for the stated objective within that tolerance; it can still miss the requested company percentages. A result without an optimality certificate is labelled accordingly. Infeasible limits produce no allocation.

    Unknown company weights stay unresolved. Unclassified weight counts conservatively against every sector limit, including a sector absent from the known rows. Missing classifications can therefore make a limit impossible to prove. The result shows requested and calculated targets, all supplied company and sector exposures, unknown weights, dates and source labels.

    CSV identifiers, dates and source labels are user-supplied and unverified. The builder has no included catalogue of current ETF holdings. Its example and template use fictional companies and funds. Calculations run in the current browser tab without uploading inputs or accessing private founder records.

    These are continuous percentages. Prices, whole ETF units, transaction costs, taxes, liquidity, broker availability and future returns are not modelled. A mathematical optimum describes the input objective, not investment quality or suitability.

    Open the free ETF builder

    Private founder Router

    The sections below describe the separate authenticated Router. It uses one selected brokerage account, reviewed holdings evidence and quoted ETF units to calculate a private route toward one company-exposure target.

    Evidence first

    Prices, FX rates, exact share classes and dated ETF snapshots remain traceable.

    Reachability first

    The engine measures the permitted range before calculating a route.

    Unknown remains

    Unresolved holdings stay in the full denominator and are never redistributed.

    01

    Company-by-ETF exposure matrix

    For company i and ETF j, A[i,j] is the verified company weight in the exact, dated ETF snapshot. Cash, derivatives, other funds, unresolved securities and unknown residual each remain separate rows.

    Synthetic rowETF 1ETF 2ETF 3
    Company A8.0%1.0%0.0%
    Company B2.0%6.0%3.0%
    Unknown0.4%1.2%0.7%

    company value[i] = direct company value[i] + Σ ETF value[j] × A[i,j]

    company weight[i] = company value[i] ÷ total portfolio value

    The total portfolio denominator includes mapped companies, cash, unsupported ETFs, unresolved securities, special products and unknown exposure.

    02

    Reachability before route calculation

    The engine first calculates the minimum and maximum target-company exposure permitted by the selected funding mode and constraints. These include cash, locked ETFs, buy and sell permissions, owned units, maximum turnover, maximum trades, minimum trade value, cash remainder and ETF weight caps.

    A target outside that range is labelled unreachable. The result reports the closest feasible exposure and the first binding constraint; it does not disguise the miss as a successful target.

    03

    Continuous calculation

    Let v[j] be the current ETF value, q[j] the verified unit price, u[j] the proposed signed units, d[i] direct company exposure, P current portfolio value and C new cash.

    x[j] = u[j] × q[j]

    post-route ETF value[j] = v[j] + x[j]

    post-route portfolio value = P + C − estimated transaction costs

    post-route company weight[i] = (d[i] + Σ A[i,j] × post-route ETF value[j]) ÷ post-route portfolio value

    No ETF position may fall below zero. Cash-only routes buy within available cash; rotation routes keep net ETF spend near zero after costs; mixed routes combine cash with bounded sales.

    04

    Lexicographic priorities

    The engine compares candidates in a fixed order. It does not collapse the decision into an unexplained weighted score.

    1. 1Minimise absolute target-company exposure error.
    2. 2Avoid an increase in unknown exposure, then minimise drift across non-target mapped companies.
    3. 3Minimise gross ETF turnover.
    4. 4Minimise the number of meaningful ETF trades.
    5. 5Minimise estimated transaction costs, followed by a stable deterministic tie-break.

    05

    Whole units and proof limits

    The continuous result is a mathematical reference, not an executable route. The engine rounds every proposed ETF-unit change into a bounded neighbourhood, removes candidates that violate constraints, then compares the remaining candidates using the same lexicographic order.

    The interface shows continuous and whole-unit results separately. Where the bounded search cannot prove a global optimum, the wording remains: closest feasible route under your constraints.

    06

    Freshness and execution boundary

    Portfolio-price timestamps and ETF-holdings dates are displayed separately. Missing prices, unacceptable snapshot age, unresolved target identity, incomplete valuation or excessive unknown exposure can make a result approximate or withhold its trade list.

    TrustPortfolio has no trading permission, broker order endpoint or money-movement operation. A saved rotation receipt records the inputs and evidence used for a private calculation; the founder decides and acts elsewhere.

    Synthetic example only

    This public explanation contains no real portfolio values, source files or route calculations. Founder data and receipts remain inside the authenticated private boundary.