Portfolio Analytics Lab icon

Portfolio Analytics Lab

Simple, transparent portfolio analytics for everyday investors. portfolioanalyticslab.net

Next step

Welcome

Portfolio Analytics Lab is a private web dashboard for turning your broker data into practical portfolio views. Sign in, try demo data, connect Trading212 when ready, add other brokers or crypto rows through Imports & Manual Data, and review holdings, dividends, PnL, activity, forecasting, tax prep and decision quality from one place.

What works now

  • Private web accounts with saved dashboard snapshots and encrypted Trading212 broker connections.
  • One-click synthetic demo data so you can explore the dashboard before using your own API key.
  • Trading212 API refresh, plus manual broker inputs through Imports & Manual Data for transactions, dividends, cash flows, crypto rows and open positions.
  • Interactive charts with filters, sortable tables and scrollable table containers.
  • Overview KPIs, current holdings, dividend history and a next-12-month calendar with announced and estimated events, PnL, activity, forecasting, tax prep, decision-quality views and an automatic S&P 500 benchmark cache.
  • An editable Asset Library for true tickers, asset type, sector, country, ETF/leverage flags and custom portfolio tags.
  • Shared monthly FX and asset-price caches that improve in the background as assets are observed.
  • Display-currency viewing for account-currency money values, focused downloads beside relevant tables and a custom Report Builder.

How to start

  1. Create an account or sign in.
  2. Click Try demo data if you want to explore first. It uses fake portfolio data and needs no Trading212 API key.
  3. For your own portfolio, create a Trading212 API key with read access to Account data, Portfolio, Metadata, History, History - Orders, History - Dividends and History - Transactions.
  4. Paste the API key and secret in Start / Settings.
  5. Choose Full refresh for the first real run, click Run / Refresh Dashboard, and wait until Status says the dashboard is ready.
  6. After the first run, use Refresh current year only for faster updates, or use Imports & Manual Data to add other broker/crypto rows and rebuild the saved snapshot.

Important notes

This app is still an early testing version. Dashboard snapshots and backups are saved to your signed-in web account; broker credentials are encrypted server-side and never shown back in the browser. Demo data is synthetic and is marked so a later Trading212 refresh can replace it cleanly. Upcoming dividend events clearly separate provider announcements from estimates based on received dividend history; estimated dates and gross amounts are not guaranteed. Trading212 history gives orders, dividends, cash transactions and current positions, but not exact historical month-end portfolio values for every holding. The app now tries to build a monthly historical value estimate from reconstructed quantities and shared monthly asset prices. If enough price and quantity history is not available yet, it falls back to the available-data estimate, so the latest month can move more than earlier months. Asset price history is filled automatically in the shared backend cache and reused on later rebuilds. The account currency setting is the calculation basis for broker/account data, manual FX checks and benchmark FX conversion after rebuild. Display currency is view-only: dated rows/charts use cached monthly FX where available, while current or undated values use the latest cached/approximate rate. Stored data and account-currency calculations remain unchanged. The S&P 500 benchmark is approximate, uses cached monthly FX when benchmark/account currencies differ, and excludes S&P dividends, taxes and fees. Reported realized PnL is used only where broker or manual source data provides it, so older sells may appear without realized PnL until we add a proper recalculation engine.

Value-change badges and benchmark return lines are estimates from available broker, manual, FX and cached market data. They are not broker MWRR/TWR.

Benchmark process: what to expect

Benchmarking is automatic and uses cached public market data where possible.

Recalculates the visible comparison from that month onward.

Portfolio cash-flow & benchmark timeline

Desktop: use Ctrl/Shift-click. Touch: tap the lines you want.

Compares cash invested, dividends, benchmark value and the best available portfolio value line.

Estimated portfolio return vs benchmark return view

Compares the best available portfolio return estimate with the selected benchmark return.

Top current positions

Top current positions by calculated market value in account currency.

LLM portfolio analysis prompt

Copy this to your preferred LLM.



Filters

These filters apply to both positions and PnL. Symbol matching is exact; use semicolons for multiple tickers.

Filtered current positions by market value.

Upcoming dividend calendar

The next 12 months keep provider-announced events separate from estimates based on your received-dividend history. Gross amounts use current quantities and stay in each dividend currency.

Dividend analysis uses received dividends from available broker/API data plus manual source inputs. Gross dividends are not calculated unless the source provides them clearly.

Symbol filter uses exact symbol matching. Example: O matches only O. Use semicolon for multiple symbols. When all brokers are selected, monthly/quarterly charts aggregate brokers into one value per period.

Forecast selections and assumptions

Choose the scenario methods and projection inputs. Portfolio value uses total return; dividends are projected separately as income.

Ctrl/Shift-click to select more than one extra line.

Adjust the inputs, then update both forecast charts.

Method assumptions

Forecast computation notes

Portfolio value uses the selected total-return assumption and contribution. Projected dividends are shown as income and are not added again to portfolio value.

Portfolio value forecast. Includes the selected portfolio history method unless hidden, plus any selected extra comparison lines.

Annual dividend forecast. Includes the selected dividend history method unless hidden, plus any selected extra comparison lines.

Forecast calculation detail

Each row shows the selected historical method and any extra comparison lines, including assumptions and exact calculation steps.

Activity / Orders

This tab uses parsed broker order history plus manual source inputs where available. Realized PnL is only as good as the broker/manual data provides, so older sell orders may still be incomplete.

The date filter is applied to the yearly/monthly Activity charts and the orders table below. Symbol filter uses exact matching and supports multiple terms separated by semicolon, comma or space.

Net buy value by year: buys minus sells from broker order history plus manual source inputs where available.

Reported realized PnL by year, only where broker/manual source data provides realized PnL fields. Older sells may exist without reported realized PnL.

Monthly net buy activity to see when cash was deployed or positions were reduced.

Decision Quality

Experimental decision-quality view using available broker data plus manual source inputs. It combines buys, sells, open PnL, reported realized PnL and dividends by symbol. Return charts are shown as percentages, so 1.50 means 150%. Values below -100% usually mean cost basis, FX, ticker history or manual input needs review. This is not tax-grade realized PnL and cannot judge decisions where history is incomplete.

These filters apply to both Decision Quality plots and the table. Symbol filter uses exact matching and supports multiple terms separated by semicolon, comma or space.

Best observed result = reported realized PnL + current unrealized PnL including FX + received dividends.

Best open return %, based on current open position cost basis and current unrealized PnL including FX. Axis labels are percentages.

Worst observed result from the same filtered symbols.

Worst open return % from the same filtered symbols. Axis labels are percentages.

Import another broker or crypto file, or maintain source rows yourself. You can start here without a Trading212 snapshot.

Manual transactions

Use this table for manual buys, sells, dividends, deposits, withdrawals, fees, taxes or FX adjustments from other brokers or corrections. For BUY/SELL/DIVIDEND, symbol is required. If the row is not in account currency, fill currency and fx_rate_to_account_currency.

Example rows:
Dividend: enabled=TRUE, date=2026-03-15, broker=manual_broker, event_type=Dividend, symbol=O, net_amount=25.50, currency=EUR, fx_rate_to_account_currency=1.
Buy: enabled=TRUE, date=2026-03-20, broker=manual_broker, event_type=Buy, symbol=AAPL, quantity=2, price=180, gross_amount=360, currency=USD, fx_rate_to_account_currency=0.92.

Manual positions

Use this for holdings from another broker or manual open-position corrections. Provide either market_value_eur, or quantity + current_price. If the row is not in account currency, fill currency and fx_rate_to_account_currency so values can be converted.

Example row:
enabled=TRUE, broker=manual_broker, symbol=VWCE, quantity=10, average_price=100, current_price=115, market_value_eur=1150, cost_basis_eur=1000, currency=EUR, fx_rate_to_account_currency=1.

Validation warnings

This table is read-only. It does not accept rows. It only shows warnings/errors found in your manual inputs, for example missing date, missing symbol, missing amount, missing FX rate, invalid event type, or a position without enough value fields. If it is empty, no obvious issue was detected.

Tax Prep Hub helps organize investment activity that may be relevant for tax reporting. It is not tax advice, certified tax software, or a guaranteed tax calculator. Verify everything with a qualified tax professional.

Dividends & withholding tax

Shows paid/received account-currency cash. Trading212 gross per share is retained separately in instrument currency; exact net and withholding require explicit broker evidence or official statements.

Broker/app reported realized gains/losses

Reported realized PnL is shown only where broker/manual source data provides it. Sells without reported realized PnL are review-required.

Tax readiness checks

Accountant review summary



LLM / accountant prompt



Questions for accountant

Export Tax Prep Workbook

Download annual statements, dividend reports, transaction reports and cash statements directly from each broker, then compare them with this workbook before filing or sending anything to an accountant.

Creates one Excel workbook with summary, dividends, withholding tax, reported realized PnL, fees/FX/cashflows, classifications, checks, prompts and assumptions.

Self-Service Charts

Create quick exploratory charts from any dashboard table. Choose X and Y, then optionally split the plot by one useful category such as broker, year, sector or asset type.

Save up to 5 builder setups. Saved setups fill the builder controls; saved chart slots below are the charts that load automatically for signed-in accounts.

Review and organize assets

Check asset identities, maintain your labels and save changes before refreshing the dashboard. Provider metadata stays separate and cannot silently replace protected user classifications.

Admin diagnostics

Visible only to configured admin emails. Use this page to check hosted health, shared cache growth, price-backfill failures and recent hosted jobs.