15.10 Number Needed to Treat (NNT)

Effect sizes such as Cohen’s \(d\) or Hedges’ \(g\) are often difficult to interpret from a clinical standpoint. What exactly does an effect of \(g=0.35\) mean for patients, medical professionals, or other stakeholders? A good way to facilitate the understanding of your results is to calculate the Number Needed to Treat, or \(NNT\), which signifies how many additional patients must be treated with an intervention or treatment to avoid one additional negative event (e.g., relapse) or tp achieve one additional positive event (e.g., symptom remission, response). There are two ways to calculate the \(NNT\) from effect size data such as \(d\) or \(g\):

  • The method by Kraemer and Kupfer (2006), calculates \(NNT\) from the Area Under the Curve (\(AUC\)) defined as the probability that a patient in the treatment has an outcome preferable to one in the control. This method allows to calculate the \(NNT\) directly from \(d\) or \(g\) without any extra variables.
  • The method by Furukawa calculates the \(NNT\) from \(d\) using a reasonable estimate of \(CER\), in most contexts the assumed response rate in the control group.

Furukawa’s method has been shown to be superior in predicting the \(NNT\) compared to the Kraemer & Kupfer method (Furukawa and Leucht 2011). If reasonable assumptions can be made concerning the \(CER\), Furukawa’s method should therefore be preferred. When event data is used, the \(CER\) and \(EER\) (experimental group event rate) is calculated first, and the standard definition of the \(NTT\), \(\frac{1}{EER-CER}\), can be applied.

15.10.1 The NNT function

To calculate the \(NNT\) using these three method, we prepared the NNT function for you. The function is part if the dmetar package. If you have the package installed already, you have to load it into your library first.


If you don’t want to use the dmetar package, you can find the source code for this function here. In this case, R doesn’t know this function yet, so we have to let R learn it by copying and pasting the code in its entirety into the console in the bottom left pane of RStudio, and then hit Enter ⏎.

Kraemer & Kupfer method

To use the Kraemer & Kupfer method, we only have to provide the function with an effect size (\(d\) or \(g\)).

NNT(d = 0.245)
## Kraemer & Kupfer's method used.
## [1] 7.270711

Furukawa’s method

Once we supply a \(CER\) value additionally, Furukawa’s method is used automatically.

NNT(d = 0.245, CER = 0.35)
## Furukawa's method used.
## [1] 10.61533

Binary event data

We can also provide binary event data to calculate the \(NNT\) directly. To do this, we only need the event rate in the experimental group event.e and the total sample in the experimental group, n.e, and the same information for the control group in event.c and n.c.

NNT(event.e = 10, event.c = 20, n.e = 200, n.c = 200)
## [1] 20

You can read more about this function in the documentation.


Furukawa, Toshi A, and Stefan Leucht. 2011. “How to Obtain Nnt from Cohen’s d: Comparison of Two Methods.” PloS One 6 (4). Public Library of Science: e19070.