← Methods repository
CONCEPTADVANCEDPYTHON · R · SAS5 citations

SUCRA in Network Meta-Analysis

Surface under the cumulative ranking curve (SUCRA) is a network meta-analysis ranking metric that transforms each treatment's cumulative rank probabilities into a 0 to 1 (or 0% to 100%) summary of how often it is expected to rank among the best treatments for one outcome.

Inferential Statisticssucrasurface-under-cumulative-ranking-curvenetwork-meta-analysistreatment-rankingrankogramp-scoreindirect-comparisonhta
On this page
Methods reference only. Use primary source citations and local policy before applying this in a study protocol, regulatory submission, payer dossier, or clinical decision.
In plain language

SUCRA is a shortcut for summarizing treatment ranks in a network meta-analysis. It turns the probabilities that each treatment is first, second, third, and so on into one score from 0 to 1, where higher usually means the treatment tends to rank better for that one outcome. It is helpful for scanning large networks, but it should never be read without the actual treatment effects, uncertainty intervals, and certainty of evidence.

When to use it
Prefer SUCRA over probability-best for compact tables, but include rankograms or credible intervals whenever ranks drive interpretation.
Use SUCRA for the table and rankograms for the top-ranked or decision-relevant treatments.
Never prefer SUCRA alone. Use it only as a supplement to league tables and certainty assessments.
Watch out for
Still compresses uncertainty and can hide tied or indistinguishable treatments.
Hides whether rank probability is concentrated in one rank or spread across adjacent ranks.
Does not show effect magnitude, interval width, heterogeneity, inconsistency, or evidence certainty.

What it is

SUCRA is a treatment-ranking summary used after a network meta-analysis has estimated the joint distribution of relative treatment effects. For each treatment and outcome, the NMA produces rank probabilities: the probability the treatment is best, second best, third best, and so on among K competing interventions. SUCRA integrates the cumulative ranking curve into one number. With rank 1 defined as best, SUCRA equals the average cumulative probability of being among the top k ranks for k = 1 through K - 1.

It is also a simple transformation of the expected rank:

SUCRA_i = (K - E(rank_i)) / (K - 1)

A value near 1.0 (or 100%) means the treatment is usually near the top of the rank distribution for that outcome; a value near 0 means it is usually near the bottom. SUCRA is not an effect size, not a probability of clinical superiority, and not a substitute for the league table of relative effects with credible or confidence intervals.

Where it sits in the NMA workflow

SUCRA is downstream of the network model. The hard gates come first: the network must be connected, node definitions must be clinically coherent, transitivity must be defended, inconsistency must be assessed where closed loops exist, heterogeneity must be reported, and the relative effects must be estimated on a common scale. Only then should ranking be computed. If the NMA is Bayesian, rank probabilities are usually computed from posterior draws of each treatment's basic parameter.

If the NMA is frequentist, SUCRA can be approximated through resampling or replaced by P-scores, the frequentist analogue that is often numerically similar.

Orientation matters

The analyst must define whether larger or smaller values are better before ranking. For response, remission, survival, and quality-of-life outcomes, higher is usually better. For mortality, discontinuation, serious adverse events, cost, or hospitalizations, lower is usually better. A reversed orientation can invert the entire hierarchy while leaving the code apparently successful. In multi-outcome HEOR work, each outcome needs its own orientation; do not average efficacy and harm SUCRA values unless a prespecified multi-criteria decision framework defines the weights.

Pros, cons, and trade-offs

  • vs probability of being best: probability-best is fragile because it ignores the rest of the rank distribution and can reward a treatment with sparse evidence. SUCRA uses all ranks, so it is more stable than probability-best alone. It still compresses uncertainty into one number.
  • vs rankogram: rankograms show the full distribution and reveal ties or instability. SUCRA is easier to place in a table. Use SUCRA for compact comparison and rankograms when the shape of uncertainty matters.
  • vs league table: the league table contains the decision-relevant relative effects and intervals. SUCRA is only a display aid. A high SUCRA with pairwise effects that are small, imprecise, or low certainty should not drive treatment choice.
  • SUCRA vs P-score: SUCRA is commonly derived from Bayesian posterior ranks or resampling; P-scores use frequentist point estimates and standard errors and often approximate SUCRA. Neither metric adds much if the relative-effect intervals already show no meaningful separation.

When NOT to use - and when it is actively misleading

Do not present SUCRA as the primary evidence of superiority. Do not report a single "best" treatment from SUCRA when credible intervals overlap, certainty of evidence is low, the network is sparse, the top treatments differ only trivially, or transitivity is doubtful. Do not compare SUCRA values across unrelated outcomes as if a 0.85 for efficacy and a 0.85 for safety carry the same clinical meaning. Do not compute SUCRA before checking that beneficial direction is coded correctly.

Do not use SUCRA to patch over a disconnected network, an inconsistent closed loop, or an RWE node with unresolved confounding; ranking a biased network only makes the bias easier to over-interpret.

Data-source operational depth

  • Aggregate RCT network: the usual substrate. SUCRA inherits all NMA assumptions: transitivity, consistency, heterogeneity, multi-arm covariance, and outcome timing. Report SUCRA only after the direct and indirect evidence, intervals, heterogeneity, and certainty are visible.
  • IPD-NMA: rank probabilities can be computed after modeling patient-level effect modifiers. Report whether SUCRA is marginal for the target population or conditional on covariate values; those are different rankings.
  • Claims-derived RWE node: an active-comparator new-user contrast from claims can enter the network only if time zero, follow-up, endpoint algorithm, and estimand match the trial nodes. Residual confounding in that node propagates into the entire rank distribution.
  • EHR-derived node: severity measures and labs may improve transportability, but encounter-driven capture and out-of-system outcomes can distort both efficacy and safety ranks. Use linkage or sensitivity analysis before treating the rank as comparable to RCT nodes.
  • Registry or linked data node: adjudicated outcomes and severity can strengthen a node, but selected enrollment and linkage eligibility must be described. SUCRA should be recomputed in sensitivity analyses excluding or down-weighting nonrandomized nodes.

Worked example

Four treatments are ranked for a binary response outcome, where higher response is better. Posterior rank probabilities from the NMA are: A = [0.50, 0.30, 0.15, 0.05], B = [0.30, 0.35, 0.25, 0.10], C = [0.15, 0.25, 0.35, 0.25], and D = [0.05, 0.10, 0.25, 0.60] for ranks 1 through 4. Treatment A has cumulative probabilities of being in the top 1, top 2, and top 3 ranks of 0.50, 0.80, and 0.95. Its SUCRA is (0.50 + 0.80 + 0.95) / 3 = 0.75.

Equivalently, its expected rank is 1.75, so (4 - 1.75) / 3 = 0.75. The full table gives A = 0.75, B = 0.617, C = 0.433, and D = 0.200. This ranks A highest, but the decision still turns on the relative effect estimates and intervals: if A and B have overlapping odds-ratio credible intervals and low certainty evidence, the correct conclusion is "A ranked higher in this model, but A and B are not clearly separable."

Decision diagram

flowchart TD
  Fit[NMA model fit<br/>relative effects + covariance/posterior] --> Check{Network credible?}
  Check -->|No| Stop[Do not rank<br/>fix connectivity, transitivity,<br/>inconsistency, or data-source bias]
  Check -->|Yes| Orient[Set outcome direction<br/>higher or lower is better]
  Orient --> Ranks[Compute rank probabilities<br/>rank 1 through K]
  Ranks --> Cum[Compute cumulative rank probabilities<br/>top 1 through top K-1]
  Cum --> SUCRA[SUCRA = area under cumulative curve<br/>or (K - expected rank)/(K - 1)]
  SUCRA --> Report[Report with league table,<br/>credible/confidence intervals,<br/>certainty and rankograms]
SUCRA calculation belongs after the network model and assumption checks. It summarizes rank probabilities but must be reported with relative effects and uncertainty.

Worked example

Scenario

A Bayesian network meta-analysis compares four drugs on treatment response, where higher response is better. The model produces posterior probabilities that each drug is ranked first, second, third, or fourth. The team wants a compact ranking table, but must still report the underlying odds ratios and credible intervals.

Dataset

Rank probability matrix from a four-treatment NMA, with rank 1 defined as best.

treatmentprob_rank_1prob_rank_2prob_rank_3prob_rank_4expected_rankSUCRA
Drug A0.50.30.150.051.750.75
Drug B0.30.350.250.12.150.617
Drug C0.150.250.350.252.70.433
Drug D0.050.10.250.63.40.2

Steps

1Confirm orientation before ranking: for response, rank 1 means the highest response probability, so higher values are better.
2For each treatment, compute cumulative probabilities through rank K - 1. Drug A has top-1 = 0.50, top-2 = 0.50 + 0.30 = 0.80, and top-3 = 0.95.
3Divide the sum of cumulative probabilities by K - 1. Drug A SUCRA = (0.50 + 0.80 + 0.95) / 3 = 0.750.
4Cross-check with the expected-rank formula: Drug A expected rank = 1*0.50 + 2*0.30 + 3*0.15 + 4*0.05 = 1.75, so SUCRA = (4 - 1.75) / 3 = 0.750.
5Report SUCRA with the league table and uncertainty. If Drug A and Drug B have overlapping pairwise credible intervals, describe the rank as suggestive rather than definitive.

Result

The SUCRA ranking is Drug A 0.750, Drug B 0.617, Drug C 0.433, and Drug D 0.200. This is a compact ranking of posterior rank distributions for one outcome, not evidence that Drug A has a clinically important or statistically certain advantage over Drug B.

Trade-offs

vs. Probability of being best
Pros of this
Uses the entire rank distribution instead of only the first-rank probability, so it is less sensitive to one unstable top-rank draw.
vs. Rankogram
Pros of this
Easier to scan across many treatments and outcomes in a summary table.
vs. League table of relative effects
Pros of this
Gives a compact ordering when the league table is too dense for quick scanning.
vs. P score
Pros of this
Natural output from Bayesian posterior rank probabilities and can be linked directly to posterior draws.
Cons of this
Requires posterior or resampling ranks; P-score is simpler in frequentist netmeta workflows and often approximates SUCRA.
When to prefer Use SUCRA for Bayesian or resampled ranking displays; use P-score when the synthesis is explicitly frequentist and implemented in netmeta.

Runnable example

Compute SUCRA from a rank probability matrix. Rows are treatments, columns are ranks 1..K, and rank 1 is assumed best after orienting the NMA effects in the beneficial direction.

requires: numpy · pandas
import numpy as np
import pandas as pd

rank_probs = pd.DataFrame(
    {
        "rank_1": [0.50, 0.30, 0.15, 0.05],
        "rank_2": [0.30, 0.35, 0.25, 0.10],
        "rank_3": [0.15, 0.25, 0.35, 0.25],
        "rank_4": [0.05, 0.10, 0.25, 0.60],
    },
    index=["Drug A", "Drug B", "Drug C", "Drug D"],
)

def sucra_from_rank_probs(prob_df):
    probs = prob_df.to_numpy(dtype=float)
    if not np.allclose(probs.sum(axis=1), 1.0):
        raise ValueError("Each treatment's rank probabilities must sum to 1.")
    k = probs.shape[1]
    ranks = np.arange(1, k + 1)
    expected_rank = probs @ ranks
    cumulative = np.cumsum(probs, axis=1)[:, :-1]
    sucra = cumulative.sum(axis=1) / (k - 1)
    check = (k - expected_rank) / (k - 1)
    if not np.allclose(sucra, check):
        raise AssertionError("SUCRA formula cross-check failed.")
    return pd.DataFrame(
        {"expected_rank": expected_rank, "SUCRA": sucra},
        index=prob_df.index,
    ).sort_values("SUCRA", ascending=False)

print(sucra_from_rank_probs(rank_probs).round(3))

Citations

FOUNDATIONAL / METHODS
  1. [1]Salanti G, Ades AE, Ioannidis JPA. Graphical methods and numerical summaries for presenting results from multiple-treatment meta-analysis: an overview and tutorial. Journal of Clinical Epidemiology. 2011;64(2):163-171.
  2. [2]Chaimani A, Higgins JPT, Mavridis D, Spyridonos P, Salanti G. Graphical tools for network meta-analysis in STATA. PLoS ONE. 2013;8(10):e76654.
  3. [3]Rucker G, Schwarzer G. Ranking treatments in frequentist network meta-analysis works without resampling methods. BMC Medical Research Methodology. 2015;15:58.
APPLIED EXAMPLES
  1. [4]Mbuagbaw L, Rochwerg B, Jaeschke R, et al. Approaches to interpreting and choosing the best treatments in network meta-analyses. Systematic Reviews. 2017;6:79.
REPORTING & GUIDANCE
  1. [5]Hutton B, Salanti G, Caldwell DM, et al. The PRISMA extension statement for reporting of systematic reviews incorporating network meta-analyses of health care interventions: checklist and explanations. Annals of Internal Medicine. 2015;162(11):777-784.