DEV Community

Work Sponsors
Work Sponsors

Posted on

UK Skilled Worker Visa Salary Thresholds 2026: Technical Reference for HR Systems and Compliance Tools

If you're building HR software, an ATS, or a compliance tool for UK employers, understanding how the Skilled Worker visa salary thresholds work is essential for keeping your data models and validation logic accurate. These thresholds changed significantly in April 2024, and getting them wrong in your system means your users could be issuing non-compliant Certificates of Sponsorship.

This post breaks down the threshold logic technically, so you can implement it correctly.

The Core Threshold Logic

The minimum salary for a Skilled Worker visa is not a single flat number. It's the maximum of two values:

min_salary = max(general_threshold, soc_going_rate)
Enter fullscreen mode Exit fullscreen mode

Where:

  • general_threshold = £38,700 (as of April 2024)
  • soc_going_rate = the published going rate for the worker's SOC 2020 code

This means your system needs to store and look up going rates by SOC code, not just apply a flat salary check.

The New Entrant Reduction

A "new entrant" discount applies to certain candidate profiles. When the new entrant condition is met, the effective threshold reduces to 70% of the going rate, with a hard floor of £30,960.

if is_new_entrant:
    min_salary = max(0.7 * soc_going_rate, 30960)
Enter fullscreen mode Exit fullscreen mode

A worker qualifies as a new entrant if any of these conditions are true:

  • Age < 26 at the date of application
  • Switching from a Student or Graduate visa
  • In the first 12 months of a PhD-level role (SOC skill level 6)

This is a boolean OR across three independent conditions — important to model correctly if you're building eligibility checking logic.

Qualifying Salary: What Counts

Not all compensation counts toward the salary threshold. Your data model needs to distinguish:

Counts toward threshold:

  • Basic salary (guaranteed, contractual)
  • Guaranteed allowances (e.g. London weighting if contractually fixed)

Does NOT count:

  • Bonuses (discretionary or performance-based)
  • Commission
  • Overtime pay
  • Non-guaranteed allowances

In practice, this means you should validate against guaranteed_annual_pay, not total_compensation. If your system imports total package values from payroll, you'll need a separate field for the guaranteed base component.

Part-Time Roles: Hourly Rate Check

For part-time workers, the Home Office validates the hourly rate, not just the prorated annual salary. The check is:

hourly_rate = guaranteed_annual_pay / (hours_per_week * 52)
going_rate_hourly = soc_going_rate / (37.5 * 52)  # standard full-time hours

hourly_rate >= going_rate_hourly  # must be true
Enter fullscreen mode Exit fullscreen mode

This means a part-time worker cannot simply be paid a prorated version of the going rate at a lower hourly figure — the hourly rate must match. Systems that only check annual salary will miss this.

Health and Care Worker Sub-Route

The Health and Care Worker visa (a sub-route of Skilled Worker) uses NHS Agenda for Change pay bands rather than the standard going rate table. The SOC codes in scope for this route are defined separately in Appendix Health and Care Visa.

If you're building for the health sector, your threshold logic needs to branch:

if visa_route == 'health_and_care':
    min_salary = get_nhs_band_minimum(soc_code, band_point)
else:
    min_salary = max(general_threshold, soc_going_rate)
Enter fullscreen mode Exit fullscreen mode

NHS pay bands are updated annually (typically April), so you'll want a versioned reference table rather than hardcoded values.

Keeping Going Rate Data Current

The Home Office publishes going rates in Appendix Skilled Occupations, which is updated periodically. This is the canonical data source. If your system stores going rates, you need a process to detect and apply updates — a change that's easy to miss can invalidate a batch of sponsorships.

For quick eligibility checks without building your own parser and sync pipeline, tools like ImmigrationGPT provide a query interface over current threshold data, which can be useful for rapid validation or prototyping before you invest in a full integration.

Summary: Validation Checklist

When your system checks Skilled Worker salary compliance, it should verify:

  1. SOC code is on the eligible occupations list
  2. min_salary = max(general_threshold, soc_going_rate) (or new entrant variant)
  3. Only guaranteed pay counted in guaranteed_annual_pay
  4. For part-time: hourly rate >= going rate hourly equivalent
  5. Health and Care route uses NHS band logic, not standard going rate

Getting this right protects your users from inadvertently issuing non-compliant sponsorships — and from the audit and licence revocation risk that follows.


This article contains general information only. For advice specific to your situation, consult a qualified immigration lawyer.

Top comments (0)