DEV Community

ImmigrationGPT
ImmigrationGPT

Posted on

UK Immigration Health Surcharge 2026: Calculation Pitfalls, Exemption Logic, and What HR Systems Get Wrong

UK Immigration Health Surcharge 2026: Calculation Pitfalls, Exemption Logic, and What HR Systems Get Wrong

Most HR platforms that estimate UK immigration costs handle the immigration health surcharge (IHS) correctly in the standard case. One applicant, standard rate, multiply by years. Done. But the edge cases — rounding, dependent exemptions, NHS carve-outs, curtailment refunds — break naive implementations more often than expected.

Here's the full picture for anyone building cost estimation into a hiring or immigration compliance workflow.

Current rates (2026)

Applicant category Annual rate
Standard (Skilled Worker, Global Talent, Family routes) £1,035
Student visa £776
Youth Mobility Scheme £776
Visitor visa (≤ 6 months leave) Exempt
NHS / CQC adult social care worker (qualifying employer) Exempt
Dependant of British or Irish national Exempt
Ukrainian nationals under Ukraine Schemes Exempt

These rates have been revised repeatedly since the surcharge launched in 2015 at £200/year. Any system storing the rate as a hardcoded constant will drift out of compliance; treat it as a configurable value.

The rounding rule breaks float arithmetic

The IHS portal charges by whole years, rounding up. A 30-month visa is billed as 3 full years, not 2.5. A 25-month visa is billed as 3 years. A 24-month visa is billed as exactly 2.

This catches implementations using floating-point duration:

# Wrong
ihs_total = rate_per_year * (visa_months / 12)  # 30-month visa → 2.5 years → undercalculates

# Correct
import math
ihs_total = rate_per_year * math.ceil(visa_months / 12)
Enter fullscreen mode Exit fullscreen mode

And per-person, not per-application:

def calculate_ihs(
    visa_months: int,
    applicants: list[dict],  # [{name, rate_category, exempt}]
) -> float:
    total = 0.0
    years = math.ceil(visa_months / 12)
    for applicant in applicants:
        if not applicant["exempt"]:
            total += applicant["rate"] * years
    return total
Enter fullscreen mode Exit fullscreen mode

A primary applicant plus two dependants on a 30-month Skilled Worker visa: 3 people × 3 years × £1,035 = £9,315.

Exemption logic: the NHS case is employer-gated, not role-gated

The NHS exemption catches most generic implementations. It does not apply to everyone who works in healthcare — it applies to workers employed directly by an NHS body or a Care Quality Commission-registered adult social care provider.

Agency workers placed at NHS sites typically don't qualify. The contract has to be with the NHS body itself.

def is_nhs_exempt(employer_type: str, employment_type: str) -> bool:
    qualifying_employer = employer_type in ("NHS_BODY", "CQC_ADULT_SOCIAL_CARE")
    direct_employment = employment_type != "AGENCY"
    return qualifying_employer and direct_employment
Enter fullscreen mode Exit fullscreen mode

Implementing this as a simple is_healthcare: bool flag will produce incorrect exemption results for a significant share of healthcare hires.

Dependent exemptions scope by sponsor type, not residency status

Dependants of British or Irish nationals are exempt. Dependants of ILR holders (settled persons) are not exempt — they pay the standard rate.

For HR cost estimation tools advising sponsors on relocation budgets, this distinction matters. The employee's own exemption status doesn't transfer to their partner if the partner is joining on a Dependant visa and the employee is a non-British settled person.

Curtailment refunds: build into sponsor offboarding

If an employee's leave is curtailed by the Home Office — through sponsor licence revocation, role change, or other qualifying events — they may be entitled to a prorated IHS refund. The calculation is: daily rate × days remaining from curtailment date to original visa expiry.

This is not automatic. The employee must apply via the IHS refund portal. HR compliance workflows for sponsor licence holders should:

  1. Log the curtailment date at the point the Home Office notification arrives
  2. Notify the employee of IHS refund eligibility
  3. Provide the original visa expiry date from their HR record

Voluntary departure doesn't trigger a refund. If the employee resigns and leaves early, they receive nothing.

Rate change risk

The IHS has been revised upward six times since 2015. Changes are implemented via secondary legislation, typically with limited lead time. Budget estimates built on today's rate for visas that won't be applied for until next year carry real rate-change risk — particularly for longer visa periods where the total is significant.

For maintained reference data on current IHS rates and visa fee structures across UK immigration routes, see immigrationgpt.co.uk.


Rates and rules reflect July 2026. Always verify against GOV.UK before using this data in production systems or employee-facing tools.

Top comments (0)