The tension and its cuts
The Hubble constant's most argued-over number rests on a single linear system: 3,492 measurements, 47 unknowns, and a covariance matrix that the SH0ES team published in full. This page solves that system in your browser and gets 73.0428. Then it lets you cut it. Nothing you can cut brings the disagreement with Planck below two sigma, and everything that lowers it does so by making the measurement worse.
Riess et al. 2022, ApJL 934 L7, CC BY 4.0. The matrices are theirs; the arithmetic happens here.
One solve before interpretation.
y = Lq + noise, with cov(noise) = C, is solved by generalised least squares. The release has 3,492 rows, 47 parameters, and a covariance matrix C that is exactly symmetric.
The page ships those sufficient statistics, regenerated from the authors' FITS files by research/the-tension-and-its-cuts/prepare.mjs. The isolated dummy parameter is removed, leaving the 46×46 system solved here. The offline verifier recomputes every shipped number from the raw matrices.
| Quantity | Computed here | Riess et al. 2022 Table 5, fit 1 | Rounding |
|---|---|---|---|
| Loading and solving… | |||
Tension with Planck
(H0 − 67.4) / sqrt(sigma² + 0.5²), against Planck 2018 base flat ΛCDM, 67.4 ± 0.5 km/s/Mpc. The paper's abstract reports 5 sigma.
Remove a rung, not an approximation.
These three constraints occupy rows whose covariance with every other row in C is exactly zero, not merely small. Removing one is therefore a rank-1 downdate of A and b. A full re-solve of each reduced system agrees to 1e-11.
| Keep | This page | Table 5 |
|---|
The honest split: every uncertainty matches the published one to 0.005 or better; every central value comes out low, by up to 0.254. The reason is established in section 5 and is not a disagreement about the algebra.
No choice of anchors takes the tension below 3.1 sigma.
Make three choices at once.
The sample controls select one of 40 released-data systems. They compose with the anchor controls above, and every change triggers a fresh solve.
Only one anchor is still doing anything: at [O/H]>0.0 the cut removes every Cepheid in NGC 4258, the LMC and the SMC, so those two anchors have no stars left to calibrate and switching them on or off changes the answer by nothing at all. The zero point now rests entirely on the Milky Way parallax constraints. Switch those off and H0 is not identified by the remaining data, which is where all 40 undetermined combinations in the surface below come from.
Every cut has a cost.
Each point is one identified combination: uncertainty on the horizontal axis, H0 on the vertical, and colour from lower tension in blue to higher tension in red. The outlined point is the baseline; the horizontal band is Planck 67.4 ± 0.5.
You can lower the tension by cutting this data, but only by making the measurement worse.
The missing rows set a boundary.
Table 5's N column is degrees of freedom: fit 1 gives 3445, exactly 3492 − 47.
Fit 9, “none” (no sigma clipping), gives N = 3481. With the same 47 parameters that needs 3,528 rows and hence 3,166 Cepheids. The release contains 3,130. The release is therefore the baseline sample after clipping, with 36 stars already removed.
Fit 26, “Only use P < 60 d”, gives N = 3699, implying 3,384 Cepheids—more than the entire released sample by 254. A subset cannot be larger than the set.
The paper's sample-cut variants are computed from data the public release does not contain, so no cut applied to these matrices reproduces them. Measured here, P > 10 d gives 72.473 ± 1.046, while Table 5 fit 25 reports 73.15 ± 1.11.
“The errors and their covariance applies to the reddening-free magnitudes provided but may not be accurate for reformulations of these magnitudes or sub selections of the dataset with criteria not used to characterize the uncertainties (e.g., through artificial star tests).”
This is a boundary, not an accusation. The anchor arm of this page is unaffected: those rows are external constraints, not Cepheids, and removing them removes no star from the clipped sample. That is why section 2 reproduces the published uncertainties exactly and section 3 does not.
The browser gets the last word.
Live in your browser
The 46×46 solve, the anchor downdates, and every number in sections 1–3.
Precomputed offline and shipped
The 40 sufficient-statistic pairs. Forming LTC−1L requires the 3,492×3,492 covariance matrix, which is 48 MB. verify.mjs recomputes every shipped cell from the raw FITS and fails if any disagrees by more than 1e-4, so the payload cannot go stale unnoticed.