cert-machine · the registry · every fit re-certified at this build

The return-level table as a certificate.

An offshore structure is designed to a wave height with a return period — the 50-year Hs, the 100-year Hs — and that number comes out of a chain: block the record, fit a distribution to the block maxima, pick the distribution by a goodness-of-fit statistic, invert its tail. Reis, Guimarães, Farina, Paul, de Paula and Ribeiro (Ocean Engineering, 2026) ran that chain over a reanalysis grid with six families and four criteria and found that the Anderson–Darling statistic selects best, that the exponentiated Weibull wins at high frequency and the Weibull as blocks grow, and that the block size moves the answer. This page runs the same chain on 3 NDBC buoys with 175,320 hours each, and certifies every link: each fit is proved to be the unique maximum-likelihood point in a box, the statistic and the return levels are enclosures over that box, and the choice of family is DECIDED or REFUSED.

tl;dr
  • The finding. 58 of 60 fits certified — five families × four block sizes × three buoys — with the parameter box never wider than 1.0e-6; 2 refused, all of them the three-parameter exponentiated Weibull on 22-odd annual maxima, where its likelihood has no finite maximum. 12 of 12 family choices DECIDED by Anderson–Darling with no overlap of enclosures. The paper's first finding holds on two buoys of three: on the hourly series the exponentiated Weibull is the decided best on A and C (A² 15.2 and 110 against 161 and 252 for the lognormal), and on B the lognormal beats it, 77.9 to 90.1 — decided, not close. Its second does not: the Weibull is never the decided best at any block size on any buoy; as the blocks grow it is the lognormal that wins — every annual series, 7 of the 12 choices in all, against 5 for the exponentiated Weibull. Its third holds with a number under it: for the family the statistic prefers, the certified 100-year Hs at buoy A runs from 10.38 m to 15.20 m depending only on the block size — a factor of 1.46 from the same twenty years of the same buoy. The Weibull's 100-year level on the hourly series, 5.26 m at buoy A, is below the largest hour the buoy has already recorded, 11.80 m.
  • The mechanism. A maximum-likelihood estimate is a zero of the score equations. A float Newton iteration (a Nelder–Mead start for the three-parameter family) finds a candidate; the Krawczyk operator then evaluates the score and its Jacobian in outward-rounded interval arithmetic over a box around the candidate — every one of the 175,320 hourly literals enclosed by its neighbouring doubles, exp and log from the certified transcendental module — and a box the operator maps strictly inside itself contains exactly one zero. That box is the certificate. Anderson–Darling's A² needs the fitted CDF at every sorted data point: each is an enclosure over the box, the normal CDF by a Taylor series with a proved tail for |z| ≤ 2√2 and Laplace's continued fraction beyond; the sum is an enclosure. A return level is the quantile at 1 − b/(T·8766) for a block of b hours, an enclosure over the box (Φ⁻¹ by bisection that tightens only on a certain sign). Two families are ranked only when one A² enclosure lies wholly below the other. The five families are written once over an abstract arithmetic and run in floats and in intervals from the same lines.
  • Check it. node instruments/hseva/battery.js — 107 checks, 4 red controls that must fire (Φ(1) is not 0.85; overlapping enclosures refuse a ranking; a constant sample has no Weibull fit; the block keys are the calendar), the derivatives of every family checked against finite differences, and the daily, monthly and annual blocks re-certified live. node tools/run-hseva-ledger.js rebuilds the whole ledger, hourly series included, in about 2 minutes.
fits certified
58 of 60
each the unique zero of its score in a box narrower than 1.0e-6; the 2 refused are the exponentiated Weibull on annual maxima
family choices decided
12 of 12
by Anderson–Darling, enclosures separated; none refused
hourly series
exp. Weibull 2 / 3
the paper's "best for high-frequency data": decided for it on A and C, against it on B (the lognormal, 78 to 90)
Weibull, decided best
0 of 12
the paper's "more appropriate as the block size increases" does not hold here: the lognormal wins the annual maxima 3 / 3
100-year Hs, buoy A
10.4–15.2 m
for the preferred family, by block size alone; the largest hour observed is 11.80 m
hours per buoy
175,320
3 NDBC buoys of the contour benchmark, provided and retained years together; 22, 22, 23 calendar years
§1 · the certificate

What "fitted" means here

familyparameterscandidatebox half-widthKrawczyk rounds / Newton steps
exponentiallambda1.347738.324e-131 / 0772.997391…772.997391
normalmu, sigma1.34773, 0.888652.772e-131 / 0369.707577…370.060908
lognormalmu, sigma0.13797, 0.547291.646e-131 / 016.819369…16.819369
Weibullk, lambda1.68663, 1.522927.436e-131 / 4176.766405…176.766407
exp. Weibullalpha, k, lambda104.75804, 0.42394, 0.024692.229e-71 / 21.138614…1.139171

Buoy A, daily maxima, 7,405 points. A fitted distribution is usually a number an optimiser stopped at; here it is a box the Krawczyk operator has proved to contain exactly one stationary point of the likelihood, with the score and its Jacobian evaluated over the whole box in interval arithmetic that rounds outward at every operation. The box is what every later number is computed over, so a return level or a statistic printed to four decimals is an enclosure whose width is stated, not a float's last digits. The exponentiated Weibull's box is the widest — three parameters, one of them a shape that trades against the other two — and it is still 2.229e-7. On the annual maxima its likelihood keeps rising as the shape α runs to infinity and the scale to zero (22 points cannot pin three parameters), so there is no maximum to certify and the ledger says REFUSED rather than printing the optimiser's last iterate.

§2 · the statistic

Anderson–Darling, enclosed, and the family it picks

0.1 1 10 100 1,000 10,000 100,000 hourly · exponential 16,356 hourly · normal 8,416 hourly · lognormal 161 hourly · Weibull 3,496 hourly · exp. Weibull 15 daily maxima · exponential 773 daily maxima · normal 370 daily maxima · lognormal 17 daily maxima · Weibull 177 daily maxima · exp. Weibull 1.14 monthly maxima · exponential 36 monthly maxima · normal 4.54 monthly maxima · lognormal 0.69 monthly maxima · Weibull 2.51 monthly maxima · exp. Weibull 0.72 annual maxima · exponential 6.58 annual maxima · normal 1.46 annual maxima · lognormal 0.77 annual maxima · Weibull 1.77 Anderson–Darling A² (upper end of the enclosure), log scale — bars grow from 0.1 the family the statistic prefers at that block size (DECIDED) the other certified families
Buoy A: the upper end of the Anderson–Darling enclosure for every certified family at every block size, on a log axis. Lower is better; the family the statistic prefers at each block size is marked. Hover for the enclosure and the parameters.
buoy · blocknexponentialnormallognormalWeibullexp. Weibullverdict
A · hourly175,32016,3568,4161613,49615.17DECIDED: exp. Weibull
A · daily maxima7,40577337016.821771.14DECIDED: exp. Weibull
A · monthly maxima25035.784.540.692.510.72DECIDED: lognormal
A · annual maxima226.581.460.771.77REFUSEDDECIDED: lognormal
B · hourly175,32019,9984,33477.861,82290.07DECIDED: lognormal
B · daily maxima7,4099641764.3689.664.79DECIDED: lognormal
B · monthly maxima25246.616.041.345.701.43DECIDED: lognormal
B · annual maxima224.720.860.540.780.57DECIDED: lognormal
C · hourly175,32012,2964,405252862110DECIDED: exp. Weibull
C · daily maxima7,43757016313.1332.325.64DECIDED: exp. Weibull
C · monthly maxima25642.351.932.502.041.07DECIDED: exp. Weibull
C · annual maxima236.001.881.081.84REFUSEDDECIDED: lognormal

A² weights the tails, which is why the paper prefers it, and on hourly data it is enormous for any family that mis-shapes the tail: the exponential's 16,356 and the normal's 8,416 on buoy A are not close calls. The exponentiated Weibull's 15.2 is an order of magnitude below the lognormal's 161 on A, and it wins C by 110 to 252; on B the order reverses, lognormal 77.9 against 90.1 — so the paper's "best for high-frequency data" is decided for the exponentiated Weibull twice and against it once, and the daily maxima repeat the same split. As the blocks grow the picture changes, but never to the Weibull: on the monthly maxima the lognormal wins A and B and the exponentiated Weibull wins C; on the annual maxima the lognormal wins all three, with the Weibull second or third. Every one of the twelve choices is DECIDED — no two enclosures overlap — which is a statement about these data and these five families, not about the generalized gamma the paper also fits and this machine cannot yet certify (it needs the digamma function).

§3 · the return levels

The 100-year wave, by family and by block

4 m 6 m 8 m 10 m 12 m 14 m 16 m hourly daily maxima monthly maxima annual maxima the block the maxima are taken over (buoy A) 100-year significant wave height, m the largest hour observed in 20 years: 11.80 m lognormal Weibull exponentiated Weibull diamond: the family the statistic prefers at that block size
Buoy A: the certified 100-year significant wave height for the lognormal, the Weibull and the exponentiated Weibull at each block size; the diamond is the family the statistic prefers there. The dashed line is the largest hour in the twenty years.
buoy · blockexponential, 100-yr mnormal, 100-yr mlognormal, 100-yr mWeibull, 100-yr mexp. Weibull, 100-yr mlargest hour, m
A · hourly12.883.9812.175.2615.20 ◆11.7976
A · daily maxima14.164.9310.446.1415.05 ◆11.7976
A · monthly maxima24.498.5813.05 ◆9.3613.4211.7976
A · annual maxima29.9010.2210.38 ◆10.68REFUSED11.7976
B · hourly16.274.3212.21 ◆5.2411.909.7975
B · daily maxima15.744.689.41 ◆5.4510.249.7975
B · monthly maxima22.117.289.86 ◆7.9010.159.7975
B · annual maxima26.0210.1111.98 ◆10.2611.169.7975
C · hourly14.974.4719.165.9911.57 ◆11.2460
C · daily maxima15.085.0715.056.4010.31 ◆11.2460
C · monthly maxima22.957.6111.908.229.37 ◆11.2460
C · annual maxima26.319.9210.29 ◆10.36REFUSED11.2460

◆ marks the family Anderson–Darling prefers. The paper's third finding — that the temporal aggregation moves the return level — is here with a number under it: reading only the preferred family at each block size, the 100-year Hs at buoy A is 10.38 m from one block size and 15.20 m from another. The Weibull, fitted to the hourly series, puts the 100-year wave at 5.26 m on buoy A — 6.5 m below the largest hour already in the record — because its tail is too light for hourly Hs, which is exactly what its A² of 3,496 says. Each return level is the quantile at 1 − b/(T·8766) for a block of b hours, an interval extension over the certified box; the enclosures are 10⁻⁷ m wide or narrower and are printed at their upper end. The width is the arithmetic's; the sampling uncertainty of a 100-year level from twenty years is statistical and is not in it — a certified fit is a certified point estimate, and the page says so.

§4 · the paper

Three findings, read against three buoys

"The Exponentiated Weibull distribution performs best for high-frequency data." Decided for it on buoys A and C and against it on buoy B, where the lognormal's A² is the lower by a decided margin on both the hourly series and the daily maxima; two buoys of three, then, with no overlap of enclosures in any of the six choices. "The traditional Weibull becomes more appropriate as the block size increases." Not on these buoys: the Weibull is the decided best at none of the twelve buoy-and-block combinations, and on the annual maxima — the largest blocks — the lognormal is preferred three times out of three, with the Weibull's A² 2.3, 1.5, 1.7 times the lognormal's. The paper's statement is about its grid and its six families, one of which (the generalized gamma) is not fitted here; this page decides the same statement on three buoys with five families, and it is false there. "Both the choice of goodness-of-fit test and the temporal aggregation significantly influence the selected distribution and the resulting return-level estimates." The second half is decided above with the factor stated; the first half is not tested, since only Anderson–Darling is enclosed here. The corrigendum of 15 July 2026 corrects an affiliation and no number.

what this page does NOT claim

Nothing about the paper's grid is decided — its data are not held. What is certified is the arithmetic of the method on three public buoys: that each fit is the unique maximum-likelihood point in its box, that the statistic and the return levels are what the box implies, and that the family ranking follows from the enclosures. The certificate is of the point estimate given the data; the sampling width of a 100-year level from twenty years is a different, statistical quantity and is not enclosed here. Block maxima are the largest hourly literal in each calendar block; the hourly series is used whole as the paper's "high-frequency" case. Hours are treated as independent draws by every family, as they are in the paper. The buoys are the benchmark's A, B and C with their provided and retained years joined; the coastDat sets D–F (model output, not buoys) are not fitted. The exponentiated Weibull is refused on the annual maxima because no finite maximum exists, not because the optimiser failed. The data are NDBC's, pinned by the benchmark's commit and verified by digest at every run.