The challenge
Scottish demersal fish markets operate as daily auctions. Peterhead (SWFPA) is the largest demersal fish market in Scotland; Shetland Seafood Auctions (SSA) covers the two Shetland ports. Catches land, boxes go on the floor, buyers bid, and prices clear — once, each day, for each species and grade combination.
Price volatility in these markets is structural. Volume is determined by what vessels land, which depends on weather, fish behaviour, and fleet decisions made days earlier. Demand is driven by processors and merchants who have commitments downstream. The two sides of the auction have no direct coordination mechanism. The result is daily price swings that can exceed 30% on individual species.
There is no existing quantitative forecasting for these markets. Buyers, merchants, and vessel operators work entirely from experience and informal intelligence. The question was whether a systematic probabilistic system could do materially better than a naive baseline — and whether it could do so honestly, with calibrated uncertainty, rather than just fitting the training data.
What we built
The FishFacts forecasting engine is based on manifold transport analogues. For each forecast date, it identifies the historical auction days whose market geometry most closely resembles the current state — price distributions across species, recent volume patterns, environmental conditions, and temporal structure. It then projects forward by combining how those analogue days evolved, weighted by their similarity to the current state.
The output is a calibrated distribution of future price paths for each species and grade combination, at horizons from H1 to H20 (one to twenty trading days ahead).
Why analogues, not a standard model?
The demersal auction market has several properties that make conventional regression and neural forecasting approaches difficult. The dataset is small relative to the number of species-grade targets. The generating process is non-stationary — market dynamics shift with quota changes, fleet composition, and demand conditions. And the goal is calibrated uncertainty, not just low mean absolute error.
Analogue-based forecasting naturally handles these properties: it makes no distributional assumptions, it uses the full historical price geometry rather than per-species models, and it can be directly calibrated using conformal prediction theory.
Evaluation design
The evaluation framework was designed to be honest by construction.
Species-level assessment. Rather than evaluating the market-average forecast — which could look good by capturing the dominant species — the honest_objective scores each species-grade combination separately and reports the volume-weighted mean. The system has to genuinely improve individual species forecasts, not just track the tide.
H4–H10 weighted scoring. Near-term forecasts (H1–H3) benefit from strong autocorrelation; longer horizons are where the system needs to add genuine predictive value. The primary metric weights H4 to H10, with H4 and H5 given additional weight.
Naive baseline. The baseline is the simplest defensible forecast: the trailing window average price. Every percentage point improvement is measured against this, out of sample.
Results
Peterhead (SWFPA): The champion parameter set achieves +17.65% honest improvement over the naive baseline on the H4–H10 weighted metric, across all actively traded species and grades, fully out of sample. This was reached through systematic Bayesian optimisation over the hyperparameter space, with explicit out-of-sample hold-out at every step.
Shetland (SSA): SSA was onboarded as the second market with a single canonical data adapter. SWFPA parameters were transferred unchanged — no SSA-specific tuning — and the system achieved +10.55% honest improvement out of the box. This zero-shot transfer result establishes the SSA baseline; dedicated parameter optimisation is ongoing.
The 7-percentage-point gap between SWFPA and SSA zero-shot is consistent across all H4–H10 horizons. It reflects real structural differences: SWFPA has a longer usable history (richer analogue pool), and the SSA price data structure differs in ways that mean SWFPA-tuned parameters are not optimal. Closing this gap is the current research focus.
What we learned
Honest benchmarking is the hard part. It is straightforward to produce a forecasting system that looks good on training data or on market-wide averages. Making it genuinely better — species-level, out of sample, across the full distribution — is considerably harder. Designing the evaluation framework before tuning the model was the most important methodological decision.
The transfer test is valuable. Onboarding SSA as a zero-shot transfer, before running any SSA-specific optimisation, gives a clean read on how much of the SWFPA performance is methodology versus parameter fit. +10.55% zero-shot suggests the methodology generalises; the gap to +17.65% shows how much parameter adaptation adds.
Auction markets have structure worth exploiting. The analogue approach works because demersal auction prices are not random walks — they are governed by seasonal patterns, species-specific supply cycles, fleet behaviour, and market-wide dynamics that recur in recognisable forms. When the geometry is well-constructed, the system finds these patterns.
Calibration requires deliberate design. The conformal prediction intervals are calibrated by construction, but calibration at the market level does not guarantee calibration at the species level. Species-level coverage monitoring is part of the production system.