Reporting EQ-5D Data with eq5d

Fraser Morton

28 August 2026

Introduction

EQ-5D data can be reported in a number of ways. Descriptive system responses provide information across the five EQ-5D dimensions, while value sets allow states to be converted into preference-based utility scores. Depending on the study objectives analyses may also focus on severity, distributional characteristics or changes in health over time.

The eq5d package provides tools for these common reporting tasks. This vignette gives an overview of the reporting tools available in the package and introduces the accompanying vignettes that cover each area in more detail. Throughout the emphasis is on producing clear reproducible summaries of EQ-5D data.

The methods implemented in these vignettes broadly follow the recommendations described by Devlin, Janssen and Parkin, which provides a comprehensive reference for analysing and reporting EQ-5D data.

Vignette roadmap

The reporting functionality in eq5d is described across a small set of complementary vignettes. New users may find it useful to work through them in the following order:

Each vignette is self-contained, but together they provide a complete guide to reporting EQ-5D data using eq5d.

An additional vignette is available for Mapping between EQ-5D-5L and EQ-5D-3L using the NICE Decision Support Unit (DSU) models.

Scope of reported summaries

eq5d provides functions for reporting several aspects of EQ-5D data, including descriptive system responses, utility scores, severity measures, distributional summaries and longitudinal change.

The package focusses on methods that are commonly used in EQ-5D analysis and reporting, providing standardised outputs that can be incorporated into reproducible analytical workflows.

A companion Shiny application provides an interactive interface to many of the same analytical methods, together with additional visualisations and exploratory summaries.

The remaining sections of this vignette briefly introduce the main reporting methods available in the package.

Value-based measurement and mapping

A common step in EQ-5D analysis is converting descriptive system responses into utility index scores.

suppressPackageStartupMessages(library(eq5d))

dat <- read.csv(
  system.file("extdata", "eq5d3l_example.csv", package = "eq5d")
)

scores <- c(MO = 1, SC = 2, UA = 3, PD = 2, AD = 1)

eq5d(scores, country = "UK", version = "3L", type = "TTO")
#> [1] 0.329

Selecting EQ-5D value sets

When reporting utility index scores, an appropriate value set must be selected. Value sets map EQ-5D health states to utility values based on population preferences and may differ according to:

The choice of value set depends on the study context and any relevant policy, methodological or clinical requirements. For this reason eq5d does not assume a default value set. Instead, value set selection is always made explicitly by the user.

Reports should always document the value set used, including the EQ-5D version, country and valuation method.

Discovering available value sets

Available value sets can be listed using the valuesets() function and filtered by version, valuation method and country.

For example, the following returns value sets available for France with associated references:

head(valuesets(country = "France", references = c("PubMed", "DOI")))
#>    Version Type Country   PubMed                        DOI           Notes
#> 1 EQ-5D-3L  DSU  France       NA                       <NA>            <NA>
#> 2 EQ-5D-3L  TTO  France 21935715  10.1007/s10198-011-0351-x            <NA>
#> 3 EQ-5D-5L   CW  France 22867780 10.1016/j.jval.2012.02.008            <NA>
#> 4 EQ-5D-5L  DSU  France       NA                       <NA>            <NA>
#> 5 EQ-5D-5L   VT  France 31912325 10.1007/s40273-019-00876-4            <NA>
#> 6 EQ-5D-3L  RCW  France 34452708 10.1016/j.jval.2021.03.009 van Hout (2021)

Value sets can also be queried by valuation method:

head(valuesets(type = "VT", references = c("PubMed", "DOI")))
#>    Version Type   Country   PubMed                          DOI
#> 1 EQ-5D-5L   VT Australia 36720793   10.1007/s40273-023-01243-0
#> 2 EQ-5D-5L   VT   Belgium 35927410   10.1007/s41669-022-00353-3
#> 3 EQ-5D-5L   VT    Canada 26492214 10.1097/MLR.0000000000000447
#> 4 EQ-5D-5L   VT     China 28408009   10.1016/j.jval.2016.11.016
#> 5 EQ-5D-5L   VT   Denmark 33527304   10.1007/s40258-021-00639-3
#> 6 EQ-5D-5L   VT     Egypt 34786590   10.1007/s40273-021-01100-y

Filters can be combined to identify value sets relevant to a particular analysis.

Descriptive system and severity reporting

Response distributions for each EQ-5D dimension can be summarised using descriptive_data() and presented using table_descriptive().

For illustration, the example below uses a single group to produce an ungrouped descriptive table.

dat1 <- subset(dat, Group == "Group1")

dd <- descriptive_data(dat1, version = "3L", metric = "percent")
table_descriptive(dd)
#>   Level  MO  SC  UA  PD  AD
#> 1     1  43  48  22   6  57
#> 2     2  57  52  71  78  43
#> 3     3   0   0   7  16   0
#> 4 Total 100 100 100 100 100

Detailed discussion of descriptive system reporting, including grouped summaries and table construction, is provided in Reporting the EQ-5D Descriptive System.

Severity and distributional summaries

In addition to descriptive tables, EQ-5D data can be summarised using measures that describe the severity and distribution of observed health states.

For example, the package provides the Level Sum Score (LSS) and Level Frequency Score (LFS):

lss(scores, version = "3L")
#> [1] 9
lfs(scores, version = "3L")
#> [1] "221"

Additional functions support informativity measures, including Shannon entropy and evenness, as well as summaries of health state distributions such as the Health State Density Index (HSDI).

These measures can provide useful context for understanding the distribution of health outcomes within a population and are described in detail in Reporting EQ-5D Severity and Distributional Summaries.

Longitudinal change analysis

The eq5d package includes tools for reporting changes in EQ-5D health profiles over time. For illustration, the example below constructs a simple paired dataset by treating the Group variable as a pre/post indicator. This is purely for demonstration purposes.

dat_long <- dat
dat_long$id <- rep(seq_len(nrow(dat_long) / 2), each = 2)

The Paretian Classification of Health Change (PCHC) provides a profile-based summary of individual change:

pchc_res <- pchc(
  MO + SC + UA + PD + AD ~ Group | id,
  data    = dat_long,
  version = "3L",
  summary = TRUE
)

pchc_res
#>                     Number Percent
#> No change               14      14
#> Improve                 59      59
#> Worsen                  14      14
#> Mixed change            13      13
#> Total with problems    100     100
#> No problems              0       0

The Probability of Superiority (PS) provides a complementary population-level summary of change:

ps_res <- ps(
  MO + SC + UA + PD + AD ~ Group | id,
  data    = dat_long,
  version = "3L"
)

ps_res
#> $MO
#> [1] 0.6
#> 
#> $SC
#> [1] 0.62
#> 
#> $UA
#> [1] 0.69
#> 
#> $PD
#> [1] 0.66
#> 
#> $AD
#> [1] 0.55

Further details on these methods and their interpretation are provided in Reporting EQ-5D Change Analysis.

Visualisation

Visualisation can complement numerical summaries and reporting tables by helping to communicate patterns in EQ-5D data.

The package includes visualisation tools such as the Health Profile Grid (HPG) and Health State Density Curve (HSDC), which support the interpretation of change analyses and health-state distributions, respectively.

As with other outputs in eq5d, visualisations are most informative when considered alongside the underlying numerical summaries.

Summary

This vignette provides a high-level overview of the reporting tools available in eq5d. Subsequent vignettes describe descriptive system reporting, severity and distributional summaries and longitudinal change analysis in greater detail.