Documentation

Search & Explore

One search pill finds anything a portfolio can hold that the market-data feed covers — shares, ETFs, mutual funds, cryptocurrencies, indices, futures and currency pairs — from every tab. The Explore tab adds side-by-side comparison tables — the market's largest and most active names, and your own watchlist.

Paging while an index loads: Next waits for the next batch and shows progress. A partially loaded first page is followed by the next unseen row; Back remembers the actual boundary. Changing sort or page size returns to page one. If new rows belong earlier under the active sort, the table restarts at page one with an explanation so the changed ordering is visible.

The asset finder

The compact pill at the topbar's right edge (past the account button and the quick-notes pad) works on every tab. It grows when focused, and pins itself to the window's top-right when you scroll down, so search stays reachable at any depth.

Every result is shown in portfolio context: a watchlist star left of the ticker (the same favourites the Explore tables use — star or unstar right from the list), the current price right next to the ticker, an In-portfolio badge with the quantity and value you hold (portfolio weight on hover) — or its exchange when you don't hold it — plus the last week's absolute and % move, color-coded, with a one-week price spark.

The price is in your display currency, converted from whatever the asset actually trades in — a London pence listing, its Frankfurt euro line and the New York listing of the same company all read as the same number, and switching the display currency moves every price with it. It arrives with the one-week spark, so it costs the search nothing extra, and it is the same conversion the assistant's hover cards use, so the two never disagree. An asset whose currency or exchange rate the price feed cannot supply shows its price and its weekly move with its own code instead ("226.44 SGD"), and one with neither shows no price at all — never a number under the wrong symbol.

Clicking a result opens its detail panel — the full position drawer for a holding, the market drawer for anything else — and resets the finder. Clicking anywhere outside dismisses the list and shrinks the pill (your query is kept, so focusing again restores the same search). With a detail panel open, the frosted results panel floats on top and stays searchable, so you can hop between assets without closing anything.

Down from the search field focuses the first result; Up focuses the last. Arrow keys move between results and back to the field, Enter opens the focused asset, and Escape from a result returns to the field. Falling weekly moves show one minus sign; unchanged prices use a neutral indicator. The weekly absolute move is money in the same currency as the price beside it — a foreign listing reads, say, “$72.49 ▼ −$3.32 (−4.4%)”, never a dollar price next to a move in pesos.

The Macro card

The compact bank-rate table keeps its header with the table while scrolling; it does not create a fixed header.

At the top of the Explore tab — the market's weather above the market's tables, sharing that row with the heatmap whenever the window is wide enough for both. It has three parts, each loading independently the moment its data arrives (values show a small spinner until then):

The Trades tab echoes the same data as a one-line decision ribbon above the trade plan, linking back here. The card is always there (the Advanced tools switch that used to hide it went on 4 September 2026), and the assistant carries a compact form of it in its context, so you can ask "what do current rates mean for my cash position?" in plain words.

The heatmap: the market, and your watchlists

Click or keyboard-activate a sector label to fill the map with that sector; The flat All sectors button returns to the overview. Zoom keeps the full grid's colour scale and your selected range and metric. Tooltip change and drawdown numbers use the matching tile colours, including the small tickers below the map. Switching grids clears sector focus, and a sector removed from a list returns you to the overview.

Beside the Macro card when the window is wide enough for both to stay readable, and directly under it when it is not — so minimising the assistant pane, or working on a wide screen, puts the two at equal width, side by side. When no central bank maps onto the portfolio there is no Macro card and the map takes the full width on its own. Side by side, the two cards end level — the row takes the height of whichever is naturally taller and the other fills it, so nothing is cropped to fit. In practice that is the map, and the Macro card grows to meet it; it is not shortened to the Macro card the way the portfolio one is to the value chart, because Macro is the short card and matching it would squash the map to a strip. The market as one picture. Every rectangle is one of the largest listed companies, scaled by market capitalisation and coloured by how it moved; rectangles are grouped into labelled sector boxes, so a cell’s neighbours mean something. It is the view most people have in mind when they ask “how did today go?”

The same map, over the stocks you actually follow. A strip switches the grid — up in the card’s title line when there is room for it, on its own row above the windows when there is not: Favourites (everything you have starred), one option per named list you keep, then Market, Most active today and the six index lists — so “how did my AI names do this month?” is a click, not a table you have to read. A watchlist grid is built exactly like the market one, cells and all, and is scaled by market capitalisation for the same reason: a watchlist holds instruments, not positions, and has no position values to size by. (Your own holdings do — that map is the Portfolio heatmap.)

The colour is the asset’s own price change over the window, in the currency it trades in — green up, red down, grey for flat. An exchange-rate move is not part of it, and every tile’s tooltip names the currency (0.34% since the previous close, in €). Your own holdings are the exception: the Portfolio heatmap sits beside the Holdings table and measures in your display currency, as the table does. The scale is printed in the legend, and it adapts: a quiet day still reads on the familiar ±3% scale, while a ten-year window scales to what actually happened instead of painting everything one flat green. Whatever cap is in force, the legend states it.

The heatmap only paints what it can measure. An asset with no market capitalisation or no usable price history is left out rather than shown as a grey “flat” cell — no data and no movement are not the same statement. Assets that started trading after the window opened (a recent listing on a ten-year view) are still shown, counted in the legend, and say so in their own tooltip.

Nothing in the grid goes missing in silence. A company ten times smaller than the smallest one you can see gets an honest rectangle — which is to say a hairline, or, where its sector box has run out of room, nothing at all. So a fine-print line under the map names them: “Too small to draw: BHP, LIN, PEP · Not placed (no market data): JPM-PC, …”. The first group is what the layout could not draw, the second what had no market cap or price history to draw from. Hover or focus a Too small to draw ticker for the same company, change/drawdown, sector, price and market-cap information as a drawn cell, updated for the chosen range and metric. Entries without market data retain their explanation. Every ticker in that line opens the asset, exactly as clicking a cell does, so a member the map cannot show is still one you can look at. When maximized, the caption uses a stable two-line area and longer lists scroll, so the map does not resize as names appear or disappear. The sizing itself does not change — market capitalisation is the point of a treemap — and the list stops at twelve names with a “+N more” tail so it can never crowd out the map above it.

On the first load the cells stream in behind a real progress bar; after that each grid and window is cached on its own, so flipping back is instant. Starring something puts it on the map straight away — as does adding it to a list, taking it out again, or deleting a list. Only the grid you changed reloads, and the cells already drawn stay put while the new one lands, so nothing flashes. The assistant can open the card, switch the grid and set the window for you — “show me the market heatmap over the last month”, “heatmap my favourites”, “show my AI plays list as a heatmap over the year”. Ask for a list you do not keep and it answers with the ones you do.

Your own holdings have a heatmap of their own, built the same way but scaled by what each position is worth: it lives on the Portfolio tab, right under the value chart, and is documented in The Portfolio heatmap.

The Explore tables

Every ticker carries its issuer’s logo. Beside the symbol in the holdings table, in the Explore tables, in the asset finder’s results, at the top of an asset’s details and on the tickers the assistant mentions in chat. A table of holdings is scanned rather than read — you already know which position you are looking for — and a mark is found faster than four capital letters, which are unusually hard to tell apart at a glance (AMD, AMZN, AMAT). The ticker never goes away; the logo is the fast path, not the name. A listing nobody draws a logo for — a small ETF, a newly listed company — shows a lettered tile instead, which is normal rather than a fault. The marks are fetched once, kept on our own server and served from there: nothing on the page reaches out to a stranger, so opening Explore tells nobody which shares you were looking at.

The Explore tab compares stocks in Favourites and one Markets table. The sliding list switcher beside Markets offers Largest companies, Most active today, S&P 500, NASDAQ 100, Dow Jones, FTSE 100, DAX 40 and Nikkei 225. Each index shows a composition date and source links. The heatmap above offers these same lists alongside your favourites. The full Largest companies screener list uses the existing 15-minute cache and is saved for the background warmer. All members of all six indices are also warmed automatically on the hosted app, before anyone opens a list. Companies shared across indices, Largest companies and Most active are processed once per sweep, using the same per-company caches. The first cold sweep still needs time to populate them. Index pages load on demand; unavailable quotes keep their member row with missing metrics. Largest companies and indices share the column and rows-per-page preferences; Most active today retains its own. On the first load of a session they stream in row by row behind a real progress bar; after that they persist across tab switches and refresh quietly every 10 minutes — the Favourites card head carries a refresh icon with the last update time and refresh help in its tooltip. It shows the shared circular spinner while refreshing. On a phone it has a 44 × 44 px target, beside a compact 32 px-tall Add asset button. A table that failed to load says so (“These stocks could not be loaded”) with a Retry, rather than reading as an empty market; one that failed to refresh keeps the rows it had and marks them stale.

The Favourites list strip's edge fades disappear whenever its buttons all fit, including after selecting or deleting a list and after resizing.

While a table’s labels stay pinned under the navigation, the area above them is opaque so scrolling data cannot show through. The normal frosted header returns when the table releases.

Numeric headings align with their values. The compact Drawdown heading keeps the 52-week-high explanation in its hover tooltip.

Every percentage in these tables is the listing’s own move, in the currency it trades in — today’s change (the Daily P/L column), the Price trend’s change and the Drawdown. Prices print in US dollars, but one conversion rate cancels out of a ratio, so no exchange-rate move is in them. Each of those columns’ tooltips says so. The Holdings table’s Daily P/L is in your display currency instead, so the same ticker can read a little apart there on a day the currency moved.

The Price trend column is a mini price chart with its overall change printed beside it — +17.4% in green if the price rose over the window, −6.2% in red if it fell. Since 10 September 2026 that number stands where a ▲/▼ glyph used to: an arrow says which way but never how far, and the size of the move was the one thing you had to open the tooltip for. The tooltip still carries the price range and spells the whole thing out (“Last 4 months: +17.4% overall · range 100 – 117.4”), on hover at a desk and on a tap on a phone. You choose the window: the ⚙ in the table’s corner carries a Price trend select offering 1, 3, 4, 6 or 12 months, and the tables reload over the window you pick — behind their usual progress bar, since the change is computed from the price history rather than trimmed from what was already on screen. Four months is the default, so a table you never touch reads exactly as it did. The choice is remembered in this browser and covers every Explore table at once (unlike the columns and rows-per-page, which are per table): the rows come from one shared row cache, so there is one window rather than one per card. Sorting by Price trend, and the averages row’s Price trend cell, both follow the same window.

Columns cover price (USD-normalized), today's % change, the price-trend sparkline above, 52-week range, drawdown — the 52-week range bar stated as a number: how far below its 52-week high the stock trades right now (0.0% at the high, −25.0% a quarter below it), which is the version you can sort by when you are looking for what has sold off, the same question the Holdings table’s Drawdown column asks of a position you own. Here it is measured against the market’s reported 52-week high, which is an intraday figure; the Holdings column measures against the highest daily close of your own series, so one ticker reads a point or two shallower there — market cap (USD-normalized like the price), P/E and forward P/E, EPS growth with 16-quarter trend bars, revenue growth, FCF and FCF yield, market-cap payback years, PEG, ROE, net debt/EBITDA, short interest (short % of float and days to cover — crowding and squeeze context) — plus the weight each stock already has in your portfolio, and a transparent buy/hold/sell signal with its reasons spelled out.

The money columns — price, market cap, FCF and the fair values — name their currency once, in the header, whenever every row in the table shares it: PRICE [$], MKT CAP [$] over bare figures (“4.19T”), and the averages row follows its column. A table that mixes currencies — a listing no exchange rate could convert — keeps the plain header and marks each cell instead (“$4.19T”, “€220.0B”), because one unit over mixed rows would misstate some of them. Symbols and codes follow the one rule for amounts.

Eight more columns bring the Fair value card into the table. Fair value — the confidence-weighted average of the six models — is on by default, formatted exactly like the Price column so the pair reads against each other: above the price the models call the share cheap, below it dear. The other seven start hidden in the ⚙ picker: FV upside, the gap between the two as a signed percentage, and one column per model (FV DCF, FV Graham, FV Lynch, FV EV/EBITDA, FV DDM, FV Multiples) for when you want to see where the average came from and which model is pulling it. Sort a mixed table by the upside rather than by a fair value: it is a ratio, so it compares across companies, while a €900 share’s fair value and a €4 one’s have nothing to say to each other. A model whose answer landed too far from the other five is left out of the average but still shown — dimmed, with the reason on hover — and anything the models cannot value (an ETF trades at the value of what it holds; a coin has no cash flows) shows a dash, never a zero. Every figure here is USD-normalized, like the Price column beside it.

Category chips (region, sector, company size) are color-coded, with the key at the very bottom of the tab, under the last table — along with the switch that turns the chips off. Clicking any row opens the stock's detail drawer — its head carries the same watchlist star as the row you clicked, so the drawer both shows whether the stock is already a favourite and stars or unstars it on the spot — with split-adjusted history, fundamentals, the Fair value card (six valuation models — DCF, Graham, Lynch, EV/EBITDA, dividend discount and sector multiples — each a bar against today's price, with the weighted verdict above them; see the drawer), short-interest detail, recent insider activity (SEC Form 4 open-market buys and sells, clustered over this calendar month and the three previous whole calendar months, with the summary line naming the day that window starts — US-listed stocks) and news.

The signal is a deliberately simple, explainable screen — its reasons are always listed, and it knows nothing about your taxes, currency risk or time horizon. Not financial advice.

Favourites (your watchlist)