# Rhine low-water duration: provisional shared ladder

This is the current Rhine market illustration. The earlier 100-strike definition in `definitions.json` remains frozen as a research archive. This ladder changes only the contracts and payout; it reuses the same Kaub observation method, WSV source snapshot, correction cutoff and dispute rules documented there. Historical readings are later-archive reconstructions, not observations proven available at a past settlement date.

For each fixed-CET day from July 1 through November 30, count one low-water day only when all 96 quarter-hour Kaub gauge samples are present and their mean is strictly below 60 cm. The seasonal result is an integer from 0 through 153. A market at threshold *t* resolves YES when the result is **at least** *t*. Missing days give lower and upper possible counts; a market stays unresolved if the two bounds straddle its threshold. The comparison gauge never replaces Kaub automatically.

## How the ten questions are chosen

The illustration limits each change in a €100,000 maximum payout to 10%, so it uses ten equally weighted YES contracts. To demonstrate variable-width outcome bins without fitting the six observed seasons, calculate threshold *i* as `ceil(153 × (i / 10)^(3/2))` for *i* from 1 through 10. The published integer thresholds, which govern settlement, are **5, 14, 26, 39, 55, 72, 90, 110, 131 and 153 days**. Counts 0–4 activate none; every count from 0 through 153 has a defined result. The bins get wider at higher counts. This spacing and the 10% payout resolution are transparent design choices, **not a measured transport-cost or insured-loss curve**. A venue would need to evaluate participation and executable depth across all ten books.

The illustrative payout is `maximum payout × (number of YES contracts / 10)`. A buyer may weight the same listed contracts differently for a specific cover; those weights change the buyer's basket, not the public market questions. For example, the frozen 2022 reading is 17 days, so the 5- and 14-day questions resolve YES and an equally weighted €100,000 basket would pay €20,000. This is a hypothetical payout, not an observed insurance payment.

Each unit YES contract pays €1 if its threshold is met and €0 otherwise; its NO side has the opposite outcome. A hypothetical basket holds €10,000 of each YES contract for a €100,000 maximum payout. The sum of ten **executable** ask prices at those quantities, divided by ten, would be its normalized purchase price before fees, slippage and funding. The page's prices are simulated, with no executable quote or depth evidence. The ten example YES prices decline from €0.400 to €0.130 as thresholds rise, enforcing the nesting order only. They are not derived from actuarial risk, a fitted frequency distribution or the six frozen seasons. Published [CCNR Kaub history](https://www.ccr-zkr.org/files/documents/omanalysesthematiques/Market-report-2014-2019_Web.pdf) reports days below a 78 cm navigation reference, rather than probabilities for July–November complete daily means below 60 cm at the ten thresholds. We did not identify a public actuarial curve matching these contracts, so the historical graph and prices must not be interpreted as such.

Insurers already use gauge data to design low-water cover: [Swiss Re FLOW](https://corporatesolutions.swissre.com/insights/news/flow_new_parametric_water_level_insurance.html) uses defined river gauges, and [Descartes](https://descartesunderwriting.com/solutions/river-level-volatility) describes gauge and sensor data in its river-level product. These sources do not disclose the costs or methods of an insurer's forecast of these ten seasonal questions. Published [Rhine freight research](https://www.ccr-zkr.org/files/documents/om/om24_II_en.pdf) supports the importance of low-water duration, but does not validate this exact threshold spacing or payout.

 [Wolfers and Zitzewitz](https://pubs.aeaweb.org/doi/10.1257/0895330041371321) review evidence that prediction markets aggregate information in other settings. The [2026 Federal Reserve study](https://www.federalreserve.gov/econres/feds/kalshi-and-the-rise-of-macro-markets.htm) compares traded rate forecasts with conventional alternatives, supporting a forecast-checking experiment rather than a Rhine accuracy claim. [Wolfers and Zitzewitz's price-interpretation study](https://www.nber.org/papers/w12200) explains why prices can deviate from average event beliefs. These studies report neither the avoidable cost of an insurer's Kaub forecast nor the full cost of adopting exchange prices.

## Illustrative whole-basket risk model

The page accepts one modeled chance *p* of a low-water season: at least one July–November day with a complete Kaub daily mean strictly below 60 cm. It places probability `1 − p` on zero days. The selected positive day count *d* is the most likely duration **conditional on at least one low-water day**. For each possible count *x* from 1 through 153, assign an unnormalized weight `x / d` when `x ≤ d` and `(154 − x) / (154 − d)` when `x > d`. Divide each weight by the sum of all 153 weights and multiply by *p*. Thus the positive-day probabilities sum to *p* and all 154 day-count probabilities sum to one. A selected count of zero still has a defined contract payout, but the page asks for a positive *d* before showing this model.

For each market at threshold *t*, its modeled YES chance is the sum of the day-count probabilities for `x ≥ t`. The payout chance at each of the eleven steps from 0% to 100% is the sum of probabilities for counts with that exact number of YES contracts. For a basket with maximum payout *L*, expected gross payout is the sum of each step's probability times its payout amount. Equivalently, it is `L / 10 × sum of the ten modeled YES chances`. The simulated purchase cost is `L / 10 × sum of the ten example YES prices`; expected result after cost is expected gross payout minus that cost. The displayed chance of a payout below cost sums the probabilities of only the payout steps strictly below the simulated cost. These amounts exclude fees, slippage and funding.

The linear rise and fall is an illustrative teaching assumption, **not a model fitted to the six historical seasons or a public actuarial Kaub forecast**. It links all ten questions to one shared input; simulated prices remain independent examples rather than calibrated probabilities or live quotes. A real comparison would require a justified forecast distribution and executable prices at basket size. Expected settlement is distinct from an insurance premium and an individual buyer's net return.

Potential forecast-cost savings require matched three-year costs for the same questions, horizon and update frequency. Compare avoidable existing forecast spending with market access, integration, monitoring, validation, any retained model and liquidity support. Neither total is publicly established; no savings percentage is claimed. See `forecasting-cost-research.md` and the downloadable cost ledger.

Reproduce `rhine-ladder.json` and `rhine-ladder-history.csv` with `python3 apps/peril-standard/scripts/peril_standard.py export` from a checkout with the frozen source pack. `rhine_ladder.py` provides the reference payout and settlement functions. The JSON includes the source-manifest checksum and methodology identity. Source use and specification licensing notices remain in `rights.md`.
