HELP

Portfolio

How the portfolio comparator builds a current-versus-proposed scenario, costs the switch, checks it against the client's risk profile, and what a saved scenario and a recorded holding become downstream.

Updated 3 September 2026

What this screen is for

The Portfolio page compares what a client holds now with what you propose they hold, as one scenario: a ledger of holdings with a current and a proposed weight each, the actions those weights imply, the cost of making the switch, and a compliance card that checks the proposed mix against the client’s recorded risk profile. From a saved scenario you can generate a Record of Advice.

Holdings never come from the fact find. They arrive four ways: typed in, imported from a file or a paste, applied from a firm model portfolio, or loaded from a saved scenario. Opening the page from a client’s record fills in the scenario name and the portfolio value and nothing else.

Give the scenario a name and a total portfolio value; the rest of the configuration opens once both are set. Attaching a client in the selector does two jobs: it is the client the scenario saves against, and it is whose risk profile the compliance card reads.

The ledger

Each row is a holding with a name, a code, an asset class, a current weight, a proposed weight, an action, an indirect cost ratio (ICR), a yield, a liquidity bucket and an unrealised gain or loss. Three dollar columns (Open, Trade, End) are the two weights multiplied by the portfolio value and cannot be typed into.

The action follows the weights. A row going from nothing to something is New; from something to nothing is Sell; lower is Trim; higher is Top-up; unchanged is Retain. Choosing an action by hand adjusts the weights to match: New clears the current weight, Sell clears the proposed weight, Retain copies current to proposed. If the two disagree afterwards the action selector shows a warning. Editing the current weight of a Retain row moves the proposed weight with it.

Cash is a row you do not add. It sits at the foot of the ledger whatever the sort. Its current weight is whatever the other rows leave of 100% until you type a figure, after which your figure stands. Its proposed weight is always 100% less every other row’s proposed weight, and it goes negative when the proposals spend more than the portfolio holds; the row turns red and the balance bar reads “Over by” the shortfall. Cash carries a yield but no ICR and no gain or loss.

Code type is detected from the code: three letters, four digits, two letters is an APIR code (a managed fund); anything else is treated as a listed code. The two are costed differently, below.

Liquidity starts from the row’s own facts and stops tracking them once you choose a bucket. Unlisted private credit and private equity start at two months or more; cash at a day; alternatives at a day if they carry a listed code and a month otherwise; any other holding with a listed code at a day; everything else at a week.

Multi-asset and Other rows get a Growth % box. Leave it blank and the holding is unclassified, which makes the compliance comparison report a range rather than a point. A typed zero is an answer.

The footer shows each column’s total (each must reach 100% before the status line calls the scenario ready), the weighted ICR and yield for the current view (every row except New) and the proposed view (every row except Sell), and the realised gain or loss summed over Sell and Trim rows.

Switch costs

Brokerage is estimated per side from the rows with a listed code. The traded value is the change in weight times the portfolio value, and each side costs the greater of that value times the rate and the minimum. Both sides default to 0.15% with an $18.50 minimum, editable under the platform names. Managed funds (APIR rows) get a buy/sell spread instead: the traded value on both sides times 0.15%. A figure you type into any of the three cost boxes overrides the estimate; the “auto” badge shows which are still estimated.

Capital gains tax is never worked out in the browser. The gain or loss figures on the Sell and Trim rows are netted into one gain, treated as held for at least twelve months, and sent to the server with the owner type and the marginal rate you choose; the server assesses it under the rules for the current financial year from the regulatory pack (the dated set of official rates, caps and thresholds Aether keeps for each financial year). The marginal rate list is that pack’s tax scale; the discount is decided by the owner type (none for a company, the super rate for a fund); and the note beneath explains which side of the 2026 reform the disposal falls on. With no rate chosen there is no estimate. If the assessment cannot be reached the box says “estimate unavailable” rather than showing a number.

Run Comparison

The modelled section draws only when you click Run Comparison; edits afterwards update the ledger and the compliance card but leave the drawn comparison as it was until the next click.

What it shows:

  • Key changes: holding count, weighted ICR, weighted yield, and annual fees (portfolio value times the weighted ICR) for current and proposed.
  • Cost recovered by fee saving: the switch cost (brokerage plus tax plus spread) divided by the annual fee saving, in months or years. With no fee saving it reads “Not recovered”.
  • Allocation donuts and tables for each side, grouped as growth, defensive, multi-asset and other, with an illiquid assets line where any holding sits in the two-months-plus bucket. An overdrawn cash row is left out of the mix, because a negative weight is a funding shortfall rather than an allocation.
  • Liquidity ladder per side, with a marker at the attached client’s illiquidity tolerance. The questionnaire measured tolerance for five-to-ten-year lockups; the marker is applied to the two-months-plus bucket, and the ladder says so.

The 10-year projection beneath starts the proposed side lower by the switch cost. Each year, fees and income are taken on the opening balance, capital growth is applied (6.5% a year on both sides unless you change either), and net contributions are added. Net benefit for the year is the growth difference plus the income change plus the fee saving; contributions sit in the balances but not in the benefit, so “Net benefit turns positive” is the year the cumulative benefit repays the switch cost.

The compliance card

With a client attached who has a saved risk profile, the card compares both sides of the ledger with the profile’s growth and defensive targets. Without a profile it links to the Risk Profiler.

The comparison is made on the server from the same holdings. Where part of the portfolio is unclassified, the proposed growth weight is reported as a range, and the drift is the distance from the target to the nearer end of that range: zero when the target falls inside it, because nothing can then be proved either way.

Drift from targetBadge
More than 15 pointserror
More than 5 pointswarning
More than 0.5 pointsinfo
Otherwisesuccess

Illiquidity is a ceiling, not a target: only a breach of the client’s tolerance is graded, headroom beneath it is not. With no tolerance recorded the row shows the figures and no verdict.

The insights beneath name a growth weight at least a stated number of points above or below target, an unclassified residual you can close by recording growth splits, an illiquidity breach or a rise past half the tolerance, and a growth shift of more than 15 points between the two sides. Each can be dismissed, and the dismissal is remembered for that scenario on that browser.

Model portfolios

A model is a firm-wide set of target weights by code. Save as model captures every non-cash row with a proposed weight above zero; each needs a name and a code, and the codes must be unique. Apply model matches the model to the ledger by code, sets each matched row’s proposed weight to the model’s, adds any model holding the ledger lacks as a New row, and leaves current weights as they are; it refuses while two ledger rows share a code. Once applied, each row shows its current weight’s drift from the model and the toolbar shows the largest.

Manage renames, describes or deletes a model. A rename is refused if someone else changed the model since you opened it, and the latest details are reloaded for you. Deleting a model keeps every scenario’s holdings; only the link to the model goes.

Saving and loading

Save As writes the scenario to the database, as a client scenario (a client must be attached) or a global one with no client, and keeps a copy in this browser. Every database save creates a new saved scenario; there is no update in place, so saving a loaded scenario again after edits leaves the earlier version in the list. Save updates the browser copy of a scenario that has one, and otherwise opens Save As. Browser copies belong to the signed-in user on that machine.

What a database save carries: the holdings with both weights, the action, ICR, yield, gain or loss, liquidity and growth split; the portfolio value; the platform names, brokerage rates and minimums, spread rate, the three cost figures, the marginal rate and owner type; the projection assumptions; and which model was applied. The CGT discount is saved as a record of what the pack said, and on reload the current pack decides again.

Load lists the attached client’s database scenarios plus the global ones, then the browser copies. A client scenario can be published to or hidden from the client portal from that list, and either kind deleted. When you return to the page with the same client or household active, the last scenario you saved or loaded in that context is restored.

Importing holdings

Paste a table or drop a CSV, TSV or text file and the page reads it in the browser. It needs a column it can read as the allocation; name, code, ICR, yield, asset class, gain or loss, action and liquidity are picked up where the headings match, and asset class text is mapped onto Aether’s classes by keyword. Replace loads the rows as Retain with proposed equal to current; Append adds them as New. Rows are not saved anywhere until you confirm and then save the scenario.

Spreadsheets, PDFs and images go to the server, which parses them directly where it can and otherwise uses an AI-assisted reader. Rows come back with a confidence figure or an “unverified” mark for anything the reader could not check against the file’s own text; rows at 80% or better are pre-ticked, and every cell can be corrected before you confirm. Encrypted PDFs and PDFs over 20 pages are refused. Per adviser, per hour: 60 upload attempts, 20 parsed imports and 10 AI reads.

Snapshots

A snapshot (a dated record of what the client actually holds) is different from a scenario, which is a proposal. Take snapshot records the ledger’s current column as dollar positions, leaving out New rows, and needs a client, a portfolio value and at least one holding. It is dated today and marked as taken from this scenario when the scenario was loaded from the database, or as entered by hand otherwise. The client’s risk profile as it stands is copied onto it, so a later re-profile does not restate an old comparison. A snapshot cannot be edited: delete it and take another.

The card shows the latest snapshot’s growth weight (a range where holdings are unclassified) against the profile target, and its illiquid share against the tolerance ceiling.

Snapshots are what the advice engine reads. The Portfolio Rebalancing strategy needs a snapshot whose certain drift from the growth target exceeds 5 points, and the Concentrated Position strategy needs a single non-cash holding at 20% or more of the snapshot. Neither can fire for a client who has no snapshot.

Record of Advice and the advice document

Generate ROA is enabled once the scenario in the editor has been saved to a client who belongs to a household, and it builds the document from that saved scenario, not from the screen. Unsaved edits are not in the document. A compliance refusal is shown in the server’s own words.

The investment allocation section of an advice document takes a saved scenario first and a snapshot only when the client has no scenario with holdings. Generated from this page, it is the named scenario; generated from the Documents page, it is the client’s newest saved scenario with holdings.

The client portal

Clients see only client scenarios you have published from the Load list, with their holdings.