the trust gate, in full
Every number the refusal rests on
The audit arc on the index tells the story of the trust gate in prose. This page is the gate itself: the pre-registered rule, both scale tables it was evaluated against, the equal-GPU-cost arithmetic, the physical tail collapse, and the refusal statement in its own words. Nothing below is retyped; every cell carries a data-source attribute with the JSON pointer it came from, into the same trust_gate.json that feeds the index.
Every number below describes cBottle's own unguided or guided+odds-ratio density, not reality (see each section's own 'estimand' string, copied verbatim from its source file); the external ERA5 comparison lives in the pricing legs (results/phase35_pricing_tc.json, results/phase35_pricing_heat.json), not here.
The rule, pre-registered
pre-registered: true if EVERY probed scale has khat > max(good_k(n), 0.7) OR dominance > 0.5; false if EVERY probed scale has khat < 0.7 AND dominance < 0.5 AND ESS/n > 0.5; anything mixed -> 'insufficient' with a note that n=16 bounds what can be said.
good_k(n) = min(1 - 1/log10(n), 0.7); at n=16 per scale, good_k(16) ~ 0.17 -- but the pre-registered generalises_gate2 rule below floors this at the flat 0.7 gate (max(good_k(n), 0.7) == 0.7 whenever good_k(n) <= 0.7, which is always, since good_k caps at 0.7 by construction), so 0.17 is reported per-scale for context only, never used as gate's own threshold.
The rule fired yes:n=16 per scale bounds what can be said; 2 of 2 pre-registered scales had data and voted.
This is the pre-registered rule that decides whether Phase-2's TC finding (guided+odds-ratio importance-sampling weights are too degenerate to trust) generalises to a second peril. It fired true on the heatwave probe (see heatwave_measurements below), the closest-to-favourable case (guidance target == scored event), and -- applied post-hoc, see applied_to_tc -- also verifies true on the TC ladder it was generalising from. Both perils probed in this project trip the gate, so no price in this project is ever quoted off a guided/odds-ratio estimate -- see refusal.
Pre-registered: the heatwave probe
This is the scale table the rule above was written down for, before either probe ran, on the closest-to-favourable case the project could build: the guidance functional targets the same quantity the event is scored on, so the guidance target is the estimand. k̂ is stillinfinite at both probed scales.
the guidance functional targets the box areal-mean t2m directly (beta=5.0 softplus enrichment on exactly the primary event's quantity, area_p99) -- guidance target == estimand for the primary event. This is the a2-closure this probe exists for: does Gate-2's weight degeneracy (Phase 2, TC wind box-max, where guidance only correlated with the scored event) survive when guidance IS the event functional.
| Scale | n | k̂ (weights) | gate = good_k(n) | passes? | ESS | ESS / n | Dominance | Degenerate? |
|---|---|---|---|---|---|---|---|---|
| 1200 | 16 | +inf | 0.170 | no | 6.29 | 39.3% | 27.7% | no |
| 3700 | 16 | +inf | 0.170 | no | 1.00 | 6.3% | 100.0% | yes |
good_k(n) = min(1 - 1/log10(n), 0.7); at n=16 per scale, good_k(16) ~ 0.17 -- but the pre-registered generalises_gate2 rule below floors this at the flat 0.7 gate (max(good_k(n), 0.7) == 0.7 whenever good_k(n) <= 0.7, which is always, since good_k caps at 0.7 by construction), so 0.17 is reported per-scale for context only, never used as gate's own threshold.
n=16 per scale bounds what can be said; 2 of 2 pre-registered scales had data and voted.
verdict strength differs by scale: scale_3700 votes true on two independent diagnostics (khat_weights=+inf AND dominance=0.9999>0.5); scale_1200 votes true on khat_weights=+inf alone (its own dominance=0.277<0.5 and ESS/n=0.393<0.5 do not independently trigger the true branch). khat_weights=+inf itself rests on a 3-point GPD tail fit (arviz's psislw fits M=min(n/5, 3*sqrt(n))=3 tail draws at n=16) -- a real, if extreme, PSIS diagnostic, not missing data, but drawn from very few points. If khat_weights were instead treated as unavailable at scale_1200, that scale would satisfy neither the true- nor the false-branch (dominance<0.5 but ESS/n<0.5), making the overall verdict 'insufficient' rather than True. The pre-registered rule is applied verbatim to the actual computed values (True) -- this note records evidence strength, not a rule change.
Applied post-hoc: the tropical-cyclone ladder
This rule was pre-registered and computed by Phase 3 for the heatwave probe only (the 'fired' field above). Applied here post-hoc to the Phase-2 TC ladder, using only already-sourced tc_measurements.scale_table values (khat_weights, khat_gate=good_k(n), dominance), every TC scale independently satisfies the true-branch's khat_weights > max(good_k(n), 0.7) clause alone -- by a wide margin at every scale, see per_scale above. The dominance > 0.5 clause also clears at every scale, though only narrowly at the two weakest-guidance scales (dominance 0.510, 0.504); the khat clause is what actually carries the verdict. That is what makes the 'both perils trip the gate' claim below a computed result, not an assertion.
| Guidance scale | k̂ (weights) | Dominance | good_k(n), context only | True branch | False branch |
|---|---|---|---|---|---|
| 128 | 0.964 | 51.0% | 0.376 | yes | no |
| 320 | 1.229 | 50.4% | 0.376 | yes | no |
| 640 | 3.444 | 72.6% | 0.376 | yes | no |
| 1280 | 5.823 | 97.0% | 0.376 | yes | no |
Phase 2's own separate, single-clause gate (k̂ > good_k(n), no dominance term) is corroborating context, not the criterion the table above evaluates, and it independently fails at every scale too:
| Scale | n | k̂ (weights) | gate = good_k(n) | passes? | ESS | ESS / n | Dominance | Degenerate? |
|---|---|---|---|---|---|---|---|---|
| 128 | 40 | 0.964 | 0.376 | no | 3.36 | 8.4% | 51.0% | yes |
| 320 | 40 | 1.229 | 0.376 | no | 2.63 | 6.6% | 50.4% | yes |
| 640 | 40 | 3.444 | 0.376 | no | 1.06 | 2.6% | 72.6% | yes |
| 1280 | 40 | 5.823 | 0.376 | no | 1.00 | 2.5% | 97.0% | yes |
min(1 - 1/log10(n), 0.7); ~0.54 at n=150, not the flat 0.7
At the strong rungs (scale_640, scale_1280), the p99 event has enough in-event draws to be nominally estimable, yet the restricted PSIS k-hat is +inf -- an even stronger degeneracy signal than the raw-weight k-hat in scale_table above. Nominal computability does not mean trustworthy.
Two further values were coerced the same way, both from that strong-rung eq16 check:tc_measurements.eq16_strong_rung_failures[0].khat_restricted: inf -> None;tc_measurements.eq16_strong_rung_failures[1].khat_restricted: inf -> None.
The arithmetic at equal GPU cost
a full-OR heatwave draw costs 1100 s/sample -- MEASURED, job 26548566 (sacct: 32/32 full-OR samples, 0 rejects, 9.8 GPU-h total = 1102.5 s/sample, rounded to 1100 and applied flat across both scales, since the sacct total does not break the cost out per scale). This value is the seconds_guided fed to equal_cost_n for every scale below, replacing the earlier provisional forward-only x6 multiplier. For context only (not used in any cost computation here): WP-D's forward-only production fan-out measured 115.6 s/sample (job 26548553, 162/162 samples, both scales pooled, 5.2 GPU-h total) -- so the backward pass + backward-no-guidance phase + 3 Hutchinson probes atop one forward pass cost the OR probe roughly a further 9.5x on top of a forward-only draw, not the provisional ~6x guessed pre-measurement. Every event's monte_carlo_equal_cost block follows Phase 2's mc_estimate n_projected convention (tailtwist.weights.estimators.equal_cost_n, seconds_unguided=7.17 default, the Phase-1 WP1 measured base-model cost, left at its default here -- never overridden) -- the project's costing rule: compare standard errors at equal GPU cost, never at equal N.
2454
unguided-equivalent draws bought per scale, 16 full odds-ratio draws each
4909
unguided-equivalent draws bought combined, all 32 guided draws across both scales, against the 5001 below
5001
unguided draws already free in the production store: the comparator the 4909 falls short of
1100 s
measured cost of one full odds-ratio heatwave draw
Per scale: 16 full-odds-ratio draws at ONE probed scale buy 2454 unguided-equivalent draws (n_equal_cost, phase3_weights_audit.json's own field, identical at scale_1200 and scale_3700 since both share seconds_guided_assumed). Combined across BOTH probed scales: 32 draws (16+16) buy 4909 unguided-equivalent draws -- computed via the same equal_cost_n estimator with n_guided=32, not the per-scale figure doubled by hand -- against the 5001 unguided JJA draws already free in the production store. 4909 is still LESS than 5001, so paying for guidance at this cost ratio does not match what is already in hand for free, but the margin is only 1.8%, not the roughly 2x margin the per-scale figure alone (paired with the 32-draw total) would wrongly suggest.
What guidance does to the fitted tail (xi collapse)
This ladder is the FORWARD-ONLY production audit (n=81 draws/scale at scale_1200 and scale_3700, guided sampler pass only, no backward phases, no odds ratio -- each rung's own 'label' field records its exploratory n verbatim), NOT the full-odds-ratio probe in heatwave_measurements above (n=16/scale, forward + backward + backward-no-guidance passes). Per phase3_physics_audit_heat.json's own or_probe_note, these are two different sampling paths even before weighting is considered -- do not read the two tables as one ensemble at two different n.
| Stage | n (exploratory) | ξ (GPD shape) | σ (GPD scale) | Threshold | Exceedance rate | n exceedances | Pooled n |
|---|---|---|---|---|---|---|---|
| unguided | n/a | −0.265 | 2.32 | 300.9 | 6.6% | 95 990 | 1 445 289 |
| scale_1200 | 81 | −0.661 | 7.92 | 300.9 | 52.1% | 12 195 | 23 409 |
| scale_3700 | 81 | −2.005 | 37.53 | 300.9 | 93.5% | 21 876 | 23 409 |
As guided draws move from unguided through scale_1200 to scale_3700, the box-pooled GPD shape parameter falls steeply more negative (-0.265 -> -0.661 -> -2.005) while the SAME shared threshold's exceedance rate rises from 0.066 to 0.521 to 0.935: at scale_3700, 93% of the pooled values exceed the threshold, so that rung's 'fit' is not a tail fit at all -- it is fitting the GPD to the bulk of the distribution. A real physical intensification of heat extremes would not produce a shorter, more strictly bounded tail; read this ladder as an artefact of extreme guidance pressure swamping the pooled box (see or_probe_note above and scale_3700's own reading_note in phase3_physics_audit_heat.json), not a physical finding.
The refusal
No estimator standard error exists to propagate into price uncertainty. The pre-registered trust gate (gate.rule, generalises_gate2) was computed by Phase 3 for the heatwave probe and fired True there (k-hat = +inf at both probed scales, khat_is_inf_both_scales=True). Applied POST-HOC to the Phase-2 TC ladder (gate.applied_to_tc -- the SAME two-clause rule, not Phase-2's own separate single-clause khat_passes_gate criterion), it also fires True: every TC scale independently clears the true-branch's khat_weights > max(good_k(n), 0.7) clause (raw-weight k-hat 0.96-5.82 across all four probed scales). Phase-2's OWN separate, single-clause gate (khat > good_k(n), no dominance term, threshold 0.376 at n=40) independently also fails at every TC scale -- corroborating context, not the criterion generalises_gate2 above evaluates. No guided+odds-ratio importance-sampling estimate in this project therefore carries a trustworthy SE, on either criterion. Every price quoted in results/phase35_pricing_tc.json and results/phase35_pricing_heat.json is computed off the UNGUIDED draws only -- never off a guided/odds-ratio-reweighted estimate; both files' own 'estimand' strings say so (pricing_leg_sources below, copied verbatim, both containing the word 'unguided').
yes
gate fired, heatwave probe, pre-registered
yes
gate fired, TC ladder, applied post-hoc
cBottle's own unguided density, not reality. Every premium below is the price you would quote off each tail *fit* (model or ERA5), not a real-world premium; the external ERA5 comparison is what turns the model-relative gap into a decision-relevant mispricing number.
cBottle's own unguided JJA density, not reality. Every payout below is what you would pay off each side's own CDD *distribution* (model draws or ERA5 steps), not a real-world settlement value; the external ERA5 comparison is what turns the model-relative gap into a decision-relevant mispricing number.
cBottle's own unguided density, not reality. All comparisons are model-vs-reanalysis climatology on a climatological axis only (never date-matched).
Every price on the index is computed off the unguided draws only. The audit that shows why is the audit arc; this page is the ledger it was checked against.