Three things set Capitally apart: it doesn't connect to your bank, it gives you the analytics most trackers reserve for advisors, and it tracks anything you can put a price on — not just public-market positions.
The tradeoff: there's no auto-sync from your broker, and you'll usually do a CSV import on day one. That's the right fit for advanced DIY and HNW investors who want privacy and the historical depth aggregator-pulled data can't deliver — not the right fit for someone who wants a one-click aggregator and is comfortable handing over brokerage credentials. For a deeper comparison against the field, see the best portfolio tracker for the modern DIY investor.
Capitally handles the calculations that break a spreadsheet at scale — time-weighted return, money-weighted return / IRR, FX attribution between capital gain and currency gain, FIFO / LIFO / Average Cost / specific-lot cost basis, dividend and withholding-tax tracking, options Greeks — and refreshes prices automatically without formulas to maintain. See measuring investment performance for how the math compares to a spreadsheet's.
The control a spreadsheet gives you stays intact: data is yours, exportable to CSV or Excel anytime, and end-to-end encrypted on your device. CSV import and paste-from-spreadsheet are first-class flows, so migrating an existing Excel or Google Sheets tracker into Capitally is usually one paste away. See the spreadsheet-alternative feature page for the full pitch.
Capitally is built for long-term DIY investors who manage their own money seriously across multiple brokers, currencies, and asset classes — and want to see the math behind every number rather than a curated dashboard.
Four groups get the most out of it:
It's the right fit if you've outgrown a spreadsheet but don't want to lose the control a spreadsheet gave you. It's not the right fit if you want one-click bank-aggregator sync and aren't planning to import any data. For a peer-level comparison against other trackers, see the best portfolio tracker for the modern DIY investor.
Capitally works in any country and supports every national currency for cash, transactions, and reporting. Native pricing covers stocks and ETFs from 50+ exchanges across North America, Europe, APAC, South America, and the Middle East, plus mutual funds (US, Canada, Western Europe), 100+ FX pairs, precious metals, crypto, indexes, and commodities. See the full list of supported markets and assets.
Each transaction is recorded in the currency you paid in, then reconciled into your base currency. FX attribution separates capital gain from currency gain, so you can see how much of a return came from price moves versus exchange-rate moves — useful for expat and multi-broker portfolios.
For a local mutual fund, private fund, or any other asset Capitally doesn't price automatically, add it as a custom asset and feed in prices manually, by paste, or via CSV.
It replaces the need for a spreadsheet for portfolio tracking and analysis. You get more power, more automation, and more reliability, all while keeping the direct data control that made you choose spreadsheets in the first place. You can still export your data to CSV anytime.
Most migrations come in through one of three flows: paste from a spreadsheet, import a CSV / Excel export, or rebuild from broker statements. Capitally's importer maps columns to its transaction model on the fly and saves the mapping as a reusable preset variant, so a recurring source — your spreadsheet, a Kubera CSV, a Sharesight export — imports cleanly the second time.
For spreadsheet users (Excel, Google Sheets), the paste flow handles transactions, balances, and price history without changing the spreadsheet's format. For users coming from Sharesight, Snowball Analytics, Portfolio Performance, Delta, myFund or StockMarketEye - there are built-in presets. For any other tracker that exports CSV or Excel, like Kubera, Personal Capital / Empower, the same flow applies — the flexible column mapper handles whatever schema the export uses.
For broker-statement migration, native presets cover Interactive Brokers, Degiro, TastyTrade, Schwab, Coinbase, Kraken, XTB, Fidelity, Vanguard, Saxo, eToro, Trading 212, and many more; less common brokers are usually one column-mapping away. If your tracker has data Capitally doesn't yet handle directly, send a sample export to support@mycapitally.com — new presets get added regularly.
Capitally is a paid subscription — there's no permanent free tier. The 14-day trial is fully featured, requires no credit card, and gives full access to imports, analytics, and reports. You can even trial the exact subscription tier you're interested in, to see if it fits.
Pricing increases over time as features expand. Subscribing now locks in the current rate for as long as the subscription is continuous — cancelling and resubscribing later means paying the new rate.
Yes. You can cancel anytime from Settings → Subscription, and you keep full access until the end of the period you've already paid for. Resubscribing at any point picks up exactly where you left off.
If your subscription ends, your data stays available for 6 months — long enough to come back without rebuilding anything. To delete it sooner, delete your account in Settings → My Profile.
Active subscriptions lock in the price from the day you signed up. If our pricing changes later, your rate stays the same as long as the subscription is continuous. Cancelling and resubscribing later means paying the current rate.
Plan switches work as a prorated credit. We calculate the unused portion of your current plan, apply it as credit toward the new one, and you pay only the difference. Downgrading means no further charges until the credit runs out.
Yes. Add your Tax ID at checkout — for an EU business, use the VAT ID starting with the country code (e.g. PL, DE, FR). The invoice is emailed automatically after payment.
Past invoices stay accessible in Settings → Subscription, and you can download any of them at any time.
Private equity tracking, value-based pricing, stock options, and lot groups are all included in the Captain plan. All plans start with a 14-day free trial with full access — no credit card required. See Tracking Private Equity for what's covered.
The Navigator and Captain plans support unlimited transaction history. The Sailor plan covers up to 25 years, which is enough for most multi-decade portfolios. Whichever plan you start on, the full available history is calculated based on the most up-to-date data we have so long-term TWR and IRR reflect the actual market and FX environment of each trade.
Capitally features a robust importing interface that allows you to easily upload CSV or XLS files from any broker or app that provides transaction history or account balances. You can even copy and paste data from your own spreadsheet if you have one.
We currently support a growing list of brokers natively, including Interactive Brokers, Degiro, TastyTrade, Schwab, Coinbase, Kraken, and XTB, among others.
For individual transactions, you can simply add them manually. If you're only tracking account balances, you can update them directly in the table, along with the current market price.
While many trackers use services like Plaid or Yodlee to link to your broker automatically, these often require you to share your broker login and rarely deliver complete data. They typically only provide current balances or, at best, the last ~3 months of transactions — and almost never surface the events that move cost basis: corporate actions, dividend reinvestments (DRIP), FX conversions, deposits and withdrawals. If your broker isn't supported, which can often be the case depending on your location, you're left with manual input as most trackers don't handle bulk imports well.
Direct CSV exports go back to the day the account was opened and keep that full transaction trail intact. That's not just a privacy win — it's a precision win. With every lot, every DRIP run and every corporate action included, returns calculate correctly over the real holding period and cost basis is auditable for tax purposes. Manual entry preserves the same fidelity for assets that have no broker feed at all.
At Capitally, we prioritize your privacy and the depth of your data. That's why we're focusing on perfecting CSV imports first. Eventually, we plan to offer automated synchronization as well, so you can enjoy the best of both worlds.
Yes. Paste transactions directly from any spreadsheet — Excel, Google Sheets, Numbers — and Capitally maps the columns into its transaction model on the fly. CSV and XLS files import the same way, with column mapping saved as a reusable preset variant, so the next paste or upload is one click. The original spreadsheet stays untouched, and your data exports back to CSV at any time.
No. You choose the tracking depth per account or asset, anywhere on the spectrum from balance-only to full transaction history.
Mix and match: track a wrap account or pension as a single balance, your IBKR account as full transactions, and a property as quarterly valuations. Switch a position from balance-only to full transactions later when the detail starts to matter — none of the historical data is lost.
Your data is kept end-to-end encrypted for at least 6 months after the trial or subscription ends, so resubscribing within that window restores your full investment history with nothing to rebuild.
Permanent deletion is a one-click action inside the app — no email or support ticket required, and once it's gone, the encrypted store and surrounding metadata are removed for good.
Either way, you can export everything to CSV, Excel, or JSON before leaving, so the full historical record stays with you regardless of what happens to the account.
Public-market positions, private investments, real estate, collectibles, fixed income, cash, and liabilities — all in the same project. Currently supported, with native pricing and dividend data:
For every asset class you choose the tracking depth: full transaction history for tax-grade reporting, or periodic balance updates when per-trade detail isn't worth the effort. See the all-investments-in-one-place overview for how it ties together.
Yes. Liabilities live in the same project as your assets — modelled as custom Loan or Mortgage assets with negative quantity — so the portfolio view shows Owned, Owed, and the Debt Ratio (owed / owned) side by side. Mortgages, margin loans, and lines of credit all fit the same pattern.
Interest payments and principal repayments record as separate transactions, so the cashflow they generate flows into the money-weighted return of both the liability and the asset it finances (e.g. a mortgage attached to the property it paid for).
Walkthroughs: Tracking Debt for general loans, Tracking Mortgage for mortgages with automatic interest calculations and real-estate linkage. Deeper liability features (built-in amortisation schedules, scenario modelling) are on the roadmap.
Yes. Each asset has its own cashflow ledger, so you can log expenses alongside acquisitions, valuations, and income — property maintenance, custodian fees, insurance, management fees, transaction costs, anything that affects your real return.
Expenses flow into the asset's cost basis and into your money-weighted return, so a real-estate or private-equity position shows the actual after-cost performance rather than just the price-vs-purchase delta. You can categorise each cashflow and reconcile it into your base currency if it was paid in a different currency.
For ongoing costs like a fund's management fee, log them as they're incurred or import them in bulk from a CSV.
The Sailor plan covers up to 25 years of historical valuations and transactions. The Navigator and Captain plans have no internal limit — you can import as far back as your broker statements go.
Long histories are useful for accurate long-term TWR and money-weighted return, especially if your portfolio has been through one or more market cycles. Capitally re-prices the full history on import, so day-one cost basis and currency impact are both reconstructed exactly.
Private equity tracking is for LP fund investments where you know the price per unit and need to track capital commitments, calls, and distributions with PE-specific metrics like DPI, TVPI, and RVPI — see Tracking Private Equity.
Value-based pricing is for managed accounts where you only know the total account value and your cashflows (deposits and withdrawals), with no per-unit breakdown. You enter the NAV and cashflows, and Capitally calculates your time-weighted and money-weighted returns from there.
Yes. LP fund stakes, managed accounts, stocks, ETFs, options, crypto, real estate, and collectibles all live in the same project, with portfolio-level metrics computed across them.
Private-equity positions use PE-native metrics — Committed Capital, Paid-In, Unfunded Commitment, DPI (Distributions to Paid-In), TVPI (Total Value to Paid-In), RVPI (Residual Value to Paid-In), and detailed cashflows for calls, distributions, and fees. Public-market positions add TWR, money-weighted return / IRR, and FX attribution. The portfolio rollup blends both: a single net-worth, single base-currency, single set of reports.
See Tracking Private Equity for the LP fund workflow.
Yes. Any fund administrator, family office, or private-bank statement that exports CSV or Excel can be imported through the flexible import tool, where you map columns to Capitally's transaction fields. The mapping is saved as a reusable preset variant, so subsequent statements from the same provider import in one click.
For LP fund statements (capital calls, distributions, NAV updates), use the dedicated private-equity workflow with DPI, TVPI, and RVPI tracking. For single-NAV managed accounts, use value-based pricing — record the period-end NAV and any cashflows, and Capitally derives the time-weighted return.
When a statement comes in PDF only, manual entry is the supported path — usually only a handful of cashflows per quarter for a typical LP or wrap account.
Each transaction is recorded in the currency you paid in — USD trades stay in USD, EUR trades stay in EUR — and reconciled into your base currency at the FX rate of the trade date.
You can switch the viewing currency at any time, or make it depend on the section of portfolio you are viewing.
Returns are decomposed via FX attribution: the overall return splits into the capital gain of the underlying asset and the currency gain or loss from FX moves. A 12% USD-equity return translated to a 4% EUR-equity return is a different story than a 12% EUR-equity return — Capitally can show both halves separately so the FX impact isn't hidden inside the headline number.
Cash, dividends, and withholding tax all carry their original currency through, which makes life simpler at tax time for expats holding accounts in two or more countries. Native pricing covers 100+ currencies and exchanges across North America, Europe, APAC, South America, and beyond — see the supported markets and assets. You can change base currency later without losing the local-currency record.
Yes. A single Capitally project can hold any number of accounts — each one a logical container for a broker account, bank account, pension, wrap account, or any other portfolio slice you want to keep separate. Name them however you like (Personal IBKR, Company Schwab, Trust Vanguard, Joint Saxo, IRA, ISA, IKE/IKZE, etc.). Reports filter by account, by asset class, by tag, or roll up into a single net-worth view across everything.
Liabilities (mortgages, margin loans, lines of credit) live in the same project as assets, so a true net-worth view nets debt against holdings. See Tracking Debt for the setup. Performance metrics — TWR, money-weighted return / IRR, FX attribution, cost basis — work at any level: per account, per filter, or for the entire portfolio.
When entities need to stay strictly separated (e.g. a personal portfolio and a company portfolio that must never mix in any report), use multiple projects and switch between them in the UI — same login, fully isolated data.
Once Capitally knows which dividend-paying assets you own, it pulls each declared payment from market data and posts it to your portfolio with the correct ex-date, pay-date, and gross amount. There's no need to import dividends from your broker file unless you want to. See Tracking Dividends for the full setup.
If you import a broker file with dividends, the manual record takes precedence over the auto-generated one — so the version closest to your tax document is what shows up, and there are no duplicates.
For tax reporting, importing the broker file is the more reliable path: it captures the actual withholding tax applied per payment and the FX rate the broker used, both of which the auto-tracker can only approximate. Country-specific tax presets then carry the WHT through to the right line item on your capital-gains and income reports.
Yes. Foreign-stock and ETF dividends track the same way as domestic ones, and Capitally records the withholding tax (WHT) deducted at source as a separate component of the cashflow — so the gross dividend, the WHT, and the net amount are all visible per payment. See Tracking Dividends for the full setup.
You can let WHT be derived from your broker's import or override it manually per payment when the broker file is incomplete. Each payment is captured in the dividend's currency and reconciled into your base currency, which keeps cross-border yield-on-cost and forecasted-income calculations accurate.
For tax filing, country-specific tax presets carry the WHT through to the right line item — useful when a foreign-tax credit or treaty-based refund needs to be reconciled at year end.
Capitally calculates future dividend projections using the last 5 years of dividend payments for publicly traded instruments (regardless of whether you held them the whole time). For custom assets, we use the last 5 years of data you’ve entered. The next expected dividend amount is calculated as the last dividend paid multiplied by the average growth rate over the last 5 years.
Not yet. Forecasted dividends currently use a fixed model — last 5 years of payouts, projected forward at the average growth rate of that window — without per-asset overrides for growth rate, payout cut, or DRIP-on/off scenarios.
Custom growth assumptions and scenario modelling are tracked on the roadmap. In the meantime, you can fork a project, edit the underlying dividend history, and use the projection that comes out of the modified series.
Yes. Add a manual transaction against any asset and choose the income type — dividend, interest, or rent — to capture any passive-income stream, whether it's real-estate rent, bond coupons, P2P lending payouts, or distributions from a private fund.
All income types feed into the same yield-on-cost and forecasted-income views, so a multi-stream FIRE portfolio shows a single combined income calendar even when the underlying instruments are very different.
Yes. The forecasted income calendar lists every expected dividend across your holdings, with expected ex-date, pay-date, gross amount, withholding tax, and net amount per payment. See the dividend-tracking feature page for an overview.
Forecast amounts come from the most recent declared dividend, projected forward at the historical 5-year growth rate. You can opt into a recurring digest that highlights the next month's expected income — useful for FIRE / dividend-track investors planning cashflow.
Yes, on the Navigator plan and above. Create one or more Test Projects, then set up multiple Accounts inside each project — one per strategy you want to compare (e.g. dividend-growth ETFs vs high-yield individual names vs DRIP-on vs DRIP-off).
Accounts within the same project chart side by side, so total return, yield-on-cost, and forecasted income are directly comparable on one timeline.
Cross-project comparison isn't supported — strategies you want to benchmark against each other should live in the same Test Project.
Yes. Dividends are tracked at the payment level for every supported stock and ETF, with the gross amount, withholding tax, and net amount visible per payout. Capitally also computes yield-on-cost, forecasted income, and dividend growth — the metrics a long-term dividend or FIRE-track investor actually needs. See Tracking Dividends for the full setup, or the dividend-tracking feature page for an overview.
Auto-tracked dividends use market data, so they may differ from your broker's report due to WHT, FX timing, or processing delays. Each payment is editable, and manual entries take precedence over the automatic record without creating duplicates.
Beyond stocks and ETFs, the same income view captures bond coupons, real-estate rent, and any custom income stream you log against an asset — so DRIP yield, rental yield, and bond yield can be compared side by side.
Yes. Capitally tracks cost basis at the tax-lot level — in the currency of each trade and reconciled into your base currency. Capital-gains reports are produced from a country-specific tax preset, covering FIFO/LIFO/ACB conventions, holding-period rules, exemption thresholds, and the treatment of foreign dividends and withholding tax. See cost basis methods for how the lot maths work.
If you move jurisdictions or hold accounts across borders, you can switch tax presets at any time and the calculations follow.
Market-traded assets — US stocks, US ETFs, currencies, crypto — refresh at least every 30 minutes during market hours, with end-of-day prices posted 15–60 minutes after the close. ex-US stocks, ex-US ETFs, indexes, mutual funds, commodities use end-of-day prices updated 30-240 minutes after market closes. See the supported markets and assets for full coverage.
Custom assets (private equity, real estate, collectibles, illiquid positions) hold the last user-entered valuation forward until you record a new one. You can update them manually, by paste, or by CSV import on whatever cadence makes sense — quarterly NAVs, annual appraisals, monthly checkpoints.
Each asset has its own price history that you control. For anything without a public quote — private equity, real estate, collectibles, closed funds, art, watches, a startup stake — add it as a custom asset and feed in valuations manually, paste a price table, or import a CSV.
Once a price series exists, the asset behaves like any market-traded position: cost basis, time-weighted return, money-weighted return, FX attribution, and yield-on-cost all work the same way. The custom asset can also have its own dividends, rent, distributions, or expenses logged against it.
For positions you only re-value periodically (e.g. quarterly NAV statements from a fund), enter just the valuation dates you have — Capitally will hold the last value forward between updates or interpolate them.
Custom assets carry a user-controlled valuation curve — enter one valuation, a handful, or a full price series, in any currency you paid in. Capitally holds the last valuation forward until the next update, and reconciles everything into your base currency for portfolio-level views.
You can add valuations one by one in the UI or paste / import a price table when you have a longer history (broker exports, appraisal records, prior-tracker data). Income and expenses on the asset (rent, maintenance, custodian fees) record separately from valuations and feed into the money-weighted return.
Walkthroughs: Tracking Real Estate and Tracking Collectibles.
Not on individual metrics. Threshold alerts (e.g. "ping me when AAPL crosses 200" or "when portfolio drawdown exceeds 10%") would require Capitally's servers to read your portfolio in real time, which the end-to-end encryption model deliberately prevents — your data is unreadable to us.
You can schedule recurring digest notifications instead: a daily, weekly, or monthly push notification on your phone or desktop summarising portfolio returns. Because of the encryption, we can't send it by email — your device computes the performance locally and displays it as a notification, so the encryption guarantee stays intact.
Committed Capital, Paid-In Capital, Unfunded Commitment, Funded Rate, DPI (Distributions to Paid-In), RVPI (Residual Value to Paid-In), TVPI (Total Value to Paid-In), and detailed cashflows including inflows, outflows, fees, and income. See Tracking Private Equity for how each metric is calculated and a full LP-fund lifecycle example.
Time-weighted return (TWR) strips out the effect of when you added or withdrew money — useful when you want to judge your strategy and compare against a benchmark. Money-weighted return (MWR), also called IRR, includes the timing of your cashflows — useful when you want to judge your actual investor return, including whether you got the timing right.
A simple example: if you held an ETF that returned 10% on a $1,000 starting balance but added another $9,000 right before a 5% drawdown, your TWR is still positive (the strategy did fine), but your MWR is roughly negative (you lost money in absolute terms because of the timing). Both are correct; they answer different questions.
Capitally can compute both metrics, for every account, every asset class, and the whole portfolio. Use TWR to compare your strategy against the S&P 500, MSCI World, or any custom benchmark. Use MWR/IRR to see what the portfolio actually did for you, dollar in, dollar out. Switch between them right in the portfolio dashboard. For the full methodology breakdown, see measuring investment performance.
Both rates can also be discounted by a benchmark — that's a separate move from comparing side-by-side. Discount by a CPI series for your real (after-inflation) return; by S&P 500 or MSCI World for your alpha; by a 10Y government bond yield for your premium over a near-risk-free rate. The discount applies uniformly to TWR, IRR, and ROI, so all three move from "nominal" to "real" or "excess" together. See discounting by a benchmark for the mechanics.
Capitally supports six cost-basis methods: FIFO (first-in, first-out), LIFO (last-in, first-out), HICO (highest cost first), LOCO (lowest cost first), Manual specific-lot identification, and Average Cost Basis (ACB) with both Asset and Asset+Account pooling. You can configure the method per project, per account, per asset, or per position — the most specific setting wins. See cost basis methods for full details and worked examples.
Manual specific-lot identification is the basis for tax-loss harvesting: when you sell a partial position, Capitally lets you pick which lots to close, shows the realised gain or loss for each combination, and updates the remaining cost basis accordingly. The choice flows into the country-specific capital-gains report so the tax document reflects the actual lots you closed.
Multi-currency cost basis is preserved at the trade currency, so cross-border investors see both the local-currency realised gain (what the broker reports) and the base-currency realised gain (what their home tax authority cares about). Built-in tax presets for Canada, the UK, Germany and other jurisdictions wire the right method automatically — e.g. ACB with Section 104 same-day and 30-day matching for the UK.
Yes. Because Capitally models option prices rather than pulling them tick-by-tick from an exchange, you can create a custom asset, attach options to it, and have Capitally compute fair value and Greeks (delta, theta, gamma, vega, rho) from its price history. This works even for options not listed on any exchange.
Capitally uses theoretical models with historical volatility, long-term dividend yield averages, and a configurable risk-free rate. Market prices may differ due to intraday volatility changes, supply/demand imbalances, or bid-ask spreads. The goal is consistent portfolio-level analytics rather than tick-by-tick replication of broker quotes.
Interactive Brokers (IBKR), Schwab and Swissquote are the natively supported brokers for options import today, including multi-leg trades, assignments, exercises, and adjusted strikes. Manual entry works for any broker, and the flexible importer can be configured against any CSV or XLS export.
If you trade options with a broker whose format isn't natively supported, send a sample file to support@mycapitally.com and we'll prioritise it. Self-built importers are also possible for users who want full control over the column mapping.
Capitally tracks margin requirements for sold options and short positions. You can customize margin percentages in Settings to match your broker's requirements. The margin requirement value shows the minimum portfolio value needed to cover your obligations. For sold options, the underlying asset's market value is multiplied by the percentage.
Yes. Each option contract appears as a lot under the underlying asset — Apple options sit alongside your Apple stock lots, with strike, expiry, contract count, and current Greeks shown per leg. The position-level view rolls equities and options into a single delta-adjusted exposure.
For active options trading, enable the dedicated Options tab in Settings: it gives a per-strategy view (covered calls, spreads, multi-leg structures) without losing the consolidated equity-plus-options picture on the main portfolio page. See the stock options feature page for an overview of what's tracked.
Yes. When a stock split occurs, Capitally automatically adjusts both the quantity and strike price of your option contracts to reflect the split. It will also properly handle both adjusted and unadjusted strike prices when importing transactions.
Stock options tracking is on the Captain plan, alongside private equity (DPI / TVPI), value-based pricing for managed accounts, lot groups, and unlimited projects. All plans start with a 14-day free trial — no credit card required. See the stock options feature page for what's tracked.
Yes. Each option contract carries its own Greeks — delta, theta, gamma, vega, and rho — computed from the underlying's price, the contract's strike and expiry, historical volatility, the long-term dividend yield, and a configurable risk-free rate. The portfolio rolls up to an exposure across equities and options together.
Greeks are visible at the contract level (per option), at the strategy level (covered call, vertical spread, iron condor, etc.), at the underlying level (all contracts on AAPL combined with the AAPL stock position), and at the portfolio level (total exposure across everything you hold).
Because Capitally models option prices rather than pulling them from an exchange, Greeks remain consistent over time and work even on illiquid contracts or options on custom underlyings — useful for retail investors building multi-leg strategies who want one consolidated view of theta decay, gamma risk, and net delta. See the stock options feature page for an overview.
Your financial data is end-to-end encrypted on your device with AES-GCM, using a key derived from your password — Capitally itself cannot decrypt it. We never connect to your broker or bank either: no Plaid, no Yodlee, no open-banking aggregator, no shared credentials. If our database were ever breached, the extracted data would be unreadable.
The CSV-only import path is also more accurate than aggregator sync. Broker exports usually go back to the day the account was opened and carry the corporate actions, dividend reinvestments and FX conversions that aggregators tend to drop — so cost basis stays auditable and returns reflect the real holding period.
We don't sell financial data, behavioural patterns, or any other personal information. Product analytics are limited to feature adoption and performance, are opt-out, and never include the size or value of your investments.
All servers and databases live in EU data centres, with TLS in transit, encryption at rest, and standard security practices on top of the per-user encryption. Export and permanent deletion are one-click operations inside the app — no email required.
For the full encryption model — including PBKDF2 key derivation, RSA-OAEP key wrapping, and how multi-device sync stays zero-knowledge — see the data safety guide.
Yes. You can export a filtered slice of your portfolio — selected positions, accounts, or transactions — to CSV, Excel, or Capitally's JSON format. The JSON export carries the underlying assets and accounts with it and can be re-imported into a separate Capitally account, useful when an advisor or accountant uses Capitally as well.
Live, read-only sharing of a portfolio subset is on the roadmap. Until then, exports are the privacy-preserving path: you decide exactly what leaves the encrypted store and in what format.
No. Capitally never connects to your bank or broker through Plaid, Yodlee, or any other open-banking aggregator — brokerage and banking credentials stay with you. There's no shared password, no read-only API token, no third party in the data path. See data safety for the full encryption and hosting model.
Imports go through CSV, Excel, paste from a spreadsheet, or manual entry. Most major brokers — Interactive Brokers, Degiro, TastyTrade, Schwab, Coinbase, Kraken, XTB, and many others — have native CSV presets, so the first import is usually a single-file upload. For brokers without a preset, the flexible importer maps columns to Capitally's transaction model on the fly.
There's also a precision advantage. Aggregators typically expose only current balances, or transactions from the past ~3 months — they rarely surface the full account history. Broker CSV exports usually go back to the day the account was opened and include the events that move cost basis: corporate actions, dividend reinvestments (DRIP), deposits and withdrawals, FX conversions. With that detail intact, returns calculate correctly over the actual holding period, cost basis is auditable lot by lot, and the data is ready for tax filing — not just a dashboard. Manual entry preserves the same fidelity for assets that have no broker feed at all.
The tradeoff: there's no auto-sync, so importing a new month of activity is a deliberate action you take, not something that happens silently in the background. That's the right fit for advanced DIY and HNW investors who want privacy and the data depth a third-party feed can't deliver — not the right fit for someone who explicitly wants a one-click aggregator dashboard.
Yes. Capitally is built and operated under GDPR. Servers and databases sit in EU data centres, and the underlying portfolio data is end-to-end encrypted on your device with AES-GCM — Capitally itself can't read it, so the GDPR data-minimisation and purpose-limitation principles are enforced at the cryptographic layer rather than just at the policy layer.
Export and permanent deletion are one-click operations inside the app, with no email or support ticket required. Export covers all your portfolio data - decrypted on your device, then saved as CSV, Excel, or JSON. Deletion permanently removes the encrypted store along with the surrounding metadata.
We don't transfer personal data outside the EU, don't sell or rent it, and don't run third-party advertising trackers on the app. See data safety for the encryption model, or the Privacy Policy for the full legal text.
Yes. Your portfolio is encrypted on your device with AES-GCM using a key derived from your password via PBKDF2 — the resulting key material is non-exportable WebCrypto, so it can't be read back even by Capitally's own application code. Our servers only ever see ciphertext. If the database were breached tomorrow, the extracted blobs would be mathematically unreadable.
Multi-device sync stays zero-knowledge through RSA-OAEP key wrapping: encrypted keys move between your devices, plaintext keys don't. Three encryption modes — User Password (default), Project Password (a separate password per project), or Remote Key (server-derived, lowest-friction) — let you pick the trade-off between key isolation and convenience.
Most other trackers describe themselves as "bank-level encrypted" or "military-grade". Both describe the same AES every web service has used for a decade, and neither says anything about who holds the keys. End-to-end encryption means only you hold them. For the full spec see data safety.
No. Your portfolio is end-to-end encrypted on your device with a key derived from your password — Capitally's own engineers, contractors, and infrastructure team cannot decrypt it. The servers store ciphertext only; the encryption keys never leave your devices and the key material itself is non-exportable, so even our application code cannot read it back out.
The same property protects you from a subpoena, a server breach, or a curious insider. There is nothing readable on our side to compel, exfiltrate, or browse — your holdings, transactions, account names, notes, and balances are all encrypted before they leave your device.
What we can see — and are transparent about — is non-portfolio metadata: operation type (transaction created, updated, deleted) and the timestamp of each change. That's necessary for sync to work, and it doesn't include amounts, instruments, or any text you write. Optional product analytics, also documented in data safety, are opt-in and never include investment values.
All Capitally servers and databases live in EU data centres — your encrypted data never leaves European jurisdiction. The infrastructure stack is Google Cloud Europe, Hetzner, MongoDB Atlas (EU regions), and Cloudflare's EU edge. There is no US CLOUD Act exposure, and GDPR and DORA apply by default rather than as an opt-in compliance layer.
What lands on those servers is ciphertext only. Your portfolio is encrypted on your device with a password-derived AES-GCM key before any sync — so "where the data is stored" describes where the encrypted blobs sit, not where your plaintext holdings sit. The plaintext only ever exists in memory on your own browser or device.
Industry-standard server hygiene sits on top of end-to-end encryption: TLS in transit, encryption at rest, need-to-know employee access, and access logs. The server hygiene is the floor; the encryption is what actually protects your data.
End-to-end encryption has a real trade-off: because only you hold the key, password recovery cannot rely on an email link that lets Capitally decrypt your data on your behalf. If we could do that, we could read your portfolio too — which would defeat the point.
To make this manageable, Capitally offers three encryption modes when you create a project, each with a different recovery model. User Password (default) ties decryption to your login password — the strongest privacy, but you are the only one who can recover the data. Project Password lets you set a separate, easier-to-remember password per project. Remote Key keeps the encryption key segregated on a dedicated endpoint that derives it on the fly from your credentials plus our private key — convenient recovery via the normal account-reset flow, at the cost of trusting our key segregation.
Practical advice: pick the mode that matches how you balance privacy against recovery friction, store your password in a reputable password manager, and export your portfolio periodically so a forgotten password is at worst an inconvenience, not a loss.
No. Server-side AI summarisation, recommendation, or "insight" features require servers that can read your portfolio in plaintext. Ours can't — the data is end-to-end encrypted on your device — so we don't ship those features, by architecture rather than by policy.
The trackers that do offer AI portfolio assistants typically store your holdings unencrypted on their servers, then pass them to a cloud language model that also retains some right to log, train on, or process the data. Even when the language-model contract forbids training, there is now an additional party who, given a breach or a lawful demand, can see your full portfolio.
Capitally takes the other side of that trade-off: cost basis, IRR, TWR, dividend forecasts, options Greeks, and tax calculations all run locally on your device against your decrypted data. No cloud model ever sees your holdings. This is also why Capitally does not surface a chatbot for your portfolio — and we think the absence is worth more than the convenience would be.
Capitally is built around three deliberate safety choices that put a hard floor under what can go wrong. Your portfolio is end-to-end encrypted on your device with AES-GCM and a password-derived key — so a server breach yields ciphertext, not holdings. Capitally never connects to your bank or broker through Plaid, Yodlee, or any other open-banking aggregator — your brokerage credentials stay with your broker, and the credential-sharing risk class is removed by design. And every server lives in the EU under GDPR and DORA — your data does not leave European jurisdiction.
What Capitally cannot protect against, and is transparent about: a supply-chain or man-in-the-middle attack that replaces our source code (mitigated by browser CSP and HTTPS, but no provider can claim full immunity), and unauthorised access on your own device if you don't protect your browser profile or your password manager.
For full detail — encryption spec, what we collect, what we don't, retention, and export — see the data safety guide. The Privacy Policy covers the legal side.