Tabellab
Data, tech, science & health

Sensitivity and specificity: how to calculate them, plus PPV and NPV

Sensitivity is the share of people with the disease who test positive, TP ÷ (TP + FN). Specificity is the share of people without the disease who test negative, TN ÷ (TN + FP). Both describe the test. What a patient wants to know is different: if I test positive, how likely is it that I am ill? That is the positive predictive value (PPV), and it depends on how common the disease is. In the example below, a test with 90% sensitivity and 95% specificity has a PPV of 48.6% where 5% of people are ill, and only 15.4% in a screening population where 1% are. This guide is about the calculation and is not medical advice.

Updated 20 Oct 2026 5 min read By Tabellab team

The 2×2 table

Every calculation starts from a 2×2 table that compares the test result with the true state, as established by a reference standard:

  • True positives (TP): ill and test positive, 90 in the example
  • False negatives (FN): ill but test negative, 10
  • False positives (FP): healthy but test positive, 95
  • True negatives (TN): healthy and test negative, 1,805

Put the true state in the columns and the test result in the rows, and add totals on both sides. Most errors in these calculations come from dividing by the wrong total, so label the table clearly.

Sensitivity and specificity

Sensitivity divides by the column of people with the disease: 90 ÷ (90 + 10) = 90%. The test misses 10% of cases. Specificity divides by the column of people without it: 1,805 ÷ (1,805 + 95) = 95%, so 5% of healthy people get a false alarm.

A highly sensitive test is good for ruling a disease out: a negative result is reassuring because few cases are missed. A highly specific test is good for ruling it in. The positive likelihood ratio combines both, sensitivity ÷ (1 − specificity) = 0.90 ÷ 0.05 = 18: a positive result is 18 times more likely in someone with the disease than in someone without.

Worked example: a screening test in 2,000 people

The four cells of the 2×2 table and the screening prevalence in D13 are yellow inputs. Totals, sensitivity, specificity, predictive values and the PPV at another prevalence are formulas.

Worked example: a screening test in 2,000 people
ABCD
12×2 tableDisease presentDisease absentTotal
2Test positive9095185
3Test negative101,8051,815
4Total1001,9002,000
5
6Sensitivity = TP ÷ (TP + FN)90.0%
7Specificity = TN ÷ (TN + FP)95.0%
8Positive predictive value (PPV) = TP ÷ all positives48.6%
9Negative predictive value (NPV) = TN ÷ all negatives99.4%
10Prevalence in this group5.0%
11Accuracy = (TP + TN) ÷ total94.8%
12Positive likelihood ratio = sensitivity ÷ (1 − specificity)18.00
13Prevalence in a screening population1.0%
14PPV at that prevalence (Bayes)15.4%
Key formulas
  • D6=B2/B4Sensitivity
  • D7=C3/C4Specificity
  • D8=B2/D2Positive predictive value
  • D9=C3/D3Negative predictive value
  • D12=D6/(1-D7)Positive likelihood ratio
  • D14=D6*D13/(D6*D13+(1-D7)*(1-D13))PPV at a different prevalence

Invented counts for teaching. Real test evaluations report confidence intervals and the reference standard used. Not medical advice.

PPV and NPV

The predictive values divide by the rows, the test results. PPV = TP ÷ all positives = 90 ÷ 185 = 48.6%: fewer than half of the positives are true. NPV = TN ÷ all negatives = 1,805 ÷ 1,815 = 99.4%.

The PPV is low here although the test looks good, because the 5% false-positive rate applies to the large healthy group (1,900 people) and produces 95 false alarms, more than the 90 true cases.

Why prevalence changes everything

Sensitivity and specificity are properties of the test and stay the same across groups. PPV and NPV are not: they depend on the prevalence. With Bayes' theorem, PPV = Se × p ÷ (Se × p + (1 − Sp) × (1 − p)). In Excel, with sensitivity in D6, specificity in D7 and prevalence in D13: =D6*D13/(D6*D13+(1-D7)*(1-D13)).

For the same test: at 20% prevalence the PPV is 81.8%, at 5% it is 48.6%, at 1% it is 15.4% and at 0.1% only 1.8%. That is why screening the general population for a rare condition produces mostly false positives, and why a positive screening result is usually followed by a more specific confirmatory test.

Accuracy is a poor summary

Accuracy, (TP + TN) ÷ total, is 94.75% in the example, which sounds excellent. But a "test" that calls everyone healthy would reach 95% accuracy at 5% prevalence while finding no cases at all. For diagnostic tests, report sensitivity and specificity together, plus PPV and NPV for the population in question, ideally with confidence intervals when the counts are small.

Common mistakes

  • Dividing by the wrong total. Sensitivity and specificity divide by the true state (columns), PPV and NPV by the test result (rows).
  • Reading sensitivity as the chance of being ill after a positive test. That is the PPV, and it can be much lower.
  • Carrying PPV over to another population. PPV and NPV depend on prevalence. Recalculate them for the group being tested.
  • Judging a test by accuracy. With a rare disease, a useless test can still be over 95% accurate.
  • Swapping false positives and false negatives. A false negative is an ill person the test missed.
  • Ignoring small numbers. With 10 cases, 90% sensitivity has a wide confidence interval.

Frequently asked questions

How do you calculate sensitivity and specificity?

Sensitivity = true positives ÷ (true positives + false negatives). Specificity = true negatives ÷ (true negatives + false positives). Both come from a 2×2 table of test result against true disease status.

What is the difference between sensitivity and PPV?

Sensitivity is the share of ill people who test positive. PPV is the share of positive tests that belong to ill people. Sensitivity describes the test, PPV also depends on how common the disease is.

Why does a low prevalence lower the PPV?

With few ill people, even a small false-positive rate applied to the large healthy group creates many false alarms, which can outnumber the true positives.

How do you calculate PPV from sensitivity, specificity and prevalence?

PPV = sensitivity × prevalence ÷ (sensitivity × prevalence + (1 − specificity) × (1 − prevalence)). With 90% sensitivity, 95% specificity and 1% prevalence, PPV = 15.4%.

Practise it in a lab

Related guides

Reading is step one. Doing is step two.

Every guide links to a lab where you build the same calculation in an online spreadsheet and get instant feedback.

Open the lab