Forelore delivers a two-layer audit for every venue × date in the customer's event window. Layer 1 (wedding event-day floor): the pleasant-hours threshold such that, with 90% statistical confidence, at least 90% of historical event-days in the 7-day window held this value. (An "event-day" = any single day in your date's 7-day window, in one of the 25 past years — i.e. the same date window in a past year; the 7-day window × 25 years gives ~175 such days.) Equivalently: the floor is the value an event-day in this date window clears at least 90% of the time (about 9 in 10) — inferred at ~90% confidence from the 25-year sample. Layer 2 (6-of-7 audit floor): the pleasant-hours value that — in 24 of 25 historical years — was held by at least 6 of the 7 days in the window. Order statistic theory under the Weibull plotting position gives ~92% one-sided confidence, reported conservatively as ~90% (autocorrelation tested and negligible for this rain-driven metric — see §5). Both layers are computed from the same 25-year empirical data; they answer different questions.
1. The 7-day event window — why this resolution
Both Forelore audit layers compute statistics on the 7 calendar days centered on the customer's chosen date. This window is not chosen for convenience: it is the finest temporal resolution at which a 25-year climate signal can be reliably distinguished from sampling noise for a single venue.
1.1 Why not 1 day (the customer's actual event date)
Estimating a per-calendar-day floor from 25 single-day observations per year is statistically thin.
A single-day order statistic at k=2, n=25 has standard error of order
SE ≈ σ / √n on the order of 1.5–2.5 hours for typical pleasant-hours
distributions — large enough that adjacent calendar days produce noticeably different floors driven by
sampling variance, not by real climatology. This is consistent with bootstrap CI widths we observed
across 4 sample venues × 365 days (CI widths 5–9h on raw daily order statistics in tropical
regions; see Wilks 2011, §5.6; David and Nagaraja 2003, Ch. 3).
1.2 Why not 30 days (a calendar-month average)
A 30-day window typically spans multiple climatological regimes (e.g., dry-to-wet transition, pre- vs in-monsoon). Averaging across regimes obscures the actual operational window the customer is choosing. For a single wedding decision, a 30-day audit is no longer answering the customer's question («is my date safe?») and starts answering a different one («is this month typical?»).
1.3 Why 7 days specifically
A 7-day window is:
- Long enough to give 7×25 = 175 daily observations behind any single statistic — comfortably above the practical sampling-noise threshold (~150 observations) at which order statistic and tolerance interval CIs collapse to within the 0.5-hour discretization step used in the delivered audit.
- Short enough to stay within a single climatological regime at any latitude in our coverage (we have empirically verified intra-window homogeneity on test venues across tropical, Mediterranean, desert, and alpine climate zones).
- Operationally meaningful: a customer who is ±3 days from their chosen wedding date is still planning the same event with the same vendor contracts. A customer who is ±30 days from their chosen date is planning a fundamentally different event.
The 7-day window is therefore the resolution floor of our audit. Below this, sampling noise dominates climate signal; above this, the climatological homogeneity assumption begins to fail. This choice is fixed for all Forelore wedding-side and villa-side audits and is the same window used by both Layer 1 and Layer 2 computations.
2. Layer 1 — Wedding event-day floor (Student-t tolerance interval)
2.1 Definition
For any venue × date in the 7-day window centered on the customer's event date, Forelore computes the highest pleasant-hours threshold T such that:
This is formally a one-sided 90%/90% tolerance interval on the marginal probability that a single event-day in the window falls below T. The customer's chosen wedding date is assumed climatologically exchangeable with the other 6 days in the window — valid for natural climate variables in the absence of day-of-week effects.
2.2 Computation
Per (pixel, DOY, candidate threshold T):
- For each of the 25 meteo-years: compute
K_y(T)= number of days in the 7-day window with pleasant hours strictly less than T. Year y contributes only if all 7 days have valid data. - Compute
mean_K(T)and the sample SDsd_K(T)(ddof=1) across the N ≤ 25 valid years. - Compute the one-sided 90% upper bound on the per-day risk via Student-t analytic:
upper_90(T) = ( mean_K(T) + t_{0.90, df=N-1} · sd_K(T) / √N ) / 7 - The wedding event-day floor is
max{ T : upper_90(T) ≤ 0.10 }.
2.3 Why Student-t analytic, not bootstrap
The natural alternative — year-cluster bootstrap with n=1000 or n=10000 resamples — was empirically validated against the Student-t analytic on 4 sample venues × 365 DOYs = 1,460 cells.
| Method | |Δ| median vs bootstrap n=10000 | Exact match | Within 0.5h |
|---|---|---|---|
| Bootstrap n=1000 | 0.00h | 96.0% | 99.2% |
| Student-t analytic (df = N-1) | 0.00h | 99.1% | 99.9% |
| Normal approximation (z = 1.282) | 0.00h | 98.9% | 99.7% |
The Student-t analytic matches bootstrap n=10000 at or above the threshold discretization step (0.5h). It is statistically equivalent to a properly executed year-cluster bootstrap, with the added benefit of being deterministic — identical results on every re-run. The CLT delivers a valid normal approximation given N=25 and Ky bounded in {0..7}; Student-t (rather than normal) accounts for the finite-sample uncertainty in the SD estimate.
2.4 Bootstrap correction at rare edge-case pixels
A small fraction of pixels worldwide (typically less than 0.5% of the 5.4M-pixel grid, concentrated in monsoon-margin and desert-fringe zones) have per-year Ky distributions that are too sparse or near-degenerate for the analytic normal approximation to be well-justified. These are identified by an automated check on two flags:
- F2 (sparse-outlier flag): very few years (≤2 of 25) reach any value at all, with a low maximum — the empirical distribution is too sparse for analytic CLT to apply.
- F3 (clustered-zero flag): a high fraction of Ky values are at the sample maximum (i.e., every day of the window was below threshold), with a low overall maximum — indicating a near-degenerate distribution.
For pixels flagged F2 or F3 at any candidate threshold, Forelore computes the floor directly from a dedicated year-cluster bootstrap (n=5,000 resamples) rather than the analytic form, for maximum precision in these regimes. The correction shifts the floor by 0–2h on affected pixels and leaves the 99.5%+ of grid cells unchanged.
3. Layer 2 — 6-of-7 audit floor (order statistic)
3.1 Definition
For the same venue × date and 7-day window, Forelore computes the 2nd-lowest, across 25 meteo-years, of the per-year 2nd-worst-of-7 day.
In order statistic notation: X_(2)( {Y_2,y}_{y=1..25} ) where
Y_2,y = X_(2)( daily pleasant-hours, 7 days of year y ).
3.2 Quantile interpretation (Weibull)
For n iid samples from a distribution F, the k-th order statistic X_(k) is
a point estimator of the p-quantile of F where p depends on the plotting position formula:
| Formula | p for k=2, n=25 | Source |
|---|---|---|
| Weibull | k / (n+1) = 2/26 = 7.69% | Weibull (1939); standard in hydrology, climatology |
| Hazen | (k − 0.5) / n = 1.5/25 = 6.00% | Hazen (1914) |
| Cunnane | (k − 0.4) / (n + 0.2) = 1.6/25.2 ≈ 6.35% | Cunnane (1978); often preferred for extremes |
We adopt the Weibull plotting position as the canonical choice — it is the standard in extreme value statistics for atmospheric and hydrological data (Wilks 2011, §5.6).
One-sided lower confidence = 1 − p:
- Weibull: 1 − 0.0769 = 92.3%
- Hazen: 1 − 0.06 = 94.0%
- Cunnane: 1 − 0.0635 = 93.7%
Under the iid assumption, the 6-of-7 audit floor corresponds to a ~92% one-sided lower confidence bound on the underlying climate distribution.
4. Block-level support profile — inside the day
4.1 What it answers
The Layer 1 daily floor reports how much pleasant time the event-day window has overall. It does not tell the planner where in the day that pleasant time has historically concentrated. The block-level support profile decomposes the daytime window (08:00–22:00 local) into four climate-neutral blocks and reports, for each, the conservative coverage level met at least 90% of the time (about 9 event-days in 10). This is supplementary information: it sits alongside the daily floor and answers a different question, namely «is this specific 3- or 4-hour block reliable for a critical event (ceremony, reception, photo session)?»
4.2 The four blocks
- Morning — 08:00–11:00 local (3 hours, 6 half-hour slots)
- Midday — 11:00–14:00 local (3 hours, 6 half-hour slots)
- Afternoon — 14:00–18:00 local (4 hours, 8 half-hour slots)
- Evening — 18:00–22:00 local (4 hours, 8 half-hour slots)
Block boundaries are climate-neutral, not event-coded. Wedding event labels (Brunch, Heat Peak, Ceremony, Reception) appear only in the customer-facing audit report and never enter the underlying data.
4.3 The conservative block floor
For each (pixel, day-of-year, block) tuple, we compute the block fraction per year × day:
block_fraction[year, day, block] = pleasant_slots_in_block / total_slots_in_block
where pleasant = rain < 0.1 mm/h and UTCI in [-13°C, +32°C] per 30-min slot. We hold the block fraction to the same conservative 90/90 standard as Layer 1. Because block fractions are bounded in [0, 1] and their year-to-year values are skewed toward those bounds, the normal approximation behind the analytic (Student-t) form is less dependable here than for the daily floor. The block floor is therefore computed primarily with a year-cluster bootstrap; the analytic form is reserved for blocks whose floor is already effectively determined — near-saturated or near-empty cases. On the 7-day window centered on the date, across 25 years, we report the highest threshold T that the block clears at least 90% of the time — with 90% statistical confidence. This threshold is the block floor.
4.4 The three support classes (operational symmetry)
The block floor is reported alongside one of three discrete classes, calibrated for short-event reliability:
- Strong — block floor ≥ 0.76 (at most 30 minutes non-pleasant per block). Plan freely; this block is reliable at ceremony grade.
- Workable — block floor between 0.63 and 0.76 (at most 1 hour non-pleasant per block). Plan with a backup ready; the block is usable but a partial-disruption scenario is within the 90/90 conservative envelope.
- Constrained — block floor < 0.63 (more than 1 hour non-pleasant possible). Significant limit to plan around: strong backup or rescheduling recommended.
The thresholds 0.76 and 0.63 are not arbitrary — they produce operational symmetry across the 3-hour and 4-hour block lengths. A 0.76 floor on a 3-hour block discretizes to 5 of 6 slots pleasant (= 2.5h pleasant, 0.5h non-pleasant); on a 4-hour block, 7 of 8 slots (= 3.5h pleasant, 0.5h non-pleasant). The "max 30 minutes non-pleasant" interpretation is therefore uniform across blocks. Similarly, the 0.63 threshold discretizes to "max 1 hour non-pleasant" uniformly.
4.5 Main constraint — what limits the block
When the block is classified Workable or Constrained, the report names the main constraint — the climate channel (rain, heat, cold, or a mixed combination) that limits the block. This is derived by comparing the per-channel block fractions for rain (rain < 0.1 mm/h, ignoring UTCI) and thermal comfort (UTCI in range, ignoring rain). If one channel has a meaningfully lower mean than the other (gap ≥ 5 percentage points), it is named; otherwise we report "mixed". For Strong blocks the main constraint is omitted because there is no material limit to plan around.
4.6 Relationship to Layer 1 (the daily floor)
The daily floor (Layer 1) and the block floors are computed on the same 7-day cyclic window × 25-year sample but on different statistics — the former on the sum of pleasant slots per day, the latter on the per-block pleasant fraction. They are therefore not algebraically related: the sum of block floors × block length is an operational block-level summary, not a mathematical bound on the daily floor. We have empirically verified this relationship across six climate zones (Bahamas, South Florida, Mountain continental, Mediterranean, Tropical equatorial; n = 282 cells): in 84% of cells the daily floor exceeded the sum of block floors (block diversification effect); in 16% the sum exceeded the daily floor by up to 2 hours, predominantly in subtropical near-saturation regimes. For this reason the audit reports the daily floor and the block profile as two independent views of the same window, never summed or differenced into a single number.
5. Climate autocorrelation — tested, and negligible for this metric
The iid assumption underlying the confidence framework would be violated if successive years were statistically dependent — multi-year climate modes (ENSO, AMO, NAO, PDO) can induce year-to-year persistence. Rather than assume it, we tested it directly in the data.
5.1 The diagnostic
For positively autocorrelated samples the effective sample size Neff is smaller than the nominal N, which would inflate confidence. The standard correction (Bretherton et al. 1999; Wilks 2011, §5.2.4):
N_eff ≈ N × (1 − ρ) / (1 + ρ)
where ρ is the lag-1 autocorrelation of the per-year series.
5.2 Empirical estimate for Forelore
We measured ρ on the per-year window pleasant-hours series. For this rain-driven metric it is essentially zero: a pooled estimate over hundreds of grid cells gives lag-1 ρ ≈ −0.04 (slightly negative), and the flagship venue (Harbor Island) sits at ρ ≈ −0.2. This matches the established result that precipitation is indistinguishable from a random process year-to-year over most of the global land surface (Sun et al., PNAS 2018). Temperature carries more persistence, but the thermal channel is rarely the binding constraint here.
Consequence: Neff ≈ N. The 25 meteo-years behave as roughly 25 independent samples, so no autocorrelation discount is applied or needed. The headline ~90% is the confidence level of the bound itself (we set it at 90%) — not a number discounted from a higher in-sample frequency.
5.3 Where it does matter, and the two layers
A minority of regimes (~10–25% of cells, e.g. some strong-ENSO precipitation areas) show positive persistence, ρ up to ~0.2–0.3. There Neff falls to ~14–17 and the true confidence of a nominal-90% bound drops by a few points (to ~85%); those cells are flagged as lower-confidence.
For the typical venue (Neff ≈ N): Layer 1 (Student-t bound on the mean shortfall, N = 25) keeps its nominal ~90% confidence; Layer 2 (2nd-lowest of 25, an order statistic) has an iid one-sided confidence of ~92% (Weibull plotting position 2/26). We report a flat ~90% for both as a conservative round-down — absorbing discretization and any residual dependence — not as an autocorrelation correction.
6. Why we report 90% (for both layers)
6.1 Why round down
We report "~90%" rather than the higher iid-theoretical numbers (92.3% for the audit floor; nominal Student-t for the wedding floor) for two reasons:
- Conservativeness: choosing the lower end is consistent with Forelore's "audited, not averaged" stance: we err toward under-stating, not over-stating, confidence.
- Buffer against unknown unknowns: Effective-N estimates carry their own uncertainty. The 90% figure absorbs that uncertainty in the customer's favor.
6.2 Customer interpretation
Wedding event-day floor:
6-of-7 audit floor:
7. Why we use the 2nd-worst year, not the absolute worst
For the Layer 2 audit floor, we deliberately drop the single worst year (= report the 2nd-lowest of 25, not the absolute minimum). Three justifications:
- Robustness to single-event outliers: A single tropical storm, satellite data gap, or model-resolution artifact can produce a year-min of 0.0h that is not representative of the underlying climate distribution.
- Decision usability: The absolute minimum can make many otherwise viable windows appear unusable. The 2nd-worst year better represents a high-confidence operational floor.
- Standard practice in climate risk reporting: The IPCC, World Bank, and major reinsurance models use percentile-based floors (typically 5th–10th percentile) rather than absolute minima for similar reasons.
8. ENSO robustness
8.1 The concern
The 25-year sample window (Jul 2000–Jun 2025) does not necessarily contain ENSO phases (El Niño / La Niña / Neutral) at their long-run climatological frequencies. If our sample under-represents the ENSO phase that drives bad outcomes at a given venue × date, the audited floor could be optimistically biased.
8.2 Sample composition
| ENSO phase | Count in sample | Sample frequency | Long-run climatology (1950–2023) |
|---|---|---|---|
| El Niño | 5 | 20% | ~28–32% |
| La Niña | 3 | 12% | ~22–28% |
| Neutral | 17 | 68% | ~40–50% |
Our 25-year window under-represents La Niña years by roughly half (12% vs ~25% long-run). The bias is at the cohort frequency, not at the per-year ENSO-state level.
8.3 Empirical test — Bahamas (Apr–May), under the wedding event-day floor (Layer 1)
For the Harbor Island Wedding Audit sample, we stratified the per-year per-day pleasant-hours values by ENSO phase, for the 7-day windows around the two headline dates:
| Date | Phase | N (years) | Wedding cons 90/90 stratified (h, composite) |
|---|---|---|---|
| May 1 | El Niño | 5 | ~7–8 |
| May 1 | La Niña | 3 | ~3–5 (3/3 LN years cluster below 7h; captured in the cons 90/90 floor of 6.0h) |
| May 1 | Neutral | 17 | ~7–8 |
| May 8 | El Niño | 5 | 11–12 |
| May 8 | La Niña | 3 | 11–13 |
| May 8 | Neutral | 17 | 11–12 |
ENSO has a measurable magnitude effect on the trough date (May 1) but no detectable effect on the protected date (May 8). The May 1 effect does not clear α=0.05 because N=3 La Niña years is statistically underpowered, not because the magnitude is small.
8.4 Bootstrap re-weighting (under Layer 1)
To test whether the wedding event-day floor is robust to ENSO sample bias, we resampled the 25 years 10,000 times using climatological ENSO weights (30% EN, 25% LN, 45% Neut) instead of observed-sample weights:
| Date | Observed cons 90/90 floor | Re-weighted mean floor | Re-weighted P5–P95 |
|---|---|---|---|
| May 1 | 6.0h | 5.8h | 4.5–7.0h |
| May 8 | 11.0h | 10.7h | 9.5–12.0h |
8.5 Conditional risk on already-weak dates
The headline confidence is unconditional. On a date the audit already flags as weak — e.g. May 1 Bahamas (6.0h) — a future strong La Niña could push the outcome lower still; that residual risk is a property of the climate, not the method. It is precisely why the audit exists: a planner who sees the 6.0h floor and reroutes to May 8's 11.0h has used it exactly as intended — the floor's job is to move you off the weak date, not to make the weak date safe.
9. References
- Bretherton, C. S., Widmann, M., Dymnikov, V. P., Wallace, J. M., and Bladé, I. (1999). "The effective number of spatial degrees of freedom of a time-varying field." Journal of Climate, 12(7), 1990–2009.
- Bröde, P., Fiala, D., Błażejczyk, K., et al. (2012). "Deriving the operational procedure for the Universal Thermal Climate Index (UTCI)." International Journal of Biometeorology, 56(3), 481–494.
- Cunnane, C. (1978). "Unbiased plotting positions — A review." Journal of Hydrology, 37(3–4), 205–222.
- David, H. A., and Nagaraja, H. N. (2003). Order Statistics, 3rd ed. Hoboken, NJ: Wiley.
- Di Napoli, C., Barnard, C., Prudhomme, C., Cloke, H. L., and Pappenberger, F. (2021). "ERA5-HEAT: A global gridded historical dataset of human thermal comfort indices from climate reanalysis." Geoscience Data Journal, 8(1), 2–10. DOI: 10.1002/gdj3.102.
- Efron, B. (1979). "Bootstrap Methods: Another Look at the Jackknife." The Annals of Statistics, 7(1), 1–26. DOI: 10.1214/aos/1176344552. (The bootstrap.)
- Hazen, A. (1914). "Storage to be provided in impounding reservoirs for municipal water supply." Transactions of the ASCE, 77, 1539–1640.
- Hersbach, H., Bell, B., Berrisford, P., et al. (2020). "The ERA5 global reanalysis." Quarterly Journal of the Royal Meteorological Society, 146(730), 1999–2049. DOI: 10.1002/qj.3803. (Reanalysis underlying the ERA5-HEAT thermal channel.)
- Huffman, G. J., Bolvin, D. T., Braithwaite, D., et al. (2020). "Integrated Multi-satellitE Retrievals for the Global Precipitation Measurement (GPM) Mission (IMERG)." In Satellite Precipitation Measurement (Levizzani et al., eds.), Advances in Global Change Research 67, Springer, Cham, ch. 19. DOI: 10.1007/978-3-030-24568-9_19. (NASA GPM IMERG — the rain dataset.)
- IPCC (2021). Climate Change 2021: The Physical Science Basis. WG-I to the Sixth Assessment Report. Cambridge University Press. Chapters 11–12 discuss extremes, return periods, percentiles, and climate-risk framing.
- Krishnamoorthy, K., and Mathew, T. (2009). Statistical Tolerance Regions: Theory, Applications, and Computation. Hoboken, NJ: Wiley. (Tolerance interval foundation for Layer 1.)
- Künsch, H. R. (1989). "The Jackknife and the Bootstrap for General Stationary Observations." The Annals of Statistics, 17(3), 1217–1241. DOI: 10.1214/aos/1176347265. (Block / year-cluster bootstrap for dependent data.)
- Owen, D. B. (1964). "Control of Percentages in Both Tails of the Normal Distribution." Technometrics, 6(4), 377–387. (Original Student-t-based tolerance interval theory.)
- Sun, F., Roderick, M. L., and Farquhar, G. D. (2018). "Rainfall statistics, stationarity, and climate change." Proceedings of the National Academy of Sciences, 115(10), 2305–2310. DOI: 10.1073/pnas.1705349115. (Annual precipitation is near-random year-to-year over most global land — empirical basis for Neff ≈ N.)
- Weibull, W. (1939). "A Statistical Theory of the Strength of Materials." Ingeniörsvetenskapsakademiens Handlingar, No. 151.
- Wilks, D. S. (2011). Statistical Methods in the Atmospheric Sciences, 3rd ed. Academic Press. Chapter 5.