Transactions
Overview
The program uses transactions in the data files to determine the number of units of an asset held in an account, and to calculate the total cost of ownership, including the purchase price, platform fees, and taxes.
Transactions must be recorded for any event that changes either the number of units held for a particular holding, or the cost for having this holding, or both. For example a transaction can be the purchase of a stock. This increases the number of units held for an holding, and the price paid to have this holding. A transaction can be the disposal of stocks. This reduces the number of units held, and decreases the price of ownership of the remaining units. Some platform apply custody fees for having a particular asset in a particular account. In that case a transaction can correspond to a monthly fee. This event does not affect the number of units held, but it increases the cost of ownership of the asset. A stock split increases the number of units held without affecting the cost of ownership.
Transactions come with columns for “Fee” and “Tax”. These correspond to the charges you have to pay, either to your investments platform, or to the government. Most traditional investment platform charge a fee when you buy or sell investments, and this are either fixed or a percentage of the amount. Also some countries apply taxes such as a “stamp duty” when you buy or sell investments. These two figures are used by the program to calculate the cost of ownership of your investments. This is important as these costs have an impact on the calculation of the capital gains or losses.
Examples
Here is an example of transactions:
----------------------------------------------------------------------------------------------------------------------------------------------------------------
| ID | Account | Asset | Date | Units | Amount | CurA | Fee | CurF | Tax | CurT | Comments |
----------------------------------------------------------------------------------------------------------------------------------------------------------------
| SIPPVWRD001 | GSIPP | VWRD | 2024-01-08 | 34 | 3986.16 | USD | 2.99 | GBP | 0 | GBP | Bought 34 VWRD units at $117.24 each with a fee of £2.99 |
| SIPPVWRD002 | GSIPP | VWRD | 2024-02-07 | 32 | 3898.24 | USD | 2.99 | GBP | 0 | GBP | Bought 32 VWRD units at $121.82 each with a fee of £2.99 |
| SIPPVWRD003 | GSIPP | VWRD | 2024-03-07 | 31 | 3917.78 | USD | 2.99 | GBP | 0 | GBP | Bought 31 VWRD units at $126.38 each with a fee of £2.99 |
| GBULNGOLD001 | GBULN | GOLD | 2023-06-01 | 2 | 90.68 | GBP | 0.46 | GBP | 0 | GBP | Bought 2g of Gold with a fee of £0.46 |
| GBULNGOLD002 | GBULN | GOLD | 2023-07-01 | 0 | 0 | GBP | 3.24 | GBP | 0 | GBP | Monthly custody fee for having gold in the vault |
| GBULNGOLD020 | GBULN | GOLD | 2024-05-04 | -50 | 3030.5 | GBP | 14.26 | GBP | 0 | GBP | Sold 50g of Gold with a fee of £14.26 |
| CRYPTBTC001 | CRYPT | BTC | 2025-01-21 | 0.006 | 521.32 | GBP | 5.21 | GBP | 0 | GBP | Bought 0.006 BTC at 86886.52 GBP per unit plus fees |
| CRYPTETH001 | CRYPT | ETH | 2025-01-21 | 0.2 | 548.29 | GBP | 5.48 | GBP | 0 | GBP | Bought 0.2 ETH at 2741.45 GBP per ETH plus fees |
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Identifier
The ID column contains an ID to identify the transaction. This identifier needs to be unique.
You should be able to find a transaction ID from your broker when you buy or sell stocks. You
can make it up if there is no such things, for example if this corresponds to the purchase of
a buy to let property. This identifier is not used by the program. It is present to allow you
to easily identify and match transactions in your own records.
Account
The Account column contains the identifier of the account in which the transaction has happend.
Asset
The Asset column contains the identifier of the asset which is involved to the transaction. For
example it can be the asset you have bought, sold, or which has caused storage fees.
Date
The Date column contains the date or date and time corresponding to the transaction.
Transactions must have a date in the YYYY-MM-DD format, or with a date and time in the
YYYY-MM-DD hh:mm:ss format. Transactions date and time are used to determine the order of the
transactions. The time is optional but it is recommended to put a time when there are multiple
transactions affecting the same asset in the same account on the same day, so transactions are
processed in the correct order.
Units
The Units columns contains the number of units that was exchanged during the transaction.
It can be a decimal number in case you have bought or sold fractional shares. The number should
be positive if the transaction is a purchase of the asset. The number should be negative if the
number of units you own has gone down, either because you sold some units of the asset, of
because the units were used to pay for some charges. The number should be 0 if the transaction
did not change the number of units you own, for example if the transaction corresponds to a monthy
storage fee for this particular asset paid in cash.
Amount
The Amount column contain the net asset price (ie: the number of units affected by the transactions
multiplied by the market price of one unit) before taxes and transaction fees get added or deducted.
The CurA column contains the name of the currency in which the asset was priced. The “Amount” column
should contain either 0 (for transactions which are not impacting the number of units held in the account,
such as a monthly custody fee), a positive value for transactions that increase the number of units
held (purchase or stock split), and a negative value for disposals, or when a charge is paid by reducing
the number of units you own (such as some fees with Etherium). This program supports fractional shares,
hence the figure in the “Amount” column can be a decimal number such as “45.783428”.
Fees
The Fee column contains the transaction fee that was paid and CurF contains the currency in
which the fee was paid. The fees correspond to the amounts paid to intermediaries such as
investment platforms, but they exclude taxes paid to the government. The fee may be zero if
there are no transaction fees, for example if you bought or sold stocks on a platform which does
not charge transaction fees.
Tax
The Tax column contains the amount of tax that was collected on the behalf of the government during
the transaction and CurT contains the name of the currency in which the taxes were paid. May countries
apply taxes on transactions, such as “Stamp duty” or “PTM Levy”. The tax may be zero if no such taxes
apply to the transaction.