{
  "schema": "mw-rain-categories-v3",
  "published_on": "2026-09-06",
  "production_accuracy_claim": false,
  "method": "Primary UK comparison: original matched GFS fixed-lead archive and measured six-hour totals ending 12:00 UTC, retaining only days 1 to 4 before the processing-defect horizon. Same cases and original 1 mm and 5 mm thresholds at every retained lead. Additional Swiss context: cached single runs initialised from 18 July 2026 onwards and measured totals for 10:00-16:00 Europe/Zurich, matched at all 14 leads. No scaling correction is applied to old forecasts.",
  "interpretation": "Within each observed rain band, percentage forecast in that same band. Not overall accuracy, not a probability for a future day and not a measure of rain duration or intensity. Mostly dry can include light rain. No sampling intervals are calculated for these percentages.",
  "bands": [
    {
      "id": "mostly_dry",
      "label": "Mostly dry",
      "definition": "Less than 1 mm in six hours"
    },
    {
      "id": "some_rain",
      "label": "Some rain",
      "definition": "At least 1 mm but less than 5 mm in six hours"
    },
    {
      "id": "wetter",
      "label": "Wetter",
      "definition": "5 mm or more in six hours"
    }
  ],
  "archive_correction": {
    "minimum_initialisation": "2026-07-18T00:00:00+00:00",
    "issue": "https://github.com/open-meteo/open-meteo/issues/1994",
    "fix": "https://github.com/open-meteo/open-meteo/pull/1996",
    "scope": "Open-Meteo GFS precipitation processing beyond forecast hour 120, not a new GFS model version. Wind and temperature results are unchanged.",
    "limitation": "Post-fix eligibility is based on issue time and the documented fix, not an independent raw-GRIB validation. Different dates and stations prevent interpreting changes from the old UK sample as a measured improvement."
  },
  "rerun": {
    "report_sha256": "7bc833d15116d8fafdf63ce93b6d7e41bd58ffb707ef60972cbf342e13e6a806",
    "usage": {
      "http_requests": 0,
      "estimated_billing_units": 0.0,
      "observation_requests": 0,
      "cache_hits": 54
    },
    "first_initialisation": "2026-07-18",
    "last_initialisation": "2026-08-29"
  },
  "uk": {
    "pairs_sha256": "9defb760c7e3a8d786ce4661c5df89a4d19637141e51dac003f6f2ab82219346",
    "valid_start": "2024-01-26",
    "valid_end": "2026-03-26",
    "leads": [
      {
        "lead": 1,
        "n": 2661,
        "dates": 780,
        "wetter_forecast_at_least_1mm_count": 189,
        "matrix_observed_rows_forecast_columns": [
          [
            1885,
            150,
            7
          ],
          [
            189,
            181,
            32
          ],
          [
            28,
            108,
            81
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 2042,
            "correct_count": 1885,
            "missed_count": 157,
            "correct_percent": 92.31145935357493
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 402,
            "correct_count": 181,
            "missed_count": 221,
            "correct_percent": 45.024875621890544
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 217,
            "correct_count": 81,
            "missed_count": 136,
            "correct_percent": 37.327188940092164
          }
        ]
      },
      {
        "lead": 2,
        "n": 2661,
        "dates": 780,
        "wetter_forecast_at_least_1mm_count": 178,
        "matrix_observed_rows_forecast_columns": [
          [
            1859,
            166,
            17
          ],
          [
            208,
            156,
            38
          ],
          [
            39,
            109,
            69
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 2042,
            "correct_count": 1859,
            "missed_count": 183,
            "correct_percent": 91.03819784524975
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 402,
            "correct_count": 156,
            "missed_count": 246,
            "correct_percent": 38.80597014925373
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 217,
            "correct_count": 69,
            "missed_count": 148,
            "correct_percent": 31.797235023041473
          }
        ]
      },
      {
        "lead": 3,
        "n": 2661,
        "dates": 780,
        "wetter_forecast_at_least_1mm_count": 164,
        "matrix_observed_rows_forecast_columns": [
          [
            1810,
            208,
            24
          ],
          [
            241,
            130,
            31
          ],
          [
            53,
            103,
            61
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 2042,
            "correct_count": 1810,
            "missed_count": 232,
            "correct_percent": 88.63858961802154
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 402,
            "correct_count": 130,
            "missed_count": 272,
            "correct_percent": 32.33830845771144
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 217,
            "correct_count": 61,
            "missed_count": 156,
            "correct_percent": 28.110599078341014
          }
        ]
      },
      {
        "lead": 4,
        "n": 2661,
        "dates": 780,
        "wetter_forecast_at_least_1mm_count": 128,
        "matrix_observed_rows_forecast_columns": [
          [
            1761,
            236,
            45
          ],
          [
            252,
            118,
            32
          ],
          [
            89,
            76,
            52
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 2042,
            "correct_count": 1761,
            "missed_count": 281,
            "correct_percent": 86.23898139079334
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 402,
            "correct_count": 118,
            "missed_count": 284,
            "correct_percent": 29.35323383084577
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 217,
            "correct_count": 52,
            "missed_count": 165,
            "correct_percent": 23.963133640552996
          }
        ]
      }
    ],
    "status": "valid_short_leads_only",
    "role": "primary",
    "stations": [
      "Keswick",
      "Aviemore",
      "Capel Curig",
      "Shap"
    ],
    "excluded_leads": [
      5,
      6,
      7
    ],
    "reason": "Days 1 to 4 lie before the identified processing-defect horizon and retain the original matched sample. Days 5 to 7 are excluded because the pre-fix archive understates rainfall beyond forecast hour 120. Excluded results are not zero. Compatible UK six-hour observations end on 26 March 2026."
  },
  "swiss": {
    "pairs_sha256": "ea731fd8013918f6ef068a9421f75092d8767a11bd1ab3c450603413cda6e57b",
    "valid_start": "2026-08-01",
    "valid_end": "2026-08-30",
    "leads": [
      {
        "lead": 1,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 6,
        "matrix_observed_rows_forecast_columns": [
          [
            80,
            1,
            0
          ],
          [
            0,
            1,
            2
          ],
          [
            0,
            3,
            3
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 80,
            "missed_count": 1,
            "correct_percent": 98.76543209876543
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 1,
            "missed_count": 2,
            "correct_percent": 33.333333333333336
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 3,
            "missed_count": 3,
            "correct_percent": 50.0
          }
        ]
      },
      {
        "lead": 2,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 5,
        "matrix_observed_rows_forecast_columns": [
          [
            81,
            0,
            0
          ],
          [
            0,
            2,
            1
          ],
          [
            1,
            3,
            2
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 81,
            "missed_count": 0,
            "correct_percent": 100.0
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 2,
            "missed_count": 1,
            "correct_percent": 66.66666666666667
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 2,
            "missed_count": 4,
            "correct_percent": 33.333333333333336
          }
        ]
      },
      {
        "lead": 3,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 5,
        "matrix_observed_rows_forecast_columns": [
          [
            79,
            1,
            1
          ],
          [
            2,
            1,
            0
          ],
          [
            1,
            1,
            4
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 79,
            "missed_count": 2,
            "correct_percent": 97.53086419753086
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 1,
            "missed_count": 2,
            "correct_percent": 33.333333333333336
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 4,
            "missed_count": 2,
            "correct_percent": 66.66666666666667
          }
        ]
      },
      {
        "lead": 4,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 3,
        "matrix_observed_rows_forecast_columns": [
          [
            79,
            2,
            0
          ],
          [
            1,
            2,
            0
          ],
          [
            3,
            2,
            1
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 79,
            "missed_count": 2,
            "correct_percent": 97.53086419753086
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 2,
            "missed_count": 1,
            "correct_percent": 66.66666666666667
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 1,
            "missed_count": 5,
            "correct_percent": 16.666666666666668
          }
        ]
      },
      {
        "lead": 5,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 1,
        "matrix_observed_rows_forecast_columns": [
          [
            75,
            6,
            0
          ],
          [
            1,
            1,
            1
          ],
          [
            5,
            0,
            1
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 75,
            "missed_count": 6,
            "correct_percent": 92.5925925925926
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 1,
            "missed_count": 2,
            "correct_percent": 33.333333333333336
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 1,
            "missed_count": 5,
            "correct_percent": 16.666666666666668
          }
        ]
      },
      {
        "lead": 6,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 4,
        "matrix_observed_rows_forecast_columns": [
          [
            77,
            4,
            0
          ],
          [
            1,
            1,
            1
          ],
          [
            2,
            3,
            1
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 77,
            "missed_count": 4,
            "correct_percent": 95.06172839506173
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 1,
            "missed_count": 2,
            "correct_percent": 33.333333333333336
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 1,
            "missed_count": 5,
            "correct_percent": 16.666666666666668
          }
        ]
      },
      {
        "lead": 7,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 4,
        "matrix_observed_rows_forecast_columns": [
          [
            77,
            4,
            0
          ],
          [
            2,
            1,
            0
          ],
          [
            2,
            2,
            2
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 77,
            "missed_count": 4,
            "correct_percent": 95.06172839506173
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 1,
            "missed_count": 2,
            "correct_percent": 33.333333333333336
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 2,
            "missed_count": 4,
            "correct_percent": 33.333333333333336
          }
        ]
      },
      {
        "lead": 8,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 3,
        "matrix_observed_rows_forecast_columns": [
          [
            67,
            10,
            4
          ],
          [
            2,
            1,
            0
          ],
          [
            3,
            1,
            2
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 67,
            "missed_count": 14,
            "correct_percent": 82.71604938271605
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 1,
            "missed_count": 2,
            "correct_percent": 33.333333333333336
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 2,
            "missed_count": 4,
            "correct_percent": 33.333333333333336
          }
        ]
      },
      {
        "lead": 9,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 0,
        "matrix_observed_rows_forecast_columns": [
          [
            69,
            7,
            5
          ],
          [
            3,
            0,
            0
          ],
          [
            6,
            0,
            0
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 69,
            "missed_count": 12,
            "correct_percent": 85.18518518518519
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 0,
            "missed_count": 3,
            "correct_percent": 0.0
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 0,
            "missed_count": 6,
            "correct_percent": 0.0
          }
        ]
      },
      {
        "lead": 10,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 0,
        "matrix_observed_rows_forecast_columns": [
          [
            72,
            7,
            2
          ],
          [
            3,
            0,
            0
          ],
          [
            6,
            0,
            0
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 72,
            "missed_count": 9,
            "correct_percent": 88.88888888888889
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 0,
            "missed_count": 3,
            "correct_percent": 0.0
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 0,
            "missed_count": 6,
            "correct_percent": 0.0
          }
        ]
      },
      {
        "lead": 11,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 0,
        "matrix_observed_rows_forecast_columns": [
          [
            64,
            12,
            5
          ],
          [
            3,
            0,
            0
          ],
          [
            6,
            0,
            0
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 64,
            "missed_count": 17,
            "correct_percent": 79.01234567901234
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 0,
            "missed_count": 3,
            "correct_percent": 0.0
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 0,
            "missed_count": 6,
            "correct_percent": 0.0
          }
        ]
      },
      {
        "lead": 12,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 2,
        "matrix_observed_rows_forecast_columns": [
          [
            74,
            5,
            2
          ],
          [
            2,
            0,
            1
          ],
          [
            4,
            2,
            0
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 74,
            "missed_count": 7,
            "correct_percent": 91.35802469135803
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 0,
            "missed_count": 3,
            "correct_percent": 0.0
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 0,
            "missed_count": 6,
            "correct_percent": 0.0
          }
        ]
      },
      {
        "lead": 13,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 0,
        "matrix_observed_rows_forecast_columns": [
          [
            68,
            12,
            1
          ],
          [
            3,
            0,
            0
          ],
          [
            6,
            0,
            0
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 68,
            "missed_count": 13,
            "correct_percent": 83.95061728395062
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 0,
            "missed_count": 3,
            "correct_percent": 0.0
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 0,
            "missed_count": 6,
            "correct_percent": 0.0
          }
        ]
      },
      {
        "lead": 14,
        "n": 90,
        "dates": 30,
        "wetter_forecast_at_least_1mm_count": 0,
        "matrix_observed_rows_forecast_columns": [
          [
            65,
            14,
            2
          ],
          [
            3,
            0,
            0
          ],
          [
            6,
            0,
            0
          ]
        ],
        "bands": [
          {
            "id": "mostly_dry",
            "label": "Mostly dry",
            "definition": "Less than 1 mm in six hours",
            "observed_count": 81,
            "correct_count": 65,
            "missed_count": 16,
            "correct_percent": 80.24691358024691
          },
          {
            "id": "some_rain",
            "label": "Some rain",
            "definition": "At least 1 mm but less than 5 mm in six hours",
            "observed_count": 3,
            "correct_count": 0,
            "missed_count": 3,
            "correct_percent": 0.0
          },
          {
            "id": "wetter",
            "label": "Wetter",
            "definition": "5 mm or more in six hours",
            "observed_count": 6,
            "correct_count": 0,
            "missed_count": 6,
            "correct_percent": 0.0
          }
        ]
      }
    ],
    "status": "post_fix_exploratory",
    "role": "additional_context",
    "stations": [
      "Payerne",
      "Z\u00fcrich/Kloten",
      "Bern/Zollikofen"
    ]
  }
}
