Latest Blog Posts

How do I use the Income and Expenses upload

You are here:
< All Topics

If you want to include any income or expenses from other sources which we don’t directly support yet, you can use the “Income and Expenses” csv format to upload it into Taxoshi and include it as part of your calculation.

The format is pretty simple, but it’s important you get the the data format correct for each column to make sure everything is processed correctly. Here’s an example of the CSV format correctly filled out;

DateSymbolTypeAmountFeeIdentifierCommentPriceDate
2020-04-19 10:00:00BTCAIRDROP0.10XYZ_001Free Coins!
2020-04-19 10:00:00 BCH HARDFORK20XYZ_002Bitcoin Cash Hardfork
2020-04-20 10:00:00BTCMINING0.50XYZ_003 Mined on NiceHash
2020-04-21 10:00:00NAVSTAKING0.050.0001XYZ_004Mined on NavPool
2020-04-22 10:00:00BTCDEFI1 0.0001XYZ_005Liquidity Providing
2020-04-23 10:00:00BTCINCOME5 0.0001 XYZ_006Other Income
2020-04-24 10:00:00BTCFEE0.000150XYZ_007Transaction Fee
2020-04-25 10:00:00 ETH LOST100XYZ_008Lost Wallet2019-04-24 10:00:00
2020-04-19 10:00:00 ETHSTOLEN4.50 XYZ_09 Hacked 2019-04-24 10:00:00
2020-04-19 10:00:00 LTCEXPENSE3.255 0.0001 XYZ_010Other Expense

How the calculation works

The types of income which can be reported are; airdrops, hardforks, mining, staking, defi earning and other generic income.

All income is essentially treated treated the same. There is a taxable event created when you receive the income for the whole value of the income in NZD minus any fees which were incurred. This value is then considered the price of the stock as it enters into the FIFO calculation as inventory to be matched with sell orders or expenses.

For example. if you got airdropped 0.001 BTC which was worth $10 at the time, you would have a taxable income of $10 on that airdrop. If you then later sold the 0.001 bitcoin for $100, you would have a $90 gain there which is taxable as income. It may seem trivial to split it like this and just assume the $100 gain when you finally sell the 0.001 BTC but if you received it and sold it in two different tax years, their would be a taxable event in each year which needs to be reported as income according to the guidance.

The types of expenses which can be reported are; transaction/exchange/pool fees, lost or stolen cryptoassets and other generic expenses.

The fees and other expenses are deducted in NZD at the date and time specified but they are also required to be matched to existing inventory in the FIFO calculation since it is still technically spending inventory you have in stock.

For example, if you originally bought 0.001 BTC for $10 and the value of that 0.001 BTC rises to $100 then you pay an exchange withdrawal fee of 0.001 BTC. You will have paid a $100 fee which is deductible, but you will have also made a $90 gain ($100 – $10), so the total deductible amount will only be $10. In the report output, the fee is displayed as part of the expenses and the $90 gain will appear as part of the FIFO calculation but they would balance out to a $10 expense as described above.

Lost and Stolen Cryptocurrency are the only types which require the an additional column called “PriceDate” to be filled in. This is because the IRD guidance states that stolen or lost cryptocurrency is claimed in the tax year the loss happens, but can only be deducted at the original purchase price and not at the current market value. So you need to enter the original purchase date there and we will go and look up the correct exchange rate for that date and that amount is what is deductible as an expense.

Creating your own Income and Expense file

Here’s a copy of the Income and Expense csv file you can use as a template to input your own data. You should be able to edit this in any spreadsheet software you have on your computer. Just make sure when you save it, you export it as CSV again instead of the proprietary format of your software and that the dates don’t get reformatted by the software.

Income and Expenses template file

The Columns Explained

Let’s take a look at each column and look at what the expected data formats are.

Date

This field expects an ISO formatted date in UTC time, so the expected format is; YYYY-MM-DD HH:MM:SS

For example 2017-03-20 00:00:00 would be Midnight on the 20th of March 2017 in the UTC timezone.

Symbol

This field expects the ticker symbol of the cryptocurrency. For example for Bitcoin you would put BTC in this column.

Currently the supported symbols we have valid exchange rates for are;

namesymbol
0xZRX
AaveAAVE
AlgorandALGO
ArkARK
Australian DollarAUD
Binance CoinBNB
Binance USDBUSD
BitcoinBTC
Bitcoin CashBCH
Bitcoin SVBSV
BitTorrentBTT
Canadian DollarCAD
CardanoADA
ChainlinkLINK
CosmosATOM
DaiDAI
DecentralandMANA
DigiByteDGB
DogecoinDOGE
EOSEOS
EthereumETH
EuroEUR
FTX TokenFTT
FUNTokenFUN
Hedera HashgraphHBAR
ICONICX
Japanese YenJPY
LitecoinLTC
MoneroXMR
NanoNANO
NavCoinNAV
NemXEM
New Zealand DollarNZD
Ontology GasONG
PancakeSwapCAKE
PAX GoldPAXG
PolkadotDOT
PolygonMATIC
PolymathPOLY
Pound SterlingGBP
RavencoinRVN
RenREN
RippleXRP
SolanaSOL
South African RandZAR
StellarXLM
SushiSwapSUSHI
Swiss FrancCHF
SynthetixSNX
TetherUSDT
TezosXTZ
TronTRX
United States DollarUSD
USD CoinUSDC
VeChainVET
VeThor TokenVTHO
WavesWAVES
ZcashZEC
ZilliqaZIL

Type

This field only accepts the following values;

TypeDescription
AIRDROPCryptoassets received from an air drop
HARDFORK Cryptoassets received from a blockchain hard fork
MINING Cryptoassets received from mining
STAKING Cryptoassets received from staking
DEFI Cryptoassets received from liquidity farming or other de-fi
INCOMEAny other cryptoasset income
FEEExchange or transaction fees
LOST Cryptoassets which have been lost
STOLENCryptoassests which have been stolen
EXPENSEAny other cryptoasset expense

The Type column must be in uppercase as above.

Amount

This field expects a number that is greater than zero. The Amount is the total number of tokens which were an income or expense.

Fee

This field expects a number that is zero or greater. The Fee is whatever the exchange, mining pool, DEX, network etc. has charged you that transaction. The fee is the number of tokens charged and is expected to be in the same currency as the Symbol column.

For example if you were charged 0.0001 BTC by a mining pool for them to send your payout, you would enter 0.0001 into this column.

Identifier

This field accepts any string, it is really for your own records and can be used to uniquely identify the event like a transaction hash.

Comment

This field accepts any string, it is also just for your own records to make a note of what the row is about.

PriceDate

The same as the Date field, the PriceDate field expects an ISO formatted date in UTC time, so the expected format is; YYYY-MM-DD HH:MM:SS

For example 2017-03-20 00:00:00 would be Midnight on the 20th of March 2017 in the UTC timezone.

The PriceDate column is only used for LOST or STOLEN rows and should be the date at which you purchased the coins which were lost or stolen.

Table of Contents