Skip to main content

A CLI tool to calculate your capital gains

Project description

Canadian Capital Gains CLI Tool

Build Status codecov

Calculating your capital gains and tracking your adjusted cost base (ACB) manually, or using an Excel document, often proves to be a laborious process. This CLI tool calculates your capital gains and ACB for you, and just requires a CSV file with basic information about your transactions. The idea with this tool is that you are able to more or less cut-and-copy the output that it genarates and copy it into whatever tax filing software you end up using.

Features:

  • Supports transactions with multiple different stock tickers in the same CSV file, and outputs them in separate tables.
  • Currently supports transactions done in both USD and CAD. For USD transactions, the daily exchange rate will be automatically fetched from the Bank of Canada.
  • Will automatically apply superficial capital loss rules when calculating your capital gains and ACB. This tool only supports full superficial capital losses, and does not support partial superficial losses. In sales with a superficial capital loss, the capital loss will be carried forward as perscribed by the CRA. A sale with a capital loss will be treated as superficial if it satisifies the following:
    • Shares with the same ticker were bought in the 61 day window (30 days before or 30 days after the sale)
    • There is a non-zero balance of shares sharing the same ticker at the end of the 61 day window (30 days after the sale)
  • Outputs the running adjusted cost base (ACB) for every transaction with a non-superficial capital gain/loss
  • Supports fractional quantities of shares

Installation

# To get the latest release
pip install cad-capgains

CSV File Requirements

To start, create a CSV file that will contain all of your transactions. In the CSV file, each line will represent a BUY or SELL transaction. Your transactions must be in order, with the oldest transactions coming first, followed by newer transactions coming later. The format is as follows:

<yyyy-mm-dd>,<description>,<stock_ticker>,<action(BUY/SELL)>,<quantity>,<price>,<commission>,<currency>

Here is a sample CSV file:

# sample.csv
2017-2-15,ESPP PURCHASE,GOOG,BUY,100,50.00,10.00,USD
2017-5-20,RSU VEST,GOOG,SELL,50,45.00,0.00,CAD

NOTE: This tool only supports calculating ACB and capital gains with transactions dating from May 1, 2007 and onwards.

Usage

To show the CSV file in a nice tabular format you can run:

$ capgains show sample.csv
+------------+---------------+----------+----------+-------+---------+--------------+------------+
| date       | description   | ticker   | action   |   qty |   price |   commission |   currency |
|------------+---------------+----------+----------+-------+---------+--------------+------------|
| 2017-02-15 | ESPP PURCHASE | GOOG     | BUY      |   100 |   50.00 |        10.00 |        USD |
| 2017-05-20 | RSU VEST      | GOOG     | SELL     |    50 |   45.00 |         0.00 |        CAD |
+------------+---------------+----------+----------+-------+---------+--------------+------------+

To calculate the capital gains you can run:

$ capgains calc sample.csv 2017
GOOG-2017
[Total Gains = -1,028.54]
+------------+---------------+----------+-------+------------+----------+-----------+---------------------+
| date       | description   | ticker   | qty   |   proceeds |      ACB |   outlays |   capital gain/loss |
|------------+---------------+----------+-------+------------+----------+-----------+---------------------|
| 2017-05-20 | RSU VEST      | GOOG     | 50    |   2,250.00 | 3,278.54 |      0.00 |           -1,028.54 |
+------------+---------------+----------+-------+------------+----------+-----------+---------------------+

Your CSV file can contain transactions spanning across multiple different tickers. You can filter the above commands by running the following:

$ capgains calc sample.csv 2017 -t GOOG
...

$ capgains show sample.csv -t GOOG
...

For additional commands and options, run one of the following:

$ capgains --help

$ capgains <command> --help

You can take this output and plug it into your favourite tax software (Simpletax, StudioTax, etc) and verify that the capital gains/losses that the tax software reports lines up with what the output of this command says.

Finding issues

If you find issues using this tool, please create an Issue using the Github issue tracker and one of us will try to fix it.

Contributing

If you would like to contribute, please read the CONTRIBUTING.md page

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cad_capgains-2.0.2.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

cad_capgains-2.0.2-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file cad_capgains-2.0.2.tar.gz.

File metadata

  • Download URL: cad_capgains-2.0.2.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.18

File hashes

Hashes for cad_capgains-2.0.2.tar.gz
Algorithm Hash digest
SHA256 1505e915725f6d38f8e2f70a6af9198a22424dde2d880645f8afc332831228d5
MD5 677b1120b6c8bc0ff4adb0ed547834cb
BLAKE2b-256 ac88539704b01d0bd4a3817277763c23d8c4635ba2cfc5a00637e7c0cfb9fdf9

See more details on using hashes here.

File details

Details for the file cad_capgains-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: cad_capgains-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.18

File hashes

Hashes for cad_capgains-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1597997d0f9608aea974662f000f2de2dd6165d40301290457cd3602e575a53a
MD5 d2f9ac262a0193357312cafa15f7d133
BLAKE2b-256 2107365db576d602947953e2640c876c9bac43adcfad8e9927b341c2dea7494e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page