What Is a Status Determination Statement and Why Does It Matter for Web Developers?
A status determination statement (SDS) is the document you must issue to any contractor engaged through an intermediary (their own limited company or umbrella company) before work starts. It tells them whether, for tax purposes, they would be inside or outside IR35.
If you run a digital agency, a creative agency, or a web design agency, you almost certainly engage web developers on this basis. Maybe you bring in a front-end developer for a six-month project build. Maybe you have a back-end specialist on retainer for ongoing maintenance. Either way, you need an SDS on file.
The off-payroll working rules (commonly called IR35) apply to medium and large agencies. If your agency meets two of these three conditions, you are caught: annual turnover over £10.2m, balance sheet over £5.1m, or more than 50 employees. Most agencies billing over £1m will be medium or large under these tests.
This guide walks you through writing a compliant status determination statement for a web developer engagement. We will cover what to include, the tests you must apply, and the common mistakes that get agencies into trouble.
The Three Tests That Determine IR35 Status for a Web Developer
HMRC looks at three core factors when deciding whether a contractor is genuinely self-employed or effectively an employee. You must assess all three before you issue the SDS.
Substitution and Personal Service
Can the web developer send someone else to do the work? A genuine contractor has a right of substitution. If the contract says the developer must turn up personally, that points to employment. If the developer can send a competent replacement when they are unavailable, that points to self-employment.
In practice, for web developers, this is often the weakest area. Most clients want a specific developer because they know the codebase, the tech stack, or the client relationship. If you insist on personal service, you need to be honest about it in the SDS. Do not pretend there is a substitution right if you would never accept a substitute.
Control
Who decides how the work gets done? If you tell the web developer what hours to work, what tools to use, and how to structure their day, you are exerting control. That points to employment.
If you specify the outcome (build this API endpoint, deliver this feature by Friday) and leave the developer to decide how to achieve it, that points to self-employment. Most web developer engagements fall somewhere in the middle. You might specify the tech stack (React, Node, AWS) because that is what your existing codebase uses. That is fine. But if you also dictate the developer's working hours and insist they attend your daily stand-ups in person, control shifts towards employment.
Mutuality of Obligation (MOO)
Is the client obliged to offer work, and is the contractor obliged to accept it? A permanent employee has ongoing mutuality. A contractor on a fixed-term project does not. When the project ends, the relationship ends.
For web developers, MOO is usually straightforward if you are hiring for a specific project with a defined scope and end date. Problems arise when you keep extending the contract or moving the developer from one project to another without a break. HMRC sees that as ongoing employment in all but name.
What to Include in a Status Determination Statement for a Web Developer
An SDS is not a long document. HMRC requires it to contain specific information. Here is what you need to cover.
1. The Engager's Details
Your agency name, address, and company number. If you are using an umbrella or a recruitment agency as the fee-payer, include their details too.
2. The Contractor's Details
The web developer's name and the name of their personal service company (PSC) or umbrella company.
3. The Engagement Details
A brief description of the work. For example: "Front-end web developer for the redesign of client X's e-commerce platform. Estimated duration: 4 months. Deliverables: React component library, integration with Shopify API, responsive templates."
Be specific. Vague descriptions weaken your position if HMRC challenges the determination later.
4. The Determination
State clearly whether the engagement is inside or outside IR35. Do not use weasel words. "Inside IR35" or "Outside IR35" is sufficient.
5. The Reasons
This is the most important section. You must explain why you reached that conclusion. Reference the three tests above and show your reasoning for each one.
A good reason section for an outside-IR35 web developer might read:
"Substitution: The contractor has an unrestricted right to provide a substitute, subject only to reasonable competency checks. The contractor has identified two potential substitutes with equivalent React experience.
Control: The contractor determines their own working hours and location. The agency specifies deliverables and deadlines but does not direct how the work is performed. The contractor uses their own equipment and development environment.
Mutuality of Obligation: The engagement is for a fixed-scope project with defined deliverables. There is no obligation on either party to offer or accept further work beyond the project scope."

