The adjusted cost base (ACB) is used to determine the capital gain for personal income tax in Canada. It's generally simple to calculate, but there are some nuances.

Beware: I am not a tax professional. I'm barely even a tax amateur.

## Capital gains

When selling a capital property (e.g. a stock or a house), one either has a capital gain or loss, depending on one's luck. In principle, the capital gain is simple to calculate: take the amount you got for selling the property, and subtract how much you originally paid for it (including all fees from buying and selling). For identical properties, there might not be a single "how much you originally paid for it" if they came from different lots, which is why the ACB is needed.

In many cases, it's not even necessary to perform any calculations, as the final result is provided on various information slips; however, for securities, it's a little more DIY. Although form T5008 Statement of Securities Transactions exists, it's not mandatory:

Your investment dealer (for example, bank, broker, or fund company) may issue a customized statement listing your dispositions and redemptions, rather than a T5008 information slip.

And the values you need aren't guaranteed to be reported to you:

If the ACB does not appear on any information slips received, consult your records of the acquisition of the units or shares.

T5008 itself agrees with this:

The amount in box 20 may or may not reflect your adjusted cost base (ACB) for the purpose of determining the gain or loss from the disposition of the security. You are required to make the adjustments, as needed, to the amount indicated in box 20, at the time of determining and reporting your gain or loss from the disposition.

Thus, the only way to be sure about capital gains is to manually keep track of the ACB for each asset.

## Definition

Annoyingly, the CRA is inconsistent about which quantity it refers to as the ACB. Sometimes it's the average cost per unit:

The new ACB is calculated by dividing the total cost of the shares of STU Ltd. (\$1,500 + \$3,000 = \$4,500) by the total number of shares she has purchased (100 + 150 = 250). Therefore, the ACB is \$18.00 (\$4,500 ÷ 250).

Other times, it's the total cost for all units in a sale:

To calculate the ACB of the units or shares sold or redeemed, multiply the average cost per unit of all units or shares held immediately before the sale or redemption by the number of units or shares redeemed (see Chart 1).

This page uses the former, but it's worth noting that Schedule 3 uses the latter.

## Calculating the ACB

At its core, the ACB is the average unit cost of the individual lots which have been purchased, weighted according to the remaining sizes of the lots. Calculating this average requires only knowledge of the inventory at any given time (original lot prices and how many units remain from each lot), with sales removing (fractional) units evenly from each lot.

The CRA adds some complications to this, which make the ACB conceptually less straightforward, but easier to keep track of by hand. Instead of being a plain weighted average, it is subject to intermediate rounding and rules about when it should be updated.

The ACB is adjusted at time of purchase:

You may buy and sell the same type of property (for example, units of a mutual fund trust or publicly traded shares) over a period of time. If so, you have to calculate the average cost of each property in the group at the time of each purchase to determine the adjusted cost base (ACB).

but not at time of sale:

Dispositions of identical properties do not affect the ACB.

As promised, the resulting procedure is easy to carry out. There are three values to track: the total cost, the number of units, and the ACB.

1. Increase the total cost by the cost of the new assets (quantity × price per unit), plus any fees.
2. Increase the number of units by the number of units obtained.
3. Divide the total cost by the number of units and round to the nearest cent to get the ACB.

When selling:

1. Decrease the total cost by the cost of the sold assets (quantity × ACB).
2. Decrease the number of units by the number of units sold.
3. Leave the ACB alone.

### Stock splits

When a stock splits (or consolidates), the total cost doesn't change, but the number of units does. Hence:

1. Don't alter the total cost.
2. Scale the number of units appropriately.
3. Recalculate the ACB.

### Return of capital

Because a return of capital is money that you paid being given back to you (possibly, but not necessarily, shown in box 42 of a T3), it decreases the total cost without affecting the number of units. Hence:

1. Subtract the returned amount from the total cost.
2. Don't alter the number of units.
3. Recalculate the ACB.

If the change in capital is negative, the amount is still subtracted, making the total cost larger.

### Negative ACB

If the ACB drops below zero, the total cost is reset to zero, and the amount by which it was negative counts as a capital gain.

### Foreign currency

Gains and losses are reported in Canadian dollars. If any transaction was carried out in a foreign currency, the rules are simple: everything (including returns of capital) is converted to Canadian dollars at the time the transaction took place. The CRA links to the Bank of Canada exchange rates page, which provides rates going back to 2017, so presumably those are the ones to use.

## Examples

price Δ qty Δ cost Σ qty Σ cost ACB gain
1 \$15.00 +100 +\$1,500.00 100 \$1,500.00 \$15.00
2 \$20.00 +150 +\$3,000.00 250 \$4,500.00 \$18.00
3 \$19.00 -200 -\$3,600.00 50 \$900.00 \$200.00
4 \$21.00 +350 +\$7,350.00 400 \$8,250.00 \$20.63

The change in cost after a sale does not depend on the price at which the units were sold! Only the ACB matters for adjusting the total cost on row 3.

price Δ qty Δ cost Σ qty Σ cost ACB gain
1 \$18.00 +833.3333 +\$15,000.00 833.3333 \$15,000.00 \$18.00
2 \$19.55 +59.8466 +\$1,170.00 893.1799 \$16,170.00 \$18.10
3 \$20.63 +70.5429 +\$1,455.30 963.7228 \$17,625.30 \$18.29
4 \$19.29 -400.0000 -\$7,316.00 563.7228 \$10,309.30 \$400.00
5 \$19.89 +36.2821 +\$721.65 600.0049 \$11,030.95 \$18.38

We can be fairly confident that the CRA intends for the ACB to be rounded on row 3, because scaling the exact amount by -400 and only then rounding it would result in a change in cost of -\$7,315.38 on row 4.

Note that the intermediate rounding affects the final ACB in this example. The proper weighted average of the lots is approximately \$18.38559, which would round to \$18.39 instead of \$18.38:

Unit cost Relative weight Approx. contribution
\$18.00 833.3333 × (1 - 400.0000 ÷ 963.7228) \$14.6234522
\$19.55 59.8466 × (1 - 400.0000 ÷ 963.7228) \$1.1406303
\$20.63 70.5429 × (1 - 400.0000 ÷ 963.7228) \$1.4187674
\$19.89 36.2821 \$1.2027418
Total \$18.3855917

price Δ qty fee Δ cost Σ qty Σ cost ACB gain
1 \$14.75 +1,355.9322 +\$20,000.00 1,355.9322 \$20,000.00 \$14.75
2 \$16.40 +87.0622 +\$1,427.82 1,442.9944 \$21,427.82 \$14.85
3 \$17.29 +289.1845 +\$5,000.00 1,732.1789 \$26,427.82 \$15.26
4 \$13.77 +69.8700 +\$962.11 1,802.0489 \$27,389.93 \$15.20
5 \$17.42 -200.0000 \$70.00 -\$3,040.00 1,602.0489 \$24,349.93 \$374.00
6 \$15.00 +50.0000 +\$750.00 1,652.0489 \$25,099.93 \$15.19
7 -\$500.00 1,652.0489 \$24,599.93 \$14.89

The fee on the sale on row 5 is incorporated into the gain, but not into the total cost. The return of capital on row 7 affects the total cost, but not the number of units.

The CRA examples don't have fees on purchases, but including them doesn't make matters any more difficult:

price Δ qty fee Δ cost Σ qty Σ cost ACB gain
1 \$10.00 +1 \$5.00 +\$15.00 1 \$15.00 \$15.00
2 \$11.00 +2 \$5.00 +\$27.00 3 \$42.00 \$14.00
3 \$12.00 -2 -\$28.00 1 \$14.00 -\$4.00
4 \$13.00 +1 \$5.00 +\$18.00 2 \$32.00 \$16.00
5 \$18.00 -1 \$1.00 -\$16.00 1 \$16.00 \$1.00

Note how the sale on row 3 results in a capital loss due to the fees on rows 1 and 2, even though the price of the asset went up and there were no fees on the sale itself. By row 5, the price has gone up enough to make a profit of \$2.00, but the fee eats into the gains.

The rounding of the ACB can lead to slight discrepancies. There can be a residual total cost, even though all the units are sold:

price Δ qty Δ cost Σ qty Σ cost ACB gain
1 \$5.00 +1 +\$5.00 1 \$5.00 \$5.00
2 \$2.50 +2 +\$5.00 3 \$10.00 \$3.33
3 \$4.33 -3 -\$9.99 0 \$0.01 \$3.00

If the rounding goes the other way, the residual can be negative:

price Δ qty Δ cost Σ qty Σ cost ACB gain
1 \$6.00 +1 +\$6.00 1 \$6.00 \$6.00
2 \$2.50 +2 +\$5.00 3 \$11.00 \$3.67
3 \$4.67 -3 -\$11.01 0 -\$0.01 \$3.00

Presumably, these anomalous amounts should be disregarded by resetting the total cost to zero whenever the number of units is zero.

In principle, recalculating the ACB after a sale ought to have no impact on anything, but it can affect the gains, thanks to rounding:

price Δ qty Δ cost Σ qty Σ cost ACB gain
1 \$5.00 +1 +\$5.00 1 \$5.00 \$5.00
2 \$2.50 +2 +\$5.00 3 \$10.00 \$3.33
3 \$4.33 -1 -\$3.33 2 \$6.67 \$3.34 \$1.00
4 \$4.33 -1 -\$3.34 1 \$3.33 \$3.33 \$0.99
5 \$4.33 -1 -\$3.33 0 \$0.00 \$1.00

According to the CRA's rules, the final three rows should actually be

price Δ qty Δ cost Σ qty Σ cost ACB gain
3 \$4.33 -1 -\$3.33 2 \$6.67 (\$3.33) \$1.00
4 \$4.33 -1 -\$3.33 1 \$3.34 (\$3.33) \$1.00
5 \$4.33 -1 -\$3.33 0 \$0.01 \$1.00

The total gain is \$3.00, not \$2.99, which matches the earlier example where all 3 units were sold simultaneously.

## Summary

It looks like the rules for keeping track of the ACB (total cost ÷ number of units) distill to the following:

• Every time something happens, update the total cost (in CAD) and the number of units.
• If the number of units is zero, reset the total cost to zero.
• If the total cost is negative, reset it to zero.
• If the event wasn't a sale of units, recalculate the ACB, rounding to the nearest cent.