IR35: HMRC rushing to restore CEST source code deleted from Github ‘in error’

The source code for the decision engine underpinning HM Revenue & Customs’ (HMRC’s) much-maligned Check Employment Status for Tax (CEST) tool has been erroneously deleted from public view during efforts to decommission the platform hosting it.

The tool, released ahead of the April 2017 public sector roll-out of the IR35 reforms, is designed for use by public sector entities and medium-to-large private sector firms to help ascertain the employment status of contractors they engage.  

As previously reported by Computer Weekly, HMRC completed the migration of CEST to a new in-house developed platform known as Ocelot in October 2023 to add functionality that would make it easier for users to access interactive guidance about how to operate it.

HMRC is now in the process of decommissioning the platform where CEST used to reside, and – during that process – the contents of CEST’s Github repository got removed by mistake, Computer Weekly has learned. 

According to a source working on the project, HMRC is scrambling to restore public access to the code, as its removal puts the government tax collection agency at direct odds with the contents of the Cabinet Office’s 14-point Service Standard document.

Point 12 of the document, which is geared towards helping government departments “create and run great public services”, states that public sector IT teams must “write code in the open from the start and publish it in an open repository”, and, if it is not possible to do so, “provide a convincing explanation [about] why this cannot be done”.

A spokesperson for HMRC confirmed the error should be corrected within days, and insisted the department remains committed to ensuring the underlying decision engine logic for CEST remains accessible to the public. “We apologise for removing the logic of our CEST tool from Github,” said an HMRC spokesperson, in a statement. “It was taken down by mistake during work to re-platform the tool and will be republished onto Github by the end of Thursday 11 April.”

Repository removed

As well as hosting the underlying decision engine for CEST, the repository containing the code for the tool’s front-end has also been removed.

“Its removal has no impact on the tool itself, so it can still be used to make status determinations,” the spokesperson added.

It also remains unclear whether HMRC will be able to restore details of all of the past updates and changes made to CEST since it was first uploaded to Github – or if it will just be the most recent version of the code that returns to public view. Computer Weekly put this question to HMRC, but was still awaiting a response at the time of publication.

Even so, the timing of the repository’s deletion has raised eyebrows, given it comes less than two weeks after HMRC found itself under fire following the disclosure of a Freedom of Information (FOI) request that showed CEST had not been updated in five years.

Dave Chaplin, CEO of contractor compliance consultancy IR35 Shield, was the recipient of the aforementioned FOI request. He told Computer Weekly the timing of the repository’s removal is unfortunate.

“It’s somewhat of a coincidence that HMRC removed the source code from public scrutiny just as the five-year stagnation revelations came out,” he said. “It would take a matter of minutes to restore access in Github, so we would expect the purported mistake to be rectified overnight. Why isn’t it?”

Chaplin’s FOI response name-checked the Github repository as the location of the most up-to-date source code for CEST’s underlying decision engine, and its contents provided further confirmation that the last time it received an update was October 2019.

This is despite the head of HMRC, Jim Harra, describing the process of updating CEST to the Public Accounts Committee (PAC) in March 2019 as an “ongoing, unending process” and that the tool would be “continually updated” as “new tribunal and court decisions” on employment status emerge.

On this point, there have been at least 20 IR35 tax tribunal hearing decisions since October 2019, but CEST has not been updated at all since then.

HMRC claims this is because CEST is “constantly” tested to ensure it “reflects the employment status case law” and – based on these tests – its underlying decision engine does not need updating.  

However, Chaplin has called that claim into question, citing a 2022 Court of Appeal hearing involving Kaye Adams and her production company Atholl House, that ruled HMRC’s “view of employment status” is incorrect, meaning the logic underpinning CEST needs amending.

“Version 2.4 of the CEST logic tables were designed five years ago to align with the HMRC view of status, and HMRC have claimed that none of the case law in the past five years has challenged that view,” said Chaplin.

“That stance does not align with the representations made by HMRC to the Court of Appeal in the Atholl House case and the decision published on 22 April 2022.”  

Leave a Reply

Your email address will not be published. Required fields are marked *