TILDA Resources
  • Questionnaire Harmonisation
  • Questionnaire Scales
  • Scale Harmonisation
  • Health Assessment
  • Biomarkers
  • Back to TILDA Homepage
  1. CASP-19
  • Questionnaire Scales
  • ADL
  • AMT
  • APQ-17
  • APQ-32
  • CAGE
  • CASP-12
  • CASP-19
  • CESD-20
  • CESD-8
  • CIDI-SF-Anxiety
  • CIDI-SF-Depression
  • CISS-21
  • Creative Lives
  • Everyday Ageism
  • EQ-5D-5L
  • FES-I
  • Flourishing
  • GAD-7
  • Gratitude
  • HADS-A
  • Housing Conditions
  • IADL
  • IPAQ
  • IPAQ-E
  • IQCODE
  • MHC-SF
  • MESA
  • MMSE
  • MCSI
  • MCTQ
  • Neighbourhood Cohesion
  • NEO-PI
  • PSS
  • PWSQ
  • PCL-6
  • PIL
  • Relationship Quality
  • SWLS
  • Social Activities
  • STAI
  • UCLA

CASP-19

CASP-19

Measuring: Measures Quality of Life (QoL) through four domains; Control, Autonomy, Self-realisation, and Pleasure.

Number of Items: 19

Item Question Wording TILDA Variable
1 My age prevents me from doing the things I would like to. SCQCASP1
2 I feel that what happens to me is out of my control. SCQCASP2
3 I feel free to plan for the future. SCQCASP3
4 I feel left out of things. SCQCASP4
5 I can do the things that I want to do. SCQCASP5
6 Family responsibilities prevent me from doing what I want to do. SCQCASP6
7 I feel that I can please myself in what I can do. SCQCASP7
8 My health stops me from doing the things I want to do. SCQCASP8
9 Shortage of money stops me from doing the things that I want to do. SCQCASP9
10 I look forward to each day. SCQCASP10
11 I feel that my life has meaning. SCQCASP11
12 I enjoy the things that I do. SCQCASP12
13 I enjoy being in the company of others. SCQCASP13
14 On balance, I look back on my life with a sense of happiness. SCQCASP14
15 I feel full of energy these days. SCQCASP15
16 I choose to do things that I have never done before. SCQCASP16
17 I feel satisfied with the way my life has turned out. SCQCASP17
18 I feel that life is full of opportunities. SCQCASP18
19 I feel that the future looks good for me. SCQCASP19

Scoring Method:

4-point Likert scale.

0 = Often

1 = Sometimes

2 = Rarely

3 = Never

  • A cumulative score is generated with higher scores representing higher quality of life (0-57).

  • There are 4 subscales generated from this scale;

  • Control (Item 1- Item 4)

  • Autonomy (Item 5 - Item 9)

  • Pleasure (Item 10 - Item 14)

  • Self-realisation (Item 15 – Item 19)

  • Scores are summed within each CASP-19 subscale: Control (0–12), Autonomy (0–15), Pleasure (0–15), and Self-realisation (0–15). Higher scores indicate greater perceived quality of life within that domain.

  • Items 1, 2, 4, 6, 8 and 9 are negatively worded and reverse scored prior to calculation.

Citation: Hyde, M., Wiggins, R. D., Higgs, P., & Blane, D. B. (2003). A measure of quality of life in early old age: the theory, development and properties of a needs satisfaction model (CASP-19). Aging & mental health, 7(3): 186–194. https://doi.org/10.1080/1360786031000101157

Example TILDA Papers:

  • Sexton, E., King-Kallimanis, B. L., Conroy, R. M., & Hickey, A. (2013). Psychometric evaluation of the CASP-19 quality of life scale in an older Irish cohort. Quality of life research: an international journal of quality of life aspects of treatment, care and rehabilitation, 22(9): 2549–2559. https://doi.org/10.1007/s11136-013-0388-7

Code

  • Stata
  • R
  • SPSS
mvdecode SCQCASP*, mv(-1000/-1=.)

gen MHcasp19_control = 0 if has_scq == 1
replace MHcasp19_control = (SCQCASP1-1) + (SCQCASP2-1) + (4-SCQCASP3) + (SCQCASP4-1) 
replace MHcasp19_control = . if abs(MHcasp19_control)>50
label variable MHcasp19_control "CASP-19 Control"

gen MHcasp19_autonomy = 0 if has_scq == 1
replace MHcasp19_autonomy = (4-SCQCASP7) + (SCQCASP8-1)+ (SCQCASP9-1)+ (4-SCQCASP5) + (SCQCASP6-1)
replace MHcasp19_autonomy = . if abs(MHcasp19_autonomy)>50
label variable MHcasp19_autonomy "CASP-19 Autonomy"

gen MHcasp19_pleasure = 0 if has_scq == 1
replace MHcasp19_pleasure = (4-SCQCASP12) + (4-SCQCASP13) + (4-SCQCASP14) + (4-SCQCASP10) + (4-SCQCASP11)
replace MHcasp19_pleasure = . if abs(MHcasp19_pleasure)>50
label variable MHcasp19_pleasure "CASP-19 Pleasure"

gen MHcasp19_selfreal = 0 if has_scq == 1
replace MHcasp19_selfreal = (4-SCQCASP16) + (4-SCQCASP17) + (4-SCQCASP18) + (4-SCQCASP19)+ (4-SCQCASP15)
replace MHcasp19_selfreal = . if abs(MHcasp19_selfreal)>50
label variable MHcasp19_selfreal "CASP-19 Self-Realisation"

gen MHcasp19_total = MHcasp19_control + MHcasp19_autonomy + MHcasp19_pleasure + MHcasp19_selfreal
label variable MHcasp19_total "CASP-19 Quality of Life Scale"

Download Stata .do file

casp_vars <- grep("^SCQCASP", names(data), value = TRUE)
for (v in casp_vars) {
  x <- data[[v]]
  x[!is.na(x) & x >= -1000 & x <= -1] <- NA_real_
  data[[v]] <- x
}

data$MHcasp19_control <- NA_real_
data$MHcasp19_control[!is.na(data$has_scq) & data$has_scq == 1] <- 0
data$MHcasp19_control <-
  (data$SCQCASP1 - 1) + (data$SCQCASP2 - 1) +
  (4 - data$SCQCASP3) + (data$SCQCASP4 - 1)
data$MHcasp19_control[!is.na(data$MHcasp19_control) &
                      abs(data$MHcasp19_control) > 50] <- NA_real_
attr(data$MHcasp19_control, "label") <- "CASP-19 Control"

data$MHcasp19_autonomy <- NA_real_
data$MHcasp19_autonomy[!is.na(data$has_scq) & data$has_scq == 1] <- 0
data$MHcasp19_autonomy <-
  (4 - data$SCQCASP7) + (data$SCQCASP8 - 1) +
  (data$SCQCASP9 - 1) + (4 - data$SCQCASP5) + (data$SCQCASP6 - 1)
data$MHcasp19_autonomy[!is.na(data$MHcasp19_autonomy) &
                       abs(data$MHcasp19_autonomy) > 50] <- NA_real_
attr(data$MHcasp19_autonomy, "label") <- "CASP-19 Autonomy"

data$MHcasp19_pleasure <- NA_real_
data$MHcasp19_pleasure[!is.na(data$has_scq) & data$has_scq == 1] <- 0
data$MHcasp19_pleasure <-
  (4 - data$SCQCASP12) + (4 - data$SCQCASP13) +
  (4 - data$SCQCASP14) + (4 - data$SCQCASP10) + (4 - data$SCQCASP11)
data$MHcasp19_pleasure[!is.na(data$MHcasp19_pleasure) &
                       abs(data$MHcasp19_pleasure) > 50] <- NA_real_
attr(data$MHcasp19_pleasure, "label") <- "CASP-19 Pleasure"

data$MHcasp19_selfreal <- NA_real_
data$MHcasp19_selfreal[!is.na(data$has_scq) & data$has_scq == 1] <- 0
data$MHcasp19_selfreal <-
  (4 - data$SCQCASP16) + (4 - data$SCQCASP17) +
  (4 - data$SCQCASP18) + (4 - data$SCQCASP19) + (4 - data$SCQCASP15)
data$MHcasp19_selfreal[!is.na(data$MHcasp19_selfreal) &
                       abs(data$MHcasp19_selfreal) > 50] <- NA_real_
attr(data$MHcasp19_selfreal, "label") <- "CASP-19 Self-Realisation"

data$MHcasp19_total <-
  data$MHcasp19_control + data$MHcasp19_autonomy +
  data$MHcasp19_pleasure + data$MHcasp19_selfreal

attr(data$MHcasp19_total, "label") <- "CASP-19 Quality of Life Scale"

Download R file

RECODE SCQCASP1 SCQCASP2 SCQCASP3 SCQCASP4 SCQCASP5
       SCQCASP6 SCQCASP7 SCQCASP8 SCQCASP9 SCQCASP10
       SCQCASP11 SCQCASP12 SCQCASP13 SCQCASP14 SCQCASP15
       SCQCASP16 SCQCASP17 SCQCASP18 SCQCASP19
  (-1000 THRU -1 = SYSMIS).

COMPUTE MHcasp19_control = $SYSMIS.
IF (has_scq = 1) MHcasp19_control = 0.
COMPUTE MHcasp19_control =
  (SCQCASP1 - 1) + (SCQCASP2 - 1) + (4 - SCQCASP3) + (SCQCASP4 - 1).
IF (ABS(MHcasp19_control) > 50) MHcasp19_control = $SYSMIS.
VARIABLE LABELS MHcasp19_control "CASP-19 Control".

COMPUTE MHcasp19_autonomy = $SYSMIS.
IF (has_scq = 1) MHcasp19_autonomy = 0.
COMPUTE MHcasp19_autonomy =
  (4 - SCQCASP7) + (SCQCASP8 - 1) + (SCQCASP9 - 1) +
  (4 - SCQCASP5) + (SCQCASP6 - 1).
IF (ABS(MHcasp19_autonomy) > 50) MHcasp19_autonomy = $SYSMIS.
VARIABLE LABELS MHcasp19_autonomy "CASP-19 Autonomy".

COMPUTE MHcasp19_pleasure = $SYSMIS.
IF (has_scq = 1) MHcasp19_pleasure = 0.
COMPUTE MHcasp19_pleasure =
  (4 - SCQCASP12) + (4 - SCQCASP13) + (4 - SCQCASP14) +
  (4 - SCQCASP10) + (4 - SCQCASP11).
IF (ABS(MHcasp19_pleasure) > 50) MHcasp19_pleasure = $SYSMIS.
VARIABLE LABELS MHcasp19_pleasure "CASP-19 Pleasure".

COMPUTE MHcasp19_selfreal = $SYSMIS.
IF (has_scq = 1) MHcasp19_selfreal = 0.
COMPUTE MHcasp19_selfreal =
  (4 - SCQCASP16) + (4 - SCQCASP17) + (4 - SCQCASP18) +
  (4 - SCQCASP19) + (4 - SCQCASP15).
IF (ABS(MHcasp19_selfreal) > 50) MHcasp19_selfreal = $SYSMIS.
VARIABLE LABELS MHcasp19_selfreal "CASP-19 Self-Realisation".

COMPUTE MHcasp19_total =
  MHcasp19_control + MHcasp19_autonomy + MHcasp19_pleasure + MHcasp19_selfreal.

VARIABLE LABELS MHcasp19_total "CASP-19 Quality of Life Scale".

EXECUTE.

Download SPSS .sps file

CASP-12
CESD-20

Copyright 2026, The Irish Longitudinal Study on Ageing (TILDA)

 

TILDA, Department of Health and Health Research Board