Value development since start
Holdings
🤖 Gabot
Recently closed positions
🧑 Gabriel
Recently closed positions
Trade log
Every executed trade on both sides, newest first. Size is what the trade was worth as a share of that investor's own book, and realized P&L is the actual return on the shares sold. Share counts and fill prices are deliberately not published: shown next to a size they would give away the real size of the book, so only proportions appear here.
Gabot's decision log
Every trade the agent makes, with the valuation and news reasoning behind it. The agent never receives tips from the human.
Methodology
- Start: both sides began with identical capital on . Gabriel's side is his real portfolios at two brokers — Scalable Capital (EUR, XETRA/gettex listings) and Lynx (IBKR white-label, USD listings); Gabot's side is a virtual account marked to real market prices.
- Values shown: all published euro figures are rebased 1:1 so both sides start at exactly 10.000 € (like the original experiment). Every proportion, return and ranking is identical to the real portfolios — only the scale differs, and it is recalculated automatically at every update. For individual trades and closed positions only the realized return (%) and each trade's size as a share of that investor's book on that day are shown — no euro figures are published per trade or per closed position.
- Update cadence: every trading day after the European close Gabot reviews its holdings and a candidate list — valuation plus current news — and buys, sells or holds; the trade appears in the log below with its reasoning and sources. Gabriel's trades reach the book automatically from his brokers' execution e-mails. Both books are then repriced from live EUR quotes and this page is republished. Whenever an exchange is shut — a US public holiday closes roughly half of Gabriel's book — the positions it lists keep their last value, are marked STALE in the holdings table, and are excluded from the "marked live" figure in the footer, which is recorded for every day so a past date can still be audited; a closed market is a disclosure, not a failure. Gabriel's share counts change only when he actually buys or sells; repricing what he already holds never waits on him. Both timestamps are always shown — nothing here is real-time.
- Gabot's rules: long-only, no leverage or derivatives. It buys companies trading materially below intrinsic value (valuation models + current news check), sells when the valuation gap closes or news breaks the thesis. Max 15% per position at purchase and a €500 minimum trade — both enforced by the engine, which refuses any order that breaks them. Virtual fills take the live EUR quote with a 0.25–0.50% spread haircut plus a €0.99 fee. Cash dividends are credited automatically on their ex-date, net of 15% withholding tax.
- Cash: both brokers' cash balances are part of Gabriel's book — securities + cash, exactly as Gabot's cash is part of Gabot's. Buys are paid from that cash and sale proceeds land in it, so a trade by itself does not move the headline.
- Tax: Scalable Capital withholds German capital-gains tax at the moment of a sale. The net proceeds land in cash; the withheld tax is booked as a withdrawal — a cashflow out of the measured book — so it is neutral for the time-weighted return. A tax bill is a transfer out, not a loss of performance. Lynx withholds nothing at sale, and Gabot's virtual book pays no tax.
- Fair comparison: the headline is a chain-linked time-weighted return — index starts at 10.000, and each trading day r = Vt / (Vt−1 + flowt) − 1, where flowt is the net deposit or withdrawal that first shows in that day's value. Both sides are marked to market on the same day from the same quote source, so neither can take the lead merely by being more recently priced. The Lynx account entered the measured book on 2026-09-01 as such a flow.
- Dividends, both sides: cash dividends are credited to both books on their ex-date, net of withholding, from the same data source. Crediting income to only one side would hand a payer-heavy book roughly one to two percent a year for free. Gabriel's accrued dividends reset whenever he reports a fresh portfolio state, since the real account already contains them.
- Proxy pricing: Gabriel's NIO Class A position has no EUR-quoted Class A listing and is priced via the NIO ADR line — same economic exposure, small possible spread. Proxy-priced rows are marked in the holdings table.
- Share-count provenance: the footer publishes two independent quality figures, both as a share of Gabriel's securities book. Marked live is how much was repriced from a fresh quote today. Broker-verified share counts is how much has a quantity a broker actually confirmed — a contract note, an execution e-mail, or a position screen read out directly — rather than one derived by dividing a value shown in the app by a price shown beside it. The two are independent: a holding can be priced to the cent off a share count that was estimated. That estimation was not hypothetical — on 2026-09-02 it put the ledger 1,66% away from the Scalable app, roughly a third of the lead being reported at the time — so on 2026-09-03 Gabriel read out every position screen and the figure went from 2,5% to effectively the whole book. Every quantity a broker document moves is recorded with its source, so trading raises this figure rather than eroding it; an attested fill added to an estimated holding, however, leaves that holding an estimate.
- Lynx broker (added 2026-08-31): Gabriel's USD-denominated Lynx positions are FX-converted to EUR using a daily USD→EUR rate. Cost basis is implied from the broker app's mkt_value − P&L (USD), then FX-converted to EUR — pending primary-source verification from Lynx contract notes / CSV exports. Three positions (Stellantis ADR, BYD Co ADR, Elite Pharmaceuticals) carry structurally suspect implied cost bases — Stellantis may reflect an unmodeled 2021 FCA→STLA merger restatement, BYDDY's 1:8 ADR ratio complicates display vs. economic exposure, and ELTP is a sub-€1 OTCQB microcap with stale pricing where any basis error swamps the position. These three still show a PENDING chip until contract notes confirm the cost basis; market value is live regardless. They will return to fully clean status once Gabriel supplies Lynx contract notes or per-trade CSV exports.
- Correction (2026-09-05): the page was not updated on 2026-09-03 (evening) and 2026-09-04 because the unattended publisher failed a self-check that referenced live data; that check has been moved out of the publish gate. Separately, Gabriel's NVIDIA (XETRA) sale of 2026-09-03 had been booked without crediting the proceeds to his cash, understating his side that day by about 3,2 pp — the 2026-09-03 row was restated. The realized P&L of that sale (+15,56 %) now comes from the broker's contract note, and the four trades executed on 2026-09-03 and 2026-09-04 — Eli Lilly buy, Tesla sell, and Tesla re-buys on both brokers — appear in the log with this update.
- Correction (2026-08-20): for two days this page carried two of Gabriel's positions (a SpaceX tracker and GQG Partners) at their 2026-08-18 value, on the incorrect finding that they had no public EUR listing. They do (Hanover and Frankfurt), and both are now marked daily like everything else. The stale values had overstated Gabriel's side by 719,27 € — about 1,34 pp of start capital, which was larger than the lead being reported at the time. Additionally, Gabriel's share counts were snapped to whole shares where the app's value/price pair implied one to within 0,05% (13 of 17 positions did — e.g. exactly 200 Ernst Russ shares), removing transcription-price noise from the daily series; the remaining four are genuine fractional savings-plan positions.
- Data sources per decision are logged in the decision record (valuation source, quote source and timestamp). If a data source changes during the experiment, it is disclosed here.