{
  "version": "2026-10-17.1",
  "checked": "2026-10-17",
  "scope": "Eight selected tracking workflows; native providers not authenticated; no whole-market ranking.",
  "tools": [
    {
      "id": "sharesight",
      "name": "Sharesight",
      "mode": "Hosted service",
      "permanentFree": true,
      "cost": "Free: one portfolio and ten holdings, including closed holdings. US Starter 9.33 USD monthly or 7 USD/month on annual billing; taxes may apply.",
      "workflow": "Imports and portfolio reporting; advanced multi-currency valuation depends on plan.",
      "summary": "A hosted portfolio ledger with holding limits and plan-specific reports. The free holding count includes investments already sold.",
      "limits": "Do not infer every report in the feature table belongs to Free. Current pricing FAQ distinguishes basic reporting from paid diversity, exposure and advanced currency reports. Region and billing basis matter.",
      "verificationTask": "Count open and closed securities, import one dividend/fee example and reconcile a sale plus a foreign-currency holding before migrating.",
      "sources": [
        "sharesight"
      ]
    },
    {
      "id": "portfolio-performance",
      "name": "Portfolio Performance",
      "mode": "Desktop",
      "permanentFree": true,
      "cost": "Open-source desktop software; data-provider, device and optional ecosystem services are separate.",
      "workflow": "Transaction history, cash accounts, TTWROR/IRR, allocation, XML storage and CSV/JSON export.",
      "summary": "A desktop transaction-ledger workflow for investors who want explicit cash flows and portable local records.",
      "limits": "Calculated performance depends on complete dated trades, fees, taxes and transfers. Desktop availability does not establish every mobile feature or data feed is free. Backup the source data and verify quote-provider terms.",
      "verificationTask": "Reconcile a deposit, purchase, fee, dividend and sale. Compare money-weighted and time-weighted outputs on the same dated flows, then test export and restore.",
      "sources": [
        "pp",
        "pp-code"
      ]
    },
    {
      "id": "ghostfolio",
      "name": "Ghostfolio",
      "mode": "Self-hostable",
      "permanentFree": true,
      "cost": "Open-source self-hosted edition; hosted subscription, infrastructure and data entitlements are separate.",
      "workflow": "Self-hosted wealth tracking with investments, accounts and analytical views; deployment maintenance is your responsibility.",
      "summary": "A self-hostable portfolio application for users who want control of their instance and storage.",
      "limits": "Self-hostable is not the same as offline: quote and market-data integrations may contact external services. Hosting, backups and upgrades have operating costs. Hosted-plan pricing and account sync are not verified here.",
      "verificationTask": "Inspect the current licence and deployment configuration. Import a copied example, check missing-price handling and verify a database backup can restore your instance.",
      "sources": [
        "ghost"
      ]
    },
    {
      "id": "snowball-analytics",
      "name": "Snowball Analytics",
      "mode": "Hosted service",
      "permanentFree": true,
      "cost": "Free: one portfolio, ten holdings, one custom holding. Paid checkout and billing period must be checked; ambiguous zero monthly placeholders are not quoted.",
      "workflow": "Broker report imports on Free; linked brokerage and advanced rebalancing belong to paid tiers.",
      "summary": "A hosted tracking and dividend workflow with a distinct permanent Free plan and trial access.",
      "limits": "The current rendered pricing page contains zero monthly placeholders alongside nonzero annual amounts. We do not treat those placeholders as free paid plans. Feature and holding limits still apply after a trial.",
      "verificationTask": "Reconcile one imported broker report and export holdings/transactions. Check the desired brokerage-link tier and whether received dividends differ from forecast dividends.",
      "sources": [
        "snowball"
      ]
    },
    {
      "id": "delta",
      "name": "Delta",
      "mode": "Mobile-led",
      "permanentFree": null,
      "cost": "Current free versus paid allowances depend on the selected app tier; no exact price or permanent full free entitlement asserted.",
      "workflow": "Investment tracking through mobile-led portfolio views and supported connection/manual workflows.",
      "summary": "A mobile-first investment-tracking option for users who want account and asset views in an app.",
      "limits": "A free download or get-started call to action does not establish unlimited accounts, refresh frequency or all analytics. Verify current operating system, regional connections and export options in the selected plan.",
      "verificationTask": "Start with one copied position and a fee-bearing transaction. Compare quote timestamps, currency display and export access before connecting a real account.",
      "sources": [
        "delta"
      ]
    },
    {
      "id": "stock-events",
      "name": "Stock Events",
      "mode": "Mobile-led",
      "permanentFree": null,
      "cost": "Inspect current app subscription and holding limits; selected home-page features do not establish full free entitlement.",
      "workflow": "Portfolio and dividend-event tracking; distinguish forecast calendars from actual received payments.",
      "summary": "An app-oriented workflow for following holdings, dividend dates and portfolio-related events.",
      "limits": "A forecast distribution calendar is not a reconciled cash ledger. Check whether displayed income is gross, net of withholding or estimated; verify holdings and historical transaction limits.",
      "verificationTask": "Compare a dividend calendar entry with the payment on your broker statement and inspect a withholding adjustment. Export a small example if supported by the selected tier.",
      "sources": [
        "stockevents"
      ]
    },
    {
      "id": "kubera",
      "name": "Kubera",
      "mode": "Hosted service",
      "permanentFree": null,
      "cost": "Current subscription and connected-institution coverage require plan/checkout verification; exact price not established here.",
      "workflow": "A broad balance-sheet and wealth view rather than only a listed-stock trade journal.",
      "summary": "A hosted wealth-tracking workflow for combining different categories of assets and obligations.",
      "limits": "A net-worth dashboard and a security return ledger answer different questions. Connection coverage and manual valuations need checking; automatic account aggregation is not established for every institution or region.",
      "verificationTask": "Check one connected asset and one manually valued asset, along with valuation date and export format. Keep an independent source record and review access revocation.",
      "sources": [
        "kubera"
      ]
    },
    {
      "id": "rotki",
      "name": "Rotki",
      "mode": "Desktop",
      "permanentFree": true,
      "cost": "Open-source local application; premium features, third-party APIs and integrations have separate terms.",
      "workflow": "Local-first crypto and financial-history accounting using supported exchanges, chains and manual records.",
      "summary": "A local-first option for reviewing crypto-related balances and history without treating every position as a simple listed-stock holding.",
      "limits": "Local data storage does not mean external blockchain/API requests never occur. Chain support, historical event classification and premium limits vary. No tax-jurisdiction acceptance or authenticated exchange integration was tested.",
      "verificationTask": "Inspect current licence and supported chain/exchange, then reconcile a transfer between your own accounts before treating it as income or spending. Test data backup and export.",
      "sources": [
        "rotki"
      ]
    }
  ],
  "sources": {
    "sharesight": {
      "title": "Sharesight US plans and holdings limits",
      "url": "https://www.sharesight.com/us/pricing/",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/sharesight.html"
    },
    "pp": {
      "title": "Portfolio Performance transaction, return and export workflows",
      "url": "https://www.portfolio-performance.info/en/",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/pp.html"
    },
    "pp-code": {
      "title": "Portfolio Performance official source repository",
      "url": "https://github.com/portfolio-performance/portfolio",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/pp-code.html"
    },
    "ghost": {
      "title": "Ghostfolio official repository and self-hosting",
      "url": "https://github.com/ghostfolio/ghostfolio",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/ghost.html"
    },
    "snowball": {
      "title": "Snowball Analytics free and paid entitlements",
      "url": "https://snowball-analytics.com/pricing",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/snowball.html"
    },
    "delta": {
      "title": "Delta investment tracker",
      "url": "https://delta.app/en",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/delta.browser-note.txt",
      "access": "web retrieved, direct urllib blocked"
    },
    "stockevents": {
      "title": "Stock Events investment and dividend tracking",
      "url": "https://stockevents.app/en",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/stockevents.html"
    },
    "kubera": {
      "title": "Kubera balance-sheet and wealth tracking",
      "url": "https://www.kubera.com/",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/kubera.html"
    },
    "rotki": {
      "title": "Rotki official repository and local accounting scope",
      "url": "https://github.com/rotki/rotki",
      "checked": "2026-10-17",
      "snapshot": "source-snapshots/rotki.html"
    }
  }
}