Report
Nov. 4, 2026

Updating the Epoch Capabilities Index methodology to use a Bayesian model

A Bayesian model gives the ECI better-justified uncertainty estimates and lets us compare models directly.

We have updated the modeling behind the Epoch Capabilities Index (ECI), which measures and tracks AI model capability using benchmark results. The primary motivation is to provide better-justified uncertainty estimates and to let us calculate how likely one model is to be more capable than another.

The new methodology is documented on our website; this post explains how it differs from the previous frequentist approach and what motivates the changes. We first review the basic setup of the ECI and the previous method, then detail the changes in the Bayesian model and present its results. The appendices cover alternative formulations and the evaluation we used to validate our final modeling choices.

How the ECI turns benchmark scores into capability estimates

The ECI is based on Item Response Theory (IRT), a framework originally developed for educational testing that enables comparisons between students even when they took different exams with varying difficulty. Similarly, we have different sets of benchmark scores for AI models that we want to compare. While classical IRT models the binary chance of answering a single question correctly, we adapt it to continuous outcomes by treating a model’s benchmark score as the expected share of questions it gets right. We only use benchmarks that are scored between 0 and 100%. This section establishes the basics of IRT as applied to the ECI and how it informs modeling in both the frequentist and Bayesian models.

We use a version of the four-parameter logistic (4PL) IRT model in which each benchmark’s floor and ceiling are fixed rather than fitted, so only its difficulty and slope are learned. This is equivalent to a two-parameter (2PL) model on rescaled scores. We assume that a model’s performance on every benchmark depends on a single capability dimension. Each benchmark has a difficulty level and a slope, which sets how quickly scores change as models become more capable. Before fitting, we rescale each benchmark’s scores so that random guessing (the floor) maps to 0 and the highest achievable score (the ceiling) maps to 1. Scores below chance are set to 0 and scores above the ceiling to 11.

Following IRT, we predict the score of model m on benchmark b as:

\[\mathrm{predicted\_score}(m,b) = \sigma(\alpha_b[C_m - D_b]) = \frac{1}{1 + e^{-\alpha_b[C_m - D_b]}},\]

where

  • \(C_m\) is the model capability,
  • \(D_b\) is the benchmark difficulty and
  • \(\alpha_b\) is the benchmark slope.

The predicted score follows a standard logistic function. It proposes that a model’s performance on a benchmark depends on its capability relative to the benchmark’s difficulty, scaled by the benchmark’s slope.

If the model is as capable as the benchmark is difficult, then the predicted score is 50%: \(\mathrm{predicted\_score}(m,b) = \sigma(\alpha_b[0]) = \frac{1}{2}\).

The slope parameter \(\alpha_b\) controls how quickly predicted scores move away from 50% in either direction as the difference between model capability and benchmark difficulty grows (Figure 1).

Line chart of predicted score (0–100%) against ECI for two benchmarks: DTBench, a shallow S-curve crossing 50% at ECI 136, and VPCT, a steeper one crossing 50% at ECI 153. The steeper benchmark goes from near 0% to near 100% over a much narrower range of capability.

Our dataset is a set of observed scores, and through our modeling, we fit the three parameters \(C_m\), \(D_b\) and \(\alpha_b\). In the frequentist approach, we seek the parameter values that best explain the observed scores, while in the Bayesian approach we update our probabilistic estimates based on the observed data. For more detail on the data sourcing, see Appendix B.

How the previous frequentist fit worked

Our previous methodology fit the ECI using a frequentist approach, and constructed confidence intervals via bootstrapping. In this section we will explain how this worked in more detail, to give context for our new methodology. Using the frequentist approach, the ECI was calculated by finding the values of \(C_m\), \(D_b\) and \(\alpha_b\) that minimize the squared error of the predicted score against the observed benchmark scores in our dataset. We also included a small regularization term to improve fitting efficiency, which mainly affected very weak models, as we discuss later in the section ‘Frontier ECIs are similar while weak models move down’.

With the predicted score defined as above, the least-squares minimization becomes:

\[\min_{\alpha_b,\, D_b,\, C_m} \sum_{n=1}^{N} \left(\mathrm{predicted\_score}_n - \mathrm{observed\_score}_n\right)^2 + \frac{0.1}{M + 2B - 2}\left(\sum_{b=1}^{B} \left(\alpha_b^2 + D_b^2\right) + \sum_{m=1}^{M} C_m^2\right)\]

Here N is the total number of observations we have (one model score on an individual benchmark), B is the total number of benchmarks, and M is the total number of models.

The parameter values were constrained as: \(\alpha_b \in [0.1, 10]\), with the WinoGrande slope fixed at 1 (a benchmark which was selected due to its good coverage of the original benchmarks in the ECI when it was launched). We similarly constrained all \(C_m, D_b \in [-10, 10]\), although none of these constraints are binding and were included only for computational convenience.

After fitting the model on the ‘raw’ parameter scale described above, we applied a linear transformation to fix the location and scale of all parameters, by assigning Claude 3.5 Sonnet an ECI of 130 and GPT-5 an ECI of 150. This gives the ECI a consistent interpretation over time, relative to the two anchor models.

Too few scores per model for bootstrapping to be justified

Our previous methodology estimated uncertainty in the ECI results with bootstrapping, reporting 90% confidence intervals around the point estimate. We aimed to assess how each model’s ECI could have differed if we had observed a slightly different set of benchmark results.

We used 500 bootstrap samples, each holding the set of models fixed and resampling each model’s benchmark results with replacement, keeping its number of observations the same, and refitting the entire model for every sample. Each sample yields slightly different ECI scores, and the 5th and 95th percentiles form the confidence interval bounds.

Each model’s results are resampled independently, with replacement, from its own scores: ten for the median model and as few as four. A bootstrap works when there is enough data for each resample to look like a fresh set of results. On average, each resample leaves out about a third of a model’s scores and counts others more than once. With so few scores per model, this shifts a model’s ECI considerably and the spread across resamples is not a reliable measure of the real uncertainty in its ECI.

What changes in the Bayesian model

The previous frequentist approach had two notable weaknesses: uncertainty via bootstrapping is not justified in such a small data regime as discussed above, and it’s not designed to compare models directly. We chose a Bayesian model to address both points. Bayesian models naturally incorporate uncertainty; the outputs of our model fitting are probability distributions, which means we can take uncertainty estimates directly from this output, including the full observation dataset.

The basic elements of Bayesian modeling are:

  • A likelihood, which states how likely we are to observe data given the internal parameters of the model
  • Priors, which give our initial expectations for the distributions of those internal parameters
  • The posterior, which we obtain by fitting the Bayesian model to our data using the likelihood and priors defined above

Below, we describe in five sections the changes made to the modeling:

  1. The model fitting: sampling the posterior instead of finding one best fit.
  2. The likelihood: using a beta likelihood, which keeps all probability between 0% and 100% and lets noise shrink near those limits.
  3. The noise: letting the model learn that benchmarks vary in how ‘noisy’ their results are.
  4. The scaling: fixing the scale with the full set of benchmarks, not a single reference benchmark.
  5. The priors: flat priors on capability and difficulty, shared priors on slopes and noise.

Sampling the posterior instead of finding one best fit

The posterior of a Bayesian model usually cannot be calculated directly, so instead we draw samples from it using Markov Chain Monte Carlo (MCMC)2. Each sample is one plausible set of every model’s capability and every benchmark’s difficulty, slope, and noise. Taken together, the samples approximate the posterior. Instead of selecting a single best-fitting parameter combination, these samples approximate a probability distribution for each model’s ECI. We report the mean of this distribution as the model’s ECI (after per-sample rescaling to set Claude 3.5 Sonnet to 130 and GPT-5 to 150) and its 90% credible intervals3 are precisely the 90% probability mass intervals of this distribution running from the 5th to the 95th percentile.

As all parameters are jointly estimated, we can look at the uncertainty in functions of the ECI, such as the gap in ECI scores between two models, to assess the probability that one is more capable than another. We present an example of this type of gap analysis in the section ‘How likely one model is to be more capable than another’.

The beta likelihood

We have described how the IRT model gives a predicted score for each model on each benchmark. To fit it statistically, we need to measure how well the predicted scores match the observed scores. In Bayesian modeling, this comes from the likelihood: for any set of parameter values, it says how probable each observed score is, given the model’s predicted score.

The previous frequentist methodology, which minimized the squared prediction error, is comparable to a Bayesian model with a normal distribution that has the same noise for every predicted score. When using least-squares minimization, predicting 50% against an observed 55% is penalized just as much as predicting 90% against 95%. However, it seems reasonable to expect the noise to shrink as the predicted score gets close to 0 or 100%. Another issue is that while the predicted score function itself always stays between 0 and 1, a normal likelihood with constant noise assigns probability to scores below 0 and above 1, which is undesirable (Figure 2).

Two panels showing the band where 90% of scores on an example benchmark are expected to fall, by model capability: a normal likelihood with constant noise (left) and the beta likelihood (right). The constant-noise band extends below 0% and above 100%, while the beta band narrows near both ends and stays between 0% and 100%.

We can replace the normal distribution assumption with a beta distribution for the likelihood function. The beta is a natural choice as it already has support strictly between 0 and 1, and its noise shrinks as scores approach 0 or 14 (Figure 3).

Three panels showing the distribution of possible scores when the predicted score is 5%, 25% and 50%, under the previous method's normal likelihood and the new method's beta likelihood. At low predicted scores the normal puts some probability below 0%, which is impossible, while the beta keeps all of it between 0% and 100%.

We set the predicted score function as the expected value (or mean) of our beta likelihood function, fit capability, difficulty, and slope parameters, and include benchmark-specific noise parameters, which we denote \(\sigma_b\) and discuss further in the next section. Then our likelihood is defined:

\[Y_{m,b} \mid \mu_{m,b}, \sigma_b \sim \mathrm{Beta}\left(\mu_{m,b}\,\frac{1 - 4\sigma_b^2}{4\sigma_b^2},\ (1 - \mu_{m,b})\,\frac{1 - 4\sigma_b^2}{4\sigma_b^2}\right)\]

where \(\mu_{m,b} = \mathrm{predicted\_score}(m,b) = \sigma(\alpha_b[C_m - D_b])\).

The mean of this likelihood is \(\mu_{m,b}\), and the standard deviation is \(2\sqrt{\mu_{m,b}(1 - \mu_{m,b})}\,\sigma_b\). The standard deviation (how much noise/error we expect in the benchmark results compared to the predictions) is maximized at \(\mu_{m,b} = \frac{1}{2}\) where it just equals \(\sigma_b\), and it shrinks to 0 as \(\mu_{m,b}\) goes to 0 or 1.

Finally, the beta distribution assigns no probability mass at exactly 0 or 1, so before fitting, we clip observed scores to [0.001, 0.999]. The ECI results are not sensitive to the exact range used here.

Each benchmark gets its own noise level

Benchmark-specific noise is another change we introduced to better match the model to patterns in the data. By ‘noise’ we mean how far a model’s observed scores tend to deviate from their predicted scores.

For example, a model predicted to score 50% typically lands within 46–54% on METR Time Horizons (taken as a % score on the task suite), while on VPCT it typically lands within 32–68%. In the previous frequentist fit, having the same penalty for every predicted-observed pair of scores effectively assumes that every benchmark is equally noisy. As our example shows, some benchmarks are noisier than others; by introducing the \(\sigma_b\) parameter, we can account for this in the model (Figures 4 and 5).

Note that even a benchmark with very little noise might still carry little information about a model that scores 99% on it, if, for example, almost any strong model would score near 99% too. A noisier benchmark on which the model scores 50% can tell us more. A score’s informativeness depends on the benchmark’s slope and how far the model’s capability is from the benchmark’s difficulty as well as its level of noise.

Line chart of the typical gap between actual and predicted scores against the predicted score, for five benchmarks with different noise levels. Every curve peaks at a 50% predicted score and falls to zero at 0% and 100%, but the height of the peak differs by benchmark.

Fixing the scale with the full set of benchmarks

We fit the model on an internal ‘raw’ scale and then convert every sample to the final ‘ECI scale’ with a linear transformation that sets Claude 3.5 Sonnet to 130 and GPT-5 to 150. We do not fit on the ECI scale directly because the priors are more intuitive to set on the raw scale. Due to the way the predicted scores are calculated, they depend only on the difference between model capability and benchmark difficulty, multiplied by the benchmark’s slope. This means we could add a constant value to all the difficulty and capability parameters without changing any of the predicted scores, or similarly rescale everything by a constant factor and adjust the slopes. We need to remove situations like this, where different parameter values yield identical predictions, to sensibly fit our model.

In the previous frequentist model, we fixed the raw scale by setting WinoGrande’s benchmark slope at 1, alongside the regularization discussed above, which weakly set the mean of model capabilities and benchmark difficulty to zero5. In the new Bayesian model, we fix the geometric mean of benchmark slopes to 1: \(\prod_b \alpha_b = 1\) and center benchmark difficulties at zero: \(\sum_b D_b = 0\). This establishes the raw scale using the full set of benchmarks rather than relying on a single benchmark.

After fitting the model, we apply the same linear transformation as before to report results on the ECI scale, fixing Claude 3.5 Sonnet’s ECI at 130 and GPT-5’s ECI at 150. These anchors let us compare results over time, for example, when we receive more benchmark scores or a new model is released. Because these two anchors fix the scale, each model’s uncertainty interval describes its capability relative to Claude 3.5 Sonnet and GPT-5. The anchors themselves have no uncertainty.

Priors

In Bayesian modeling, we use priors, which are probability distributions that represent any existing knowledge we have for the plausible values. Setting priors describes what we expect before seeing the data. For the ECI, we do not have strong evidence of plausible values, and we do not want preconceived notions to have a substantial influence on results; instead, we want them to be data-driven. We therefore use flat priors on capability and difficulty, and loose hierarchical priors on the slopes and noise, which are probability distributions whose parameters (such as mean and variance) are themselves learned from the data.

Three illustrative prior distributions on the same scale: a tight normal with a tall, narrow peak at 0, a loose normal that is lower and wider, and a flat prior that is a low horizontal line from −50 to 50. The flat prior gives every value the same weight, so the data alone decides where a parameter lands.

For capability \(C_m\) and difficulty \(D_b\), we want them to be roughly on the same scale. We set flat priors for these parameters, giving every value in a wide range the same probability, since we make no assumptions about how model capability or benchmark difficulty might be distributed. In particular, we don’t want the prior to constrain the rate of model progress that the model discovers. We then have

\[C_m, D_b \sim \mathrm{Uniform}(-50, 50).\]

We bound the priors so the posterior stays well defined, but set the bounds far wider than the data can reach: when converted from the raw scale to the ECI scale with the current fit, they span ECI values of −390 to +670, while the models in our data sit between about 45 and 169.

For the slope parameter, we do have some prior knowledge: we expect benchmarks to cluster around a typical rate of change, and a benchmark whose scores change 100 times faster or slower than average would be surprising. A natural prior for a slope parameter such as \(\alpha_b\) is the log-normal: it is strictly positive, it treats “twice as fast” and “half as fast” symmetrically, and it can span several orders of magnitude. Rather than fix how spread out the slopes are, we learn that from the data with a hyperprior. We set \(\tau_\alpha\) to be the scale parameter, and set 0 as the location parameter, so that

\[\alpha_b \sim \mathrm{LogNormal}(0, \tau_\alpha) \quad \text{marginally, with} \quad \tau_\alpha \sim \mathrm{LogNormal}(\log(0.5), 0.5).\]

Finally, for the per-benchmark noise parameter, we use a log-normal with hyperpriors for the location and spread:

\[\sigma_b \sim \mathrm{LogNormal}(\log \sigma_{\mathrm{median}}, \tau_\sigma) \ \text{truncated between } (0, 0.5),\]

with

\[\sigma_{\mathrm{median}} \sim \mathrm{LogNormal}(\log(0.1), 0.5) \quad \text{and} \quad \tau_\sigma \sim \mathrm{LogNormal}(\log(0.5), 0.5).\]

Because these priors have their own learned parameters, the model is hierarchical. We chose fixed hyperparameters via grid search; the results are not sensitive to them.

Frontier ECIs barely move, and models can now be compared

This section covers the impacts of switching from the old frequentist model to the new Bayesian model. We assess how individual ECI values changed, how the frontier trend changed, how well the new model fits the data, and what the joint posterior lets us say when comparing models.

Frontier ECIs are similar while weak models move down

The Bayesian model affects two groups of models very differently, with GPT-4 as the dividing line. GPT-4 is the earliest model in our frontier trend and the weakest frontier model in our dataset (ECI 126 under the previous frequentist method, 122 with the Bayesian fit). Models below this were behind the frontier when they were released.

Models at ECI 125 and above

For the 176 models at or above ECI 125, the two fits agree closely. Figure 7 plots each model’s new ECI against its previous ECI. The points sit on the diagonal (R² 0.995), and the two fits differ by 1.1 ECI points by root mean squared error (RMSE) and 0.9 by mean absolute difference. Every model’s new ECI lies inside its previous 90% confidence interval, typically a quarter of the way from its center to its edge, and the new intervals are 13% narrower on average. Models above ECI 150 tend to move up slightly: 87% of them do, by 0.7 points on average and at most 2.3.

Scatter plot of each model's ECI under the new method against the previous method, for models with an ECI of 120 or more, with a diagonal line where the two agree. The points sit almost exactly on the line: for models above ECI 125, the two methods differ by about 1 ECI point.

Models below ECI 125

The 76 models below ECI 125 all move down, by 13.7 points on average, and by 27 points for the 21 models previously below 100 (Figure 8; Figure 10 shows the 20 weakest models). The weaker a model, the further it moves: the change stretches the bottom of the scale rather than shifting these models by a fixed amount.

Part of this change comes from dropping the previous fit’s regularization: the penalty on large parameter values and their bounds. That penalty pulled every capability toward zero on the raw scale, which mattered little for models with many scores but held up very weak models measured on a few, mostly saturated, benchmarks. Refitting the previous frequentist model without the penalty and bounds moves models below ECI 100 down by 10.5 points (from 27 under the Bayesian fit) and models between 100 and 125 down by 3.6 points (from 8.8). The rest of the change comes from the new model itself. We could have kept a penalty to prevent this change, but we did not think it was a justified feature of the original frequentist model: it pulls a model toward the average simply because it has few scores. It also doesn’t affect anything the ECI is typically used for, since these models sit well below the frontier.

Scatter plot of each model's ECI under the new method against the previous method, for all 252 models, colored by how many benchmarks each model is scored on. Strong models sit on the diagonal, while many weak models with few benchmarks fall well below it, by up to about 40 points.

The table below compares the two groups.

Previous ECIModelsMean changeMean absolute changeLargest changeChange in average 90% interval width
125 and above176-0.10.9-4.1-13%
Below 12576-13.713.7-39.2+33%

Figures 9 and 10 show each model’s ECI and 90% interval under both fits, for the 20 highest-ranked models and the 20 weakest. All 20 top models lie within their previous intervals; 18 move up slightly, by 0.7 points on average, and all 20 get narrower intervals. The 20 weakest models (by previous ECI) all move down, by 27 points on average, and all 20 get wider intervals.

Dot-and-whisker chart of the ECI and 90% interval for the 20 highest-ranked models, under the previous (blue) and new (teal) methods. Every new estimate falls inside the model's previous interval, and all 20 intervals are narrower under the new method.
Dot-and-whisker chart of the ECI and 90% interval for the 20 lowest-ranked models, under the previous (blue) and new (teal) methods. All 20 get a lower ECI under the new method, by 27 points on average, and a wider interval.

We refit the frontier trend with the same criteria as our prior work analyzing trends in the ECI6, using the Bayesian model. We fit separate trends for reasoning and non-reasoning models, ending the non-reasoning trend at GPT-4.5.

Figure 11 shows each era’s trend under the frequentist and Bayesian fits, and the table below gives both eras’ trends.

Two scatter plots of ECI against release date, under the previous method (left) and the new method (right), with trend lines for frontier models before and since reasoning models. The trends barely change: under the new method, 8.0 ECI points per year before reasoning models and 16.6 since, against 6.2 and 15.7 under the previous method.
EraFrequentist ECI/year (90% intervals)Bayesian ECI/year (90% intervals)
Pre-reasoning (GPT-4 to GPT-4.5)6.2 (2.8–7.8)8.0 (5.4–9.7)
Reasoning (from o1-mini)15.7 (13.8–19.2)16.6 (14.6–18.7)

Both trends get about one to two ECI points per year steeper, which is small compared to their uncertainty. This is likely due mainly to a change of scale: the Bayesian fit places the two anchor models, Claude 3.5 Sonnet and GPT-5, closer together in capability compared to the frequentist fit. Because both fits fix the gap between these two anchors at 20 ECI points, the Bayesian scale stretches relative to the frequentist one. For example, GPT-4 and Claude Opus 5.5 have a 46.9-point ECI gap in the Bayesian fit, compared with 43.0 in the frequentist fit.

Within each era, earlier frontier models move down slightly and later ones up: GPT-4 drops 4.0 points while GPT-4.5 drops 0.2, and the first half of the reasoning-era frontier moves by −0.1 on average against +0.5 for the second half. The two fits also pick slightly different frontier models because each draws from its own estimates. Each frontier model’s new ECI lies within its previous 90% interval (Figure 12).

Dot-and-whisker chart of the ECI and 90% interval for the 26 models that were state of the art when released, under the previous (blue) and new (teal) methods. Every new estimate falls inside the model's previous interval, so past conclusions about the frontier still hold.

Similar accuracy, better calibrated out of sample

The main reason for moving to a Bayesian model was to get better-justified uncertainty estimates. In this section, we assess both the accuracy of the predicted scores and the calibration of their uncertainty, comparing the previous frequentist approach with the new Bayesian one.

Accuracy measures how far predicted scores are from the observed scores, using RMSE and mean absolute error (MAE). Calibration measures whether the uncertainty is right. For each observed score, the fit gives a range that should contain it 90% of the time. If the fit is well calibrated, about 90% of observed scores fall inside their range; much more means the ranges are too wide, and much less means they are too narrow. The frequentist fit gives only a single predicted score, with no range, so to compare we treat each prediction as a normal distribution with the same spread (SD 0.076) for every score, as described in the section on the beta likelihood. We check calibration for all scores, and separately for scores near 0 and 1, where a single noise level for every score fits worst. In-sample results check each score against a fit that included it; leave-one-out results check it against a fit that didn’t, which tests how well each fit predicts scores it has not seen.

Frequentist in-sampleFrequentist leave-one-outBayesian in-sampleBayesian leave-one-out
RMSE (lower is better)0.0760.0940.0790.092
MAE (lower is better)0.0570.0680.0580.067
Beta-scaled RMSE70.0970.1170.0930.108
90% coverage, all scores (90% target)90.5%84.2%94.4%89.6%
90% coverage, scores ≤ 5% (90% target)95.0%92.5%87.5%80.5%
90% coverage, scores ≥ 95% (90% target)98.2%98.2%94.7%93.0%

In-sample, the frequentist fit has a slightly lower error; however, out of sample, the Bayesian model is slightly better. The Bayesian intervals contain 89.6% of out-of-sample scores, against 84.2% for the frequentist fit. Near 0 and 1, the frequentist intervals contain almost every score because they extend below 0 and above 1 into impossible values, as discussed in the section on the beta likelihood. The Bayesian intervals stay within the possible range and contain 80.5% of scores near 0 out of sample.

How likely one model is to be more capable than another

The Bayesian fit gives a probability distribution for each model’s ECI. Figure 13 shows these distributions for the 20 highest-ranked models. Wider distributions mean more uncertainty. These distributions are still fairly wide and often overlap: GPT-6 Astra’s 90% interval runs from 166.2 to 172.7, and Claude Opus 5.5’s from 165.8 to 172.0 (Figure 14).

Stacked distribution curves showing the range of likely ECI values for each of the 20 highest-ranked models under the new method, from GPT-6 Astra at the top. Neighboring models' distributions overlap heavily.

We are often much more certain about the gap between two nearby models than their separate intervals suggest. Much of each model’s uncertainty is shared across models, as it comes from uncertainty in the gap between the two anchor models, Claude 3.5 Sonnet and GPT-5. Because that gap is fixed to be exactly 20 ECI points, a draw in which the anchors sit closer together on the raw scale stretches the whole scale, and models near each other move together, so the gap between them is less uncertain than either model’s ECI. The 90% interval for the gap between GPT-6 Astra and Claude Opus 5.5 runs from −0.9 to +2.1, half the width of either model’s own interval.

Because we estimate each model’s capability together, we can now compare models directly. Figure 15 shows the five models closest behind GPT-6 Astra, which has a 72% probability of being more capable than Claude Opus 5.5, but a 99% probability of being more capable than Claude Fable 5.1. Figure 16 shows the full probability distribution of these two gaps. We hope to present more results like this alongside the ECI in the future.

Dot-and-whisker chart of the ECI and 90% interval for GPT-6 Astra, Claude Opus 5.5 and Claude Fable 5.1, under the previous (blue) and new (teal) methods. The new intervals are narrower but still overlap, although the gap between the models is more certain than the overlap suggests.
Dot-and-whisker chart of the ECI gap between GPT-6 Astra and each of the five next-highest models under the new method, with 90% intervals and the chance that GPT-6 Astra is ahead. GPT-6 Astra is ahead of Claude Fable 5.1, Claude Sonnet 5.5 and Gemini 4 Argon with over 99% probability, but only 54% against GPT-6.1 Sol and 72% against Claude Opus 5.5.
Two distribution curves of the ECI gap between GPT-6 Astra and Claude Opus 5.5 (top) and Claude Fable 5.1 (bottom), with the area above zero shaded. 72% of the first distribution lies above zero against 99% of the second, so GPT-6 Astra is very likely ahead of Claude Fable 5.1 but only somewhat likely ahead of Claude Opus 5.5.

Conclusion: better uncertainty, similar frontier ECIs

We have updated the ECI modeling to use a Bayesian model. The index itself works the same way: each model has a single capability score, each benchmark has a difficulty and a slope, and the scale is anchored to Claude 3.5 Sonnet at 130 and GPT-5 at 150. What has changed is how we fit it and how we calculate uncertainty.

Three major takeaways from the update are:

  • Uncertainty estimates are better justified. They come from a single model that uses all the data at once, rather than resampling the handful of scores each model has. They are narrower than before for models near and above the anchors, and wider for models with few benchmark scores.
  • Models can be compared directly. We estimate all capabilities together, so we can say how likely one model is to be more capable than another, and by how much.
  • ECI values and trends hold. For models at ECI 125 and above, which include every frontier model, ECIs move by about one point on average and always stay inside their previous intervals. The frontier trend is one to two ECI points per year steeper, which is a small shift compared to previous uncertainty estimates. The biggest changes are among older, very weak models that were never close to the frontier, which now sit lower.

The Bayesian model is a strong base for further extensions to the ECI and new uses of its results, which we look forward to sharing. The new ECI, data, and code are available on our website.

Appendices

Notes
  1. See Appendix B for more detail. Return

  2. No-U-Turn Sampler (NUTS) on PyMC. Further sampler settings and diagnostics are in Appendix B. Return

  3. Confidence intervals used in frequentist modeling are replaced with credible intervals in Bayesian modeling, and can be computed as the highest density interval (HDI) or as equal-tailed intervals (ETI). We use the latter. Return

  4. We also tested likelihoods that place probability mass exactly at 0 and 1 (called atoms) to predict exact zeros. See A1.4 in Appendix A for details. Return

  5. Scale parameters were also restricted to [0.1, 10] and capability and difficulty to [−10, 10], but this didn’t impact the model fit. Return

  6. We follow the published classification, and additionally treat DeepSeek-R1’s distilled models (released alongside it in January 2025) as reasoning models. Return

  7. Squared errors divided by 4y(1−y), where y is each fit’s own predicted score, so misses near 0 and 1 count for more, as in the beta likelihood. Return

  8. From October 14, 2026 data, this number can vary as new data is added. Return

  9. In-sample metrics may look better than leave-one-out ones, so we give both. Frequentist leave-one-out values come from refitting the model once per score; Bayesian ones use PSIS-LOO, which approximates those refits by reweighting the draws from the single full fit (see the calibration check below). Least squares has no predictive distribution, so it has no CRPS or ELPD. Return

  10. The average distance between the predicted distribution and the observed score, in score units; it reduces to the absolute error when the prediction is a single number. Return

  11. How much probability the model gives each score when that score is left out of the fit. It is approximated with Pareto-smoothed importance sampling rather than 2,810 refits. Only differences between models fitted to the same data are comparable. Return

  12. See section 6.3. Return