{
  "completed_at": "2026-10-26T22:42:07.810317+00:00",
  "reference_period": "2016–2025",
  "data_json_sha256": "d08d5cd4541959c5c1687c6371ef69827237cf76d6cbae0d1b582b3e980e0d0f",
  "scope": "All 80 existing spots, six practical fields per spot, all existing citations and identity references; full wind refresh plus independent numerical reconstruction.",
  "profile_summary": {
    "spots": 80,
    "topics": 480,
    "supported_topics": 328,
    "original_citation_urls": 145,
    "original_citation_urls_attempted": 145,
    "total_source_urls_attempted": 253,
    "changed_topic_fields": 277,
    "changed_profiles": 73,
    "distinct_identity_reference_urls": 35,
    "identity_reference_urls_attempted": 35
  },
  "profile_evidence_file": "profile-audit.json",
  "wind_refresh": {
    "status": "complete",
    "spot_count": 80,
    "hourly_records": 7017600,
    "earliest_retrieval": "2026-10-26T22:22:38.644714+00:00",
    "latest_retrieval": "2026-10-26T22:38:27.438644+00:00",
    "source": "ERA5 via Open-Meteo; regional reanalysis, not local station readings",
    "numerical_wind_statistics_changed_spots": 0,
    "receipts": [
      {
        "id": "tarifa",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=36.05&longitude=-5.64&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:22:38.644714+00:00",
        "sha256": "61cf313f75c8ed2145f798cb15ba57f4e69742b790fcc85086672b9817068fc0"
      },
      {
        "id": "el-medano",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=28.046&longitude=-16.542&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:22:50.201993+00:00",
        "sha256": "3c74852e5eda9ec390b2196097500278626cfe298bab947a85fb0304d299ab60"
      },
      {
        "id": "sotavento",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=28.108&longitude=-14.254&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:23:01.772557+00:00",
        "sha256": "0bbeaf55a07e5bd91cfb4d1fe6464de7952b1e81447ef49b3b82e9c5d902ad9f"
      },
      {
        "id": "corralejo",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=28.716&longitude=-13.837&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:23:15.761899+00:00",
        "sha256": "ea74b4c817da9ffbdd24535949cc436de18417b681a6c1a1549cccf9a61a98dc"
      },
      {
        "id": "famara",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=29.113&longitude=-13.566&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:23:26.079921+00:00",
        "sha256": "32d63f3bda8e6de6568ba4007314d7971514253b6bc556e7b27b12076c86cd66"
      },
      {
        "id": "guincho",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=38.733&longitude=-9.474&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:23:38.065986+00:00",
        "sha256": "34045ee67e05c0926b92a4a35697231bdb23acf18a20162cadc6e87460f8c7db"
      },
      {
        "id": "viana",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=41.6811667&longitude=-8.8321667&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:30:37.200654+00:00",
        "sha256": "566a291657e051fb1879c52b04ae1773f0dcc4563ab46c4be473adafa49514ba"
      },
      {
        "id": "peniche",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=39.376&longitude=-9.336&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:24:07.396721+00:00",
        "sha256": "a421f094d5f4daefe9b638eeeb3876dc1d927b65dc84029582445525be4c7394"
      },
      {
        "id": "leucate",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=42.933&longitude=3.063&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:24:15.188537+00:00",
        "sha256": "456c4a073af3b368fe459b2adb1f3d4c7ffb7d9c9e3ac41145bd7ecb11e48df5"
      },
      {
        "id": "beauduc",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=43.348&longitude=4.579&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:24:26.405999+00:00",
        "sha256": "1f918b0563b40809025c03311910c60b6648ec4c7e4c6e4cb9ec8013427190f4"
      },
      {
        "id": "hyeres",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=43.063&longitude=6.125&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:24:39.446519+00:00",
        "sha256": "96dc0f22552482e263b455ab93e94a61ad984d598aa8efe1dc71f4449efa0975"
      },
      {
        "id": "bonifacio",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=41.439&longitude=9.087&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:24:50.591189+00:00",
        "sha256": "a3cf00f71bfdfee80b4be3752ad01947209e4e97d81f1c63c08f8e4559fd584f"
      },
      {
        "id": "porto-pollo",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=41.194&longitude=9.32&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:25:04.871916+00:00",
        "sha256": "f61b77d32e1964925da3c756de131a694d88a59b89dc5d898f592fab829f5e0a"
      },
      {
        "id": "punta-trettu",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=39.102&longitude=8.433&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:25:15.940965+00:00",
        "sha256": "4d98660fd7f7221fd78ea45b6afa5350a140ea8738725202175818b45928a742"
      },
      {
        "id": "lo-stagnone",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=37.876&longitude=12.472&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:25:34.727558+00:00",
        "sha256": "2b2960dbe2f21b4930b247ddc4c01eb3cc265e047f1f509c6950443efa2ee87d"
      },
      {
        "id": "gizzeria",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=38.939&longitude=16.214&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:25:40.740783+00:00",
        "sha256": "6d7161ab4dab46d801f2c027bcc7c41daed4f229a0d61f04b36be00cd8bf1a06"
      },
      {
        "id": "garda",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=45.757&longitude=10.75&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:25:53.072362+00:00",
        "sha256": "818957dbaf1bc297dce09793a79a98ca8d8afcd6e201cdb604437bf7ed736e1b"
      },
      {
        "id": "naxos",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=37.028&longitude=25.371&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:26:05.173633+00:00",
        "sha256": "622d576c892cca490eec7b2de79b2906e8ed0e8a74dc219f2bb0f25f47836492"
      },
      {
        "id": "wissant",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=50.888&longitude=1.661&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:26:15.971575+00:00",
        "sha256": "7568fe1db107190c8ed0cda79b720a9363a76e4ba75a90fb426529be53dcb414"
      },
      {
        "id": "prasonisi",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=35.887&longitude=27.774&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:26:28.483250+00:00",
        "sha256": "ac083abbc7515097701289a09ad957742b5990fa646007403f2aa0dff92ea406"
      },
      {
        "id": "karpathos",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=35.43&longitude=27.147&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:26:40.705584+00:00",
        "sha256": "9f88fc55660b705618fa4e9152edd38f6e3e10c1cfce04cfbd8f309582691a5a"
      },
      {
        "id": "lefkada",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=38.844&longitude=20.676&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:26:53.139848+00:00",
        "sha256": "d7dd7a952c099657e7fb96b5d750362be306619ab8631e09f47edd1aee085aec"
      },
      {
        "id": "lemnos",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=39.893&longitude=25.356&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:27:04.798128+00:00",
        "sha256": "0f9f40376fb14499d543fa7eb0cf7efaf2544429044b09935d482c82f689de6e"
      },
      {
        "id": "klitmoller",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=57.042&longitude=8.486&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:27:16.753550+00:00",
        "sha256": "d7606299d57870462e4fcee901fca66abeac819e876ceb455c0bd02e046f4cd3"
      },
      {
        "id": "hvide-sande",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=56.003&longitude=8.119&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:27:27.431980+00:00",
        "sha256": "d1146cc6dbd8b8c99113d5e1b32c9691429b2ddaf68f1c3f8222ef3a6ffe6b35"
      },
      {
        "id": "brouwersdam",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=51.768&longitude=3.86&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:27:40.786234+00:00",
        "sha256": "72158866adb6dcd34b363a964acea70708d4d7fca01d1058474ec85a8743678b"
      },
      {
        "id": "zandvoort",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=52.373&longitude=4.52&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:27:52.509613+00:00",
        "sha256": "0f560bcec3f4c6dc473638dd3b7e327b8dc1a230e46508a2a5c0a55db48cbe77"
      },
      {
        "id": "st-peter-ording",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=54.321&longitude=8.588&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:28:04.996786+00:00",
        "sha256": "96d05860b9c608fd8bf9936f42521555967afc8ed4fd80498be84cf401fc48ab"
      },
      {
        "id": "sylt",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=54.91&longitude=8.294&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:28:17.626905+00:00",
        "sha256": "3beaa29310eb9276505b11a9845db5ec5d50f241560aaa14c91f8387b3ef9cf2"
      },
      {
        "id": "brandon-bay",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=52.285&longitude=-10.036&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:28:27.860603+00:00",
        "sha256": "9cdd8d96d15068e06ce45e6ff4f5ebb76b88a7e452daaad1f0ca2f01e3bffe8c"
      },
      {
        "id": "achill",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=53.973&longitude=-10.08&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:28:39.870334+00:00",
        "sha256": "7e7556189a07326654738c67423646ceb3b7a993b616f2d9587d05ef8764bab5"
      },
      {
        "id": "rhosneigr",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=53.226&longitude=-4.523&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:28:52.514369+00:00",
        "sha256": "954465ea306211137458dc7d9e55ac9a50bf74381c83f2cdfb335ecdd25f5aa1"
      },
      {
        "id": "hayling",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=50.783&longitude=-0.982&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:29:04.691296+00:00",
        "sha256": "0083ad88dbd771df00f785cab377b6eb2feb67865798d06909962bc794cdc1cc"
      },
      {
        "id": "hel",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=54.759&longitude=18.51&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:29:15.897263+00:00",
        "sha256": "779f7e794036d4864efa1d6c2ff587d2303d9e868379a709a781a60d23ac03c8"
      },
      {
        "id": "bozcaada",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=39.8431&longitude=26.0315&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:29:31.593420+00:00",
        "sha256": "157667b00208bdb531fe3a5fe9aad63d22194d8a4a6372f2239893343c196f98"
      },
      {
        "id": "paros",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=37.0301&longitude=25.0975&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:30:01.219020+00:00",
        "sha256": "c8ff386fbd04ba2cd6213619357349ccbe5192e2cdbe183b1ba337d84e3011cc"
      },
      {
        "id": "el-gouna",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=27.395&longitude=33.681&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:30:02.650385+00:00",
        "sha256": "1bb77e03a49ae77bbfab9f9baa45740a7e7551d0443fc73cd39b48957c2c5894"
      },
      {
        "id": "la-ventana",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=24.047&longitude=-109.986&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:30:09.584481+00:00",
        "sha256": "421820388cd2017679ffb4731101299f4f1987dcfc13f1baf82704ddcc38a179"
      },
      {
        "id": "cabarete",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=19.759&longitude=-70.418&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:30:17.584559+00:00",
        "sha256": "c9b0d061060323fe366d40985fc90297070e8d61f75d991904c31e3595ed8bae"
      },
      {
        "id": "cumbuco",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-3.625&longitude=-38.726&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:30:29.309708+00:00",
        "sha256": "2d0b69b812f0886c3c72c4cdba8db4743119a5ae3df47861414e45e69d5807ff"
      },
      {
        "id": "paracas",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-13.833&longitude=-76.254&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:30:37.781541+00:00",
        "sha256": "fd955806d949e6eb027810363a203b3b8d2982292b02362b76a4e2c5de18225e"
      },
      {
        "id": "safety-bay",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-32.302&longitude=115.717&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:30:51.171548+00:00",
        "sha256": "3bee39ebf8bb08f7b4e1057f92d6181d9cd5c202056a590b21dc6eb0cdfaa41e"
      },
      {
        "id": "lancelin",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-31.024&longitude=115.328&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:31:03.798268+00:00",
        "sha256": "625ab7a8189946b88f5ac451359739e75a2249b4f9a6442e72c84a86e78e4756"
      },
      {
        "id": "mui-ne",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=10.943867&longitude=108.196866&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:30:58.490719+00:00",
        "sha256": "79217d0649b8df7e2d50a63a4ea18f4e47012b542bd4ab0c99487dab4ea6fa78"
      },
      {
        "id": "dakhla",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=23.899&longitude=-15.788&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:31:26.087238+00:00",
        "sha256": "f80329a11e02b1efcc1fb1fef01fcf81a5e042e5210815e3dfd23986548a939b"
      },
      {
        "id": "langebaan",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-33.093&longitude=18.033&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:31:41.423156+00:00",
        "sha256": "0a4b842d7c57e41efd5e7d24ac9c6e327600ab97f47110f9ce97151dd2a0f806"
      },
      {
        "id": "sakalava",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-12.267&longitude=49.397&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:31:53.152940+00:00",
        "sha256": "22e170c5178515094297a5fd1b82735eb8255fe0b3270e5c999061b02183269e"
      },
      {
        "id": "babaomby",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-12.146&longitude=49.346&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:32:04.111170+00:00",
        "sha256": "085132d711173d67b65d47cf9e7ec444a105f4867879e4e55eaf4c2a30072bf2"
      },
      {
        "id": "anakao",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-23.654&longitude=43.647&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:32:17.598365+00:00",
        "sha256": "614e75db73de17fc550a51738c9a763cdc4169a29e7062a17e6aed835cbeba74"
      },
      {
        "id": "le-morne",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-20.463&longitude=57.313&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:32:29.247624+00:00",
        "sha256": "fad9746cf8c3757afd2ef1aa08790c8233fb9d264b709ba72c33e8af3f4e04fd"
      },
      {
        "id": "bel-ombre",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-20.509&longitude=57.409&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:32:41.238132+00:00",
        "sha256": "cbc2d8d518306dcff0461e318ac6288d1a50072aaabbdd909eea2fd73754183c"
      },
      {
        "id": "pointe-desny",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-20.427&longitude=57.725&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:32:53.273659+00:00",
        "sha256": "28c764724597e0f3a34f78b8377fc49aaa86ec0d81df119b66268dbb033a7426"
      },
      {
        "id": "paje",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-6.267&longitude=39.536&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:33:05.256786+00:00",
        "sha256": "824ef602f20c5e4337f9449ba62ad636fa71dcebc36b321ef232e0f86612c85b"
      },
      {
        "id": "jambiani",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-6.321&longitude=39.549&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:33:17.413430+00:00",
        "sha256": "d3b50e62437e6cd7478d12b105f2ad5e23d0d13a396c0c6bdf7e0c9cf5a1599e"
      },
      {
        "id": "kiwengwa",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-5.99&longitude=39.377&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:33:28.612830+00:00",
        "sha256": "442d8cad9a87c740366df271e144f4a7aec51377e5ee9e3c6c816fb898e11fc3"
      },
      {
        "id": "sal-kite-beach",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=16.613&longitude=-22.897&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:33:41.551660+00:00",
        "sha256": "2a75085b7e83c4f9138a2c7bf5c0c63fb6a35f2c6b932d5f0a0503421f1bcde3"
      },
      {
        "id": "boracay",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=11.967&longitude=121.929&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:33:53.520859+00:00",
        "sha256": "177e7c84333fec1c74e76c356d91a44455b94f6db6192e1c3c7b55d9e8cb8a49"
      },
      {
        "id": "pagudpud",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=18.633059&longitude=120.79972&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:31:18.834302+00:00",
        "sha256": "32cba35bdb84ffdf07987f39c91e42a2c1183212f8ca5111eac14d0e0400fbf7"
      },
      {
        "id": "kalpitiya",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=8.241&longitude=79.738&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:34:17.902779+00:00",
        "sha256": "3a3e89e943637af9675b1a6902544e1e57186bf94808ad47bfc53bde0af238de"
      },
      {
        "id": "kappalady",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=8.127&longitude=79.71&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:34:29.169017+00:00",
        "sha256": "59391a6a486a5b17bfc4a70a41724f6470eed2317e22ed1187e29b79b731b7ca"
      },
      {
        "id": "aruba-boca-grandi",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=12.439&longitude=-69.875&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:34:41.416206+00:00",
        "sha256": "957bcf10496cef55558041e71f2503621ac4745a1b3dea16d105e4acb2224471"
      },
      {
        "id": "aruba-huts",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=12.588&longitude=-70.044&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:34:50.080925+00:00",
        "sha256": "9deb6cbea1fc740ecbf601bbe0d6fc18a197d60049507005c470e4e9506ed3e5"
      },
      {
        "id": "buen-hombre",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=19.86&longitude=-71.415&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:35:05.351359+00:00",
        "sha256": "d66f8944d5be7ccce5830f41054f3b2877abddcfde36a1343ae49756b1493766"
      },
      {
        "id": "las-terrenas",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=19.324&longitude=-69.528&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:35:17.455231+00:00",
        "sha256": "14250be5459a858da18728c87db98ce423ef9973f899309f7a14e3163156514a"
      },
      {
        "id": "cape-hatteras",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=35.35&longitude=-75.514&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:35:27.568374+00:00",
        "sha256": "a7b437db7ea93d9970fa898a03fd18ff8c9ced8b958270d4272ea695789ee8d9"
      },
      {
        "id": "maui",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=20.898&longitude=-156.431&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:35:39.792304+00:00",
        "sha256": "5203a326323a39c731f9f4d02266253f2075b1832ac1169e5508b54fd8d2ad16"
      },
      {
        "id": "south-padre",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=26.172&longitude=-97.176&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:35:51.685666+00:00",
        "sha256": "3ae733c41c94593bd72782a56a8eca21ab2b8e512d265d1fa3dc1595f56e4273"
      },
      {
        "id": "prea",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.81&longitude=-40.412&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:36:03.867301+00:00",
        "sha256": "2e72fcd530eb21a48465251b16a3fff120721d58a2603b0fb5028086321f3f46"
      },
      {
        "id": "tatajuba",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.846&longitude=-40.695&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:36:15.452938+00:00",
        "sha256": "270bd7aa5d31e7a3e4793249f3ede075fd060e4e049c0c772c644b010cc0dca4"
      },
      {
        "id": "ilha-guajiru",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.84&longitude=-39.879&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:36:27.716312+00:00",
        "sha256": "9f5902b809f4c40560abacb2d08108dae552d711af47d6882c5c32083f28f511"
      },
      {
        "id": "atins",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.57&longitude=-42.742&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:36:39.715752+00:00",
        "sha256": "c1663a76ea8d0ec7a5b9727b88614b9c00aa44af9586eb3dc52243c582e3e452"
      },
      {
        "id": "barra-grande-pi",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.906&longitude=-41.407&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:36:51.682160+00:00",
        "sha256": "23ed93e3b1b432699ffad267ef46f288c8c0f2083be3b0643e6caab2fb5fe975"
      },
      {
        "id": "macapa",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.909&longitude=-41.448&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:37:03.662829+00:00",
        "sha256": "fb1891d97a56458cf1fe887bc52c0e35bbf5b911d86a74b7d349141e872e71dd"
      },
      {
        "id": "paracuru",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-3.399&longitude=-39.015&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:37:15.622449+00:00",
        "sha256": "6b47ba4ae292f1ccfe836b7bc95f454c54a38b4160fd9cd9d5aba1d059a0b7a9"
      },
      {
        "id": "taiba",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-3.509&longitude=-38.891&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:37:27.508972+00:00",
        "sha256": "5ed4001c174667207cf9f234875e2b01c2bfd4a83db421721e184c76c4c92416"
      },
      {
        "id": "mamaia",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=44.264&longitude=28.622&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:37:39.866726+00:00",
        "sha256": "6a8367d502e42d49d748fd76cf16722ea1ea37e0221dc34551fca07975960265"
      },
      {
        "id": "ulcinj",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=41.895&longitude=19.307&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:37:51.685553+00:00",
        "sha256": "5a6a124c91d05d0eb27dadd01ca5a3144105a19b15821331e1b7691d0f840b2a"
      },
      {
        "id": "st-kilda",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-37.864&longitude=144.967&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:38:04.148392+00:00",
        "sha256": "d6823709b80fda7b5cdd2226f567fcc17dafaad84f964370180104295d8356cc"
      },
      {
        "id": "yorkeys-knob",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-16.82&longitude=145.727&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:38:16.249263+00:00",
        "sha256": "8fad4e544d606851b3479b0da6a3eda254300ca3b6ddab469f27702ffe8e2fd8"
      },
      {
        "id": "tauranga",
        "url": "https://archive-api.open-meteo.com/v1/archive?latitude=-37.664&longitude=176.142&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "retrieved_at": "2026-10-26T22:38:27.438644+00:00",
        "sha256": "54c32c62ba25fa25af9752cd86587b03fa5a5d423cceb8e7725afbe66cdc6b36"
      }
    ]
  },
  "temperature_review": {
    "scope": "80 air and79 marine-water series independently verified. Only the three corrected-coordinate locations were re-downloaded in this review; other inputs were retained from their archives. Garda has no marine SST estimate.",
    "fresh_retrieval_spot_ids": [
      "viana",
      "mui-ne",
      "pagudpud"
    ],
    "numerical_changes": [
      {
        "id": "mui-ne",
        "changes": {
          "water": {
            "previous_annual": 27.576448953736655,
            "updated_annual": 27.676495374212973
          }
        }
      }
    ]
  },
  "coordinate_corrections": [
    {
      "id": "viana",
      "name": "Viana do Castelo · Cabedelo",
      "latitude": 41.6811667,
      "longitude": -8.8321667,
      "checked_at": "2026-10-26T22:30:37.200654+00:00",
      "previous_lat": 41.687,
      "previous_lon": -8.832,
      "source": "https://www.feelviana.com/en/water-center",
      "basis": "Operator GPS link: 41°40′52.2″N 8°49′55.8″W; Cabedelo operator reference, not a designated launch."
    },
    {
      "id": "mui-ne",
      "name": "Mũi Né · Ham Tien",
      "latitude": 10.943867,
      "longitude": 108.196866,
      "checked_at": "2026-10-26T22:30:58.490719+00:00",
      "previous_lat": 10.941,
      "previous_lon": 108.284,
      "source": "https://www.sailingclubmuine.com/services/",
      "basis": "Operator embedded map identifies Sailing Club at 24 Nguyen Dinh Chieu, Ham Tien; previous pin was about 9.5 km east."
    },
    {
      "id": "pagudpud",
      "name": "Pagudpud · Kingfisher",
      "latitude": 18.633059,
      "longitude": 120.79972,
      "checked_at": "2026-10-26T22:31:18.834302+00:00",
      "previous_lat": 18.635,
      "previous_lon": 120.837,
      "source": "https://www.ikointl.com/destinations/kitesurfing-philippines/spots/kingfisher-pagudpud",
      "basis": "Exact IKO spot map detailLat/detailLon; previous pin was about 3.9 km east."
    }
  ],
  "station_refresh": {
    "retrievals": [
      {
        "file": "dwd-st-peter.zip",
        "url": "https://opendata.dwd.de/climate_environment/CDC/observations_germany/climate/hourly/wind/historical/stundenwerte_FF_04393_19690101_20251231_hist.zip",
        "retrieved_at": "2026-10-26T22:24:08.666546+00:00",
        "sha256": "30b09f4211d28be4eb48eeae90f811f4809412d8c9b8c9e7b40159ae7e49fd7c",
        "status": "downloaded"
      },
      {
        "file": "knmi-ijmuiden-2011-2020.zip",
        "url": "https://cdn.knmi.nl/knmi/map/page/klimatologie/gegevens/uurgegevens/uurgeg_225_2011-2020.zip",
        "retrieved_at": "2026-10-26T22:24:13.357644+00:00",
        "sha256": "43ff33c8f0f5053be1b42a764effc9a2f762d980b7c29957db352ffe37f9af2a",
        "status": "downloaded"
      },
      {
        "file": "knmi-ijmuiden-2021-2030.zip",
        "url": "https://cdn.knmi.nl/knmi/map/page/klimatologie/gegevens/uurgegevens/uurgeg_225_2021-2030.zip",
        "retrieved_at": "2026-10-26T22:24:16.963858+00:00",
        "sha256": "2b2a4d16e85722d9bcd7193935f07046d92faca60c956c6777d1b948804ae7d0",
        "status": "downloaded"
      }
    ],
    "verified_at": "2026-10-26T22:31:11.839623+00:00",
    "role": "Independent comparisons only; no station observations blended into ranking."
  },
  "wind_validation": {
    "audited_at": "2026-10-26T22:40:43.419366+00:00",
    "input_data_sha256": "d08d5cd4541959c5c1687c6371ef69827237cf76d6cbae0d1b582b3e980e0d0f",
    "independent_method": "Recomputed good adjacent hourly edges, grouped run lengths, all local-date eligibility and independent math.fsum means directly from raw ZIP responses; did not import production calculation code.",
    "spot_count": 80,
    "passing_spots": 80,
    "failing_spots": 0,
    "hourly_records": 7017600,
    "windguru_station_values_used": false,
    "spots": [
      {
        "id": "tarifa",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44363,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 11.3,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=36.05&longitude=-5.64&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "el-medano",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44735,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 6.6,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=28.046&longitude=-16.542&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 2,
        "errors": []
      },
      {
        "id": "sotavento",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44272,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 12.0,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=28.108&longitude=-14.254&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 2,
        "errors": []
      },
      {
        "id": "corralejo",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44348,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 9.3,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=28.716&longitude=-13.837&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "famara",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44343,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 14.1,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=29.113&longitude=-13.566&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "guincho",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44747,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 2.9,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=38.733&longitude=-9.474&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "viana",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44742,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 10.3,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=41.6811667&longitude=-8.8321667&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "peniche",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44774,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 15.6,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=39.376&longitude=-9.336&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "leucate",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44521,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 9.0,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=42.933&longitude=3.063&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "beauduc",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44542,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 12.6,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=43.348&longitude=4.579&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "hyeres",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44926,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 12.3,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=43.063&longitude=6.125&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 1,
        "errors": []
      },
      {
        "id": "bonifacio",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44692,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 9.9,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=41.439&longitude=9.087&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "porto-pollo",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44513,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 8.5,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=41.194&longitude=9.32&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "punta-trettu",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44411,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 12.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=39.102&longitude=8.433&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "lo-stagnone",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44508,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 14.0,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=37.876&longitude=12.472&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 1,
        "errors": []
      },
      {
        "id": "gizzeria",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44548,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 7.5,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=38.939&longitude=16.214&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "garda",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44923,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 0.8,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=45.757&longitude=10.75&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "naxos",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44544,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 11.2,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=37.028&longitude=25.371&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "wissant",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 45046,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 13.9,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=50.888&longitude=1.661&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "prasonisi",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44537,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 12.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=35.887&longitude=27.774&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 2,
        "errors": []
      },
      {
        "id": "karpathos",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44550,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 12.1,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=35.43&longitude=27.147&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 1,
        "errors": []
      },
      {
        "id": "lefkada",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44715,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 12.3,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=38.844&longitude=20.676&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 1,
        "errors": []
      },
      {
        "id": "lemnos",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44484,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 14.9,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=39.893&longitude=25.356&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "klitmoller",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 45089,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 4.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=57.042&longitude=8.486&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "hvide-sande",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 45287,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 7.4,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=56.003&longitude=8.119&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "brouwersdam",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44949,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 7.8,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=51.768&longitude=3.86&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 2,
        "errors": []
      },
      {
        "id": "zandvoort",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44937,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 13.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=52.373&longitude=4.52&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "st-peter-ording",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 45181,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 9.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=54.321&longitude=8.588&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "sylt",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 45239,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 10.4,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=54.91&longitude=8.294&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "brandon-bay",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44890,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 4.6,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=52.285&longitude=-10.036&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "achill",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 45072,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 6.0,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=53.973&longitude=-10.08&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "rhosneigr",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44942,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 3.1,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=53.226&longitude=-4.523&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "hayling",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44993,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 3.9,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=50.783&longitude=-0.982&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "hel",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44855,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 1.2,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=54.759&longitude=18.51&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 1,
        "errors": []
      },
      {
        "id": "bozcaada",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44491,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3652,
          "23": 1
        },
        "grid_distance_km": 10.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=39.8431&longitude=26.0315&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "paros",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44429,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 9.3,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=37.0301&longitude=25.0975&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 1,
        "errors": []
      },
      {
        "id": "el-gouna",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44352,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3647,
          "23": 3,
          "25": 3
        },
        "grid_distance_km": 13.5,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=27.395&longitude=33.681&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "la-ventana",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44451,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3639,
          "23": 7,
          "25": 7
        },
        "grid_distance_km": 5.4,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=24.047&longitude=-109.986&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "cabarete",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44266,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 8.6,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=19.759&longitude=-70.418&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "cumbuco",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 43836,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 14.2,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-3.625&longitude=-38.726&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "paracas",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 43944,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 9.2,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-13.833&longitude=-76.254&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "safety-bay",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 43991,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 6.6,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-32.302&longitude=115.717&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 1,
        "errors": []
      },
      {
        "id": "lancelin",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44016,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 7.9,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-31.024&longitude=115.328&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 2,
        "errors": []
      },
      {
        "id": "mui-ne",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44243,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 8.5,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=10.943867&longitude=108.196866&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "dakhla",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44344,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3628,
          "23": 13,
          "25": 12
        },
        "grid_distance_km": 11.9,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=23.899&longitude=-15.788&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "langebaan",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44209,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 10.8,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-33.093&longitude=18.033&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "sakalava",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44210,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 11.4,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-12.267&longitude=49.397&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "babaomby",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44182,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 15.6,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-12.146&longitude=49.346&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "anakao",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 43821,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 15.0,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-23.654&longitude=43.647&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "le-morne",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 43949,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 7.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-20.463&longitude=57.313&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "bel-ombre",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 43926,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 9.5,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-20.509&longitude=57.409&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "pointe-desny",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 43902,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 8.5,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-20.427&longitude=57.725&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "paje",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44366,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 4.4,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-6.267&longitude=39.536&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "jambiani",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44366,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 9.6,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-6.321&longitude=39.549&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "kiwengwa",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44353,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 13.6,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-5.99&longitude=39.377&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "sal-kite-beach",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44094,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 16.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=16.613&longitude=-22.897&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "boracay",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44823,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 8.6,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=11.967&longitude=121.929&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "pagudpud",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44543,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 14.0,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=18.633059&longitude=120.79972&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "kalpitiya",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44097,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 1.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=8.241&longitude=79.738&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "kappalady",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44097,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 14.4,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=8.127&longitude=79.71&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "aruba-boca-grandi",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44131,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 15.2,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=12.439&longitude=-69.875&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "aruba-huts",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44141,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 10.9,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=12.588&longitude=-70.044&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "buen-hombre",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44345,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 15.1,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=19.86&longitude=-71.415&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "las-terrenas",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44148,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 8.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=19.324&longitude=-69.528&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "cape-hatteras",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44560,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 11.2,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=35.35&longitude=-75.514&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "maui",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44328,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 13.4,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=20.898&longitude=-156.431&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "south-padre",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44361,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 11.4,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=26.172&longitude=-97.176&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "prea",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44219,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 11.8,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.81&longitude=-40.412&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 2,
        "errors": []
      },
      {
        "id": "tatajuba",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44294,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 12.3,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.846&longitude=-40.695&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 1,
        "errors": []
      },
      {
        "id": "ilha-guajiru",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44009,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 16.8,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.84&longitude=-39.879&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "atins",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44713,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 7.8,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.57&longitude=-42.742&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "barra-grande-pi",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44484,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 14.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.906&longitude=-41.407&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "macapa",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44484,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 11.7,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-2.909&longitude=-41.448&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "paracuru",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 43836,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 11.4,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-3.399&longitude=-39.015&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "taiba",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 43836,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 12.1,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-3.509&longitude=-38.891&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "mamaia",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44465,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 9.8,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=44.264&longitude=28.622&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "ulcinj",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44554,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "23": 10,
          "25": 10
        },
        "grid_distance_km": 12.6,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=41.895&longitude=19.307&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 1,
        "errors": []
      },
      {
        "id": "st-kilda",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44376,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "25": 10,
          "23": 10
        },
        "grid_distance_km": 13.0,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-37.864&longitude=144.967&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      },
      {
        "id": "yorkeys-knob",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44193,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3653
        },
        "grid_distance_km": 8.2,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-16.82&longitude=145.727&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 1,
        "errors": []
      },
      {
        "id": "tauranga",
        "status": "pass",
        "hourly_records": 87720,
        "local_days": 3653,
        "valid_daylight_hours": 44494,
        "missing_daylight_hours": 0,
        "local_day_hour_counts": {
          "24": 3633,
          "25": 10,
          "23": 10
        },
        "grid_distance_km": 13.5,
        "source_url": "https://archive-api.open-meteo.com/v1/archive?latitude=-37.664&longitude=176.142&start_date=2015-12-31&end_date=2026-01-01&hourly=wind_speed_10m%2Cis_day&wind_speed_unit=kn&models=era5&timezone=UTC&cell_selection=nearest&elevation=nan",
        "checks": [
          "raw SHA-256",
          "unit",
          "UTC hourly chronology",
          "value ranges",
          "API parameters",
          "grid metadata and distance",
          "full local dates including DST",
          "all archived daily eligibility rows",
          "all c5 c6 t5 t6 counts/means/probabilities/ranges/year totals",
          "all wind monthly and yearly means",
          "dated 2025 c5 c6 peaks"
        ],
        "cumulative_peak_differences": 0,
        "errors": []
      }
    ],
    "station_checks": [
      {
        "agency": "DWD",
        "id": "st-peter-ording",
        "status": "pass",
        "valid_days": 3629,
        "coverage": 0.993430057486997,
        "errors": [],
        "duplicate_conflicts": 0,
        "raw_file": "produkt_ff_stunde_19690101_20251231_04393.txt",
        "variable": "F",
        "unit": "m/s",
        "measurement": "hourly mean",
        "metadata": "10 m sensor; 54.3279 N, 8.6031 E; hourly UTC data for 2016–2025"
      },
      {
        "agency": "KNMI",
        "id": "zandvoort",
        "status": "pass",
        "valid_days": 3637,
        "coverage": 0.9956200383246646,
        "errors": [],
        "duplicate_conflicts": 0,
        "variable": "FF",
        "unit": "0.1 m/s",
        "measurement": "10-minute mean preceding end of hour; not FH hourly mean"
      }
    ],
    "station_parse_errors": [],
    "shared_grid_cells": {
      "-6.25,39.5": [
        "paje",
        "jambiani"
      ],
      "8.25,79.75": [
        "kalpitiya",
        "kappalady"
      ],
      "-3.0,-41.5": [
        "barra-grande-pi",
        "macapa"
      ],
      "-3.5,-39.0": [
        "paracuru",
        "taiba"
      ]
    },
    "methodological_limits": [
      "This validates reproducibility against archived inputs, not agreement with beach winds.",
      "ERA5 regional 0.25-degree reanalysis may miss local thermal, sea-breeze, terrain and launch effects.",
      "All displayed counts use a fixed 2016–2025 reference period; a refresh does not introduce 2026.",
      "Hourly sample endpoints cannot establish uninterrupted wind between observations.",
      "The six-hour rule requires seven qualifying hourly endpoints and five hours requires six; cumulative mode sums qualifying adjacent one-hour edges.",
      "Wind means include every valid daylight hourly sample, including below 15 kn; no gust observations are present.",
      "Peak-day panel is intentionally rendered only for consecutive mode; no cumulative-mode peak bug was observed.",
      "DWD is an hourly mean; KNMI FF a 10-minute mean before observation; station/model sensitivity checks compare different measurement sampling and exposure.",
      "Only two nearby-station sensitivity checks exist and do not validate all 80 destinations."
    ],
    "download_issues": [],
    "dataset_metadata_errors": [],
    "validation_network_access": "The independent validation itself reads packaged inputs without network access. Fresh retrieval is documented separately below."
  },
  "temperature_validation": {
    "audited_at": "2026-10-26T22:39:54.990505+00:00",
    "input_data_sha256": "d08d5cd4541959c5c1687c6371ef69827237cf76d6cbae0d1b582b3e980e0d0f",
    "method": "Independent raw JSON and indexed DAP ASCII parsing, UTC dates, exact SHA checks, nearest complete 3x3 ocean cell selection, math.fsum daily/monthly day-weighted summaries; no production calculation imports.",
    "spot_count": 80,
    "passing_air_series": 80,
    "passing_water_series": 79,
    "air_records": 292240,
    "water_records": 9480,
    "spots": [
      {
        "id": "tarifa",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 35.875,
          "lon": -5.625,
          "distance_km": 19.5,
          "valid_candidates": 4
        },
        "errors": []
      },
      {
        "id": "el-medano",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 28.125,
          "lon": -16.625,
          "distance_km": 12.0,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "sotavento",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 28.125,
          "lon": -14.375,
          "distance_km": 12.0,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "corralejo",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 28.625,
          "lon": -13.875,
          "distance_km": 10.8,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "famara",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 29.125,
          "lon": -13.625,
          "distance_km": 5.9,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "guincho",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 38.625,
          "lon": -9.375,
          "distance_km": 14.8,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "viana",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 41.625,
          "lon": -8.875,
          "distance_km": 7.2,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "peniche",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 39.375,
          "lon": -9.375,
          "distance_km": 3.4,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "leucate",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 42.875,
          "lon": 3.125,
          "distance_km": 8.2,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "beauduc",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 43.375,
          "lon": 4.625,
          "distance_km": 4.8,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "hyeres",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 43.125,
          "lon": 6.125,
          "distance_km": 6.9,
          "valid_candidates": 5
        },
        "errors": []
      },
      {
        "id": "bonifacio",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 41.375,
          "lon": 9.125,
          "distance_km": 7.8,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "porto-pollo",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 41.125,
          "lon": 9.125,
          "distance_km": 18.0,
          "valid_candidates": 5
        },
        "errors": []
      },
      {
        "id": "punta-trettu",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 39.125,
          "lon": 8.375,
          "distance_km": 5.6,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "lo-stagnone",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 37.875,
          "lon": 12.375,
          "distance_km": 8.5,
          "valid_candidates": 8
        },
        "errors": []
      },
      {
        "id": "gizzeria",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 38.875,
          "lon": 16.125,
          "distance_km": 10.5,
          "valid_candidates": 5
        },
        "errors": []
      },
      {
        "id": "garda",
        "air_status": "pass",
        "water_status": "not_applicable_lake",
        "air_daily_records": 3653,
        "water_monthly_records": 0,
        "water_cell": null,
        "errors": []
      },
      {
        "id": "naxos",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 37.125,
          "lon": 25.375,
          "distance_km": 10.8,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "wissant",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 50.875,
          "lon": 1.625,
          "distance_km": 2.9,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "prasonisi",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 35.875,
          "lon": 27.875,
          "distance_km": 9.2,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "karpathos",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 35.375,
          "lon": 27.125,
          "distance_km": 6.4,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "lefkada",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 38.875,
          "lon": 20.625,
          "distance_km": 5.6,
          "valid_candidates": 5
        },
        "errors": []
      },
      {
        "id": "lemnos",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 39.875,
          "lon": 25.375,
          "distance_km": 2.6,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "klitmoller",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 57.125,
          "lon": 8.375,
          "distance_km": 11.4,
          "valid_candidates": 8
        },
        "errors": []
      },
      {
        "id": "hvide-sande",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 56.125,
          "lon": 8.125,
          "distance_km": 13.6,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "brouwersdam",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 51.875,
          "lon": 3.875,
          "distance_km": 11.9,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "zandvoort",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 52.375,
          "lon": 4.375,
          "distance_km": 9.8,
          "valid_candidates": 4
        },
        "errors": []
      },
      {
        "id": "st-peter-ording",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 54.375,
          "lon": 8.625,
          "distance_km": 6.5,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "sylt",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 54.875,
          "lon": 8.375,
          "distance_km": 6.5,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "brandon-bay",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 52.375,
          "lon": -10.125,
          "distance_km": 11.7,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "achill",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 53.875,
          "lon": -10.125,
          "distance_km": 11.3,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "rhosneigr",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 53.125,
          "lon": -4.625,
          "distance_km": 13.1,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "hayling",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 50.625,
          "lon": -0.875,
          "distance_km": 19.1,
          "valid_candidates": 3
        },
        "errors": []
      },
      {
        "id": "hel",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 54.875,
          "lon": 18.625,
          "distance_km": 14.9,
          "valid_candidates": 8
        },
        "errors": []
      },
      {
        "id": "bozcaada",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 39.875,
          "lon": 26.125,
          "distance_km": 8.7,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "paros",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 37.125,
          "lon": 25.125,
          "distance_km": 10.8,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "el-gouna",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 27.375,
          "lon": 33.875,
          "distance_km": 19.3,
          "valid_candidates": 4
        },
        "errors": []
      },
      {
        "id": "la-ventana",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 24.125,
          "lon": -109.875,
          "distance_km": 14.2,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "cabarete",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 19.875,
          "lon": -70.375,
          "distance_km": 13.7,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "cumbuco",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -3.625,
          "lon": -38.625,
          "distance_km": 11.2,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "paracas",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -13.875,
          "lon": -76.375,
          "distance_km": 13.9,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "safety-bay",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -32.375,
          "lon": 115.625,
          "distance_km": 11.9,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "lancelin",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -31.125,
          "lon": 115.375,
          "distance_km": 12.1,
          "valid_candidates": 5
        },
        "errors": []
      },
      {
        "id": "mui-ne",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 10.875,
          "lon": 108.125,
          "distance_km": 11.0,
          "valid_candidates": 5
        },
        "errors": []
      },
      {
        "id": "dakhla",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 23.875,
          "lon": -15.875,
          "distance_km": 9.2,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "langebaan",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -33.125,
          "lon": 17.875,
          "distance_km": 15.1,
          "valid_candidates": 4
        },
        "errors": []
      },
      {
        "id": "sakalava",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -12.125,
          "lon": 49.375,
          "distance_km": 16.0,
          "valid_candidates": 5
        },
        "errors": []
      },
      {
        "id": "babaomby",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -12.125,
          "lon": 49.375,
          "distance_km": 3.9,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "anakao",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -23.625,
          "lon": 43.625,
          "distance_km": 3.9,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "le-morne",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -20.375,
          "lon": 57.375,
          "distance_km": 11.7,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "bel-ombre",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -20.625,
          "lon": 57.375,
          "distance_km": 13.4,
          "valid_candidates": 8
        },
        "errors": []
      },
      {
        "id": "pointe-desny",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -20.375,
          "lon": 57.875,
          "distance_km": 16.7,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "paje",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -6.375,
          "lon": 39.625,
          "distance_km": 15.5,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "jambiani",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -6.375,
          "lon": 39.625,
          "distance_km": 10.3,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "kiwengwa",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -5.875,
          "lon": 39.375,
          "distance_km": 12.8,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "sal-kite-beach",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 16.625,
          "lon": -22.875,
          "distance_km": 2.7,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "boracay",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 11.875,
          "lon": 121.875,
          "distance_km": 11.8,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "pagudpud",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 18.625,
          "lon": 120.875,
          "distance_km": 8.0,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "kalpitiya",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 8.125,
          "lon": 79.625,
          "distance_km": 17.9,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "kappalady",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 8.125,
          "lon": 79.625,
          "distance_km": 9.4,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "aruba-boca-grandi",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 12.375,
          "lon": -69.875,
          "distance_km": 7.1,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "aruba-huts",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 12.625,
          "lon": -70.125,
          "distance_km": 9.7,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "buen-hombre",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 19.875,
          "lon": -71.375,
          "distance_km": 4.5,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "las-terrenas",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 19.375,
          "lon": -69.625,
          "distance_km": 11.7,
          "valid_candidates": 7
        },
        "errors": []
      },
      {
        "id": "cape-hatteras",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 35.375,
          "lon": -75.625,
          "distance_km": 10.4,
          "valid_candidates": 8
        },
        "errors": []
      },
      {
        "id": "maui",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 20.875,
          "lon": -156.375,
          "distance_km": 6.4,
          "valid_candidates": 9
        },
        "errors": []
      },
      {
        "id": "south-padre",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 26.125,
          "lon": -97.125,
          "distance_km": 7.3,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "prea",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -2.625,
          "lon": -40.375,
          "distance_km": 21.0,
          "valid_candidates": 3
        },
        "errors": []
      },
      {
        "id": "tatajuba",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -2.875,
          "lon": -40.875,
          "distance_km": 20.2,
          "valid_candidates": 4
        },
        "errors": []
      },
      {
        "id": "ilha-guajiru",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -2.875,
          "lon": -39.875,
          "distance_km": 3.9,
          "valid_candidates": 5
        },
        "errors": []
      },
      {
        "id": "atins",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -2.625,
          "lon": -42.625,
          "distance_km": 14.4,
          "valid_candidates": 5
        },
        "errors": []
      },
      {
        "id": "barra-grande-pi",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -2.875,
          "lon": -41.375,
          "distance_km": 5.0,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "macapa",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -2.875,
          "lon": -41.375,
          "distance_km": 8.9,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "paracuru",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -3.375,
          "lon": -39.125,
          "distance_km": 12.5,
          "valid_candidates": 5
        },
        "errors": []
      },
      {
        "id": "taiba",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -3.375,
          "lon": -38.875,
          "distance_km": 15.0,
          "valid_candidates": 4
        },
        "errors": []
      },
      {
        "id": "mamaia",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 44.375,
          "lon": 28.625,
          "distance_km": 12.3,
          "valid_candidates": 3
        },
        "errors": []
      },
      {
        "id": "ulcinj",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": 41.875,
          "lon": 19.375,
          "distance_km": 6.1,
          "valid_candidates": 6
        },
        "errors": []
      },
      {
        "id": "st-kilda",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -37.875,
          "lon": 144.875,
          "distance_km": 8.2,
          "valid_candidates": 3
        },
        "errors": []
      },
      {
        "id": "yorkeys-knob",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -16.875,
          "lon": 145.875,
          "distance_km": 16.9,
          "valid_candidates": 3
        },
        "errors": []
      },
      {
        "id": "tauranga",
        "air_status": "pass",
        "water_status": "pass",
        "air_daily_records": 3653,
        "water_monthly_records": 120,
        "water_cell": {
          "lat": -37.625,
          "lon": 176.125,
          "distance_km": 4.6,
          "valid_candidates": 4
        },
        "errors": []
      }
    ],
    "download_issues": [],
    "provenance_gaps": [],
    "limits": [
      "This is archived-input reproducibility verification, not fresh data retrieval.",
      "Air temperatures are24-hour UTC daily ERA5 means, not riding-hour or local-day temperatures.",
      "NOAA water values are nearby regional marine SST estimates, not direct lagoon/beach measurements; no marine estimate is used for Lake Garda.",
      "NOAA ASCII response does not embed variable unit attributes; Celsius attribution follows the named OISST product, not an attribute independently present in this file.",
      "This check does not validate whether observations represent shallow or enclosed water temperatures."
    ],
    "validation_network_access": "The independent validation itself reads packaged inputs without network access. Fresh retrieval is documented separately below."
  },
  "weather_source_reviews": [
    {
      "url": "https://open-meteo.com/en/docs/historical-weather-api",
      "status": "read",
      "note": "ERA5 parameters, units, instantaneous hourly samples, UTC timezone and nearest-cell behavior checked.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://cds.climate.copernicus.eu/datasets/reanalysis-era5-single-levels?tab=overview",
      "status": "read",
      "note": "ERA5 global hourly reanalysis and quarter-degree grid confirmed.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://www.ncei.noaa.gov/products/optimum-interpolation-sst",
      "status": "read",
      "note": "OISST v2.1 quarter-degree SST analysis confirmed.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://psl.noaa.gov/data/gridded/data.noaa.oisst.v2.highres.html",
      "status": "partial",
      "note": "PSL attribution page readable; data description did not render fully. NCEI product page and archived raw data checked separately.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://www.windguru.cz/archive.php",
      "status": "javascript_shell",
      "note": "No comparable station time series obtained.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://www.windguru.cz/help.php?sec=apiterms",
      "status": "javascript_shell",
      "note": "Terms text could not be re-read; no Windguru records integrated.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://www.windfinder.com/historical-weather-data",
      "status": "read",
      "note": "Historical station files are offered by order; no purchase or numerical import.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://www.aemet.es/es/datos_abiertos/AEMET_OpenData",
      "status": "read",
      "note": "Portal reference only; no hourly series integrated.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://dataclima.ipma.pt/pt/sobre-os-dados/",
      "status": "unreadable_403",
      "note": "Portal could not be re-read; no hourly series integrated.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://meteofrance.com/meteo-a-z/la-tramontane",
      "status": "read",
      "note": "Regional wind explanation only; no hourly series integrated.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://scia.isprambiente.it/",
      "status": "unreadable_502",
      "note": "Portal could not be re-read; no hourly series integrated.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://www.emy.gr/en/climatic-data",
      "status": "unreadable_502",
      "note": "Portal could not be re-read; no hourly series integrated.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://www.dmi.dk/friedata/dokumentation/download-data",
      "status": "read",
      "note": "Bulk observations documentation; no series integrated.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://www.knmi.nl/nederland-nu/klimatologie/uurgegevens",
      "status": "read_and_data_downloaded",
      "note": "IJmuiden archives refreshed and checked separately from ranking.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://opendata.dwd.de/climate_environment/CDC/observations_germany/climate/hourly/wind/historical/",
      "status": "read_and_data_downloaded",
      "note": "Sankt Peter-Ording archive refreshed and checked separately from ranking.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://www.met.ie/climate/available-data/historical-data",
      "status": "read",
      "note": "Historical portal reference only; no series integrated.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://www.metoffice.gov.uk/research/climate/maps-and-data/data",
      "status": "read",
      "note": "Data portal reference only; no series integrated.",
      "checked_at": "2026-10-26"
    },
    {
      "url": "https://danepubliczne.imgw.pl/data/dane_pomiarowo_obserwacyjne/dane_meteorologiczne/terminowe/synop/",
      "status": "read",
      "note": "Public synoptic archive index; no series integrated.",
      "checked_at": "2026-10-26"
    }
  ],
  "download_corrections": [
    "Both wind ZIP parts and the temperature ZIP now embed the exact current 80-spot data.json.",
    "Every available temperature series now has a separate provenance record.",
    "Raw wind ZIPs are replaced in two parts, preventing stale or duplicate appended entries."
  ],
  "limits": [
    "The fixed 2016–2025 reference period is unchanged; this is neither a 2026 observed season nor a forecast.",
    "Reproducing model calculations does not validate beach wind, thermals, gusts or local acceleration.",
    "Windguru station archives remain unintegrated; no Windguru measurements are attributed to these statistics.",
    "Unreadable or insufficiently specific sources leave 152 practical fields explicitly unverified.",
    "A map reference is not proof of launch permission; unresolved exact-launch geometry is retained in the profile review."
  ]
}