Skip to main content

UK Compliance: CSOP annual return

Learn how to generate and submit the HMRC CSOP annual return using Ledgy's automated compliance reporting.

Product Team avatar
Written by Product Team
Updated over 3 weeks ago

Introduction

UK companies with a registered Company Share Option Plan (CSOP) scheme must file an annual return with HMRC. This return reports all CSOP activity during the tax year, including grants, exercises, settlements, terminations, and expirations.

The deadline for filing is July 6th following the end of the tax year. Ledgy can generate your return in seconds, pre-populated with data from your cap table.

This article explains what the CSOP annual return is, what data you need to prepare, and how to generate and submit your return using Ledgy.

Who can generate returns: You need to be an account admin in Ledgy to generate compliance reports.


What is the CSOP annual return?

The CSOP annual return is an HMRC compliance requirement for companies operating a Company Share Option Plan. CSOP is a tax-advantaged share option scheme that allows companies to grant options up to £60,000 per employee with favourable tax treatment.

What must be reported:

  • Grants of CSOP options

  • Option exercises

  • Cash settlements

  • Terminations and forfeitures

  • Expirations of CSOP options

  • Any other CSOP-related activity during the tax year

Tax year: The UK tax year runs from April 6th to April 5th of the following year.

What Ledgy generates

Ledgy automatically populates 3 of the 8 tabs in HMRC's template:

  1. CSOP_OptionsGranted_V5 - Grant transactions grouped by grant date

  2. CSOP_OptionsRCL_V5 - Cash settlements, terminations, and expirations

  3. CSOP_OptionsExercised_V5 - Exercise transactions from CSOP grants

Note: The remaining 5 tabs are included in the exported file but do not contain data. Ledgy exports the file in the exact format HMRC requires, so you can submit it directly after review.

Important considerations before generating

What Ledgy includes

✅ All published and unpublished (draft) transactions - Ensure there are no draft transactions you don't intend to report

✅ Automatic calculations for most required columns

✅ Optional HMRC reporting fields on exercise and cash settlement transactions

What you may need to adjust manually

❌ Stock split adjustments - Ledgy ignores stock splits in calculations, so manual adjustments may be required

❌ Some columns where Ledgy makes assumptions (see Column guidance below)

❌ Optional HMRC reporting fields if not populated on transactions

Critical requirements

Currency: Monetary values must be reported in GBP. If your company's base currency is not GBP, set the currency of relevant transactions to GBP before generating the return.

File format: Do not change the format of Ledgy's .ods export. Returns that don't match HMRC's template exactly will be rejected.

Data accuracy: Ensure all Ledgy data is up-to-date before generating the return. The report pulls directly from your transaction history.

Save your submission: Returns cannot be retrieved from HMRC once submitted. Save your final submission in a secure location, such as Ledgy's data room.


How to generate your return

Step 1: Use CSOP grant type

This return only includes transactions related to CSOP grants. The grant type is defined at the plan level, so grants must come from a plan with type CSOP.

If you haven't set up a CSOP plan yet, create one in Equity Plans > Plans and select CSOP as the grant type.

Step 2: Prepare your data

Grants

  • Create grants from a CSOP plan

  • Include strike price in GBP

  • Ensure accurate grant dates

Transactions

  • Exercise, cash settlement, and termination transactions must be recorded

Valuations

  • Create valuations with type "CSOP (UK)"

  • Date on or before grant dates, with AMV, UMV, expiry date

  • Add HMRC reference number if agreed with HMRC

Stakeholder information

  • Create custom field named "NIN" and populate with National Insurance Numbers

  • Please see Stakeholder custom field to learn more.

Company information

  • Add PAYE reference in Company Settings > Company Profile

Optional HMRC reporting fields You can populate these fields on exercise and cash settlement transactions to fully automate your return, or fill them manually in the exported spreadsheet:

  • Largest share class

  • Listed on exchange

  • Tax relief

  • PAYE operated

  • Deductible amount

  • NIC election

Step 3: Generate the report

Go to Reporting > Compliance > CSOP annual return.

Select the desired tax year to filter for events dated within that date range.

Note: The UK tax year runs from April 6th to April 5th.

Step 4: Preview and check

Review the in-app preview and check for warnings about missing data, NIns, valuations, currency settings, or unwanted draft transactions.

Step 5: Download and review

Click Download to get the file. Review all three tabs (CSOP_OptionsGranted_V5, CSOP_OptionsRCL_V5, CSOP_OptionsExercised_V5) and:

  • Manually populate blank columns (see Column guidance)

  • Adjust for stock splits if applicable

  • Verify optional HMRC fields are populated correctly

Important: Do not change the file format. HMRC will reject incorrectly formatted returns.

Step 6: Submit to HMRC

Submit through the HMRC website before July 6th. Use HMRC's checking service, then save a copy to Ledgy's data room.


Column guidance

Ledgy populates automatically:

Largest share class

  • Based on which share class has the largest share capital in Ledgy

  • Adjust manually in the export if necessary

Listed on exchange

  • Ledgy assumes you are a private company and always answers NO

  • Manually change to YES if your company is publicly traded

Exercise price

  • Based on the strike price of the grant transaction

HMRC agreed market value

  • Answers YES if you added an HMRC reference to the relevant CSOP valuation

  • Answers NO if no HMRC reference is present

Tax relief

  • Defaults to YES if exercise is between 3-10 years after grant date

  • Defaults to NO otherwise

  • Depending on your scheme rules, earlier exercises could still be eligible - adjust on the exercise transaction if necessary

All shares sold

  • Answers YES if the same number of shares are transferred or decreased from the stakeholder on the same date as the exercise

  • Answers NO otherwise

You must populate manually:

Any optional HMRC reporting fields not populated on transactions (largest share class, tax relief, PAYE operated, deductible amount, NIC election)

Understanding the report tabs

  • CSOP_OptionsGranted_V5: Grant transactions grouped by grant date. Grants with different strike prices are split into separate rows.

  • CSOP_OptionsRCL_V5: Cash settlement, termination, or expiry transactions from CSOP grants. Only cash settlement transactions have monetary value in Ledgy.

  • CSOP_OptionsExercised_V5: Exercise transactions from CSOP grants, including tax relief and share sale information.

Troubleshooting

Missing data?

  • Verify the relevant plan and grants are using the CSOP grant type

  • Create "CSOP (UK)" valuations dated before grant dates

  • Add "NIN" custom field with National Insurance Numbers

  • Add PAYE reference in Company Settings > Company Profile

  • Set transaction currency to GBP

Grants not appearing?

  • Check that grants come from a plan with grant type CSOP

  • Ensure grant dates fall within the selected tax year (6 April to 5 April)

  • Verify transactions are created (not just grants)


FAQs

When is the deadline for filing the CSOP annual return?

The deadline is July 6th following the end of the tax year. For the 2023/24 tax year (6 April 2023 to 5 April 2024), the deadline is 6 July 2024.

What's the difference between CSOP and EMI reporting?

CSOP and EMI are separate tax-advantaged schemes with different reporting requirements. CSOP returns report only CSOP grants, while EMI returns report only EMI grants. Generate separate returns for each scheme type.

Can I edit the file after Ledgy generates it?

Yes, you should review and manually populate certain columns. However, do not change the file format or structure. HMRC will reject returns that don't match their template exactly. Only edit cell contents, not formatting.

How do I populate the optional HMRC reporting fields?

You can add these fields directly to exercise and cash settlement transactions in Ledgy when you create them. Alternatively, you can fill them in manually in the exported spreadsheet. Populating them in Ledgy saves time when generating future returns.

How does Ledgy split stakeholder names into first, second, and last name?

Ledgy uses the full name you entered for stakeholders. The first string becomes "first name," the last string becomes "last name," and everything in between is "second name." Example: "John Michael Smith" → First: John, Second: Michael, Last: Smith.

Do I need to include employees who left during the tax year?

Yes, if they had CSOP activity during the tax year (grants, exercises, terminations), they should be included in the return regardless of whether they're still employed.

What if I had a stock split during the tax year?

Ledgy ignores stock splits when calculating valuations and quantities. You'll need to manually adjust the numbers in the downloaded file to reflect post-split values.

Where should I store my submitted returns?

Upload your final submitted returns to Ledgy's data room for secure storage. This creates an audit trail and ensures you have access to historical submissions if needed.


Did this answer your question?