body #gform_wrapper_3 {border-width: 0; border-style: solid;background-color:#eef2fe;width:100%;border-width:0px;background-color:rgba(238,242,254,1);font-family:inherit;}body #gform_wrapper_3 .gform_heading {border-style: solid;border-width:0px;border-width: 0px;}body #gform_wrapper_3 .gform_heading .gform_title {font-weight: normal; }body #gform_wrapper_3 .gform_heading .gform_description {font-weight: normal; display:block;}body #gform_wrapper_3 .gform_footer .gform_button,body #gform_wrapper_3 .gform_page_footer .gform_button,body #gform_wrapper_3 .gform_page_footer .gform_previous_button,body #gform_wrapper_3 .gform_page_footer .gform_next_button,body #gform_wrapper_3 .gfield#field_submit .gform-button{border-style: solid;font-weight: normal; border-width:0px;border-style:solid;}body #gform_wrapper_3 .gform_footer .gform_button:hover,body #gform_wrapper_3 .gform_page_footer .gform_button:hover,body #gform_wrapper_3 .gform_page_footer .gform_previous_button:hover,body #gform_wrapper_3 .gform_page_footer .gform_next_button:hover,body #gform_wrapper_3 .gfield#field_submit .gform-button:hover {border-type:solid;border-style: solid;}body #gform_wrapper_3 .gform_footer button.mdc-button:hover {background-color:;color:;}body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=text]:not(.gform-text-input-reset),body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=email],body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=tel],body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=url],body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=password],body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=number]{font-weight: normal; max-width:100%;}body #gform_wrapper_3 .gform_body .gform_fields .gfield textarea {border-style:solid;font-weight: normal; }body #gform_wrapper_3 .gform_body .gform_fields .gfield select {font-weight: normal; max-width: 100%;}body #gform_wrapper_3 .gfield_radio .gchoice label {font-weight: normal; }body #gform_wrapper_3 .gfield_checkbox .gchoice label,body #gform_wrapper_3 .gfield .ginput_container_consent label{font-weight: normal; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_label {font-weight: normal; font-weight: bold; justify-content:;}body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_description {font-weight: normal; }body #gform_wrapper_3 .gform_body .gform_fields .gsection .gsection_title {font-weight: normal; font-weight: bold; }body #gform_wrapper_3 .gform_body .gform_fields .gsection .gsection_description {font-weight: normal; padding: 0 16px 0 0 !important;}body #gform_confirmation_message_3 {font-weight: normal; }body #gform_wrapper_3 .validation_error,body #gform_wrapper_3 .gform_validation_errors {font-weight: normal; border-width:1px;border-style:solid;}body #gform_wrapper_3 .gform_validation_errors h2.gform_submission_error{}body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_complex .ginput_full label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_complex .ginput_right label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_complex .ginput_left label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .name_first label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .name_prefix label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .name_middle label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .name_suffix label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .name_last label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_line_1 label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_line_2 label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_city label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_state label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_zip label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_country label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_time_hour label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_time_minute label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_date_month label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_date_day label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_date_year label {font-weight: normal; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list {}body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list .gfield_header_item:not(:last-child),body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list thead th:not(:last-child){font-weight: normal; font-weight: bold; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list .gfield_list_cell input {font-weight: normal; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list gfield_list .gfield_list_cell {}/* Option to style placeholder */body #gform_wrapper_3 ::-webkit-input-placeholder { /* Chrome/Opera/Safari */font-weight: normal; }body #gform_wrapper_3 ::-moz-placeholder { /* Firefox 19+ */font-weight: normal; }body #gform_wrapper_3 :-ms-input-placeholder { /* IE 10+ */font-weight: normal; }body #gform_wrapper_3 :-moz-placeholder { /* Firefox 18- */font-weight: normal; }/* Styling for Tablets */@media only screen and ( max-width: 800px ) and ( min-width:481px ) {body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list .gfield_list_cell::after{font-weight: normal; font-weight: bold; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list_groups .gfield_list_group{}}/* Styling for phones */@media only screen and ( max-width: 480px ) {body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list .gfield_list_cell::after {font-weight: normal; font-weight: bold; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list_group {}}/*Option to add custom CSS */Step 1 of 6 16% Who is the cover for?(Required) You Couple Family Business This field is hidden when viewing the formWho is the cover for?(Required) You Couple Family Business What product are you looking for?(Required) Health Insurance Life Insurance Both This field is hidden when viewing the formWhich product are you looking for?(Required) Health […]"> body #gform_wrapper_3 {border-width: 0; border-style: solid;background-color:#eef2fe;width:100%;border-width:0px;background-color:rgba(238,242,254,1);font-family:inherit;}body #gform_wrapper_3 .gform_heading {border-style: solid;border-width:0px;border-width: 0px;}body #gform_wrapper_3 .gform_heading .gform_title {font-weight: normal; }body #gform_wrapper_3 .gform_heading .gform_description {font-weight: normal; display:block;}body #gform_wrapper_3 .gform_footer .gform_button,body #gform_wrapper_3 .gform_page_footer .gform_button,body #gform_wrapper_3 .gform_page_footer .gform_previous_button,body #gform_wrapper_3 .gform_page_footer .gform_next_button,body #gform_wrapper_3 .gfield#field_submit .gform-button{border-style: solid;font-weight: normal; border-width:0px;border-style:solid;}body #gform_wrapper_3 .gform_footer .gform_button:hover,body #gform_wrapper_3 .gform_page_footer .gform_button:hover,body #gform_wrapper_3 .gform_page_footer .gform_previous_button:hover,body #gform_wrapper_3 .gform_page_footer .gform_next_button:hover,body #gform_wrapper_3 .gfield#field_submit .gform-button:hover {border-type:solid;border-style: solid;}body #gform_wrapper_3 .gform_footer button.mdc-button:hover {background-color:;color:;}body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=text]:not(.gform-text-input-reset),body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=email],body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=tel],body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=url],body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=password],body #gform_wrapper_3 .gform_body .gform_fields .gfield input[type=number]{font-weight: normal; max-width:100%;}body #gform_wrapper_3 .gform_body .gform_fields .gfield textarea {border-style:solid;font-weight: normal; }body #gform_wrapper_3 .gform_body .gform_fields .gfield select {font-weight: normal; max-width: 100%;}body #gform_wrapper_3 .gfield_radio .gchoice label {font-weight: normal; }body #gform_wrapper_3 .gfield_checkbox .gchoice label,body #gform_wrapper_3 .gfield .ginput_container_consent label{font-weight: normal; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_label {font-weight: normal; font-weight: bold; justify-content:;}body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_description {font-weight: normal; }body #gform_wrapper_3 .gform_body .gform_fields .gsection .gsection_title {font-weight: normal; font-weight: bold; }body #gform_wrapper_3 .gform_body .gform_fields .gsection .gsection_description {font-weight: normal; padding: 0 16px 0 0 !important;}body #gform_confirmation_message_3 {font-weight: normal; }body #gform_wrapper_3 .validation_error,body #gform_wrapper_3 .gform_validation_errors {font-weight: normal; border-width:1px;border-style:solid;}body #gform_wrapper_3 .gform_validation_errors h2.gform_submission_error{}body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_complex .ginput_full label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_complex .ginput_right label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_complex .ginput_left label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .name_first label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .name_prefix label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .name_middle label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .name_suffix label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .name_last label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_line_1 label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_line_2 label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_city label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_state label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_zip label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .address_country label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_time_hour label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_time_minute label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_date_month label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_date_day label,body #gform_wrapper_3 .gform_body .gform_fields .gfield .gfield_date_year label {font-weight: normal; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list {}body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list .gfield_header_item:not(:last-child),body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list thead th:not(:last-child){font-weight: normal; font-weight: bold; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list .gfield_list_cell input {font-weight: normal; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list gfield_list .gfield_list_cell {}/* Option to style placeholder */body #gform_wrapper_3 ::-webkit-input-placeholder { /* Chrome/Opera/Safari */font-weight: normal; }body #gform_wrapper_3 ::-moz-placeholder { /* Firefox 19+ */font-weight: normal; }body #gform_wrapper_3 :-ms-input-placeholder { /* IE 10+ */font-weight: normal; }body #gform_wrapper_3 :-moz-placeholder { /* Firefox 18- */font-weight: normal; }/* Styling for Tablets */@media only screen and ( max-width: 800px ) and ( min-width:481px ) {body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list .gfield_list_cell::after{font-weight: normal; font-weight: bold; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list_groups .gfield_list_group{}}/* Styling for phones */@media only screen and ( max-width: 480px ) {body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list .gfield_list_cell::after {font-weight: normal; font-weight: bold; }body #gform_wrapper_3 .gform_body .gform_fields .gfield .ginput_list .gfield_list_group {}}/*Option to add custom CSS */Step 1 of 6 16% Who is the cover for?(Required) You Couple Family Business This field is hidden when viewing the formWho is the cover for?(Required) You Couple Family Business What product are you looking for?(Required) Health Insurance Life Insurance Both This field is hidden when viewing the formWhich product are you looking for?(Required) Health […]" />
Home Health Insurance Explained Vitality Procedure Codes & Fee Schedule (2026 Guide) : Pre-Authorisation & CCSD Explained
Health Insurance Explained

Vitality Procedure Codes & Fee Schedule (2026 Guide) : Pre-Authorisation & CCSD Explained

Vitality Procedure Codes & Fee Schedule : Pre-Authorisation & CCSD Explained
Share
💡 Compare Health Insurance Quotes

Vitality Procedure Codes & Fee Schedule (UK 2026 Guide)

Using Vitality Health Insurance for private treatment in 2026? You’ll almost always need a procedure code (from the national CCSD list) before Vitality can approve and pay your claim. This guide explains what Vitality procedure codes are, how the fee schedule works, why shortfalls happen — and how to avoid nasty surprises on your bill.

Independent information only — we’re not affiliated with Vitality. Always check your own policy documents and speak directly with Vitality about your claim.

Want simple, transparent cover that’s easy to claim on?
Compare Vitality with Bupa, Aviva, AXA, WPA and more to see who offers the best mix of hospital access and value.

Compare Health Insurance Quotes

On this page

What are Vitality procedure codes?

All major UK health insurers — including Vitality — use the CCSD schedule (Clinical Coding & Schedule Development) to describe private medical procedures. Each procedure has a unique code (for example, an arthroscopy, endoscopy or hernia repair code) that tells Vitality:

  • Exactly what treatment you’re having.
  • How complex it is (time, risk, skill).
  • Which fee band applies for your consultant and anaesthetist.

Key terms you’ll hear:

  • Procedure code: the CCSD code describing the operation or treatment.
  • Diagnosis code: occasionally used to support medical necessity (what condition you have).
  • Fee schedule: Vitality’s internal table of the maximum they’ll pay for each code.

Official coding body: CCSD.org.uk (for clinicians). As a patient, you don’t need to pick the code – your consultant’s secretary usually will.

How Vitality’s fee schedule works (2026)

Vitality uses an internal fee schedule to decide how much they will pay your consultant, anaesthetist and (where applicable) assistant surgeon for a given CCSD code. The hospital’s own theatre and facility fees are usually billed directly to Vitality, if both the hospital and treatment are covered by your policy.

For each approved procedure code, Vitality sets limits for:

  • Surgeon / consultant fee – the professional fee for carrying out the procedure.
  • Anaesthetist fee – depending on complexity, ASA grade and time.
  • Assistant fee – only when clinically justified and pre-authorised.
  • Hospital facility costs – theatre, nursing, consumables (paid to the hospital directly).

If your consultant charges within Vitality’s limits, your bill is usually settled in full (subject to excesses and any policy limits). If they charge more, the difference becomes a shortfall that you may need to pay.

Item How Vitality Applies It What You Should Check
Surgeon fee Paid up to Vitality’s limit for that CCSD code. Is your consultant Vitality-recognised and happy to charge within schedule?
Anaesthetist fee Based on procedure type and duration. Ask if your anaesthetist is recognised and within Vitality rates.
Assistant fee Only if Vitality agrees it’s clinically necessary. Check whether an assistant is planned and if it’s pre-authorised.
Hospital costs Billed directly by the hospital if it’s on your list. Confirm the hospital is on your Vitality hospital list.

Not sure if Vitality is the best fit?
Compare Vitality with Bupa, AXA, Aviva and WPA – see prices, hospital access and claiming rules side by side.

Compare Vitality vs Other Insurers

How to get pre-authorisation with Vitality (step-by-step)

1. Gather the right information

You’ll usually need:

  • Your Vitality membership number.
  • Your GP referral letter or Vitality GP reference (if you used their virtual GP).
  • Your consultant’s name and the hospital/clinic where treatment will take place.
  • The procedure code(s) (ask your consultant’s secretary for the CCSD code).
  • Whether it’s outpatient, day-case or inpatient treatment.
  • Your planned treatment date if known.

2. Script you can use when you call Vitality

Example script:
“Hi, I’d like to get pre-authorisation for my treatment. My consultant is Dr [Name] at [Hospital]. The procedure code is [Code]. Could you confirm my benefits, my excess, and that both the consultant and hospital are covered on my plan? Can you also confirm there are no shortfalls expected if they charge within your usual schedule?”

3. What Vitality checks in the background

  • Recognition: Is your consultant (and anaesthetist) recognised by Vitality?
  • Hospital list: Is your chosen hospital on your plan’s Primary / Local / London / Extended list?
  • Fee schedule: Do the planned fees look within Vitality limits?
  • Benefits: Are there any limits, exclusions or waiting periods that apply?

If all is in order, Vitality issues an authorisation number. Give this to your consultant and hospital – it’s how they bill Vitality directly.

Vitality hospital lists & code compatibility

Your procedure code is only part of the picture. Vitality also cares where you’re treated. Different policies have different hospital lists:

  • Primary / Local lists: Regional hospitals and clinics.
  • London Care / London-focused lists: Wider access in and around London, but may exclude some top-tier HCA sites.
  • Extended lists / corporate options: Broader networks for higher-end or group schemes.

If you book into a hospital not on your list, Vitality may:

  • Decline to cover the facility fee, or
  • Ask you to switch hospital, or
  • Allow treatment but with a surcharge or shortfall.

Check your hospital list in your policy schedule or use Vitality’s hospital search tool. For a deeper breakdown, see: Vitality Hospital List Explained (UK).

Common coding & billing scenarios

Scenario How Vitality Typically Treats It What You Should Do
Multiple procedures in one session Vitality usually pays the main procedure in full and applies reduced fees for additional codes in the same session. Ask your consultant which code is primary and how the others are billed.
Bundled / inclusive procedures Minor additional work (e.g. simple biopsy during endoscopy) can be treated as part of the main code. Check if any “extras” will be charged separately and if they’re included in your authorisation.
Bilateral procedures (left & right) Second-side procedures are often paid at a reduced rate. Confirm with both Vitality and your consultant how bilateral work will be billed.
Consultant charges above Vitality’s fee Vitality pays up to the schedule limit; the rest is a shortfall. Ask your consultant if they’ll accept Vitality rates or choose one who will.
Unexpected extra procedure during surgery Hospital/consultant submit the updated code and Vitality reassesses. Ask for a clear explanation and check for any extra patient charges afterwards.

Struggling with codes, authorisation or shortfalls?
We can help you compare Vitality with other insurers, review your options and avoid paying more than you need to.

Get Free Expert Help

How to avoid Vitality claim problems & shortfalls

  • Get the code upfront: Ask your consultant or their secretary for the exact CCSD code before you call Vitality.
  • Check recognition: Confirm your consultant, anaesthetist and hospital are all Vitality-recognised for your plan.
  • Ask about fees: Check if your consultant agrees to charge within Vitality’s fee schedule.
  • Get written pre-authorisation: Ask Vitality to confirm your authorisation and any limits in writing or via the app/portal.
  • Know your excess & limits: Clarify excess, outpatient caps and whether any benefit limits are close to being used.
  • Avoid unapproved upgrades: If you choose a hospital outside your list, you may face large surcharges.

What if something changes on the day?

Sometimes surgery or investigations don’t go exactly to plan. Common changes include:

  • Different procedure performed: The surgeon changes approach (e.g. from keyhole to open surgery).
  • Longer operation: More complex than expected.
  • Unexpected overnight stay: You need to stay in longer for observation or pain control.

In these cases, Vitality usually:

  • Receives updated codes from the hospital/consultant.
  • Checks clinical justification against your policy benefits.
  • Applies the fee schedule for the actual procedure done.

If you get a bill or shortfall you weren’t expecting, ask for a breakdown of: codes used, fees charged and what Vitality paid. Then speak to Vitality and, if needed, your consultant’s secretary to clarify. For disputes, see our guide: Appeal a Rejected Health Insurance Claim (UK).

Frequently Asked Questions – Vitality Procedure Codes

Where do Vitality procedure codes come from?

Vitality uses the national CCSD system, just like other major UK insurers. Each code describes a specific procedure and links to Vitality’s internal fee schedule.

Can I look up Vitality’s fee schedule online?

Vitality’s full fee schedule isn’t typically published for patients. Your consultant’s secretary can check fees and recognition via their insurer portals, and Vitality can confirm what they’ll pay when you call for pre-authorisation.

What happens if my consultant charges more than Vitality pays?

Vitality will usually pay up to their schedule limit and the rest becomes a shortfall that you need to pay. You can ask your consultant if they’ll accept Vitality rates or consider a different Vitality-recognised provider who does.

Do I always need a GP referral for Vitality to pay?

In most cases, yes – or you’ll need to use a Vitality-approved pathway, such as their virtual GP or direct access services. If you self-refer without following the right route, claims can be declined. Always check first.

Can I use any hospital with Vitality?

No – you’re covered for hospitals on your specific Vitality hospital list. Entry-level lists may exclude some central London or flagship sites. If you choose a non-listed hospital, you may face partial cover or large surcharges.

What if there are multiple codes for my treatment?

Vitality typically pays the main procedure in full and applies reduced fees to additional codes in the same session. Ask your consultant which codes they plan to use and confirm with Vitality before treatment.

This guide is for general information only and does not constitute medical or financial advice. Vitality’s policies, fee schedules and hospital lists change over time and may vary by product. Always confirm codes, hospital access and cover directly with Vitality before going ahead with treatment, and speak to an FCA-regulated adviser if you need personalised insurance advice.


Share

Leave a comment

Leave a Reply

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

Related Articles

Does Health Insurance Cover You Instantly (2026 Guide)

Step 1 of 6 16% Who is the cover for?(Required) You Couple...

Why customer service matters in Health Insurance:

Step 1 of 6 16% Who is the cover for?(Required) You Couple...

What You Actually Get for £60.00 Per Month Health Insurance 2026:

Step 1 of 6 16% Who is the cover for?(Required) You Couple...

Why Health Insurance Quotes Differ (2026 Guide)

Step 1 of 6 16% Who is the cover for?(Required) You Couple...