All field notes

Tutorial

How to Sync Brokerage Holdings to Google Sheets Automatically (2026)

Connect a brokerage account and automatically sync holdings, trades, balances and settled cash to Google Sheets—without repeated CSV exports.

By BankSync10 min read
Brokerage holdings, trades, balances and activity flowing through a secure sync into Google Sheets and portfolio reporting

Most brokerages let you download a CSV, but that still leaves you with a manual export, inconsistent columns and a portfolio tracker that is out of date as soon as the file is saved.

A cleaner approach is to connect the brokerage once, send holdings and trades into separate Google Sheets tabs, map the fields you actually use, and run the feeds on a schedule. BankSync supports this workflow for compatible brokerage accounts through a read-only connection.

This guide explains the setup, the data you can expect, the limitations to plan for, and how to structure the spreadsheet so repeated syncs do not break your formulas.

What you can sync from a brokerage

BankSync treats investment data differently from ordinary bank transactions. Each feed carries one data type, so holdings, trades and balances should be modelled separately rather than forced into one mixed table.

Brokerage data available for spreadsheet feeds

Feed typeTypical dataBest spreadsheet use
HoldingsSymbol, security name, quantity, current price, market value, cost basis, unrealised gain or loss, settled cashCurrent portfolio dashboard, allocation analysis and net-worth reporting
TradesTrade date, symbol, buy or sell type, quantity, price, total, fees, dividends and transfersActivity log, dividend tracking, tax preparation and trade analysis
BalancesAccount-level cash and total values where supportedAccount summary and historical balance tracking
Account detailsBrokerage account name and account typeFiltering, consolidation and account-level reporting

Exact fields and history depend on the brokerage and the data its connection makes available.

Before you start

You need:

  • A BankSync account.
  • A brokerage login and any required two-factor authentication method.
  • A Google account with permission to edit the destination spreadsheet.
  • At least one brokerage account that exposes holdings or trade data through the available connection.

Confirm that you can sign in to the brokerage directly before starting. If the broker requires re-authentication, an expired session can leave the connection showing an older snapshot until you reconnect it.

How to sync brokerage holdings to Google Sheets

  1. Connect the brokerage

    Open the Banks area in BankSync, choose Connect a new bank, search for the brokerage and select the investment result. Sign in through the secure brokerage connection window, complete any two-factor prompt and grant read-only access.

  2. Connect Google Sheets

    Add Google Sheets as an integration and authorise the Google account that owns or can edit the destination spreadsheet. You can also install the BankSync Google Sheets add-on and create the feed from the spreadsheet sidebar.

  3. Create a Holdings feed

    Create a new feed, select the connected investment accounts and choose Holdings as the data type. Use a dedicated tab such as Holdings rather than writing directly into a dashboard tab.

  4. Choose the spreadsheet and sheet

    Select the destination spreadsheet, choose the exact worksheet and confirm the header row. Keep the synced data tab separate from formulas, charts and manual notes.

  5. Map the fields

    Map source fields to Google Sheets column letters. Include Account and, where available, Brokerage so the same table can hold positions from multiple accounts without losing source context.

  6. Choose append or overwrite behaviour

    Use overwrite when the sheet should show only the latest portfolio state. Use append when you deliberately want time-stamped snapshots for historical analysis. Holdings are point-in-time data, so the correct choice depends on whether you need current state or a history series.

  7. Schedule and test the feed

    Set an available hourly, daily, weekly or monthly cadence, then run the feed manually once. Check the resulting rows, confirm numeric fields are stored as numbers, and review the sync-job result before building formulas on top.

  8. Create a separate Trades feed

    If you need buys, sells, dividends, fees or transfers, create another feed using Trades. Send it to its own tab and backfill the available history on the first run.

The brokerage connection flow used before creating a holdings or trades feed.

The most reliable workbook separates raw synced rows from calculations. A practical structure is:

  • Holdings — current positions or periodic snapshots.
  • Trades — buys, sells, dividends, transfers and fees.
  • Accounts — optional account-level balances and metadata.
  • Dashboard — formulas, pivots and charts that reference the synced tabs.
  • Mapping notes — optional documentation for custom fields and account labels.

This separation matters because a re-sync should update data, not overwrite your formulas. It also makes it easier to rebuild a feed without rebuilding the dashboard.

Suggested holdings columns

ColumnPurposeExample
As ofSnapshot or sync date2026-07-22
AccountSource brokerage accountIndividual brokerage
SymbolSecurity ticker or identifierAAPL
Security nameReadable asset nameApple Inc.
QuantityUnits currently held18
Current priceLatest value supplied by the brokerage connection213.89
Market valueCurrent position value3850.02
Cost basisRecorded acquisition cost where available3410.00
Unrealised gain/lossDifference between value and cost basis where available440.02
CurrencyPosition currencyUSD

The actual available field set varies by brokerage. Map only fields your connection exposes and your analysis needs.

Overwrite or append: which should you choose?

For a live portfolio dashboard, overwrite is usually the simpler choice. The holdings tab stays compact and represents the latest state of each position.

Choose append when you want to preserve each snapshot and calculate changes over time. That produces a larger table, but it gives you a dated history for allocation, concentration and account-value analysis.

Trades behave differently. They are event records, so the first run can backfill available history and later runs add new activity. BankSync deduplicates trades using the provider's unique identifier, which helps prevent duplicate rows when date ranges overlap or a run is repeated.

Choosing the right feed design

FeatureNeedRecommended setup
Current portfolio onlyHoldings feed in overwrite mode
Portfolio historyHoldings feed in append mode
Buys, sells and dividendsSeparate Trades feed
Portfolio dashboardSeparate Dashboard tab

Data freshness and brokerage limitations

A brokerage spreadsheet is only as current as the data the brokerage exposes. Some connections return live positions and balances at sync time; others return the broker's most recent snapshot rather than tick-by-tick market data.

That distinction matters. BankSync can automate retrieval and delivery, but it does not convert delayed brokerage data into a live market-data terminal.

Other limitations to allow for:

  • Available brokerages, account types and fields vary.
  • Cost basis or unrealised gain may be missing for some accounts.
  • Historical trade lookback varies by brokerage.
  • A degraded or expired brokerage session may continue returning the last successful snapshot.
  • Complex products can expose fewer standardised fields than listed equities or ETFs.
  • Holdings, trades and balances remain separate feed types.

When figures stop changing, reconnect the brokerage and run the feed again before assuming there were no portfolio movements.

Useful formulas once the data lands

Once holdings are in a clean table, the spreadsheet can calculate portfolio-level metrics without editing the synced rows.

For example, if market value is in column G:

``text =SUM(Holdings!G:G) ``

To calculate each position's portfolio weight, divide its market value by the total market value:

``text =G2/SUM($G$2:$G) ``

To summarise by account or symbol, use a pivot table rather than hand-built subtotal rows inside the synced sheet. That keeps the destination range predictable and easier to troubleshoot.

When a direct brokerage feed is better than CSV exports

A scheduled feed is most useful when you:

  • Track more than one investment account.
  • Maintain a recurring portfolio dashboard.
  • Need holdings and trade data in a consistent schema.
  • Regularly reconcile dividends, fees or transfers.
  • Share a reporting workbook with an adviser, accountant or household member.
  • Want the spreadsheet to refresh without logging into every brokerage.

A CSV export can still be sufficient for a one-off tax calculation, an unsupported brokerage or a workbook that is updated only once a year. Automation is valuable when the repeated process—not the single export—is the real problem.

Frequently asked questions

Build the spreadsheet around the feed, not the other way around

The strongest setup is deliberately simple: one holdings tab, one trades tab, clear account fields and a separate dashboard. Once that foundation is stable, you can add allocation charts, dividend summaries, tax views or consolidated net-worth reporting without touching the incoming data.

For an end-to-end view of the underlying setup, see BankSync's guides to connecting brokerages, configuring field mappings, creating your first feed and syncing trades.

Recommended spreadsheet architecture separating brokerage holdings, trades, account references and dashboard calculations
Keep raw brokerage feeds separate from reference data, calculations and portfolio dashboards.

Keep reading

Related field notes