Data and methods · Bias correction · February initialization · FMAM and its months

Data and methods · February initialization · FMAM and its months

Data

Data used by the benchmark
ItemDetails
ForecastsECMWF SEAS5 (system 51), initialized on 1 February; 25 members 1993–2016, 51 from 2017; remapped from 1° to the 0.25° CHIRPS grid by conservative remapping (each 1° cell fills a 4 × 4 block). Johnson et al. 2019
ObservationsCHIRPS v3.0 monthly totals, averaged from 0.05° to 0.25°
TargetsFeb, Mar, Apr, May and the FMAM season; each corrected separately
Observed years1993–2025 (seasons starting in these years)
Training / test years1993–2016 (clean evidence) / 2017–2025 (exploratory)
Cells1,484 grid cells of Ethiopia (0.25°); a cell is corrected only if CHIRPS is complete in every training year
Regions scoredAll Ethiopia — primary (national aggregate); FMAM rainfall contribution domain
Score coverage (amounts / probabilities, share of the national area)Feb 100% / 85%; Mar 100% / 99%; Apr 100% / 100%; May 100% / 100%; FMAM 100% / 100%. Tercile scores need two distinct tercile boundaries defining three categories, a CHIRPS standard deviation of at least 1 mm and a lower boundary above 0 mm, so dry months have fewer probability cells.
Dry totals≤ 1 mm in a month or season (not a dry day); exactly 0 mm is reported separately
WeightingEvery member is used; each training year has total weight 1/Y (each member of year y weighs 1/(Y·My)), so years with 25 and 51 members count equally. Each observed year weighs 1/Y.
Runconfig/bias_correction/feb_fmam.json; 2026-10-12 12:26 UTC; commit 9f397927f5; scoring version 3

Methods

Each method is fitted per grid cell and target from the training years only and applied to each member of the scored year. Methods that keep a “change signal” (DC, DQM, QDM, SDM, CDF-t) were designed for climate change, where a model’s reference period is compared with a future period; here the “future” is the forecast itself: the target year’s ensemble against the model climatology.

12 methods, the operational reference and the raw baseline
MethodFamilyDefinition (per cell and target)Member-wiseUses the forecast ensemble’s own distributionParametersReferences
Raw ECMWF (no correction)
raw
baselinex' = x (the uncorrected model; baseline, not a candidate)yesno—Johnson et al. 2019
Linear Scaling
ls
scalingx' = x * mu_obs / mu_model (multiplicative mean correction; ratio 1 where mu_model < 0.1 mm)yesno{"min_model_mean":0.1}Lenderink et al. 2007, Teutschbein & Seibert 2012
Mean-Variance Scaling (operational)
mvs
scalingx' = max(0, mu_obs + r (x - mu_model)), r = clip(sd_obs/sd_model, 0.5, 2); r = 1 if sd_model < 1 mmyesno{"ratio_bounds":[0.5,2],"min_model_sd":1}Torralba et al. 2017, Manzanas et al. 2019
Variance Scaling (unbounded)
vs
scalingSame algebra and the same r = 1 fallback (sd_model < 1 mm) as MVS, without the 0.5-2 ratio limitsyesno{"ratio_bounds":null,"min_model_sd":1}Teutschbein & Seibert 2012
Square-root-space Mean-Variance Scaling
sqrt_mvs
scalingMVS applied to sqrt(x) (r limits 0.5-2; r = 1 if the sqrt-space sd < 0.1), clipped at 0 and squared back (docs/36)yesno{"ratio_bounds":[0.5,2],"min_model_sd":0.1,"space":"sqrt"}Manzanas et al. 2019
Power Transformation
pt
scalingx' = a x^b: b (0.1-3) matches the coefficient of variation where reachable (bound hits reported), a the meanyesno{"b_bounds":[0.1,3]}Leander & Buishand 2007, Teutschbein & Seibert 2012
Delta Change
dc
change-preservingTraining-year CHIRPS totals times a = forecast ensemble mean / model mean (a in 0.2-5): historical scenarios, not corrected membersno (one value per training year)yes{"ratio_bounds":[0.2,5],"min_model_mean":0.1}Hay et al. 2000, Teutschbein & Seibert 2012
Local Intensity Scaling
loci
scalingModel threshold with the observed frequency of totals above 1 mm, then intensity scaling above it (designed for daily rainfall; here monthly or seasonal totals)yesno{"wet_threshold":1}Schmidli et al. 2006
Empirical Quantile Mapping
eqm
quantile mappingx' = Q_obs(F_model(x)) with the dry policy; constant-ratio extrapolation outside the training rangeyesno{"extrapolation":"constant_ratio","wet_threshold":1}Boé et al. 2007, Themeßl et al. 2011, Gudmundsson et al. 2012
Gamma Quantile Mapping
gqm
quantile mappingx' = G_obs^-1(G_model(x)), G = dry mass (<= 1 mm) + gamma by weighted maximum likelihood, with the dry policy; linear scaling where fewer than 3 wet valuesyesno{"wet_threshold":1}Piani et al. 2010
Detrended Quantile Mapping
dqm
change-preservinga * EQM(x / a), a = forecast ensemble mean / model mean (0.2-5): removes and reapplies the bounded ratio; exact preservation of the final mean anomaly is not guaranteedyesyes{"extrapolation":"constant_ratio","ratio_bounds":[0.2,5],"min_model_mean":0.1,"wet_threshold":1}Cannon et al. 2015
Quantile Delta Mapping
qdm
change-preservingx' = Q_obs(tau) * x / Q_model(tau), tau = rank of x in the forecast ensemble; change capped at 5 and replaced by Q_obs(tau) where Q_model(tau) <= 1 mm (both reported), so preservation is partial thereyesyes{"max_ratio":5,"wet_threshold":1}Cannon et al. 2015
Scaled Distribution Mapping
sdm
change-preservingSwitanek et al. (2017) precipitation steps 1-7: gamma fits, recurrence intervals interpolated to the forecast's length, scaled CDF, rain-member count; model climatology with equal-year weightsyesyes{"wet_threshold":1}Switanek et al. 2017
CDF-transform
cdft
change-preservingF_obs,f = F_obs(F_model^-1(F_forecast)); x' = F_obs,f^-1(F_forecast(x)); implementation choices: model and forecast first scaled to the CHIRPS mean, values stay within the scaled forecast rangeyesyes{"min_model_mean":0.1}Michelangeli et al. 2009, Vrac et al. 2012
MVS with all-zero guard (variant)
mvs_zero_guard
variantOperational MVS, but corrected totals are 0 mm where every training year has exactly 0 mm (a documented modelling choice, not a physical rule)yesno{"ratio_bounds":[0.5,2],"min_model_sd":1,"zero_guard":true}Torralba et al. 2017, Manzanas et al. 2019

Evaluation designs

Evaluation designs (no amount method has a parameter tuned on scores)
DesignFitsScoredRole
Screening: trainingleave-one-year-out within 1993–2016each 1993–2016 yearclean evidence for the screening
Screening: test1993–20162017–2025exploratory (these years were seen before)
Screening: fullleave-one-year-out within 1993–2025each yearper-cell maps and distribution checks (descriptive)
Confirmationouter leave-one-year-out within 1993–2016; inside each fold the blend weight (inner leave-one-year-out) and, for SEL-P/SEL-A, the method choiceeach 1993–2016 yearfull pipeline; accounts for the method choice
Confirmation: test1993–2016 (fits, blend weight and method choice)2017–2025exploratory
Forecast1993–20252026 membersmember-by-member comparison

← InterpretationScreening →