How to track dividend income across several brokers

One tracker as the ledger, each broker's dividend cash as the input. What breaks is one payment counted twice, and tax, DRIP and FX as separate rows.

Pick one tracker as the ledger and feed it each broker's record of the cash that actually arrived, not a calendar's estimate. Sharesight and Portfolio Performance store gross, tax and exchange rate per payment; Snowball Analytics and Portseido are lighter and dividend-first. What breaks is one payment arriving twice — generated from holdings and imported from the broker — and withholding, reinvested fractions and currency conversion landing as separate rows that no two brokers format alike.

The short way

Choose one place to be the ledger, and decide what goes into it before importing anything: the cash each broker says it paid you, or the dividends a tracker infers from what you held. Those are two different records of the same events, and most of the trouble with dividend tracking comes from running both at once.

The broker's record is the one to trust. Every broker's statement has a dividend line per payment, and most have the tax deducted from it somewhere nearby; that pair is what landed in the account. A tracker's generated dividend is a calculation — shares held, times the declared amount per share, converted at the tracker's own exchange rate — and it is right exactly as often as the tracker knows your share count, your tax treatment and the rate your broker dealt at.

In practice that means:

  1. Load the trades first, from each broker, so the tracker knows what you held and when. Getting the fills out is its own job, covered in exporting broker trade history.
  2. Then reconcile income, one broker at a time. If the tracker generates dividends from holdings, check each against the statement and correct the net and the tax. If you import the broker's dividend rows instead, switch generation off for that portfolio first.
  3. Keep one currency decision. Record each payment at the rate the broker actually converted at, or in the currency it was paid in if the broker did not convert — not at a reference rate picked later.

Sharesight is built around step 2: it generates dividends for the holdings you imported, marks them unconfirmed, and expects you to confirm or adjust each against your statement. Portfolio Performance is the free version of the same discipline with more typing — it reads broker PDF statements and records every dividend with its gross, tax, fees and exchange rate in one transaction.

What the options are

A tracker that generates and you confirm. Sharesight creates dividends and corporate actions from the quantity and holding period of what you imported, and calls them unconfirmed transactions until you have checked them; its own help page warns that some of the data, currency rates among it, may not match your records. It connects directly to Interactive Brokers, and to a set of mostly North American brokers through SnapTrade, and parses trade confirmation emails from over 200 more. For three countries it turns the result into a tax report, which is the reason to pay for it rather than anything on this page.

A ledger that stores what the statement says. Portfolio Performance generates nothing. A dividend is a transaction you import or type: date, optional ex-date, shares, amount per share, gross value, exchange rate when the security and the account differ in currency, fees and taxes, with the net computed as gross minus the last two. Its PDF importers read statements from more than 90 banks and brokers by the manual's count, with an Interactive Brokers Flex Query importer beside them; everything else is CSV. It is free, local, and as right as the documents you feed it.

A dividend-first tracker. Snowball Analytics is organised around the payout calendar and forward income rather than the ledger, across 70-plus exchanges. Brokerage linking needs the paid plan, and the card records that connections usually surface only 90 to 200 days of transactions — enough for next quarter's calendar, not for last year's income. Portseido detects dividends from imported trades inside a general tracker, per holding and per currency, with withholding tax as a portfolio-level setting.

A German-market specialist. DivvyDiary imports automatically from Trade Republic, Scalable, Consorsbank, Parqet and Portfolio Performance, and applies a flat personal tax rate and allowance rather than any country's actual rules; the net-dividend view is on the paid plan. Its import from Portfolio Performance is the useful part for anyone else: keep the ledger in one tool and use the other for the calendar.

Where this breaks

The same payment, twice. A tracker that generates dividends from holdings and an import that also carries the broker's dividend rows will both record the payment, and nothing flags it — the income figure is simply double. It happens most often after switching a portfolio from one method to the other, or after adding a broker connection to a portfolio that already has imported history. Sharesight's answer is the unconfirmed state: a generated dividend can be rejected for a payment you recorded yourself. The cheap test is one holding, one year, counted by hand against the statement.

Withholding is a separate row, on its own date. The tax is often reported apart from the dividend. Interactive Brokers' activity statement has a Withholding Tax section of its own — date, description, amount, totalled per currency — apart from the dividends, so an importer that reads one section and not the other books the gross as if it were cash, or the tax as if it were a fee. What the gross, net and reclaimable figures each mean is in withholding; the mechanical point here is that a tracker's withholding setting is a forecast, and the statement's withholding row is the record, and only the second belongs in last year's income.

Accruals are not income yet. The same IBKR statement carries a dividend accruals section with both an Ex Date and a Pay Date column, where an accrual is posted and later reversed — one of the documented reasons for a reversal is payout in cash. An importer that treats a posted accrual as a dividend counts it once on the accrual and again on the payment.

Ex-date and pay date answer different questions. Who is entitled is settled by the ex-date: buy on it or after and the seller gets the dividend, per the SEC's own explanation. When the cash arrives is the pay date, which can be weeks later. So a position sold after the ex-date still receives a payment after it has left the portfolio, and a tracker that generates dividends from what you hold on the pay date will miss it. A tracker that books income on the ex-date shows cash that has not arrived, and near a year end can put it in a different year from the one the cash arrived in. For a special dividend of a quarter of the share price or more, the ex-date moves to after the payment, which breaks any rule that assumed the usual order.

Reinvested dividends leave fractions. A DRIP turns one cash event into two — the dividend and a purchase — and the purchase is often of a fractional share, or of whole shares with a residual carried to the next payment. Sharesight offers five rounding rules for its automatic reinvestment, from round down, through round down and track the balance, to no rounding at all for fractional plans; pick the wrong one and the share count drifts by a fraction each quarter, and every dividend generated from that count afterwards is off by the same drift. The reinvestment is also a purchase at its own price, so it changes the cost of the holding — which matters when the shares are sold, not now.

FX is a rate someone chose. A dollar dividend credited to a euro account was converted at whatever rate the broker dealt at, with any conversion margin inside it; a tracker that converts at a reference rate for that day will disagree with it by a small amount on every payment. An account that holds several currencies may not convert at all, and then the dollars sit in a dollar balance until you move them. Portfolio Performance puts the exchange rate on the dividend transaction itself, which is where it belongs; record the rate the statement shows, and let the tracker's reference rate value the holding rather than rewrite the income.

If you outgrow this

When the number goes on a tax return, a tracker's dividend total is a starting point, and the broker's year-end tax documents are the record the authority will compare you against. Among the trackers on this page, only Sharesight produces reports shaped for filing, and only for Australia, New Zealand and Canada. Reclaims are covered under withholding, not here.

When income is the question rather than the ledger, the forward calendar and projected annual figure are what Snowball Analytics, Stock Events and DivvyDiary are for. Keep the ledger elsewhere and let one of these read it.

When you want it in a program, the dividend rows are available over an aggregation API rather than a file: SnapTrade returns account activities including dividends, and the rest are in brokerage account aggregation. The same double-count and withholding problems move into your code with them.

When the return, not the income, is what you want to know, dividends have to be modelled as cash flows rather than totalled, which is what time-weighted return is for.

The rest of the category is portfolio trackers.

The tools that do this

In the order this page recommends trying them. Paid placement does not affect this order.

  1. Sharesight

    Generates dividends from your holdings as unconfirmed rows to check against each statement. Automatic DRP with five rounding modes, fractional included.

    Money-weighted portfolio tracking with real ATO, IRD and CRA tax reports.

    $9.33/moFree tier

  2. Portfolio Performance

    Free desktop ledger. Each dividend stores gross, tax, fees, exchange rate and an optional ex-date, read from the PDF statements of 90-plus banks.

    Free open-source desktop tracker that reads your bank's PDF statements.

    €3/moFree tierOpen source

  3. Snowball Analytics

    Dividend-first, 70+ exchanges. Broker linking is paid and usually reaches 90–200 days back, so older payments come from statement imports.

    A dividend calendar and forward-income projection wrapped around a portfolio tracker.

    $7.99/moFree tier

  4. Portseido

    Detects dividends from imported trades across currencies. Withholding is one portfolio-level setting, not a per-payment record.

    Multi-currency tracking for portfolios spread across several brokers and countries.

    $10/moFree tier

  5. DivvyDiary

    For German brokers — imports from Trade Republic, Scalable, Consorsbank, Parqet or Portfolio Performance. Net-dividend maths is on the paid plan.

    A personal dividend calendar and forward income figure, built around German brokers.

    €9.99/moFree tier

FAQ

Why does my tracker show more dividend income than my broker?

Usually because the same payment is in it twice — once generated from your holdings and once imported from the broker — or because it is showing the gross amount where the broker shows net of withholding. Check one holding for one year against the statement; the difference will be one of those two, or a currency conversion at a different rate.

Should dividend income be dated by the ex-date or the pay date?

For cash in hand, the pay date — that is when the money arrived. The ex-date decides who is entitled, so it explains why a position you have already sold still pays you, but income booked on it shows cash that has not yet arrived. Which date a tax authority uses is a question for that authority.

Can I just set a withholding percentage and skip the tax rows?

For a forecast, yes; that is what the setting is for. For last year's income, no. The rate actually deducted depends on the issuer's country, your residence and the paperwork your broker holds, and it can differ between two holdings that the setting treats the same. The statement's tax row is the record.

Sources

  1. Automatically generated dividends and adjustments — Sharesight Help — Sharesight,
  2. Adjust a dividend — Sharesight Help — Sharesight,
  3. Dividend reinvestments — Sharesight Help — Sharesight,
  4. Dividend — Portfolio Performance Manual — Portfolio Performance,
  5. Ex-Dividend Dates: When Are You Entitled to Stock and Cash Dividends — U.S. Securities and Exchange Commission (Investor.gov), read
  6. Withholding Tax — Default Activity Statement — Interactive Brokers, read
  7. Change in Dividend Accruals — Default Activity Statement — Interactive Brokers, read

The catalogue next door

This page names a handful of cards. The rest of them are in Stock Portfolio Trackers, each filled in against the same schema, with the fields to narrow it yourself.

Last updated . Corrected in place: this is a reference page, not a dated post.