The whole measurement, handed over

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.

1. The system, solved before anything else

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.

A = LTC−1L   ·   b = LTC−1y   ·   q = A−1b

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.

QuantityComputed hereRiess et al. 2022 Table 5, fit 1Rounding
Loading and solving…

Tension with Planck

Loading payload…

(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.

2. The anchors, and why dropping one is exact

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.

Loading payload…
KeepThis pageTable 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.

3. The cuts

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.

Loading payload…
4. The surface

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.

Hubble constant by uncertainty for all identified cut and anchor combinationsA scatter plot with the Planck interval shown as a horizontal band and the uncut fit marked.

You can lower the tension by cutting this data, but only by making the measurement worse.

5. Where the audit stops

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.

6. What is live, what is precomputed

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.

7. Sources

The matrices and comparison point.

Riess et al. 2022, ApJL 934 L7DOI 10.3847/2041-8213/ac5c5b. Original content is used under CC BY 4.0; attribution is maintained to the authors, title, journal citation, and DOI.
AAS machine-readable Table 2 data packagesha256 6d4dce8267ac69f2f15c8568b716eef9c1b960e24b84f797a5e93b2ccaaea3d2
Planck 2018 results VIThe base flat ΛCDM comparison, H0 = 67.4 ± 0.5 km/s/Mpc.
Two Rulers Will Not AgreeThe companion compares published results across instruments; this page runs one published fit.