Skip to content

HMRC Example Test Cases

Scott Green edited this page Mar 18, 2024 · 7 revisions

Overview

All the HMRC examples provided in the cryptoassets manual (for individuals, businesses and decentralised finance) have been successfully tested and passed.

Individual

Business

Decentralised Finance (DeFi)

Individual

Cryptoassets for individuals, Capital Gains Tax pooling examples.

1. Example 1 - basic section 104 pool disposal

This example provides a basic insight into how a section 104 pool operates.

process section 104
section104: //BUY* Deposit 126,000 GBP 'CRYPTO22251' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 1,000 GBP (=£1,000.00 GBP) 'CRYPTO22251' 2020-01-01T00:00:00 GMT 'Victoria bought 100 token A for £1,000.' [TID:2.2] <- fiat
section104: //SELL Trade 125,000 GBP (=£125,000.00 GBP) 'CRYPTO22251' 2020-09-18T01:00:00 BST 'On 18 September 20XX Victoria bought a further 50 token A for £125,000.' [TID:3.2] <- fiat
section104: //BUY Trade 300,000 GBP (=£300,000.00 GBP) 'CRYPTO22251' 2020-12-01T00:00:00 GMT 'On 1 December 20XX Victoria sells 50 of her token A for £300,000.' [TID:4.1] <- fiat
section104: BUY Trade 100 TOKENA (=£1,000.00 GBP) 'CRYPTO22251' 2020-01-01T00:00:00 GMT 'Victoria bought 100 token A for £1,000.' [TID:2.1]
section104:   TOKENA=100 (+100) cost=£1,000.00 GBP (+£1,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: BUY Trade 50 TOKENA (=£125,000.00 GBP) 'CRYPTO22251' 2020-09-18T01:00:00 BST 'On 18 September 20XX Victoria bought a further 50 token A for £125,000.' [TID:3.1]
section104:   TOKENA=150 (+50) cost=£126,000.00 GBP (+£125,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 50 TOKENA (=£300,000.00 GBP) 'CRYPTO22251' 2020-12-01T00:00:00 GMT 'On 1 December 20XX Victoria sells 50 of her token A for £300,000.' [TID:4.2]
section104:   TOKENA=100 (-50) cost=£84,000.00 GBP (-£42,000.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£258,000.00 (proceeds=£300,000.00 - cost=£42,000.00 - fees=£0.00)

2. Example 2 - application of the same day rule

This example shows how the same day rule operates, as well as showing what happens to any tokens that can’t be matched to the disposal.

HMRC is rounding up the pence into pounds when calculating the allowable costs, i.e. £937.50 becomes £938. BittyTax does NOT round up pence.

pool same day transactions
pool: SELL Trade 1,500 TOKENB (=£1,400.00 GBP) 'CRYPTO22252' 2020-06-23T20:00:00 BST '<pooled>' [TID:3.2] (2)
pool:   (SELL Trade 1,000 TOKENB (=£800.00 GBP) 'CRYPTO22252' 2020-06-23T11:00:00 BST 'Morning – he disposes of 1,000 token B for £800.' [TID:3.2])
pool:   (SELL Trade 500 TOKENB (=£600.00 GBP) 'CRYPTO22252' 2020-06-23T20:00:00 BST 'Evening – he disposes of 500 token B for £600.' [TID:5.2])
...
match same day transactions
match: BUY Trade 1,600 TOKENB (=£1,000.00 GBP) 'CRYPTO22252' 2020-06-23T16:00:00 BST 'Afternoon – he acquires 1,600 token B for £1,000.' [TID:4.1]
match: SELL Trade 1,500 TOKENB (=£1,400.00 GBP) 'CRYPTO22252' 2020-06-23T20:00:00 BST '<pooled>' [TID:3.2] (2)
match:   split: BUY Trade 1,500 TOKENB (=£937.50 GBP) 'CRYPTO22252' 2020-06-23T16:00:00 BST 'Afternoon – he acquires 1,600 token B for £1,000.' [TID:4.3]
match:   split: BUY Trade 100 TOKENB (=£62.50 GBP) 'CRYPTO22252' 2020-06-23T16:00:00 BST 'Afternoon – he acquires 1,600 token B for £1,000.' [TID:4.4]
match:   Disposal(same day) gain=£462.50 (proceeds=£1,400.00 - cost=£937.50 - fees=£0.00)
...
process section 104
section104: //BUY* Deposit 500 GBP 'CRYPTO22252' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 500 GBP (=£500.00 GBP) 'CRYPTO22252' 2020-01-01T00:00:00 GMT 'Martyn holds 5,000 token B in a section 104 pool.' [TID:2.2] <- fiat
section104: //BUY Trade 800 GBP (=£800.00 GBP) 'CRYPTO22252' 2020-06-23T11:00:00 BST 'Morning – he disposes of 1,000 token B for £800.' [TID:3.1] <- fiat
section104: //SELL Trade 1,000 GBP (=£1,000.00 GBP) 'CRYPTO22252' 2020-06-23T16:00:00 BST 'Afternoon – he acquires 1,600 token B for £1,000.' [TID:4.2] <- fiat
section104: //BUY Trade 600 GBP (=£600.00 GBP) 'CRYPTO22252' 2020-06-23T20:00:00 BST 'Evening – he disposes of 500 token B for £600.' [TID:5.1] <- fiat
section104: BUY Trade 5,000 TOKENB (=£500.00 GBP) 'CRYPTO22252' 2020-01-01T00:00:00 GMT 'Martyn holds 5,000 token B in a section 104 pool.' [TID:2.1]
section104:   TOKENB=5,000 (+5,000) cost=£500.00 GBP (+£500.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: //BUY Trade 1,500 TOKENB (=£937.50 GBP) 'CRYPTO22252' 2020-06-23T16:00:00 BST 'Afternoon – he acquires 1,600 token B for £1,000.' [TID:4.3] <- matched
section104: BUY Trade 100 TOKENB (=£62.50 GBP) 'CRYPTO22252' 2020-06-23T16:00:00 BST 'Afternoon – he acquires 1,600 token B for £1,000.' [TID:4.4]
section104:   TOKENB=5,100 (+100) cost=£562.50 GBP (+£62.50 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: //SELL Trade 1,500 TOKENB (=£1,400.00 GBP) 'CRYPTO22252' 2020-06-23T20:00:00 BST '<pooled>' [TID:3.2] (2) <- matched

3. Example 3 - application of the 30 day rule

This example shows how the 30 day rule operates, as well as showing what happens to any tokens that can’t be matched to the disposal.

BittyTax matches a disposal to only one acquisition at a time, this can result in what looks like multiple "bed & breakfast" disposals.

match bed & breakfast transactions
match: SELL Trade 1,000 TOKENC (=£400.00 GBP) 'CRYPTO22253' 2020-03-31T01:00:00 BST 'On 31 March 20XX Rachel disposes of 1,000 token C for £400.' [TID:3.2]
match: BUY Trade 700 TOKENC (=£175.00 GBP) 'CRYPTO22253' 2020-04-21T01:00:00 BST 'On 21 April 20XX Rachel acquires 700 token C for £175.' [TID:5.1]
match:   split: SELL Trade 700 TOKENC (=£280.00 GBP) 'CRYPTO22253' 2020-03-31T01:00:00 BST 'On 31 March 20XX Rachel disposes of 1,000 token C for £400.' [TID:3.3]
match:   split: SELL Trade 300 TOKENC (=£120.00 GBP) 'CRYPTO22253' 2020-03-31T01:00:00 BST 'On 31 March 20XX Rachel disposes of 1,000 token C for £400.' [TID:3.4]
match:   Disposal(bed & breakfast) gain=£105.00 (proceeds=£280.00 - cost=£175.00 - fees=£0.00)
match: SELL Trade 300 TOKENC (=£120.00 GBP) 'CRYPTO22253' 2020-03-31T01:00:00 BST 'On 31 March 20XX Rachel disposes of 1,000 token C for £400.' [TID:3.4]
match: BUY Trade 500 TOKENC (=£100.00 GBP) 'CRYPTO22253' 2020-04-28T01:00:00 BST 'On 28 April 20XX Rachel acquires 500 token C for £100.' [TID:6.1]
match:   split: BUY Trade 300 TOKENC (=£60.00 GBP) 'CRYPTO22253' 2020-04-28T01:00:00 BST 'On 28 April 20XX Rachel acquires 500 token C for £100.' [TID:6.3]
match:   split: BUY Trade 200 TOKENC (=£40.00 GBP) 'CRYPTO22253' 2020-04-28T01:00:00 BST 'On 28 April 20XX Rachel acquires 500 token C for £100.' [TID:6.4]
match:   Disposal(bed & breakfast) gain=£60.00 (proceeds=£120.00 - cost=£60.00 - fees=£0.00)
match: SELL Trade 500 TOKENC (=£150.00 GBP) 'CRYPTO22253' 2020-04-20T01:00:00 BST 'On 20 April 20XX Rachel disposes of 500 token C for £150.' [TID:4.2]
match: BUY Trade 200 TOKENC (=£40.00 GBP) 'CRYPTO22253' 2020-04-28T01:00:00 BST 'On 28 April 20XX Rachel acquires 500 token C for £100.' [TID:6.4]
match:   split: SELL Trade 200 TOKENC (=£60.00 GBP) 'CRYPTO22253' 2020-04-20T01:00:00 BST 'On 20 April 20XX Rachel disposes of 500 token C for £150.' [TID:4.3]
match:   split: SELL Trade 300 TOKENC (=£90.00 GBP) 'CRYPTO22253' 2020-04-20T01:00:00 BST 'On 20 April 20XX Rachel disposes of 500 token C for £150.' [TID:4.4]
match:   Disposal(bed & breakfast) gain=£20.00 (proceeds=£60.00 - cost=£40.00 - fees=£0.00)
match: SELL Trade 300 TOKENC (=£90.00 GBP) 'CRYPTO22253' 2020-04-20T01:00:00 BST 'On 20 April 20XX Rachel disposes of 500 token C for £150.' [TID:4.4]
match: BUY Trade 500 TOKENC (=£150.00 GBP) 'CRYPTO22253' 2020-05-01T01:00:00 BST 'On 1 May 20XX Rachel acquires 500 token C for £150.' [TID:7.1]
match:   split: BUY Trade 300 TOKENC (=£90.00 GBP) 'CRYPTO22253' 2020-05-01T01:00:00 BST 'On 1 May 20XX Rachel acquires 500 token C for £150.' [TID:7.3]
match:   split: BUY Trade 200 TOKENC (=£60.00 GBP) 'CRYPTO22253' 2020-05-01T01:00:00 BST 'On 1 May 20XX Rachel acquires 500 token C for £150.' [TID:7.4]
match:   Disposal(bed & breakfast) gain=£0.00 (proceeds=£90.00 - cost=£90.00 - fees=£0.00)
...
process section 104
section104: //BUY* Deposit 1,000 GBP 'CRYPTO22253' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 1,000 GBP (=£1,000.00 GBP) 'CRYPTO22253' 2020-01-01T00:00:00 GMT 'Rachel holds 2,000 token C in a section 104 pool. ' [TID:2.2] <- fiat
section104: //BUY Trade 400 GBP (=£400.00 GBP) 'CRYPTO22253' 2020-03-31T01:00:00 BST 'On 31 March 20XX Rachel disposes of 1,000 token C for £400.' [TID:3.1] <- fiat
section104: //BUY Trade 150 GBP (=£150.00 GBP) 'CRYPTO22253' 2020-04-20T01:00:00 BST 'On 20 April 20XX Rachel disposes of 500 token C for £150.' [TID:4.1] <- fiat
section104: //SELL Trade 175 GBP (=£175.00 GBP) 'CRYPTO22253' 2020-04-21T01:00:00 BST 'On 21 April 20XX Rachel acquires 700 token C for £175.' [TID:5.2] <- fiat
section104: //SELL Trade 100 GBP (=£100.00 GBP) 'CRYPTO22253' 2020-04-28T01:00:00 BST 'On 28 April 20XX Rachel acquires 500 token C for £100.' [TID:6.2] <- fiat
section104: //SELL Trade 150 GBP (=£150.00 GBP) 'CRYPTO22253' 2020-05-01T01:00:00 BST 'On 1 May 20XX Rachel acquires 500 token C for £150.' [TID:7.2] <- fiat
section104: BUY Trade 2,000 TOKENC (=£1,000.00 GBP) 'CRYPTO22253' 2020-01-01T00:00:00 GMT 'Rachel holds 2,000 token C in a section 104 pool. ' [TID:2.1]
section104:   TOKENC=2,000 (+2,000) cost=£1,000.00 GBP (+£1,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: //SELL Trade 700 TOKENC (=£280.00 GBP) 'CRYPTO22253' 2020-03-31T01:00:00 BST 'On 31 March 20XX Rachel disposes of 1,000 token C for £400.' [TID:3.3] <- matched
section104: //SELL Trade 300 TOKENC (=£120.00 GBP) 'CRYPTO22253' 2020-03-31T01:00:00 BST 'On 31 March 20XX Rachel disposes of 1,000 token C for £400.' [TID:3.4] <- matched
section104: //SELL Trade 200 TOKENC (=£60.00 GBP) 'CRYPTO22253' 2020-04-20T01:00:00 BST 'On 20 April 20XX Rachel disposes of 500 token C for £150.' [TID:4.3] <- matched
section104: //SELL Trade 300 TOKENC (=£90.00 GBP) 'CRYPTO22253' 2020-04-20T01:00:00 BST 'On 20 April 20XX Rachel disposes of 500 token C for £150.' [TID:4.4] <- matched
section104: //BUY Trade 700 TOKENC (=£175.00 GBP) 'CRYPTO22253' 2020-04-21T01:00:00 BST 'On 21 April 20XX Rachel acquires 700 token C for £175.' [TID:5.1] <- matched
section104: //BUY Trade 300 TOKENC (=£60.00 GBP) 'CRYPTO22253' 2020-04-28T01:00:00 BST 'On 28 April 20XX Rachel acquires 500 token C for £100.' [TID:6.3] <- matched
section104: //BUY Trade 200 TOKENC (=£40.00 GBP) 'CRYPTO22253' 2020-04-28T01:00:00 BST 'On 28 April 20XX Rachel acquires 500 token C for £100.' [TID:6.4] <- matched
section104: //BUY Trade 300 TOKENC (=£90.00 GBP) 'CRYPTO22253' 2020-05-01T01:00:00 BST 'On 1 May 20XX Rachel acquires 500 token C for £150.' [TID:7.3] <- matched
section104: BUY Trade 200 TOKENC (=£60.00 GBP) 'CRYPTO22253' 2020-05-01T01:00:00 BST 'On 1 May 20XX Rachel acquires 500 token C for £150.' [TID:7.4]
section104:   TOKENC=2,200 (+200) cost=£1,060.00 GBP (+£60.00 GBP) fees=£0.00 GBP (+£0.00 GBP)

4. Example 4 - interaction of same day rule with section 104 pool

This example shows how to the same day rule and a part disposal of the section 104 pool interact.

HMRC is rounding up the pence into pounds when calculating the allowable costs, i.e. £62.50 becomes £63. BittyTax does NOT round up pence.

BittyTax matches the same day acquisition and disposal first creating a "same day" disposal, followed by a separate "section 104" disposal.

pool same day transactions
pool: BUY Trade 6,500 TOKEND (=£500.00 GBP) 'CRYPTO22254' 2020-01-31T10:00:00 GMT '<pooled>' [TID:4.1] (4)
pool:   (BUY Trade 4,000 TOKEND (=£320.00 GBP) 'CRYPTO22254' 2020-01-31T10:00:00 GMT 'Acquisition of 4,000 token D for £320.' [TID:4.1])
pool:   (BUY Trade 1,000 TOKEND (=£75.00 GBP) 'CRYPTO22254' 2020-01-31T11:00:00 GMT 'Acquisition of 1,000 token D for £75.' [TID:5.1])
pool:   (BUY Trade 1,000 TOKEND (=£70.00 GBP) 'CRYPTO22254' 2020-01-31T12:00:00 GMT 'Acquisition of 1,000 token D for £70.' [TID:6.1])
pool:   (BUY Trade 500 TOKEND (=£35.00 GBP) 'CRYPTO22254' 2020-01-31T14:00:00 GMT 'Acquisition of 500 token D for £35.' [TID:8.1])
pool: SELL Trade 7,000 TOKEND (=£642.00 GBP) 'CRYPTO22254' 2020-01-31T13:00:00 GMT '<pooled>' [TID:3.2] (2)
pool:   (SELL Trade 5,000 TOKEND (=£500.00 GBP) 'CRYPTO22254' 2020-01-31T09:00:00 GMT 'Disposal of 5,000 token D for £500.' [TID:3.2])
pool:   (SELL Trade 2,000 TOKEND (=£142.00 GBP) 'CRYPTO22254' 2020-01-31T13:00:00 GMT 'Disposal of 2,000 token D for £142.' [TID:7.2])
...
match same day transactions
match: BUY Trade 6,500 TOKEND (=£500.00 GBP) 'CRYPTO22254' 2020-01-31T10:00:00 GMT '<pooled>' [TID:4.1] (4)
match: SELL Trade 7,000 TOKEND (=£642.00 GBP) 'CRYPTO22254' 2020-01-31T13:00:00 GMT '<pooled>' [TID:3.2] (2)
match:   split: SELL Trade 6,500 TOKEND (=£596.14 GBP) 'CRYPTO22254' 2020-01-31T13:00:00 GMT '<pooled>' [TID:3.3] (2)
match:   split: SELL Trade 500 TOKEND (=£45.86 GBP) 'CRYPTO22254' 2020-01-31T13:00:00 GMT '<pooled>' [TID:3.4] (2)
match:   Disposal(same day) gain=£96.14 (proceeds=£596.14 - cost=£500.00 - fees=£0.00)
...
process section 104
section104: //BUY* Deposit 1,000 GBP 'CRYPTO22254' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 1,000 GBP (=£1,000.00 GBP) 'CRYPTO22254' 2020-01-01T00:00:00 GMT 'Daniel holds 8,000 token D in a section 104 pool.' [TID:2.2] <- fiat
section104: //BUY Trade 500 GBP (=£500.00 GBP) 'CRYPTO22254' 2020-01-31T09:00:00 GMT 'Disposal of 5,000 token D for £500.' [TID:3.1] <- fiat
section104: //SELL Trade 320 GBP (=£320.00 GBP) 'CRYPTO22254' 2020-01-31T10:00:00 GMT 'Acquisition of 4,000 token D for £320.' [TID:4.2] <- fiat
section104: //SELL Trade 75 GBP (=£75.00 GBP) 'CRYPTO22254' 2020-01-31T11:00:00 GMT 'Acquisition of 1,000 token D for £75.' [TID:5.2] <- fiat
section104: //SELL Trade 70 GBP (=£70.00 GBP) 'CRYPTO22254' 2020-01-31T12:00:00 GMT 'Acquisition of 1,000 token D for £70.' [TID:6.2] <- fiat
section104: //BUY Trade 142 GBP (=£142.00 GBP) 'CRYPTO22254' 2020-01-31T13:00:00 GMT 'Disposal of 2,000 token D for £142.' [TID:7.1] <- fiat
section104: //SELL Trade 35 GBP (=£35.00 GBP) 'CRYPTO22254' 2020-01-31T14:00:00 GMT 'Acquisition of 500 token D for £35.' [TID:8.2] <- fiat
section104: BUY Trade 8,000 TOKEND (=£1,000.00 GBP) 'CRYPTO22254' 2020-01-01T00:00:00 GMT 'Daniel holds 8,000 token D in a section 104 pool.' [TID:2.1]
section104:   TOKEND=8,000 (+8,000) cost=£1,000.00 GBP (+£1,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: //BUY Trade 6,500 TOKEND (=£500.00 GBP) 'CRYPTO22254' 2020-01-31T10:00:00 GMT '<pooled>' [TID:4.1] (4) <- matched
section104: //SELL Trade 6,500 TOKEND (=£596.14 GBP) 'CRYPTO22254' 2020-01-31T13:00:00 GMT '<pooled>' [TID:3.3] (2) <- matched
section104: SELL Trade 500 TOKEND (=£45.86 GBP) 'CRYPTO22254' 2020-01-31T13:00:00 GMT '<pooled>' [TID:3.4] (2)
section104:   TOKEND=7,500 (-500) cost=£937.50 GBP (-£62.50 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£-16.64 (proceeds=£45.86 - cost=£62.50 - fees=£0.00)

5. Example 5 - interaction of 30 day rule with section 104 pool

This example shows how to the 30 day rule and a part disposal of the section 104 pool interact.

BittyTax matches the "30 day rule" disposal to the acquisition first, creating a "bed & breakfast" disposal, followed by a separate "section 104" disposal.

match bed & breakfast transactions
match: SELL Trade 4,000 TOKENE (=£160,000.00 GBP) 'CRYPTO22255' 2020-08-30T10:00:00 BST 'On 30 August 20XX Melanie sells 4,000 token E for £160,000.' [TID:3.2]
match: BUY Trade 500 TOKENE (=£17,500.00 GBP) 'CRYPTO22255' 2020-09-11T11:00:00 BST 'Then on 11 September 20XX Melanie buys 500 token E for £17,500.' [TID:4.1]
match:   split: SELL Trade 500 TOKENE (=£20,000.00 GBP) 'CRYPTO22255' 2020-08-30T10:00:00 BST 'On 30 August 20XX Melanie sells 4,000 token E for £160,000.' [TID:3.3]
match:   split: SELL Trade 3,500 TOKENE (=£140,000.00 GBP) 'CRYPTO22255' 2020-08-30T10:00:00 BST 'On 30 August 20XX Melanie sells 4,000 token E for £160,000.' [TID:3.4]
match:   Disposal(bed & breakfast) gain=£2,500.00 (proceeds=£20,000.00 - cost=£17,500.00 - fees=£0.00)
...
process section 104
section104: //BUY* Deposit 200,000 GBP 'CRYPTO22255' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 200,000 GBP (=£200,000.00 GBP) 'CRYPTO22255' 2020-01-01T00:00:00 GMT 'Melanie holds 14,000 token E in a section 104 pool.' [TID:2.2] <- fiat
section104: //BUY Trade 160,000 GBP (=£160,000.00 GBP) 'CRYPTO22255' 2020-08-30T10:00:00 BST 'On 30 August 20XX Melanie sells 4,000 token E for £160,000.' [TID:3.1] <- fiat
section104: //SELL Trade 17,500 GBP (=£17,500.00 GBP) 'CRYPTO22255' 2020-09-11T11:00:00 BST 'Then on 11 September 20XX Melanie buys 500 token E for £17,500.' [TID:4.2] <- fiat
section104: BUY Trade 14,000 TOKENE (=£200,000.00 GBP) 'CRYPTO22255' 2020-01-01T00:00:00 GMT 'Melanie holds 14,000 token E in a section 104 pool.' [TID:2.1]
section104:   TOKENE=14,000 (+14,000) cost=£200,000.00 GBP (+£200,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: //SELL Trade 500 TOKENE (=£20,000.00 GBP) 'CRYPTO22255' 2020-08-30T10:00:00 BST 'On 30 August 20XX Melanie sells 4,000 token E for £160,000.' [TID:3.3] <- matched
section104: SELL Trade 3,500 TOKENE (=£140,000.00 GBP) 'CRYPTO22255' 2020-08-30T10:00:00 BST 'On 30 August 20XX Melanie sells 4,000 token E for £160,000.' [TID:3.4]
section104:   TOKENE=10,500 (-3,500) cost=£150,000.00 GBP (-£50,000.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£90,000.00 (proceeds=£140,000.00 - cost=£50,000.00 - fees=£0.00)
section104: //BUY Trade 500 TOKENE (=£17,500.00 GBP) 'CRYPTO22255' 2020-09-11T11:00:00 BST 'Then on 11 September 20XX Melanie buys 500 token E for £17,500.' [TID:4.1] <- matched

6. Example 6 - interaction of same day rule, 30 day rule and section 104 pool

This example shows how to the same day rule, 30 day rule and a part disposal of the section 104 pool interact.

HMRC is rounding up the pence into pounds when calculating the allowable costs, i.e. £313,636.36 becomes £313,637. BittyTax does NOT round up pence.

BittyTax matches the same day acquisition and disposal first creating a "same day" disposal, followed by a separate "bed & breakfast" disposal.

match same day transactions
match: BUY Trade 10,000 TOKENF (=£45,000.00 GBP) 'CRYPTO22256' 2020-07-31T10:00:00 BST '31 July 20XX – acquisition of 10,000 token F for £45,000.' [TID:3.1]
match: SELL Trade 30,000 TOKENF (=£150,000.00 GBP) 'CRYPTO22256' 2020-07-31T11:00:00 BST '31 July 20XX – disposal of 30,000 token F for £150,000.' [TID:4.2]
match:   split: SELL Trade 10,000 TOKENF (=£50,000.00 GBP) 'CRYPTO22256' 2020-07-31T11:00:00 BST '31 July 20XX – disposal of 30,000 token F for £150,000.' [TID:4.3]
match:   split: SELL Trade 20,000 TOKENF (=£100,000.00 GBP) 'CRYPTO22256' 2020-07-31T11:00:00 BST '31 July 20XX – disposal of 30,000 token F for £150,000.' [TID:4.4]
match:   Disposal(same day) gain=£5,000.00 (proceeds=£50,000.00 - cost=£45,000.00 - fees=£0.00)
...
match bed & breakfast transactions
match: SELL Trade 20,000 TOKENF (=£100,000.00 GBP) 'CRYPTO22256' 2020-07-31T11:00:00 BST '31 July 20XX – disposal of 30,000 token F for £150,000.' [TID:4.4]
match: BUY Trade 50,000 TOKENF (=£225,000.00 GBP) 'CRYPTO22256' 2020-08-06T10:00:00 BST '6 August 20XX – acquisition of 50,000 token F for £225,000.' [TID:6.1]
match:   split: BUY Trade 20,000 TOKENF (=£90,000.00 GBP) 'CRYPTO22256' 2020-08-06T10:00:00 BST '6 August 20XX – acquisition of 50,000 token F for £225,000.' [TID:6.3]
match:   split: BUY Trade 30,000 TOKENF (=£135,000.00 GBP) 'CRYPTO22256' 2020-08-06T10:00:00 BST '6 August 20XX – acquisition of 50,000 token F for £225,000.' [TID:6.4]
match:   Disposal(bed & breakfast) gain=£10,000.00 (proceeds=£100,000.00 - cost=£90,000.00 - fees=£0.00)
match: SELL Trade 20,000 TOKENF (=£100,000.00 GBP) 'CRYPTO22256' 2020-08-05T10:00:00 BST '5 August 20XX – disposal of 20,000 token F for £100,000.' [TID:5.2]
match: BUY Trade 30,000 TOKENF (=£135,000.00 GBP) 'CRYPTO22256' 2020-08-06T10:00:00 BST '6 August 20XX – acquisition of 50,000 token F for £225,000.' [TID:6.4]
match:   split: BUY Trade 20,000 TOKENF (=£90,000.00 GBP) 'CRYPTO22256' 2020-08-06T10:00:00 BST '6 August 20XX – acquisition of 50,000 token F for £225,000.' [TID:6.5]
match:   split: BUY Trade 10,000 TOKENF (=£45,000.00 GBP) 'CRYPTO22256' 2020-08-06T10:00:00 BST '6 August 20XX – acquisition of 50,000 token F for £225,000.' [TID:6.6]
match:   Disposal(bed & breakfast) gain=£10,000.00 (proceeds=£100,000.00 - cost=£90,000.00 - fees=£0.00)
...
process section 104
section104: //BUY* Deposit 345,000 GBP 'CRYPTO22256' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 300,000 GBP (=£300,000.00 GBP) 'CRYPTO22256' 2020-01-01T00:00:00 GMT 'Gulferaz holds 100,000 token F in a section 104 pool.' [TID:2.2] <- fiat
section104: //SELL Trade 45,000 GBP (=£45,000.00 GBP) 'CRYPTO22256' 2020-07-31T10:00:00 BST '31 July 20XX – acquisition of 10,000 token F for £45,000.' [TID:3.2] <- fiat
section104: //BUY Trade 150,000 GBP (=£150,000.00 GBP) 'CRYPTO22256' 2020-07-31T11:00:00 BST '31 July 20XX – disposal of 30,000 token F for £150,000.' [TID:4.1] <- fiat
section104: //BUY Trade 100,000 GBP (=£100,000.00 GBP) 'CRYPTO22256' 2020-08-05T10:00:00 BST '5 August 20XX – disposal of 20,000 token F for £100,000.' [TID:5.1] <- fiat
section104: //SELL Trade 225,000 GBP (=£225,000.00 GBP) 'CRYPTO22256' 2020-08-06T10:00:00 BST '6 August 20XX – acquisition of 50,000 token F for £225,000.' [TID:6.2] <- fiat
section104: //BUY Trade 150,000 GBP (=£150,000.00 GBP) 'CRYPTO22256' 2020-08-07T10:00:00 BST '7 August 20XX – disposal of 100,000 token F for £150,000.' [TID:7.1] <- fiat
section104: BUY Trade 100,000 TOKENF (=£300,000.00 GBP) 'CRYPTO22256' 2020-01-01T00:00:00 GMT 'Gulferaz holds 100,000 token F in a section 104 pool.' [TID:2.1]
section104:   TOKENF=100,000 (+100,000) cost=£300,000.00 GBP (+£300,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: //BUY Trade 10,000 TOKENF (=£45,000.00 GBP) 'CRYPTO22256' 2020-07-31T10:00:00 BST '31 July 20XX – acquisition of 10,000 token F for £45,000.' [TID:3.1] <- matched
section104: //SELL Trade 10,000 TOKENF (=£50,000.00 GBP) 'CRYPTO22256' 2020-07-31T11:00:00 BST '31 July 20XX – disposal of 30,000 token F for £150,000.' [TID:4.3] <- matched
section104: //SELL Trade 20,000 TOKENF (=£100,000.00 GBP) 'CRYPTO22256' 2020-07-31T11:00:00 BST '31 July 20XX – disposal of 30,000 token F for £150,000.' [TID:4.4] <- matched
section104: //SELL Trade 20,000 TOKENF (=£100,000.00 GBP) 'CRYPTO22256' 2020-08-05T10:00:00 BST '5 August 20XX – disposal of 20,000 token F for £100,000.' [TID:5.2] <- matched
section104: //BUY Trade 20,000 TOKENF (=£90,000.00 GBP) 'CRYPTO22256' 2020-08-06T10:00:00 BST '6 August 20XX – acquisition of 50,000 token F for £225,000.' [TID:6.3] <- matched
section104: //BUY Trade 20,000 TOKENF (=£90,000.00 GBP) 'CRYPTO22256' 2020-08-06T10:00:00 BST '6 August 20XX – acquisition of 50,000 token F for £225,000.' [TID:6.5] <- matched
section104: BUY Trade 10,000 TOKENF (=£45,000.00 GBP) 'CRYPTO22256' 2020-08-06T10:00:00 BST '6 August 20XX – acquisition of 50,000 token F for £225,000.' [TID:6.6]
section104:   TOKENF=110,000 (+10,000) cost=£345,000.00 GBP (+£45,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 100,000 TOKENF (=£150,000.00 GBP) 'CRYPTO22256' 2020-08-07T10:00:00 BST '7 August 20XX – disposal of 100,000 token F for £150,000.' [TID:7.2]
section104:   TOKENF=10,000 (-100,000) cost=£31,363.64 GBP (-£313,636.36 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£-163,636.36 (proceeds=£150,000.00 - cost=£313,636.36 - fees=£0.00)

7. Example 7 - disposal of tokens to acquire different tokens (‘crypto-to-crypto' exchange)

Most types of tokens need to be purchased using another token. This means that a transaction may simultaneously affect two section 104 pools. This example illustrates how a transaction can affect two section 104 pools simultaneously.

In this crypto-to-crypto example you will notice the valuations have been swapped, i.e. Buy Value in GBP to Sell Value in GBP, and vice versa. BittyTax does NOT do this automatically when fixed valuations are specified.

HMRC is rounding up the pence into pounds when calculating the allowable costs, i.e. £1,653.33 becomes £1,653. BittyTax does NOT round up pence.

BittyTax matches the same day acquisition and disposal first creating a "same day" disposal, followed by a separate "bed & breakfast", and then a "section 104" disposal.

pool same day transactions
pool: SELL Trade 1,550 TOKENG (=£4,850.00 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '<pooled>' [TID:3.2] (2)
pool:   (SELL Trade 1,000 TOKENG (=£3,200.00 GBP) 'CRYPTO22257' 2020-08-31T10:00:00 BST '31 August 20XX – acquisition of 10,000 token H (with a value of £3,200) for 1,000 token G (with a value of £3,200)' [TID:3.2])
pool:   (SELL Trade 550 TOKENG (=£1,650.00 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '31 August 20XX – acquisition of 5,000 token H (with a value of £1,650) for 550 token G (with a value of £1,760)' [TID:5.2])
pool: BUY Trade 15,000 TOKENH (=£4,960.00 GBP) 'CRYPTO22257' 2020-08-31T10:00:00 BST '<pooled>' [TID:3.1] (2)
pool:   (BUY Trade 10,000 TOKENH (=£3,200.00 GBP) 'CRYPTO22257' 2020-08-31T10:00:00 BST '31 August 20XX – acquisition of 10,000 token H (with a value of £3,200) for 1,000 token G (with a value of £3,200)' [TID:3.1])
pool:   (BUY Trade 5,000 TOKENH (=£1,760.00 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '31 August 20XX – acquisition of 5,000 token H (with a value of £1,650) for 550 token G (with a value of £1,760)' [TID:5.1])
...
match same day transactions
match: BUY Trade 600 TOKENG (=£1,700.00 GBP) 'CRYPTO22257' 2020-08-31T11:00:00 BST '31 August 20XX – disposal of 5,000 token H (with a value of £1,700) for 600 token G (with a value of £1,920)' [TID:4.1]
match: SELL Trade 1,550 TOKENG (=£4,850.00 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '<pooled>' [TID:3.2] (2)
match:   split: SELL Trade 600 TOKENG (=£1,877.42 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '<pooled>' [TID:3.3] (2)
match:   split: SELL Trade 950 TOKENG (=£2,972.58 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '<pooled>' [TID:3.4] (2)
match:   Disposal(same day) gain=£177.42 (proceeds=£1,877.42 - cost=£1,700.00 - fees=£0.00)
match: BUY Trade 15,000 TOKENH (=£4,960.00 GBP) 'CRYPTO22257' 2020-08-31T10:00:00 BST '<pooled>' [TID:3.1] (2)
match: SELL Trade 5,000 TOKENH (=£1,920.00 GBP) 'CRYPTO22257' 2020-08-31T11:00:00 BST '31 August 20XX – disposal of 5,000 token H (with a value of £1,700) for 600 token G (with a value of £1,920)' [TID:4.2]
match:   split: BUY Trade 5,000 TOKENH (=£1,653.33 GBP) 'CRYPTO22257' 2020-08-31T10:00:00 BST '<pooled>' [TID:3.5] (2)
match:   split: BUY Trade 10,000 TOKENH (=£3,306.67 GBP) 'CRYPTO22257' 2020-08-31T10:00:00 BST '<pooled>' [TID:3.6] (2)
match:   Disposal(same day) gain=£266.67 (proceeds=£1,920.00 - cost=£1,653.33 - fees=£0.00)
...
match bed & breakfast transactions
match: SELL Trade 950 TOKENG (=£2,972.58 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '<pooled>' [TID:3.4] (2)
match: BUY Trade 180 TOKENG (=£560.00 GBP) 'CRYPTO22257' 2020-09-04T10:00:00 BST '4 September 20XX – disposal of 2,000 token H (with a value of £560) for 180 token G (with a value of £558)' [TID:6.1]
match:   split: SELL Trade 180 TOKENG (=£563.23 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '<pooled>' [TID:3.7] (2)
match:   split: SELL Trade 770 TOKENG (=£2,409.35 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '<pooled>' [TID:3.8] (2)
match:   Disposal(bed & breakfast) gain=£3.23 (proceeds=£563.23 - cost=£560.00 - fees=£0.00)
match: SELL Trade 2,000 TOKENH (=£558.00 GBP) 'CRYPTO22257' 2020-09-04T10:00:00 BST '4 September 20XX – disposal of 2,000 token H (with a value of £560) for 180 token G (with a value of £558)' [TID:6.2]
match: BUY Trade 4,000 TOKENH (=£1,080.00 GBP) 'CRYPTO22257' 2020-09-16T10:00:00 BST '16 September 20XX – acquisition of 4,000 token H (with a value of £1,080) for 400 token G (with a value of £1,080)' [TID:7.1]
match:   split: BUY Trade 2,000 TOKENH (=£540.00 GBP) 'CRYPTO22257' 2020-09-16T10:00:00 BST '16 September 20XX – acquisition of 4,000 token H (with a value of £1,080) for 400 token G (with a value of £1,080)' [TID:7.3]
match:   split: BUY Trade 2,000 TOKENH (=£540.00 GBP) 'CRYPTO22257' 2020-09-16T10:00:00 BST '16 September 20XX – acquisition of 4,000 token H (with a value of £1,080) for 400 token G (with a value of £1,080)' [TID:7.4]
match:   Disposal(bed & breakfast) gain=£18.00 (proceeds=£558.00 - cost=£540.00 - fees=£0.00)
...
process section 104
section104: //BUY* Deposit 300,000 GBP 'CRYPTO22257' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 300,000 GBP (=£300,000.00 GBP) 'CRYPTO22257' 2020-01-01T00:00:00 GMT 'Elina holds 100,000 token G in a section 104 pool.' [TID:2.2] <- fiat
section104: BUY Trade 100,000 TOKENG (=£300,000.00 GBP) 'CRYPTO22257' 2020-01-01T00:00:00 GMT 'Elina holds 100,000 token G in a section 104 pool.' [TID:2.1]
section104:   TOKENG=100,000 (+100,000) cost=£300,000.00 GBP (+£300,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: //BUY Trade 600 TOKENG (=£1,700.00 GBP) 'CRYPTO22257' 2020-08-31T11:00:00 BST '31 August 20XX – disposal of 5,000 token H (with a value of £1,700) for 600 token G (with a value of £1,920)' [TID:4.1] <- matched
section104: //SELL Trade 600 TOKENG (=£1,877.42 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '<pooled>' [TID:3.3] (2) <- matched
section104: //SELL Trade 180 TOKENG (=£563.23 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '<pooled>' [TID:3.7] (2) <- matched
section104: SELL Trade 770 TOKENG (=£2,409.35 GBP) 'CRYPTO22257' 2020-08-31T12:00:00 BST '<pooled>' [TID:3.8] (2)
section104:   TOKENG=99,230 (-770) cost=£297,690.00 GBP (-£2,310.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£99.35 (proceeds=£2,409.35 - cost=£2,310.00 - fees=£0.00)
section104: //BUY Trade 180 TOKENG (=£560.00 GBP) 'CRYPTO22257' 2020-09-04T10:00:00 BST '4 September 20XX – disposal of 2,000 token H (with a value of £560) for 180 token G (with a value of £558)' [TID:6.1] <- matched
section104: SELL Trade 400 TOKENG (=£1,080.00 GBP) 'CRYPTO22257' 2020-09-16T10:00:00 BST '16 September 20XX – acquisition of 4,000 token H (with a value of £1,080) for 400 token G (with a value of £1,080)' [TID:7.2]
section104:   TOKENG=98,830 (-400) cost=£296,490.00 GBP (-£1,200.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£-120.00 (proceeds=£1,080.00 - cost=£1,200.00 - fees=£0.00)
section104: BUY Trade 900 TOKENG (=£2,400.00 GBP) 'CRYPTO22257' 2020-10-27T09:00:00 GMT '27 October 20XX – disposal of 12,000 token H (with a value of £2,400) for 900 token G (with a value of £2,430)' [TID:8.1]
section104:   TOKENG=99,730 (+900) cost=£298,890.00 GBP (+£2,400.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: //BUY Trade 5,000 TOKENH (=£1,653.33 GBP) 'CRYPTO22257' 2020-08-31T10:00:00 BST '<pooled>' [TID:3.5] (2) <- matched
section104: BUY Trade 10,000 TOKENH (=£3,306.67 GBP) 'CRYPTO22257' 2020-08-31T10:00:00 BST '<pooled>' [TID:3.6] (2)
section104:   TOKENH=10,000 (+10,000) cost=£3,306.67 GBP (+£3,306.67 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: //SELL Trade 5,000 TOKENH (=£1,920.00 GBP) 'CRYPTO22257' 2020-08-31T11:00:00 BST '31 August 20XX – disposal of 5,000 token H (with a value of £1,700) for 600 token G (with a value of £1,920)' [TID:4.2] <- matched
section104: //SELL Trade 2,000 TOKENH (=£558.00 GBP) 'CRYPTO22257' 2020-09-04T10:00:00 BST '4 September 20XX – disposal of 2,000 token H (with a value of £560) for 180 token G (with a value of £558)' [TID:6.2] <- matched
section104: //BUY Trade 2,000 TOKENH (=£540.00 GBP) 'CRYPTO22257' 2020-09-16T10:00:00 BST '16 September 20XX – acquisition of 4,000 token H (with a value of £1,080) for 400 token G (with a value of £1,080)' [TID:7.3] <- matched
section104: BUY Trade 2,000 TOKENH (=£540.00 GBP) 'CRYPTO22257' 2020-09-16T10:00:00 BST '16 September 20XX – acquisition of 4,000 token H (with a value of £1,080) for 400 token G (with a value of £1,080)' [TID:7.4]
section104:   TOKENH=12,000 (+2,000) cost=£3,846.67 GBP (+£540.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 12,000 TOKENH (=£2,430.00 GBP) 'CRYPTO22257' 2020-10-27T09:00:00 GMT '27 October 20XX – disposal of 12,000 token H (with a value of £2,400) for 900 token G (with a value of £2,430)' [TID:8.2]
section104:   TOKENH=0 (-12,000) cost=£0.00 GBP (-£3,846.67 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£-1,416.67 (proceeds=£2,430.00 - cost=£3,846.67 - fees=£0.00)

8. Example - Fees satisfied in tokens

pool same day transactions
pool: SELL Trade 1,001 TOKEN (=£5,005.00 GBP) + fee=£5.00 GBP 'CRYPTO22280' 2020-08-01T10:00:00 BST 'Terri decides to sell 1,000 of the tokens for £5,000. The transaction requires that she pays a fee of 0.1% of what she is selling, i.e. 1 token.' [TID:3.2] (2)
pool:   (SELL Trade 1,000 TOKEN (=£5,000.00 GBP) + fee=£5.00 GBP 'CRYPTO22280' 2020-08-01T10:00:00 BST 'Terri decides to sell 1,000 of the tokens for £5,000. The transaction requires that she pays a fee of 0.1% of what she is selling, i.e. 1 token.' [TID:3.2])
pool:   (SELL Spend 1 TOKEN (=£5.00 GBP) 'CRYPTO22280' 2020-08-01T10:00:00 BST 'Terri decides to sell 1,000 of the tokens for £5,000. The transaction requires that she pays a fee of 0.1% of what she is selling, i.e. 1 token.' [TID:3.3])
...
process section 104
section104: //BUY* Deposit 20,000 GBP 'CRYPTO22280' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 20,000 GBP (=£20,000.00 GBP) 'CRYPTO22280' 2020-01-01T00:00:00 GMT 'Terri holds 10,000 tokens that she acquired for total cost of £20,000. ' [TID:2.2] <- fiat
section104: //BUY Trade 5,000 GBP (=£5,000.00 GBP) 'CRYPTO22280' 2020-08-01T10:00:00 BST 'Terri decides to sell 1,000 of the tokens for £5,000. The transaction requires that she pays a fee of 0.1% of what she is selling, i.e. 1 token.' [TID:3.1] <- fiat
section104: BUY Trade 10,000 TOKEN (=£20,000.00 GBP) 'CRYPTO22280' 2020-01-01T00:00:00 GMT 'Terri holds 10,000 tokens that she acquired for total cost of £20,000. ' [TID:2.1]
section104:   TOKEN=10,000 (+10,000) cost=£20,000.00 GBP (+£20,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 1,001 TOKEN (=£5,005.00 GBP) + fee=£5.00 GBP 'CRYPTO22280' 2020-08-01T10:00:00 BST 'Terri decides to sell 1,000 of the tokens for £5,000. The transaction requires that she pays a fee of 0.1% of what she is selling, i.e. 1 token.' [TID:3.2] (2)
section104:   TOKEN=8,999 (-1,001) cost=£17,998.00 GBP (-£2,002.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£2,998.00 (proceeds=£5,005.00 - cost=£2,002.00 - fees=£5.00)

Business

Corporation Tax on Chargeable Gains, pooling.

These tests require the correct --taxrules to be used, for example:

bittytax --taxrules UK_COMPANY_JAN -d CRYPTO41350-1.xlsx

1. Example 1

process section 104
section104: //BUY* Deposit 126,000 GBP 'CRYPTO41350-1' 2016-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 1,000 GBP (=£1,000.00 GBP) 'CRYPTO41350-1' 2016-01-01T00:00:00 GMT 'V Ltd bought 100 token A for £1,000.' [TID:2.2] <- fiat
section104: //SELL Trade 125,000 GBP (=£125,000.00 GBP) 'CRYPTO41350-1' 2017-01-01T00:00:00 GMT 'A year later V Ltd bought a further 50 token A for £125,000.' [TID:3.2] <- fiat
section104: //BUY Trade 300,000 GBP (=£300,000.00 GBP) 'CRYPTO41350-1' 2020-09-04T01:00:00 BST 'A few years later V Ltd sells 50 of its token A for £300,000. ' [TID:4.1] <- fiat
section104: BUY Trade 100 TOKENA (=£1,000.00 GBP) 'CRYPTO41350-1' 2016-01-01T00:00:00 GMT 'V Ltd bought 100 token A for £1,000.' [TID:2.1]
section104:   TOKENA=100 (+100) cost=£1,000.00 GBP (+£1,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: BUY Trade 50 TOKENA (=£125,000.00 GBP) 'CRYPTO41350-1' 2017-01-01T00:00:00 GMT 'A year later V Ltd bought a further 50 token A for £125,000.' [TID:3.1]
section104:   TOKENA=150 (+50) cost=£126,000.00 GBP (+£125,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 50 TOKENA (=£300,000.00 GBP) 'CRYPTO41350-1' 2020-09-04T01:00:00 BST 'A few years later V Ltd sells 50 of its token A for £300,000. ' [TID:4.2]
section104:   TOKENA=100 (-50) cost=£84,000.00 GBP (-£42,000.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£258,000.00 (proceeds=£300,000.00 - cost=£42,000.00 - fees=£0.00)

2. Example 2

match ten day transactions
match: BUY Trade 500 TOKENA (=£17,500.00 GBP) 'CRYPTO41350-2' 2020-08-30T01:00:00 BST 'On 30 August 2018 M Ltd buys 500 token B for £17,500.' [TID:3.1]
match: SELL Trade 4,000 TOKENA (=£160,000.00 GBP) 'CRYPTO41350-2' 2020-09-04T01:00:00 BST 'Then on 4 September 2018 M Ltd sells 4,000 tokens B for £160,000.' [TID:4.2]
match:   split: SELL Trade 500 TOKENA (=£20,000.00 GBP) 'CRYPTO41350-2' 2020-09-04T01:00:00 BST 'Then on 4 September 2018 M Ltd sells 4,000 tokens B for £160,000.' [TID:4.3]
match:   split: SELL Trade 3,500 TOKENA (=£140,000.00 GBP) 'CRYPTO41350-2' 2020-09-04T01:00:00 BST 'Then on 4 September 2018 M Ltd sells 4,000 tokens B for £160,000.' [TID:4.4]
match:   Disposal(ten day) gain=£2,500.00 (proceeds=£20,000.00 - cost=£17,500.00 - fees=£0.00)
...
process section 104
section104: //BUY* Deposit 217,500 GBP 'CRYPTO41350-2' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 200,000 GBP (=£200,000.00 GBP) 'CRYPTO41350-2' 2020-01-01T00:00:00 GMT 'M Ltd holds 14,000 token B in a pool. It spent a total of £200,000 acquiring them, which is the pooled allowable cost.' [TID:2.2] <- fiat
section104: //SELL Trade 17,500 GBP (=£17,500.00 GBP) 'CRYPTO41350-2' 2020-08-30T01:00:00 BST 'On 30 August 2018 M Ltd buys 500 token B for £17,500.' [TID:3.2] <- fiat
section104: //BUY Trade 160,000 GBP (=£160,000.00 GBP) 'CRYPTO41350-2' 2020-09-04T01:00:00 BST 'Then on 4 September 2018 M Ltd sells 4,000 tokens B for £160,000.' [TID:4.1] <- fiat
section104: BUY Trade 14,000 TOKENA (=£200,000.00 GBP) 'CRYPTO41350-2' 2020-01-01T00:00:00 GMT 'M Ltd holds 14,000 token B in a pool. It spent a total of £200,000 acquiring them, which is the pooled allowable cost.' [TID:2.1]
section104:   TOKENA=14,000 (+14,000) cost=£200,000.00 GBP (+£200,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: //BUY Trade 500 TOKENA (=£17,500.00 GBP) 'CRYPTO41350-2' 2020-08-30T01:00:00 BST 'On 30 August 2018 M Ltd buys 500 token B for £17,500.' [TID:3.1] <- matched
section104: //SELL Trade 500 TOKENA (=£20,000.00 GBP) 'CRYPTO41350-2' 2020-09-04T01:00:00 BST 'Then on 4 September 2018 M Ltd sells 4,000 tokens B for £160,000.' [TID:4.3] <- matched
section104: SELL Trade 3,500 TOKENA (=£140,000.00 GBP) 'CRYPTO41350-2' 2020-09-04T01:00:00 BST 'Then on 4 September 2018 M Ltd sells 4,000 tokens B for £160,000.' [TID:4.4]
section104:   TOKENA=10,500 (-3,500) cost=£150,000.00 GBP (-£50,000.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£90,000.00 (proceeds=£140,000.00 - cost=£50,000.00 - fees=£0.00)

Decentralised Finance (DeFi)

Decentralised Finance, lending and staking, Chargeable Gains.

1. Example 1 - loan of tokens

In this example an NFT has been used to record the rights of the loan.

process section 104
section104: //BUY* Deposit 200 GBP 'CRYPTO61671' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 200 GBP (=£200.00 GBP) 'CRYPTO61671' 2020-01-01T00:00:00 GMT 'Bruce holds 100 tokens with a total acquisition cost of £200.' [TID:2.2] <- fiat
section104: BUY Trade 100 TOKENA (=£200.00 GBP) 'CRYPTO61671' 2020-01-01T00:00:00 GMT 'Bruce holds 100 tokens with a total acquisition cost of £200.' [TID:2.1]
section104:   TOKENA=100 (+100) cost=£200.00 GBP (+£200.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 100 TOKENA (=£150.00 GBP) 'CRYPTO61671' 2020-02-01T00:00:00 GMT 'Bruce enters into an agreement with Terri-Jay to loan her the 100 tokens for 12 months. At the time the loan is made, the tokens have a sterling value of £1.50 each.' [TID:3.2]
section104:   TOKENA=0 (-100) cost=£0.00 GBP (-£200.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£-50.00 (proceeds=£150.00 - cost=£200.00 - fees=£0.00)
section104: BUY Trade 1 ~loan-Terri-Jay #1 (=£150.00 GBP) 'CRYPTO61671' 2020-02-01T00:00:00 GMT 'Bruce enters into an agreement with Terri-Jay to loan her the 100 tokens for 12 months. At the time the loan is made, the tokens have a sterling value of £1.50 each.' [TID:3.1]
section104:   ~loan-Terri-Jay #1=1 (+1) cost=£150.00 GBP (+£150.00 GBP) fees=£0.00 GBP (+£0.00 GBP)

2. Example 2 - loan of tokens with a return on the loan

In this example an NFT has been used to record the rights of the loan.

process section 104
section104: //BUY* Deposit 200 GBP 'CRYPTO61672' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 200 GBP (=£200.00 GBP) 'CRYPTO61672' 2020-01-01T00:00:00 GMT 'Keri holds 100 tokens with a total acquisition cost of £200.' [TID:2.2] <- fiat
section104: BUY Trade 100 TOKENA (=£200.00 GBP) 'CRYPTO61672' 2020-01-01T00:00:00 GMT 'Keri holds 100 tokens with a total acquisition cost of £200.' [TID:2.1]
section104:   TOKENA=100 (+100) cost=£200.00 GBP (+£200.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 100 TOKENA (=£150.00 GBP) 'CRYPTO61672' 2020-02-01T00:00:00 GMT 'Keri enters into an agreement with Chris to loan them the 100 tokens for 12 months. The loan agreement includes that Chris will pay a return of 5% at the end of the loan. At the time the loan is made, the tokens have a sterling value of £1.50 each.' [TID:3.2]
section104:   TOKENA=0 (-100) cost=£0.00 GBP (-£200.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£-50.00 (proceeds=£150.00 - cost=£200.00 - fees=£0.00)
section104: BUY Trade 1 ~loan-Chris #1 (=£150.00 GBP) 'CRYPTO61672' 2020-02-01T00:00:00 GMT 'Keri enters into an agreement with Chris to loan them the 100 tokens for 12 months. The loan agreement includes that Chris will pay a return of 5% at the end of the loan. At the time the loan is made, the tokens have a sterling value of £1.50 each.' [TID:3.1]
section104:   ~loan-Chris #1=1 (+1) cost=£150.00 GBP (+£150.00 GBP) fees=£0.00 GBP (+£0.00 GBP)

3. Example 3 - loan of tokens where the quantity of tokens is unascertainable

In this example an NFT has been used to record the rights of the loan.

process section 104
section104: //BUY* Deposit 200 GBP 'CRYPTO61673' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 200 GBP (=£200.00 GBP) 'CRYPTO61673' 2020-01-01T00:00:00 GMT 'Beverley holds 100 tokens with a total acquisition cost of £200.' [TID:2.2] <- fiat
section104: BUY Trade 100 TOKENA (=£200.00 GBP) 'CRYPTO61673' 2020-01-01T00:00:00 GMT 'Beverley holds 100 tokens with a total acquisition cost of £200.' [TID:2.1]
section104:   TOKENA=100 (+100) cost=£200.00 GBP (+£200.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 100 TOKENA (=£165.00 GBP) 'CRYPTO61673' 2020-02-01T00:00:00 GMT 'Beverley enters into an agreement with Alex to loan him the 100 tokens with no fixed end date to the loan. Beverley can make a demand for the loan to be satisfied or at any time before that Alex can choose to satisfy the loan. They agree an annual percentage rate of 5% on the quantity of tokens loaned. At the time the loan is made, the tokens have a sterling value of £1.50 each.' [TID:3.2]
section104:   TOKENA=0 (-100) cost=£0.00 GBP (-£200.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£-35.00 (proceeds=£165.00 - cost=£200.00 - fees=£0.00)
section104: BUY Trade 1 ~loan-Alex #1 (=£165.00 GBP) 'CRYPTO61673' 2020-02-01T00:00:00 GMT 'Beverley enters into an agreement with Alex to loan him the 100 tokens with no fixed end date to the loan. Beverley can make a demand for the loan to be satisfied or at any time before that Alex can choose to satisfy the loan. They agree an annual percentage rate of 5% on the quantity of tokens loaned. At the time the loan is made, the tokens have a sterling value of £1.50 each.' [TID:3.1]
section104:   ~loan-Alex #1=1 (+1) cost=£165.00 GBP (+£165.00 GBP) fees=£0.00 GBP (+£0.00 GBP)

4. Example 4 - loan of tokens to a platform in exchange for liquidity tokens

In this LP token acquisition example you will notice the valuations have been swapped, i.e. Buy Value in GBP to Sell Value in GBP, and vice versa. BittyTax does NOT do this automatically when fixed valuations are specified.

HMRC is rounding up the pence into pounds when calculating the allowable costs, i.e. £11.54 becomes £12. BittyTax does NOT round up pence.

pool same day transactions
pool: BUY Trade 1 LP (=£13.00 GBP) 'CRYPTO61674' 2020-06-01T01:00:00 BST '<pooled>' [TID:4.1] (2)
pool:   (BUY Trade 0.5 LP (=£10.00 GBP) 'CRYPTO61674' 2020-06-01T01:00:00 BST 'On 01/06/20XX, Jack transfers 10 token A and 5 token B to the DeFi lending platform. The DeFi lending platform transfers a liquidity token to Jack.' [TID:4.1])
pool:   (BUY Trade 0.5 LP (=£3.00 GBP) 'CRYPTO61674' 2020-06-01T01:00:00 BST 'At the time of this exchange the token A are valued at £1.00 each, the token B are valued at £0.60 each. The liquidity token is valued at £15.00 each.' [TID:5.1])
...
process section 104
section104: //BUY* Deposit 150 GBP 'CRYPTO61674' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 100 GBP (=£100.00 GBP) 'CRYPTO61674' 2020-01-01T00:00:00 GMT '100 token A. These are in a section 104 pool with a total acquisition cost of £100.' [TID:2.2] <- fiat
section104: //SELL Trade 50 GBP (=£50.00 GBP) 'CRYPTO61674' 2020-01-01T00:00:00 GMT '100 token B. These are in a section 104 pool with a total acquisition cost of £50.' [TID:3.2] <- fiat
section104: BUY Trade 1 LP (=£13.00 GBP) 'CRYPTO61674' 2020-06-01T01:00:00 BST '<pooled>' [TID:4.1] (2)
section104:   LP=1 (+1) cost=£13.00 GBP (+£13.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: BUY Trade 100 TOKENA (=£100.00 GBP) 'CRYPTO61674' 2020-01-01T00:00:00 GMT '100 token A. These are in a section 104 pool with a total acquisition cost of £100.' [TID:2.1]
section104:   TOKENA=100 (+100) cost=£100.00 GBP (+£100.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 10 TOKENA (=£11.54 GBP) 'CRYPTO61674' 2020-06-01T01:00:00 BST 'On 01/06/20XX, Jack transfers 10 token A and 5 token B to the DeFi lending platform. The DeFi lending platform transfers a liquidity token to Jack.' [TID:4.2]
section104:   TOKENA=90 (-10) cost=£90.00 GBP (-£10.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£1.54 (proceeds=£11.54 - cost=£10.00 - fees=£0.00)
section104: BUY Trade 100 TOKENB (=£50.00 GBP) 'CRYPTO61674' 2020-01-01T00:00:00 GMT '100 token B. These are in a section 104 pool with a total acquisition cost of £50.' [TID:3.1]
section104:   TOKENB=100 (+100) cost=£50.00 GBP (+£50.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 5 TOKENB (=£3.46 GBP) 'CRYPTO61674' 2020-06-01T01:00:00 BST 'At the time of this exchange the token A are valued at £1.00 each, the token B are valued at £0.60 each. The liquidity token is valued at £15.00 each.' [TID:5.2]
section104:   TOKENB=95 (-5) cost=£47.50 GBP (-£2.50 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£0.96 (proceeds=£3.46 - cost=£2.50 - fees=£0.00)

5. Example 5 - disposal when a borrower’s collateral is liquidated

process section 104
section104: //BUY* Deposit 500 GBP 'CRYPTO61675' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 500 GBP (=£500.00 GBP) 'CRYPTO61675' 2020-01-01T00:00:00 GMT 'Lucas holds 100 tokens with a total acquisition cost of £500.' [TID:2.2] <- fiat
section104: //BUY Trade 66 GBP (=£66.00 GBP) 'CRYPTO61675' 2020-07-01T01:00:00 BST 'On 01/07/20XX the price of the borrowed tokens falls to the point where a liquidation of some of Lucas’s collateral occurs. 10 of the tokens given by Lucas to the DeFi lending platform as collateral get transferred to a liquidator, along with 1 additional token as the penalty. The tokens have a market value of £6 each at the time of the liquidation.' [TID:3.1] <- fiat
section104: BUY Trade 100 TOKENA (=£500.00 GBP) 'CRYPTO61675' 2020-01-01T00:00:00 GMT 'Lucas holds 100 tokens with a total acquisition cost of £500.' [TID:2.1]
section104:   TOKENA=100 (+100) cost=£500.00 GBP (+£500.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 11 TOKENA (=£66.00 GBP) 'CRYPTO61675' 2020-07-01T01:00:00 BST 'On 01/07/20XX the price of the borrowed tokens falls to the point where a liquidation of some of Lucas’s collateral occurs. 10 of the tokens given by Lucas to the DeFi lending platform as collateral get transferred to a liquidator, along with 1 additional token as the penalty. The tokens have a market value of £6 each at the time of the liquidation.' [TID:3.2]
section104:   TOKENA=89 (-11) cost=£445.00 GBP (-£55.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£11.00 (proceeds=£66.00 - cost=£55.00 - fees=£0.00)

6. Example 6 - borrower satisfies the loan

process section 104
section104: //BUY* Deposit 5,250 GBP 'CRYPTO61676' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 5,250 GBP (=£5,250.00 GBP) 'CRYPTO61676' 2020-01-01T00:00:00 GMT 'The tokens had a pooled acquisition cost of £5,250.' [TID:2.2] <- fiat
section104: //BUY Trade 6,300 GBP (=£6,300.00 GBP) 'CRYPTO61676' 2020-05-20T01:00:00 BST 'On 20/05/20XX, Glyn transferred 525 tokens to Paula to satisfy the terms of the loan. At that time of the transfer to satisfy the loan, the tokens had a market value of £12 each.' [TID:3.1] <- fiat
section104: BUY Trade 525 TOKENA (=£5,250.00 GBP) 'CRYPTO61676' 2020-01-01T00:00:00 GMT 'The tokens had a pooled acquisition cost of £5,250.' [TID:2.1]
section104:   TOKENA=525 (+525) cost=£5,250.00 GBP (+£5,250.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 525 TOKENA (=£6,300.00 GBP) 'CRYPTO61676' 2020-05-20T01:00:00 BST 'On 20/05/20XX, Glyn transferred 525 tokens to Paula to satisfy the terms of the loan. At that time of the transfer to satisfy the loan, the tokens had a market value of £12 each.' [TID:3.2]
section104:   TOKENA=0 (-525) cost=£0.00 GBP (-£5,250.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£1,050.00 (proceeds=£6,300.00 - cost=£5,250.00 - fees=£0.00)

7. Example 7 - lender’s loan of an ascertainable quantity of tokens is satisfied, the value of the tokens increased

In this example an NFT has been used to record the rights of the loan.

pool same day transactions
pool: BUY Trade 105 TOKENA (=£168.00 GBP) 'CRYPTO61677' 2021-09-29T01:00:00 BST '<pooled>' [TID:4.1] (2)
pool:   (BUY Trade 100 TOKENA (=£160.00 GBP) 'CRYPTO61677' 2021-09-29T01:00:00 BST 'On 29/09/20XX, Martin satisfies the loan with a transfer of 105 tokens to Lorraine. At the time the loan is satisfied, each token is worth £1.60.' [TID:4.1])
pool:   (BUY Income 5 TOKENA (=£8.00 GBP) 'CRYPTO61677' 2021-09-29T01:00:00 BST 'Lorraine treats the receipt of 5 of the tokens as miscellaneous income for tax purposes. This means that 5 tokens x £1.60 = £8.00 is subject to tax on income.' [TID:5.1])
...
process section 104
section104: //BUY* Deposit 1,500 GBP 'CRYPTO61677' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 1,500 GBP (=£1,500.00 GBP) 'CRYPTO61677' 2020-01-01T00:00:00 GMT 'Lorraine holds 1,000 tokens with a total acquisition cost of £1,500.' [TID:2.2] <- fiat
section104: BUY Trade 1,000 TOKENA (=£1,500.00 GBP) 'CRYPTO61677' 2020-01-01T00:00:00 GMT 'Lorraine holds 1,000 tokens with a total acquisition cost of £1,500.' [TID:2.1]
section104:   TOKENA=1,000 (+1,000) cost=£1,500.00 GBP (+£1,500.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 100 TOKENA (=£150.00 GBP) 'CRYPTO61677' 2020-09-30T01:00:00 BST 'Lorraine enters into an agreement with Martin to loan Martin 100 tokens for 12 months. The loan agreement includes that Martin will pay a return of 5% at the end of the loan. At the time the loan is made, the tokens have a sterling value of £1.50 each.' [TID:3.2]
section104:   TOKENA=900 (-100) cost=£1,350.00 GBP (-£150.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£0.00 (proceeds=£150.00 - cost=£150.00 - fees=£0.00)
section104: BUY Trade 105 TOKENA (=£168.00 GBP) 'CRYPTO61677' 2021-09-29T01:00:00 BST '<pooled>' [TID:4.1] (2)
section104:   TOKENA=1,005 (+105) cost=£1,518.00 GBP (+£168.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: BUY Trade 1 ~loan-Martin #1 (=£150.00 GBP) 'CRYPTO61677' 2020-09-30T01:00:00 BST 'Lorraine enters into an agreement with Martin to loan Martin 100 tokens for 12 months. The loan agreement includes that Martin will pay a return of 5% at the end of the loan. At the time the loan is made, the tokens have a sterling value of £1.50 each.' [TID:3.1]
section104:   ~loan-Martin #1=1 (+1) cost=£150.00 GBP (+£150.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 1 ~loan-Martin #1 (=£160.00 GBP) 'CRYPTO61677' 2021-09-29T01:00:00 BST 'On 29/09/20XX, Martin satisfies the loan with a transfer of 105 tokens to Lorraine. At the time the loan is satisfied, each token is worth £1.60.' [TID:4.2]
section104:   ~loan-Martin #1=0 (-1) cost=£0.00 GBP (-£150.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(unpooled) gain=£10.00 (proceeds=£160.00 - cost=£150.00 - fees=£0.00)

8. Example 8 - lender’s loan of an ascertainable quantity of tokens is satisfied, the value of the tokens decreased

In this example an NFT has been used to record the rights of the loan.

pool same day transactions
pool: BUY Trade 105 TOKENA (=£126.00 GBP) 'CRYPTO61678' 2021-09-29T01:00:00 BST '<pooled>' [TID:4.1] (2)
pool:   (BUY Trade 100 TOKENA (=£120.00 GBP) 'CRYPTO61678' 2021-09-29T01:00:00 BST 'On 29/09/20XX, Amy satisfies the loan with a transfer of 105 tokens to Chris. At the time the loan is satisfied, each token is worth £1.20.' [TID:4.1])
pool:   (BUY Income 5 TOKENA (=£6.00 GBP) 'CRYPTO61678' 2021-09-29T01:00:00 BST 'Chris treats the receipt of 5 of the tokens as miscellaneous income for tax purposes. This means that 5 tokens x £1.20 = £6.00 is subject to tax on income.' [TID:5.1])
...
process section 104
section104: //BUY* Deposit 1,500 GBP 'CRYPTO61678' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 1,500 GBP (=£1,500.00 GBP) 'CRYPTO61678' 2020-01-01T00:00:00 GMT 'Chris holds 1,000 tokens with a total acquisition cost of £1,500.' [TID:2.2] <- fiat
section104: BUY Trade 1,000 TOKENA (=£1,500.00 GBP) 'CRYPTO61678' 2020-01-01T00:00:00 GMT 'Chris holds 1,000 tokens with a total acquisition cost of £1,500.' [TID:2.1]
section104:   TOKENA=1,000 (+1,000) cost=£1,500.00 GBP (+£1,500.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 100 TOKENA (=£150.00 GBP) 'CRYPTO61678' 2020-09-30T01:00:00 BST 'Chris enters into an agreement with Amy to loan Amy 100 tokens for 12 months. The loan agreement includes that Amy will pay a return of 5% at the end of the loan. At the time the loan is made, the tokens have a sterling value of £1.50 each.' [TID:3.2]
section104:   TOKENA=900 (-100) cost=£1,350.00 GBP (-£150.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£0.00 (proceeds=£150.00 - cost=£150.00 - fees=£0.00)
section104: BUY Trade 105 TOKENA (=£126.00 GBP) 'CRYPTO61678' 2021-09-29T01:00:00 BST '<pooled>' [TID:4.1] (2)
section104:   TOKENA=1,005 (+105) cost=£1,476.00 GBP (+£126.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: BUY Trade 1 ~loan-Amy #1 (=£150.00 GBP) 'CRYPTO61678' 2020-09-30T01:00:00 BST 'Chris enters into an agreement with Amy to loan Amy 100 tokens for 12 months. The loan agreement includes that Amy will pay a return of 5% at the end of the loan. At the time the loan is made, the tokens have a sterling value of £1.50 each.' [TID:3.1]
section104:   ~loan-Amy #1=1 (+1) cost=£150.00 GBP (+£150.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 1 ~loan-Amy #1 (=£120.00 GBP) 'CRYPTO61678' 2021-09-29T01:00:00 BST 'On 29/09/20XX, Amy satisfies the loan with a transfer of 105 tokens to Chris. At the time the loan is satisfied, each token is worth £1.20.' [TID:4.2]
section104:   ~loan-Amy #1=0 (-1) cost=£0.00 GBP (-£150.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(unpooled) gain=£-30.00 (proceeds=£120.00 - cost=£150.00 - fees=£0.00)
In this example an NFT has been used to record the rights of the loan.

9. Example 9 - lender’s loan of an unascertainable quantity of tokens is satisfied

In this example an NFT has been used to record the rights of the loan.

process section 104
section104: //BUY* Deposit 2,000 GBP 'CRYPTO61679' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 2,000 GBP (=£2,000.00 GBP) 'CRYPTO61679' 2020-01-01T00:00:00 GMT 'Robert holds 4,000 tokens with a total acquisition cost of £2,000.' [TID:2.2] <- fiat
section104: BUY Trade 4,000 TOKENA (=£2,000.00 GBP) 'CRYPTO61679' 2020-01-01T00:00:00 GMT 'Robert holds 4,000 tokens with a total acquisition cost of £2,000.' [TID:2.1]
section104:   TOKENA=4,000 (+4,000) cost=£2,000.00 GBP (+£2,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 1,000 TOKENA (=£1,100.00 GBP) 'CRYPTO61679' 2020-04-15T01:00:00 BST 'Robert enters into an agreement with Samantha to loan Samantha 1,000 tokens with no fixed end date to the loan. Robert can make a demand for the loan to be satisfied or at any time before that Samantha can choose to satisfy the loan. They agree an annual percentage rate of 5% on the quantity of tokens loaned. At the time the loan is made, the tokens have a sterling value of £1.00 each.' [TID:3.2]
section104:   TOKENA=3,000 (-1,000) cost=£1,500.00 GBP (-£500.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£600.00 (proceeds=£1,100.00 - cost=£500.00 - fees=£0.00)
section104: BUY Income 150 TOKENA (=£127.50 GBP) 'CRYPTO61679' 2021-09-29T01:00:00 BST 'Robert treats the receipt of 150 of the tokens as miscellaneous income for tax purposes. This means that 150 tokens x £0.85 = £127.50 is subject to tax on income.' [TID:4.1]
section104:   TOKENA=3,150 (+150) cost=£1,627.50 GBP (+£127.50 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: BUY Trade 1,000 TOKENA (=£850.00 GBP) 'CRYPTO61679' 2023-04-14T01:00:00 BST 'On 14/04/20X3, Samantha satisfies the loan with a transfer of 1,150 tokens to Robert. At the time the loan is satisfied, each token is worth £0.85.' [TID:5.1]
section104:   TOKENA=4,150 (+1,000) cost=£2,477.50 GBP (+£850.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: BUY Trade 1 ~loan-Samantha #1 (=£1,100.00 GBP) 'CRYPTO61679' 2020-04-15T01:00:00 BST 'Robert enters into an agreement with Samantha to loan Samantha 1,000 tokens with no fixed end date to the loan. Robert can make a demand for the loan to be satisfied or at any time before that Samantha can choose to satisfy the loan. They agree an annual percentage rate of 5% on the quantity of tokens loaned. At the time the loan is made, the tokens have a sterling value of £1.00 each.' [TID:3.1]
section104:   ~loan-Samantha #1=1 (+1) cost=£1,100.00 GBP (+£1,100.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 1 ~loan-Samantha #1 (=£850.00 GBP) 'CRYPTO61679' 2023-04-14T01:00:00 BST 'On 14/04/20X3, Samantha satisfies the loan with a transfer of 1,150 tokens to Robert. At the time the loan is satisfied, each token is worth £0.85.' [TID:5.2]
section104:   ~loan-Samantha #1=0 (-1) cost=£0.00 GBP (-£1,100.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(unpooled) gain=£-250.00 (proceeds=£850.00 - cost=£1,100.00 - fees=£0.00)

10. Example 10 - exchange of liquidity provider tokens for tokens

In this LP token acquisition and disposal example you will notice the valuations have been swapped, i.e. Buy Value in GBP to Sell Value in GBP, and vice versa. BittyTax does NOT do this automatically when fixed valuations are specified.

pool same day transactions
pool: BUY Trade 10 LP (=£120.00 GBP) 'CRYPTO61680' 2020-11-11T00:00:00 GMT '<pooled>' [TID:4.1] (2)
pool:   (BUY Trade 5 LP (=£60.00 GBP) 'CRYPTO61680' 2020-11-11T00:00:00 GMT 'On 11/11/20XX, Georgia transfers 50 token A and 100 token B to the DeFi lending platform. The DeFi lending platform transfers 10 liquidity tokens to Georgia. At the time of this exchange the token A are valued at £1.20 each, the token B are valued at £0.60 each. The liquidity pool token is valued at £12.00 each.' [TID:4.1])
pool:   (BUY Trade 5 LP (=£60.00 GBP) 'CRYPTO61680' 2020-11-11T00:00:00 GMT [TID:5.1])
pool: SELL Trade 5 LP (=£87.50 GBP) 'CRYPTO61680' 2021-05-24T01:00:00 BST '<pooled>' [TID:6.2] (2)
pool:   (SELL Trade 2.5 LP (=£37.50 GBP) 'CRYPTO61680' 2021-05-24T01:00:00 BST 'On 24/05/20X1, Georgia decides to withdraw half of her stake in the liquidity pool. She transfers 5 liquidity pool tokens to the DeFi lending platform.' [TID:6.2])
pool:   (SELL Trade 2.5 LP (=£50.00 GBP) 'CRYPTO61680' 2021-05-24T01:00:00 BST [TID:7.2])
...
process section 104
section104: //BUY* Deposit 1,500 GBP 'CRYPTO61680' 2020-01-01T00:00:00 GMT [TID:1.1] <- transfer
section104: //SELL Trade 1,000 GBP (=£1,000.00 GBP) 'CRYPTO61680' 2020-01-01T00:00:00 GMT '1,000 token A. These are in a section 104 pool with a total acquisition cost of £1,000.' [TID:2.2] <- fiat
section104: //SELL Trade 500 GBP (=£500.00 GBP) 'CRYPTO61680' 2020-01-01T00:00:00 GMT '1,000 token B. These are in a section 104 pool with a total acquisition cost of £500.' [TID:3.2] <- fiat
section104: BUY Trade 10 LP (=£120.00 GBP) 'CRYPTO61680' 2020-11-11T00:00:00 GMT '<pooled>' [TID:4.1] (2)
section104:   LP=10 (+10) cost=£120.00 GBP (+£120.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 5 LP (=£87.50 GBP) 'CRYPTO61680' 2021-05-24T01:00:00 BST '<pooled>' [TID:6.2] (2)
section104:   LP=5 (-5) cost=£60.00 GBP (-£60.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£27.50 (proceeds=£87.50 - cost=£60.00 - fees=£0.00)
section104: BUY Trade 1,000 TOKENA (=£1,000.00 GBP) 'CRYPTO61680' 2020-01-01T00:00:00 GMT '1,000 token A. These are in a section 104 pool with a total acquisition cost of £1,000.' [TID:2.1]
section104:   TOKENA=1,000 (+1,000) cost=£1,000.00 GBP (+£1,000.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 50 TOKENA (=£60.00 GBP) 'CRYPTO61680' 2020-11-11T00:00:00 GMT 'On 11/11/20XX, Georgia transfers 50 token A and 100 token B to the DeFi lending platform. The DeFi lending platform transfers 10 liquidity tokens to Georgia. At the time of this exchange the token A are valued at £1.20 each, the token B are valued at £0.60 each. The liquidity pool token is valued at £12.00 each.' [TID:4.2]
section104:   TOKENA=950 (-50) cost=£950.00 GBP (-£50.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£10.00 (proceeds=£60.00 - cost=£50.00 - fees=£0.00)
section104: BUY Trade 25 TOKENA (=£37.50 GBP) 'CRYPTO61680' 2021-05-24T01:00:00 BST 'On 24/05/20X1, Georgia decides to withdraw half of her stake in the liquidity pool. She transfers 5 liquidity pool tokens to the DeFi lending platform.' [TID:6.1]
section104:   TOKENA=975 (+25) cost=£987.50 GBP (+£37.50 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: BUY Trade 1,000 TOKENB (=£500.00 GBP) 'CRYPTO61680' 2020-01-01T00:00:00 GMT '1,000 token B. These are in a section 104 pool with a total acquisition cost of £500.' [TID:3.1]
section104:   TOKENB=1,000 (+1,000) cost=£500.00 GBP (+£500.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
section104: SELL Trade 100 TOKENB (=£60.00 GBP) 'CRYPTO61680' 2020-11-11T00:00:00 GMT [TID:5.2]
section104:   TOKENB=900 (-100) cost=£450.00 GBP (-£50.00 GBP) fees=£0.00 GBP (-£0.00 GBP)
section104:   Disposal(section 104) gain=£10.00 (proceeds=£60.00 - cost=£50.00 - fees=£0.00)
section104: BUY Trade 100 TOKENB (=£50.00 GBP) 'CRYPTO61680' 2021-05-24T01:00:00 BST [TID:7.1]
section104:   TOKENB=1,000 (+100) cost=£500.00 GBP (+£50.00 GBP) fees=£0.00 GBP (+£0.00 GBP)
Clone this wiki locally