The AFEQT questionnaire is an atrial fibrillation-specific health-related quality of life (HRQoL) questionnaire designed to [...] assess the impact of atrial fibrillation on patients’ HRQoL and possibly assess changes with treatment. [...] Overall the subscale scores range from 0 to 100. For Disability questions, a score of 0 corresponds to complete disability, while a score of 100 corresponds to no disability. For Satisfaction questions, a score of 100 indicates that the patient is extremely satisfied with current treatment. questions 19 and 20 regarding satisfaction with health care providers and with treatment are not included in the overall AFEQT score and are each calculated and scored independently. (Scoring Manual)

  items = 1:20,
  keep = TRUE,
  nvalid = list(sym = 2, dac = 4, trc = 3),
  digits = NULL



a data.frame containing the AFEQT items orderd from 1 to 20. The data.frame may contain further variables.


A character vector with the AFEQT item names ordered from 1 to 20, or a numeric vector indicating the column numbers of the AFEQT items in data.


Logical, whether to keep the single items and whether to return variables containing the number of non-missing items on each scale for each respondent. The default is TRUE.


A named list indicating the number of non-missing items required for score calculations. The defaults are:

  • sym = 2 (Symptoms Score)

  • dac = 4 (Daily Activities Score)

  • trc = 3 (Treatment Concern Score)


Integer of length one: value to round to. No rounding by default.


The function returns 10 variables:

  • nvalid.afeqt.sym: Number of valid values of Symptoms Subscale (MAX=4)

  • nvalid.afeqt.dac: Number of valid values of Daily Activities Subscale (MAX=8)

  • nvalid.afeqt.trc: Number of valid values of Treatment Concern Subscale (MAX=6)

  • nvalid.afeqt.glo: Number of valid values of Global Scale (MAX=21)

  • score.afeqt.sym: AFEQT Symptoms Score

  • score.afeqt.dac: AFEQT Daily Activities Score

  • score.afeqt.trc: AFEQT Treatment Concern Score

  • score.afeqt.glo: AFEQT Global Score

  • score.afeqt.19: AFEQT Item 19, recoded

  • score.afeqt.20: AFEQT Item 20, recoded


  • Number of items: 20

  • Item range: 1 to 7

  • Reverse items: none

  • Score range: 0 to 100

  • Cut-off-values: none

  • Minimal clinically important difference: see:

  • Treatment of missing values: "For AFEQT, at least 50 each domain are required to calculate a meaningful score." (Spertus et al. 2010)


Spertus J (2010) (

Scoring Manual (

Link to Questionnaire (


if (FALSE) { library(dplyr) items.afeqt <- paste0("afeqt_", seq(1, 20, 1)) scoring_afeqt(mydata, items = items.afeqt) }