Proportion of Direct Acting Oral Anticoagulants (DOACs) not prescribed as generic rivaroxaban or generic apixaban tablets

Below are the database queries which are used to create this measure. These are run against a copy of the BSA prescribing data which we store in Google BigQuery. We're working on making our BigQuery tables publicly available at which point it will be possible to run and modify these queries yourself. But even where code and database queries are not directly useable by others we believe it is always preferable to make them public.

Description Percentage DOAC items not prescribed as generic rivaroxaban or generic apixaban tablets
Why it matters In September 2024 the NHS in England released updated commissioning regulations for DOACs, which state:

For patients commencing treatment for atrial fibrillation (AF): subject to the criteria specified in the relevant NICE technology appraisal guidance, clinicians should use the best value DOAC that is clinically appropriate for the patient.

Table 1 provides the available DOACs ranked from highest to lowest best value according to the September 2024 and confidential framework prices. If the highest ranked best value DOAC (generic apixaban or generic rivaroxaban) is contraindicated or not clinically appropriate for the specific patient then, subject to the criteria specified in the relevant NICE technology appraisal guidance, clinicians should then consider the next highest ranked DOAC (edoxaban) and so on until an appropriate treatment is identified.

Overall rank DOAC Notes
1 (Joint best value) Rivaroxaban (generic)
Apixaban (generic)
Best value once a day treatment
Best value twice a day treatment
2 Edoxaban (Lixiana®)
3 Xarelto® (branded rivaroxaban)
4 Dabigatran (Pradaxa®)
5 Eliquis® (branded apixaban)

The NHS England National Medicines Optimisation Opportunities for 2024/25 also identify using best value direct-acting oral anticoagulants as an area for improvement.

Please note: OpenPrescribing.net measures have a consistent way of visualising measures, where 'lower is better' and therefore in this case we show the proportion of DOACs which are NOT prescribed as edoxaban or generic apixaban tablets. There are also other oral formulations of generic DOACs recently introduced onto the market. We do not consider these to be as cost-effective, and they are not considered as first-line in this measure.

Tags Cardiovascular system, Standard, Cost Saving, National medicines optimisation opportunities
Implies cost savings No
Authored by richard.croker
Checked by victoria.speed
Last reviewed 2024-10-01
Next review due 2026-09-16
History View change history on GitHub →

Numerator SQL

SELECT
     CAST(month AS DATE) AS month,
     practice AS practice_id,
     SUM(p.items) AS numerator
 FROM hscic.normalised_prescribing p  INNER JOIN dmd.vmp vmp ON CONCAT(SUBSTR(p.bnf_code,0,9),'AA', SUBSTR(p.bnf_code,-2), SUBSTR(p.bnf_code,-2)) = vmp.bnf_code -- joins prescribing data to vmp table using generic BNF code 
 INNER JOIN dmd.vpi AS vpi ON vmp.id = vpi.vmp -- joins vmp to vpi table to get ingredient strengths (strnt_nmrtr_val) 
 INNER JOIN dmd.ont AS ont ON vmp.id = ont.vmp -- joins vmp to ont table to get formulation codes 
 INNER JOIN dmd.ontformroute AS route ON ont.form = route.cd -- joins ont table to ontform table to get formulation names
 WHERE vpi.ing = 698090000 AND NOT((SUBSTR(p.bnf_code,10,2) ='AA' AND route.descr ='tablet.oral')) --Apixaban (except generic tablets) 
 OR vpi.ing = 700039002 --Dabigatran etexilate mesilate 
 OR vpi.ing = 1162278009 --Edoxaban tosilate
 OR vpi.ing = 442031002 AND NOT((SUBSTR(p.bnf_code,10,2) ='AA' AND route.descr ='tablet.oral')) --Rivaroxaban (except generic tablets)
 GROUP BY month, practice_id

Denominator SQL

SELECT
     CAST(month AS DATE) AS month,
     practice AS practice_id,
     SUM(p.items) AS denominator
 FROM hscic.normalised_prescribing p  INNER JOIN dmd.vmp vmp ON CONCAT(SUBSTR(p.bnf_code,0,9),'AA', SUBSTR(p.bnf_code,-2), SUBSTR(p.bnf_code,-2)) = vmp.bnf_code -- joins prescribing data to vmp table using generic BNF code 
 INNER JOIN dmd.vpi AS vpi ON vmp.id = vpi.vmp -- joins vmp to vpi table to get ingredient strengths (strnt_nmrtr_val)
 WHERE vpi.ing IN (698090000,1162278009,700039002,442031002) --Apixaban, dabigatran etexilate mesilate, edoxaban tosilate, rivaroxaban
 GROUP BY month, practice_id
Feedback