Skip to content

Releases: BittyTax/BittyTax

Version [0.5.2] (2023-12-22)

22 Dec 00:32
Compare
Choose a tag to compare

Important:-

The tax calculations for NFTs have been corrected, they are no longer "same day" pooled, or "same day"/"bed & breakfast" matched. NFT disposals will appear as "Unpooled" in the report. If you have made any NFT disposals, we recommend you re-generate your tax reports to ensure your capital gains tax is correct.

Fixed

  • Conversion tool: prevent xlrd from outputting logging in some situations.
  • Accounting tool: NFTs should be not be pooled, and no matching rules applied. (#316)

Added

  • Conversion tool: identify data file types (.xls, .zip/.xlsx) using magic numbers.
  • Conversion tool: identify duplicate data files using hashes.
  • Binance parser: warning if BNB amount is not available.
  • Added static typing. (#230)
  • Added support for Python 3.12.
  • Binance parser: added "Transaction Fee" operation for statements. (#314)
  • Etherscan parser: added new export formats. (#313)
  • Kraken parser: updated the assets list used for splitting the trading pair.
  • Kraken parser: added "spotfromfutures" subtype. (#310)
  • Conversion tool: added merge parser for Coinbase/Coinbase Pro.
  • Conversion tool: added parser for CoinTracker accounting data.
  • Conversion tool: new config "large_data" added.
  • Conversion tool: added parser for FTX exchange. (#80)
  • Accounting tool: added audit only (--audit) option. (#97)
  • Volt parser: new data file format added.
  • Conversion tool: added parser for Blockscout explorer.
  • Conversion tool: added parser for Paxful exchange.
  • Koinly parser: added renamed types.

Changed

  • Accounting tool: use openpyxl instead of xlrd for reading .xlsx files. (#260)
  • Conversion tool: use openpyxl instead of xlrd for reading .xlsx files. (#260)
  • Conversion tool: error with non-zero exit status if no data files are processed. (#253)
  • Conversion tool: report and continue any unexpected parser/merger exceptions.
  • Binance parser: add renamed Operation/Account. (#300)
  • Make code Python 3 compliant.
  • Conversion tool: check if file is a directory before opening.
  • Coinbase parser: check for Advanced Trades that trading pair matches the currency. (#304)
  • Conversion tool: sort data parsers case insensitive.
  • Config: added missing defaults.
  • Conversion tool: binance_multi_bnb_split_even flag now supports multiple bnb converts happening at the same time.

Removed

  • Removed support for Python 2.7 as it is end of life.
  • Removed support for Python 3.6 as it is end of life.
  • Conversion tool: removed 15-digit precision warning for CSV output. (#308)
  • Config: removed CoinDesk as BTC price data source. (#318)
  • Energy Web parser: removed, replaced by generic Blockscout parser.

Version [0.5.1] (2023-04-04)

04 Apr 10:11
Compare
Choose a tag to compare

Important:-

The Lost transaction type was incorrectly performing the buy-back before the sell, resulting in a loss for only half of the purchase cost. If you have used this transaction type previously we recommend you re-generate your tax reports to ensure the capital gains disposal is for the full cost of the lost asset.

Fixed

  • Binance parser: handle symbols with leading digit.
  • Bitfinex parser: handle '-' in FEE PERC column. (#197)
  • Binance parser: handle a Distribution which is negative. (#179)
  • Etherscan parser: failed transactions should not result in Deposits. (#226)
  • BscScan parser: failed transactions should not result in Deposits.
  • HecoInfo parser: failed transactions should not result in Deposits.
  • PolygonScan parser: failed transactions should not result in Deposits.
  • SnowTrace parser: failed transactions should not result in Deposits.
  • Etherscan parser: treat NFTs as unique assets. (#234)
  • Trezor Suite parser: support "SELF" and "FAILED" transaction types.
  • Etherscan merger: merge transactions sent via third-party. (#233)
  • Etherscan merger: multiple transfers of the same asset within one transaction should be summed. (#235)
  • Etherscan parser: exclude failed internal transactions.
  • HecoInfo parser: exclude failed internal transactions.
  • BscScan parser: exclude failed internal transactions.
  • PolygonScan parser: exclude failed internal transactions.
  • SnowTrace parser: exclude failed internal transactions.
  • Etherscan merger: only merge transactions for the same wallet address.
  • Electrum parser: handle optional fees.
  • Accounting tool: Lost transactions create wrong cost basis. (#247)
  • Accounting tool: long notes overwrite financial data.
  • Accounting tool: GMT, BST are not the same as Europe/London. (#251)
  • Binance parser: cash deposits should be gross amount. (#257)
  • Coinbase parser: handle commas in Buy Quantity matched from Note.
  • Hotbit parser: trade export (from support) timestamps are Hong Kong timezone.
  • Accounting tool: footer/page no. missing from PDF report.
  • Electrum parser: handle commas in values.
  • Accounting tool: update 4x annual allowance warning. (#211)
  • Binance parser: added missing operations for Statements. (#283)
  • Crypto.com parser: fix handling of fiat deposits/withdrawals.
  • Kraken parser: fix spend/receive transactions types. (#296)
  • Qt Wallet parser: check parser.args exists.

Added

  • Conversion tool: generic parser added to support import from CryptoCredible tool.
  • Conversion tool: added parser for SnowTrace explorer.
  • Conversion tool: added parser for PolygonScan explorer.
  • Conversion tool: added merge parser for SnowTrace.
  • Conversion tool: added merge parser for PolygonScan.
  • HandCash parser: added new export format.
  • Conversion tool: added parser for Volt wallet.
  • Conversion tool: added parser for qTrade exchange.
  • Bitfinex parser: added ledger support.
  • Hotbit parser: added new orders export(s).
  • Hotbit parser: added trades format.
  • Binance parser: added Convert History format. (#208)
  • Conversion tool: added parser for Nault wallet.
  • Accounting tool: hide empty balances/wallets from the audit report. (#229)
  • Accounting tool: include fiat transactions in the income report. (#144)
  • Bittrex parser: new data file formats added.
  • Conversion tool: added parser for Bittylicious.
  • Conversion tool: added parser for Mercatox exchange.
  • Conversion tool: added parser for Bitpanda exchange.
  • Conversion tool: added parser for CoinList exchange.
  • Conversion tool: added parser for Koinly accounting data.
  • Accounting tool: tax rates and allowance for 2022/23.
  • Crypto.com parser: added new export format. (#248)
  • Nexo parser: added new export format. (#246)
  • Binance parser: added new deposits/withdrawals format. (#258)
  • Coinbase parser: new "Transaction history" data file format added.
  • Hotbit parser: new "Orders" data file format added.
  • Conversion tool: added parser for Coinmetro exchange.
  • Conversion tool: added parser for Zelcore wallet.
  • Conversion tool: added parser for the BnkToTheFuture platform.
  • Binance parser: added new/re-named operations for Statements. (#274)
  • Binance parser: added config to split BNB quantity across multiple tokens.
  • Conversion tool: added paser for StakeTax.
  • Nexo parser: added new export format. (#286)
  • Etherscan parser: added new export formats. (#290)
  • Trezor Suite parser: added new export format. (#282)
  • Accounting tool: tax rates and allowance for 2023/24 and 2024/25.
  • Exodus parser: added new export format. (#200)
  • Accointing parser: added new export format. (#219)
  • Conversion tool: added parser for Yoroi wallet.
  • Celsius parser: added new export format.
  • Conversion tool: added parser for CEX.IO exchange.
  • Setup.py fixed for Python 3.11.
  • Binance parser: added re-named operations for Statements. (#292)
  • OKX parser: added new export formats. (#293)
  • Exodus parser: added staking export.
  • Conversion tool: added warning if duplicate rows found.

Changed

  • Binance parser: performance improvements for large data sets.
  • Coinbase Pro parser: performance improvements for large data sets.
  • GateHub parser: performance improvements for large data sets.
  • Gravity parser: performance improvements for large data sets.
  • Etherscan merger: performance improvements for large data sets.
  • Etherscan merger: support merging of NFT and Internal txns exports.
  • Etherscan parser: append contract address for LP tokens.
  • Gravity parser: referral fee payouts.
  • Binance parser: added "Large OTC trading" operation. (#191)
  • Binance parser: added additional operations.
  • Crypto.com parser: added "lockup_unlock" transaction type. (#227)
  • Binance parser: removed "Large OTC trading".
  • Etherscan parser: include address in wallet name.
  • HecoInfo parser: include address in wallet name.
  • BscScan parser: include address in wallet name.
  • PolygonScan parser: include address in wallet name.
  • SnowTrace parser: include address in wallet name.
  • Coinbase parser: added "Learning Reward" transaction type.
  • Coinbase parser: added "Advanced Trade Buy/Sell" transaction types. (#269)
  • Binance parser: added "ETH 2.0 Staking" operation. (#273)
  • Binance parser: error unrecognised operations.
  • Conversion tool: updated mappings for RECAP output format.
  • Bitstamp parser: added "Staking reward" transaction type.
  • Crypto.com parser: added additional transaction kinds. (#285)
  • KuCoin parser: make direction field case-insensitive. (#189)
  • BlockFi parser: added "Referral Bonus" transaction type. (#159)
  • Kraken parser: use Ledgers export for trades.
  • Coinbase Pro parser: deprecated Fills parser.
  • Koinly parser: allow unsupported types.
  • Config: error and exit if config load fails.

Version [0.5.0] Beta (2021-11-11)

11 Nov 22:57
Compare
Choose a tag to compare
Pre-release

Important:-

  1. A new Note field has been added to the end of the transaction record format (column M), this is used to add a description to a transaction. It is recommended that you add the additional Note column to all your existing transaction records.

  2. The Charity-Sent transaction type has been changed from a normal disposal (same as a Gift-Sent) to being a "No Gain/No Loss" disposal, the same as a Gift-Spouse. If you have used this transaction type previously we recommend you re-generate your tax reports as you may have overpaid capital gains tax.

  3. The ExchangeRatesAPI and RatesAPI data sources are no longer available. Please update your bittytax.conf file to use the new BittyTaxAPI as shown below, this file resides in your .bittytax folder within your home directory.

data_source_fiat:
    ['BittyTaxAPI']

Fixed

  • Accounting tool: "xlrd.biffh.XLRDError: Excel xlsx file; not supported" Exception. (#36)
  • Coinbase parser: added support for Convert transactions. (#46)
  • Coinbase parser: mis-classifying trade as gift-received. (#47)
  • Accounting tool: unexpected treatment of withdrawal fees (transfers_include=False). (#56)
  • Accounting tool: assets which only have matched disposals are not shown in holdings report. (#60)
  • Coinbase Pro parser: fills export, buy quantity missing fee.
  • Price tool: list command returns error. (#86)
  • Price tool: -ds option returns "KeyError: 'price'" exception.
  • Conversion tool: strip whitespace from header.
  • Accounting tool: Charity-Sent should be a "No Gain/No Loss" disposal. (#77)
  • Accounting tool: The "ten day" rule for companies, should match the buy to sell, not sell to buy-back. (#131)
  • Kraken parser: Trading pair split broken for XTZ/GBP. (#124)
  • Binance parser: Removed "Unexpected Coin content" error. (#132)
  • Trezor parser: Timestamp is GMT+1.
  • Etherscan parser: "Sell Quantity" should be zero for failed withdrawals.
  • BscScan parser: "Sell Quantity" should be zero for failed withdrawals.
  • HecoInfo parser: "Sell Quantity" should be zero for failed withdrawals.
  • Nexo parser: Timestamp is CET. (#188)

Added

  • Etherscan parser: added internal transactions export.
  • Binance parser: added cash deposit and withdrawal exports.
  • Binance parser: added statements export.
  • Bitfinex parser: new "Trades" data file format added. (#41)
  • Bittrex parser: new deposits data file format added.
  • Coinbase parser: new config "coinbase_zero_fees_are_gifts" added.
  • Accounting/Conversion tool: support for milli/microsecond timestamps.
  • Accounting tool: export option for transaction records with prices.
  • Price/Accounting tool: support for duplicate symbol names. (#34)
  • Price tool: search option (-s) added to list command.
  • Price tool: data source (-ds) option added to list command.
  • Accounting tool: config for allowable cost attribution.
  • Accounting tool: integrity check (disposals between transfers).
  • Accounting tool: warning given if disposal detected between transfers.
  • Accounting tool: integrity check (audit balances against section 104 pools).
  • Accounting tool: skip integrity check (--skipint) option added.
  • Accounting tool: new Note field added to transaction record format.
  • Accounting tool: note field added to income report.
  • Conversion tool: note field added to the Excel and CSV output.
  • Accounting tool: new config "transfer_fee_disposal" added (transfers_include=False). (#56)
  • Accounting tool: Excel files with worksheet names prefixed with '--' are ignored by the import.
  • Accounting tool: tax rates and allowance for 2021/22.
  • Accounting tool: tax rules for UK companies.
  • Accounting tool: tax rules option (--taxrules) added.
  • Local currency support.
  • Accounting tool: new config "transfer_fee_allowable_cost" added.
  • Conversion tool: allow wildcards in filenames.
  • Conversion tool: added dictionary to DataRow.
  • Conversion tool: "Savings & Loans" parser category added.
  • Conversion tool: convert_currency method added to DataParser.
  • Conversion tool: added parser for BlockFi.
  • Conversion tool: added parser for Celsius.
  • Conversion tool: added parser for Coinomi wallet.
  • Conversion tool: added parser for Blockchain.com wallet.
  • Conversion tool: convert multiple Excel worksheets.
  • KuCoin parser: added new trade history exports.
  • KuCoin parser: added deposit/withdrawal exports.
  • HitBTC parser: added new trade history export.
  • Electrum parser: new data file format added.
  • Accounting tool: added dictionary to TransactionRow.
  • New data source "Frankfurter" added for fiat exchange rates.
  • Ledger Live parser: new data file format added.
  • New data source "BittyTaxAPI" added for fiat exchange rates.
  • Coinfloor parser: new "trades" data file format added.
  • Gravity parser: new data file format added.
  • Etherscan parser: new "Transactions" data file format added.
  • Conversion tool: added parser for BscScan explorer.
  • Conversion tool: specify the local currency of the "Value" headers.
  • Conversion tool: added parser for Exodus wallet.
  • Conversion tool: added parser for Zerion explorer.
  • Conversion tool: added parser for Helium wallet and explorer.
  • Conversion tool: added parser for Accointing accounting data.
  • Bitfinex parser: new "movements" data file format added.
  • Accounting tool: new transaction types Lost and Airdrop added.
  • Binance parser: added trades statement export format.
  • Conversion tool: added parser for HecoInfo explorer.
  • Conversion tool: added parser for Trezor Suite.
  • Binance parser: added new statement export format.
  • Nexo parser: added new export format.
  • Conversion tool: added merge parser for Etherscan.
  • Conversion tool: added merge parser for BscScan.
  • Conversion tool: added merge parser for HecoInfo.
  • BscScan parser: new "Transactions" data file format added.
  • HecoInfo parser: new "Transactions" data file format added.
  • KuCoin parser: added new trade history export.
  • Coinbase parser: new "Transaction history" data file format added.

Changed

  • Conversion tool: UnknownAddressError exception changed to generic DataFilenameError.
  • Binance parser: use filename to determine if deposits or withdrawals.
  • Binance parser: updated quote assets via new script.
  • Crypto.com parser: added new "Supercharger" transaction types. (#38)
  • Coinbase parser: added Coinbase Earn/Rewards Income transactions.
  • Coinbase parser: get value (from spot price) where possible.
  • Bittrex parser: added market buy/sell transactions.
  • Ledger Live parser: fees now optional, as missing from ERC-20 wallets.
  • Bitstamp parser: fees now optional.
  • Accounting tool: same day pooling debug now only shows the pooled transactions.
  • Accounting tool: section 104 debug also shows matched transactions.
  • Crypto.com parser: added "campaign_reward" transaction type. (#64)
  • Elecrum parser: Note field is mapped from 'label'.
  • HandCash parser: Note field is mapped from 'note'.
  • Qt Wallet parser: Note field is mapped from 'Label'.
  • Trezor parser: Note field is mapped from 'Address Label'.
  • Accounting tool: get value for fee if matching buy/sell asset has zero quantity or no price.
  • Accounting tool: don't drop zero quantity buy/sell if fee value present.
  • Accounting tool: ordering of all transactions when transfers_include=False.
  • Ledger Live parser: added "FEES" and "REVEAL" operation types. (#79)
  • Binance parser: added "Referrer rebates" operation type.
  • Command line arguments now used locally instead of stored globally.
  • Price tool: PriceData requires data source list to initialise.
  • Conversion tool: all parsers updated to use DataRow dictionary.
  • Crypto.com parser: added "crypto_to_van_sell_order" transaction type.
  • Nexo parser: check for unconfirmed transactions.
  • Qt Wallet parser: added "Masternode Reward" type.
  • Qt Wallet parser: added support for VeriCoin-Qt wallet.
  • Bittrex parser: filter unauthorised/cancelled withdrawals. (#108)
  • Coinbase parser: added EUR and USD accounts.
  • Conversion tool: refactored parsers to use kwargs.
  • Conversion tool: better error handling for IOError.
  • Increase data source API timeout to 30 seconds.
  • Accounting tool: use fixed value (when specified) for counter asset prices.
  • Accounting tool: don't store fixed value for transfers.
  • Accounting tool: refactored import_records.py to use dictionary.
  • Binance parser: added "POS savings interest" and "Savings Interest" operations. (#137)
  • Binance parser: added "Super BNB Mining" operation.
  • Crypto.com parser: added "supercharger_reward_to_app_credited" transaction type.
  • Crypto.com parser: improved 'Native Amount' handling.
  • Crypto.com parser: added "council_node_deposit_created" transaction type.
  • Etherscan parser: add "Method" as a note.
  • BscScan parser: add "Method" as a note.
  • HecoInfo parser: add "Method" as a note.
  • Config: transfers_include to False.
  • Config: transfer_fee_allowable_cost to True.

Removed

  • Accounting tool...
Read more

Version [0.4.3] Beta (2020-12-04)

04 Dec 16:18
Compare
Choose a tag to compare
Pre-release

Important:- if upgrading, please remove your price data cache file for CryptoCompare: ~/.bittytax/cache/CryptoCompare.json (see Issue #29)

Fixed

  • UserWarning: Must have at least one data row in in add_table().
  • AttributeError: 'module' object has no attribute 'UTC'. (#27)
  • Crypto.com parser: fix date parser.
  • Incorrect price data for stablecoins via CryptoCompare. (#29)

Added

  • Conversion tool: added parser for CGTCalculator.
  • Conversion tool: added parser for Nexo.
  • Conversion tool: added parser for Kraken.
  • HitBTC parser: new data file format added.

Changed

  • Hotbit parser: Negative fees are now set to zero.
  • Accounting tool: Drop buy/sell/fee transactions of zero quantity.
  • Crypto.com parser: Add support for referral_gift transaction type.

Version [0.4.2] Beta (2020-10-30)

30 Oct 18:07
Compare
Choose a tag to compare
Pre-release

Fixed

  • Cell conversion of imported Excel data safer for python 2.
  • Circle parser: filter out other currency symbols '£€$'.
  • Cryptsy parser: sell/buy quantities already had fee included.
  • Cryptopia parser: calculations rounded to 8 decimal places.
  • Tqdm workaround (tqdm/tqdm#777).
  • Ledger Live parser: unrecognised operation type 'IN'.
  • TradeSatoshi parser: calculations rounded to 8 decimal places.
  • Trezor parser: "self" payment exception.
  • Electrum parser: timestamp is in local time.
  • KeyError: 'bpi' exception. (#21)
  • Python 3.x compatibility. (#20)
  • Conversion tool: Python 2, UnicodeDecodeError exception.

Added

  • Conversion tool: added parser for CoinTracking.info accounting data.
  • Conversion tool: added parser for Gravity (Bitstocks) exchange.
  • Etherscan parser: added ERC-20 tokens and ERC-721 NFTs exports.
  • Bittrex parser: new data file format added.
  • Coinbase Pro parser: new "Account Statement" data file format added.
  • Coinbase parser: new "Transaction history" data file format added.
  • Coinfloor parser: new "Deposit and Withdrawal" data file format added.
  • Ledger Live parser: new data file format added.
  • GateHub parser: new data file format added.
  • Trezor parser: try and get symbol name from filename.
  • Electrum parser: new data file format added (ElectrumSV).
  • Conversion tool: added parser for Hotbit exchange.
  • Conversion tool: added parser for Liquid exchange.
  • Conversion tool: added parser for Energy Web explorer.
  • Qt Wallet parser: recognise Namecoin operations.
  • Qt Wallet parser: warning when skipping unconfirmed transactions.
  • Conversion tool: added extra debug.
  • Uphold parser: new data file format added.
  • Poloniex parser: new "trades" data file format added.
  • Poloniex parser: new "distributions" data file format added.
  • Conversion tool: added colour bands to Excel output file.
  • Binance parser: new "deposit" and "withdrawal" data file formats added.
  • Accounting tool: new transaction types added (Staking, Interest, Dividend).
  • Conversion tool: added parser for Crypto.com app.
  • Accounting tool: added disclaimer to footer of PDF.
  • Accounting tool: validate tax year argument.
  • Price tool: added data source (-ds) argument.
  • Accounting tool: new transaction type Gift-Spouse added.
  • Coinbase Pro parser: new "Fills Statement" data file format added.
  • Price tool: added list asset command.

Changed

  • Sort wallet names in audit debug as case-insensitive.
  • Data source names in config are now case-insensitive.
  • Accounting/Price tool: display error message if data source name unrecognised.
  • Price tool: display error message if date is invalid.
  • Conversion tool: set default font size in Excel workbook.
  • Accounting/Price tool: don't display warning if the price data cache file does not exist.
  • Qt Wallet parser: "payment to yourself" becomes withdrawal with just fee.
  • HandCash parser: identify transactions to other users as gifts.
  • Qt Wallet parser: get symbol name from "Amount" if available.
  • Qt Wallet parser: -ca option takes precedence over any symbol name found in the data file.
  • Conversion tool: Excel currency format changed to improve compatibility.
  • Price tool: added commands for latest and historic prices.
  • Price tool: quantity is now an optional argument, -q or --quantity is not required.

Version [0.4.1] Beta (2020-07-25)

25 Jul 19:32
Compare
Choose a tag to compare
Pre-release

Fixed

  • Prevent a division by zero when calculating the fee proceeds.
  • Exception UnboundLocalError: local variable 'url' referenced before assignment.
  • Tax year end was excluding 5th April.

Added

  • Conversion tool: added parser for Interactive Investor stocks and shares.

Changed

  • Conversion tool: colour highlight element in row for parser failures.
  • Accounting tool: colour highlight element in row for import failures.

Version [0.4.0] Beta (2020-07-18)

18 Jul 15:49
Compare
Choose a tag to compare
Pre-release

Added

  • Accounting tool: colour output and progress bars/spinner.
  • Conversion tool: colour output.
  • Price tool: colour output.

Changed

  • Accounting tool: use latest price when a historic price is not available.

Version [0.3.3] Beta (2020-06-29)

29 Jun 16:52
Compare
Choose a tag to compare
Pre-release

Fixed

  • Exception if transaction records input file contains less than the expected 12 columns. (#5)
  • Historic or fixed fee indicator is incorrect when transaction is pooled. (#7)
  • Tax-free allowance for 2021 missing. (#13)
  • Circle Parser: added "fork" transaction type. (#11)
  • Trezor Parser: wallets without labelling. (#10)
  • Bitfinex Parser: calculations rounded to 8 decimal places. (#14)
  • Conversion tool: python2 raised exception if file format was unrecognised or file missing. (#9)
  • Accounting tool: handle exception if input file is missing. (#15)
  • Accounting tool: python2 handle utf-8 characters in Excel file.

Added

  • Conversion tool: added parser for HandCash wallet.

Changed

  • Trezor Parser: fees are now included separately.

Version [0.3.2] Beta (2020-04-11)

11 Apr 21:48
Compare
Choose a tag to compare
Pre-release

Fixed

  • Proceeds 4x warning was missing from PDF.

Added

  • Conversion tool: Improved exception handling.
  • Accounting tool: Identify if asset values are fixed or from historic price data.
  • Accounting tool: PDF report output.

Changed

  • Accounting tool: Timestamps normalized to local time only for Buy/Sell transactions.
  • Accounting tool: Made fees optional for Buy/Sell transactions.

Version [0.2.1] Beta (2020-03-07)

07 Mar 18:24
Compare
Choose a tag to compare
Pre-release

Fixed

  • Tax summary: Gains in the year should exclude losses.
  • Bittrex parser: Adjust quantity for partially filled orders.

Addded

  • HitBTC exchange data files.
  • KuCoin trades data file.
  • Improved fee handling, including 3rd asset fees.

Changed

  • Conversion tool: Changed Excel spreadsheet style and added file properties.