UK taxation for futures and options trading

It comes down to whether you are paying CGT or income tax. As discussed earlier in the thread, for most futures traders you are paying CGT.

If you are paying CGT: then in theory you need to list each trade. I've always done this, so I've never tested to see if you could get away with anything less. I've written a python script that does this, otherwise yes it would be onerous.

Here's an extract from last years report. The detail shown is for a single trade.

Code:
2: SELL 1 ZW DEC 21 Futures on 14/01/2021 at USD 33,050 each gives PROFIT of USD 1,151
equals GBP 831.960
Commission USD 2.82000 and taxes USD 0 on SELL
Trade details:ID 4094 Code ZW DEC 21 Date 2021-01-14 21:01:02 Quantity -1 Price 6.61000
Value per block 33,050
Total allowable cost USD 2.82000 Total disposal proceeds USD 1,153.43
Matches with:
PRO-RATA SECTION 104: Quantity 1.000000 ZW DEC 21 allocated from total holding of 2,
made up of 2 trades between 2020-11-18 and 2021-01-12
At average value of USD 31,893.75 Commissions USD 2.82000 Taxes USD 0
Trades:
ID 3652a Code ZW DEC 21 Date 2020-11-18 21:05:02 Quantity 0.500000 Price 6.14500 Value
per block 30,725 (Allocated from: ID 3652 Quantity 1)
ID 4093a Code ZW DEC 21 Date 2021-01-12 21:00:11 Quantity 0.500000 Price 6.61250 Value
per block 33,062.50 (Allocated from: ID 4093 Quantity 1)
CALCULATION: (1*33050) - 2.82000 - 0 -(1*31893.75) - 2.82000 - 0 = 1,151

Summary for tax year ending 5th April 2021
Figures in GBP
Disposal Proceeds = 313,413, Allowable Costs = 271,480, Disposals = 414
Year Gains = 189,949 Year Losses = -148,017 PROFIT = 41,932.63

If you are paying income tax, basically being treated like running a business, then no you wouldn't need such itemized reporting. For my self employed income (consultancy, journalism, book royalties) I just report a single consolidated income and costs figure. Of course you'd need to keep records in case of an audit.





For turnover, if you were trading futures as a business with the profits treated as income not CGT, then your turnover would be equal to your net trading profits for the year, before paying any expenses such as interest and data fees which you can deduct if you being taxed as income (and I don't know whether commissions would be part of those expenses; they're deducted from CGT profits). So it's the 41k in the example above, not the 313k of disposal proceeds, and certainly not the many millions of pounds in notional value I would have traded.

So when I worked in a bank (trading futures, options and swaps) our 'desk revenue' was around £100m, out of which we had to pay salaries, bonuses, shareholder profits and also support the various bank cost centres that supported us. But we'd actually have traded notionals of ~£2 trillion over the year.

The 'long form' / short form terminology is a bit outdated and refers to paper forms. Most people do self assesment online not on paper, and the online form automatically asks you questions to see which bits of the SA are relevant to you, and then only asks you about that.

The more important part about 85k is that it is the limit at which VAT reporting kicks in for a self employed person or business. I'd struggle to understand how relevant VAT would be for a self employed trader.

And in any case I'm not sure this 85k applies to most futures traders. As discussed earlier it's most likely that your futures trading profits would be classified as CGT, not income, so you wouldn't be treated as a self employed person anyway.

GAT

Wow, this is very helpful. If 'likes' are the currency of gratitude, I am afraid I have no choice but to underpay you here :). Your script certainly provides an incredible amount of detail, but I suppose you can never be too transparent with good old HMRC. Just wondering if you are running this script on your own stored data or is it parsing some downloadable broker report on trades executed? I know for example Interactive Brokers provide summary trade reports but clearly not to the level of explanatory detail you have provided - I am trying to figure out all the dependables for developing a similar program to do something like this for me going forward.

Also I presume your program handles any interest accrued on cash or bonds separately?
 
Wow, this is very helpful. If 'likes' are the currency of gratitude, I am afraid I have no choice but to underpay you here :). Your script certainly provides an incredible amount of detail, but I suppose you can never be too transparent with good old HMRC. Just wondering if you are running this script on your own stored data or is it parsing some downloadable broker report on trades executed? I know for example Interactive Brokers provide summary trade reports but clearly not to the level of explanatory detail you have provided - I am trying to figure out all the dependables for developing a similar program to do something like this for me going forward.

Also I presume your program handles any interest accrued on cash or bonds separately?

It's based on the IB activity report. This actually does give you all the info you need, but obviously you have to do the calculations yourself.

For interest and dividends (which are taxed as income so seperately from CGT) I ignore accruals, and just put cash receipts into my tax form. These don't have to be itemized.

GAT
 
It's based on the IB activity report. This actually does give you all the info you need, but obviously you have to do the calculations yourself.

For interest and dividends (which are taxed as income so seperately from CGT) I ignore accruals, and just put cash receipts into my tax form. These don't have to be itemized.

GAT
Done some further digging and the IB flexreports I have found (trades) report gains on a FIFO basis. I guess there is some work to do in aligning the calcs with UK section 104 as you have done. I hope you don't mind a couple of follow-up Qs: I assume your report uses average pooled cost basis throughout and would the tax report on buybacks on short positions mirror the extract you have shown but in reverse?
 
Done some further digging and the IB flexreports I have found (trades) report gains on a FIFO basis. I guess there is some work to do in aligning the calcs with UK section 104 as you have done.
GAT, just to be clear, I was trying to find an easy way to match up the entries and exits but the closest I got was the flexreport mentioned which uses fifo accounting. The activity report you mentioned is more comprehensive but will be little more daunting when parsing into the format you have created.
 
Last edited:
Done some further digging and the IB flexreports I have found (trades) report gains on a FIFO basis. I guess there is some work to do in aligning the calcs with UK section 104 as you have done. I hope you don't mind a couple of follow-up Qs: I assume your report uses average pooled cost basis throughout and would the tax report on buybacks on short positions mirror the extract you have shown but in reverse?

GAT, just to be clear, I was trying to find an easy way to match up the entries and exits but the closest I got was the flexreport mentioned which uses fifo accounting. The activity report you mentioned is more comprehensive but will be little more daunting when parsing into the format you have created.

Ken,
UK CGT doesn't use FIFO, it's a lot more complicated than that. The flexreport is no use, I use the trade by trade data from the standard activity report.

See here. Here's the key part:

"When you dispose of shares you cannot work out your capital gain or loss until you have matched the shares disposed of with shares you acquired. You’re treated as disposing of shares in the following order:

Description
First
Shares acquired on the same day as the disposal (the ‘same day’ rule).
Second Shares acquired in the 30 days following the day of disposal (the ‘bed and breakfasting’ rule) provided the person making the disposal was resident in the UK at the time of the acquisition.
Third Shares in the Section 104 holding."

Since we're going long and short futures we can replace the word 'share' with futures position, and replace 'acquire' with open a position and 'disposal' with close a position. So it doesn't matter if we've gone long or short, when we open a new position we're always 'acquiring' a position.

(The actual law refers to 'securities' not shares. A short in a future is a security, as is a long in a future. Long/short is irrelevant for futures).

Section 104 is basically a pooled cost. But as you can see, that only applies if the other two terms don't apply.

So if I close a US 10 year long (or short) today then the matching acquisition could be a trade from today (if I opened a US 10 year today, even if that trade was done before the other one), or a trade in the following month, or a pooled cost. Or some combination from the three.

It's insanely complicated. I couldn't imagine doing it without writing code for it. I'm very happy to provide the code (described here but since updated) if you think you can make use of it.

GAT
 
Ken,
UK CGT doesn't use FIFO, it's a lot more complicated than that. The flexreport is no use, I use the trade by trade data from the standard activity report.

See here. Here's the key part:

"When you dispose of shares you cannot work out your capital gain or loss until you have matched the shares disposed of with shares you acquired. You’re treated as disposing of shares in the following order:

Description
First
Shares acquired on the same day as the disposal (the ‘same day’ rule).
Second Shares acquired in the 30 days following the day of disposal (the ‘bed and breakfasting’ rule) provided the person making the disposal was resident in the UK at the time of the acquisition.
Third Shares in the Section 104 holding."

Since we're going long and short futures we can replace the word 'share' with futures position, and replace 'acquire' with open a position and 'disposal' with close a position. So it doesn't matter if we've gone long or short, when we open a new position we're always 'acquiring' a position.

(The actual law refers to 'securities' not shares. A short in a future is a security, as is a long in a future. Long/short is irrelevant for futures).

Section 104 is basically a pooled cost. But as you can see, that only applies if the other two terms don't apply.

So if I close a US 10 year long (or short) today then the matching acquisition could be a trade from today (if I opened a US 10 year today, even if that trade was done before the other one), or a trade in the following month, or a pooled cost. Or some combination from the three.

It's insanely complicated. I couldn't imagine doing it without writing code for it. I'm very happy to provide the code (described here but since updated) if you think you can make use of it.

GAT
Gosh, it is insanely complicated :(. Love the blog post, very clear. If you are ok sharing code, I know a bit of Python so I could make use of it. How do I repay you, though :)?
 
Gosh, it is insanely complicated :(. Love the blog post, very clear. If you are ok sharing code, I know a bit of Python so I could make use of it. How do I repay you, though :)?

Well it's already open source
https://github.com/robcarver17/python-uk-trading-tax-calculator/tree/master

.... I hadn't actually updated the code for many years, although my local copy I have been updating.
I just did some tidying up and it seems to run okay with the provided example files.

You can:

- buy all my books if you haven't already done so
- leave nice amazon reviews for said books
- buy me a drink if we ever meet in person

GAT
 
Well it's already open source
https://github.com/robcarver17/python-uk-trading-tax-calculator/tree/master

.... I hadn't actually updated the code for many years, although my local copy I have been updating.
I just did some tidying up and it seems to run okay with the provided example files.

You can:

- buy all my books if you haven't already done so
- leave nice amazon reviews for said books
- buy me a drink if we ever meet in person

GAT
Deal. And thank you, thank you!
 
It comes down to whether you are paying CGT or income tax. As discussed earlier in the thread, for most futures traders you are paying CGT.

If you are paying CGT: then in theory you need to list each trade. I've always done this, so I've never tested to see if you could get away with anything less. I've written a python script that does this, otherwise yes it would be onerous.

Here's an extract from last years report. The detail shown is for a single trade.

Code:
2: SELL 1 ZW DEC 21 Futures on 14/01/2021 at USD 33,050 each gives PROFIT of USD 1,151
equals GBP 831.960
Commission USD 2.82000 and taxes USD 0 on SELL
Trade details:ID 4094 Code ZW DEC 21 Date 2021-01-14 21:01:02 Quantity -1 Price 6.61000
Value per block 33,050
Total allowable cost USD 2.82000 Total disposal proceeds USD 1,153.43
Matches with:
PRO-RATA SECTION 104: Quantity 1.000000 ZW DEC 21 allocated from total holding of 2,
made up of 2 trades between 2020-11-18 and 2021-01-12
At average value of USD 31,893.75 Commissions USD 2.82000 Taxes USD 0
Trades:
ID 3652a Code ZW DEC 21 Date 2020-11-18 21:05:02 Quantity 0.500000 Price 6.14500 Value
per block 30,725 (Allocated from: ID 3652 Quantity 1)
ID 4093a Code ZW DEC 21 Date 2021-01-12 21:00:11 Quantity 0.500000 Price 6.61250 Value
per block 33,062.50 (Allocated from: ID 4093 Quantity 1)
CALCULATION: (1*33050) - 2.82000 - 0 -(1*31893.75) - 2.82000 - 0 = 1,151

Summary for tax year ending 5th April 2021
Figures in GBP
Disposal Proceeds = 313,413, Allowable Costs = 271,480, Disposals = 414
Year Gains = 189,949 Year Losses = -148,017 PROFIT = 41,932.63

If you are paying income tax, basically being treated like running a business, then no you wouldn't need such itemized reporting. For my self employed income (consultancy, journalism, book royalties) I just report a single consolidated income and costs figure. Of course you'd need to keep records in case of an audit.





For turnover, if you were trading futures as a business with the profits treated as income not CGT, then your turnover would be equal to your net trading profits for the year, before paying any expenses such as interest and data fees which you can deduct if you being taxed as income (and I don't know whether commissions would be part of those expenses; they're deducted from CGT profits). So it's the 41k in the example above, not the 313k of disposal proceeds, and certainly not the many millions of pounds in notional value I would have traded.

So when I worked in a bank (trading futures, options and swaps) our 'desk revenue' was around £100m, out of which we had to pay salaries, bonuses, shareholder profits and also support the various bank cost centres that supported us. But we'd actually have traded notionals of ~£2 trillion over the year.

The 'long form' / short form terminology is a bit outdated and refers to paper forms. Most people do self assesment online not on paper, and the online form automatically asks you questions to see which bits of the SA are relevant to you, and then only asks you about that.

The more important part about 85k is that it is the limit at which VAT reporting kicks in for a self employed person or business. I'd struggle to understand how relevant VAT would be for a self employed trader.

And in any case I'm not sure this 85k applies to most futures traders. As discussed earlier it's most likely that your futures trading profits would be classified as CGT, not income, so you wouldn't be treated as a self employed person anyway.

GAT
When I traded futures it was mostly a loss! I just reported simple profit and loss but as an options tarder I pay income tax- you can only pay CGT if it's not your main income AFAIK, and it's taxed at 40% over a low threshold
 
When I traded futures it was mostly a loss! I just reported simple profit and loss but as an options tarder I pay income tax- you can only pay CGT if it's not your main income AFAIK, and it's taxed at 40% over a low threshold

Main source of income is only a minor indicator to whether you should be classed as a self employed trader.
You are not a market maker or arbitrager, or an ex floor trader or ex bank dealer.
You are an amateur part time options speculator by the looks of things.

I think you should be paying CGT like Mr Manzur here:

Manzur
Mr Manzur was a retired surgeon. He used his own savings to begin acquiring stocks and shares. He made between 240 and 300 trades in a year using an online stockbroker. Some of the shares were turned over very quickly but others were retained for six months or more.

The tribunal held that Mr Manzur’s buying and selling amounted to the management of a portfolio of investments rather than trading. They upheld the view in Salt v Chamberlain that the badges of trade were of limited value and said there was no definitive checklist which could be used to say whether someone was trading or not. The number and frequency of transactions, and the short-term nature of the holdings alone did not establish trading. Other factors taken into account were:

  • the time spent on the activity (about two hours a day);
  • the fact that Mr Manzur did not entirely rely on his own expertise but used the advice of brokers;
  • that the activities were not characteristic of established share dealers, for example Mr Manzur had no customers and was dependent on market movements alone to make a profit.
https://www.gov.uk/hmrc-internal-manuals/business-income-manual/bim56860

One last thing if you ask you local Accountant if you should be paying income tax or CGT because you speculate full time or its your main source of income . 99% of the time he will say you must pay income tax rather than CGT to cover his own ass.
 
Last edited:
Back
Top