{
  "message_count": 108,
  "counts_by_code": {
    "G": 24,
    "J": 11,
    "T": 8,
    "E": 8,
    "U": 7,
    "K": 6,
    "R": 6,
    "O": 6,
    "F": 5,
    "V": 5,
    "C": 5,
    "S": 4,
    "L": 3,
    "W": 3,
    "Q": 3,
    "I": 1,
    "A": 1,
    "P": 1,
    "H": 1
  },
  "counts_by_area": {
    "G": 24,
    "J": 11,
    "T": 8,
    "E": 8,
    "U": 7,
    "K": 6,
    "R": 6,
    "O": 6,
    "F": 5,
    "V": 5,
    "C": 5,
    "S": 4,
    "L": 3,
    "W": 3,
    "Q": 3,
    "I": 1,
    "A": 1,
    "P": 1,
    "H": 1
  },
  "keyword_counts": {
    "warning": 27,
    "gale": 10,
    "exercise": 6,
    "fog": 6,
    "ais": 4,
    "gnss": 2,
    "ice": 2,
    "storm": 1,
    "survey": 1,
    "drifting": 1
  },
  "station_coverage": {
    "resolved_message_count": 63,
    "unresolved_message_count": 45,
    "resolved_station_count": 17,
    "station_rows": [
      {
        "key": "cullercoats",
        "code": "G",
        "station_name": "Cullercoats",
        "country": "United Kingdom",
        "nav_area": "I",
        "latitude": 55.0747,
        "longitude": -1.4632,
        "coverage_label": "North Sea and north-east UK coast",
        "message_count": 17,
        "basis": "station-signature",
        "matched_terms": [
          "DOGGER",
          "CROMARTY",
          "TYNE"
        ]
      },
      {
        "key": "mondolfo",
        "code": "U",
        "station_name": "Mondolfo",
        "country": "Italy",
        "nav_area": "III",
        "latitude": 43.7418,
        "longitude": 13.1388,
        "coverage_label": "Adriatic Sea and central Italian coast",
        "message_count": 7,
        "basis": "station-signature",
        "matched_terms": [
          "ADRIATIC"
        ]
      },
      {
        "key": "niton",
        "code": "E",
        "station_name": "Niton",
        "country": "United Kingdom",
        "nav_area": "I",
        "latitude": 50.5863,
        "longitude": -1.2545,
        "coverage_label": "English Channel and western approaches",
        "message_count": 6,
        "basis": "regional-context",
        "matched_terms": [
          "WIGHT",
          "LUNDY",
          "PORTLAND"
        ]
      },
      {
        "key": "niton_france",
        "code": "K",
        "station_name": "Niton (France relay)",
        "country": "United Kingdom / France",
        "nav_area": "I",
        "latitude": 50.5863,
        "longitude": -1.2545,
        "coverage_label": "Channel Islands and north-east French coast",
        "message_count": 6,
        "basis": "station-signature",
        "matched_terms": [
          "CHERBOURG"
        ]
      },
      {
        "key": "la_maddalena",
        "code": "R",
        "station_name": "La Maddalena",
        "country": "Italy",
        "nav_area": "III",
        "latitude": 41.2203,
        "longitude": 9.393,
        "coverage_label": "Tyrrhenian Sea and Sardinia approaches",
        "message_count": 5,
        "basis": "station-signature",
        "matched_terms": [
          "LA MADDALENA"
        ]
      },
      {
        "key": "sellia_marina",
        "code": "V",
        "station_name": "Sellia Marina",
        "country": "Italy",
        "nav_area": "III",
        "latitude": 38.8702,
        "longitude": 16.718,
        "coverage_label": "Ionian Sea and Strait of Messina",
        "message_count": 5,
        "basis": "station-signature",
        "matched_terms": [
          "SELLIA MARINA"
        ]
      },
      {
        "key": "odesa",
        "code": "C",
        "station_name": "Odesa",
        "country": "Ukraine",
        "nav_area": "III",
        "latitude": 46.3775,
        "longitude": 30.7475,
        "coverage_label": "North-west Black Sea",
        "message_count": 4,
        "basis": "station-signature",
        "matched_terms": [
          "UKRAINE",
          "UKRAINE COASTAL"
        ]
      },
      {
        "key": "portpatrick",
        "code": "O",
        "station_name": "Portpatrick",
        "country": "United Kingdom",
        "nav_area": "I",
        "latitude": 54.8438,
        "longitude": -5.1243,
        "coverage_label": "Irish Sea and western UK approaches",
        "message_count": 2,
        "basis": "regional-context",
        "matched_terms": [
          "HEBRIDES"
        ]
      },
      {
        "key": "split",
        "code": "Q",
        "station_name": "Split",
        "country": "Croatia",
        "nav_area": "III",
        "latitude": 43.1757,
        "longitude": 16.423,
        "coverage_label": "Adriatic Sea",
        "message_count": 2,
        "basis": "station-signature",
        "matched_terms": [
          "SPLIT RADIO"
        ]
      },
      {
        "key": "pinneberg",
        "code": "S",
        "station_name": "Pinneberg",
        "country": "Germany",
        "nav_area": "I",
        "latitude": 53.675,
        "longitude": 9.8083,
        "coverage_label": "German Bight and German North Sea",
        "message_count": 2,
        "basis": "station-signature",
        "matched_terms": [
          "GERMAN BIGHT",
          "BARD OFFSHORE"
        ]
      },
      {
        "key": "irakleio",
        "code": "H",
        "station_name": "Irakleio",
        "country": "Greece",
        "nav_area": "III",
        "latitude": 35.3222,
        "longitude": 25.7487,
        "coverage_label": "Eastern Mediterranean and Crete",
        "message_count": 1,
        "basis": "station-signature",
        "matched_terms": [
          "IRAKLEIO"
        ]
      },
      {
        "key": "limnos",
        "code": "L",
        "station_name": "Limnos",
        "country": "Greece",
        "nav_area": "III",
        "latitude": 39.9068,
        "longitude": 25.1807,
        "coverage_label": "North Aegean",
        "message_count": 1,
        "basis": "station-signature-fallback",
        "matched_terms": [
          "LIMNOS RADIO"
        ]
      },
      {
        "key": "rogaland",
        "code": "L",
        "station_name": "Rogaland Radio",
        "country": "Norway",
        "nav_area": "I",
        "latitude": 58.6487,
        "longitude": 5.6097,
        "coverage_label": "South-west Norwegian coast",
        "message_count": 1,
        "basis": "regional-context",
        "matched_terms": [
          "SKAGERRAK"
        ]
      },
      {
        "key": "orlandet",
        "code": "N",
        "station_name": "Orlandet",
        "country": "Norway",
        "nav_area": "I",
        "latitude": 63.6617,
        "longitude": 9.5467,
        "coverage_label": "Norwegian Sea and central Norwegian coast",
        "message_count": 1,
        "basis": "station-signature-fallback",
        "matched_terms": [
          "NORWEGIAN GALE WARNING"
        ]
      },
      {
        "key": "oostende",
        "code": "T",
        "station_name": "Oostende Radio",
        "country": "Belgium",
        "nav_area": "I",
        "latitude": 51.1825,
        "longitude": 2.8078,
        "coverage_label": "Belgian coast and southern North Sea",
        "message_count": 1,
        "basis": "station-signature",
        "matched_terms": [
          "OOSTENDE",
          "OOSTENDERADIO"
        ]
      },
      {
        "key": "valentia",
        "code": "W",
        "station_name": "Valentia",
        "country": "Ireland",
        "nav_area": "I",
        "latitude": 51.9333,
        "longitude": -10.35,
        "coverage_label": "South-west approaches to Ireland",
        "message_count": 1,
        "basis": "station-signature",
        "matched_terms": [
          "VALENTIA"
        ]
      },
      {
        "key": "cabo_la_nao",
        "code": "X",
        "station_name": "Cabo La Nao",
        "country": "Spain",
        "nav_area": "III",
        "latitude": 38.7178,
        "longitude": 0.1758,
        "coverage_label": "Western Mediterranean and Balearic approaches",
        "message_count": 1,
        "basis": "station-signature-fallback",
        "matched_terms": [
          "PALOS"
        ]
      }
    ],
    "code_rows": [
      {
        "code": "G",
        "message_count": 24,
        "resolved_station_names": [
          "Cullercoats"
        ],
        "unresolved_message_count": 7
      },
      {
        "code": "J",
        "message_count": 11,
        "resolved_station_names": [],
        "unresolved_message_count": 11
      },
      {
        "code": "T",
        "message_count": 8,
        "resolved_station_names": [
          "Oostende Radio"
        ],
        "unresolved_message_count": 7
      },
      {
        "code": "E",
        "message_count": 8,
        "resolved_station_names": [
          "Niton"
        ],
        "unresolved_message_count": 2
      },
      {
        "code": "U",
        "message_count": 7,
        "resolved_station_names": [
          "Mondolfo"
        ],
        "unresolved_message_count": 0
      },
      {
        "code": "K",
        "message_count": 6,
        "resolved_station_names": [
          "Niton (France relay)"
        ],
        "unresolved_message_count": 0
      },
      {
        "code": "R",
        "message_count": 6,
        "resolved_station_names": [
          "La Maddalena"
        ],
        "unresolved_message_count": 1
      },
      {
        "code": "O",
        "message_count": 6,
        "resolved_station_names": [
          "Portpatrick"
        ],
        "unresolved_message_count": 4
      },
      {
        "code": "F",
        "message_count": 5,
        "resolved_station_names": [],
        "unresolved_message_count": 5
      },
      {
        "code": "V",
        "message_count": 5,
        "resolved_station_names": [
          "Sellia Marina"
        ],
        "unresolved_message_count": 0
      },
      {
        "code": "C",
        "message_count": 5,
        "resolved_station_names": [
          "Odesa"
        ],
        "unresolved_message_count": 2
      },
      {
        "code": "S",
        "message_count": 4,
        "resolved_station_names": [
          "Pinneberg",
          "Limnos"
        ],
        "unresolved_message_count": 1
      },
      {
        "code": "L",
        "message_count": 3,
        "resolved_station_names": [
          "Rogaland Radio",
          "Orlandet"
        ],
        "unresolved_message_count": 1
      },
      {
        "code": "W",
        "message_count": 3,
        "resolved_station_names": [
          "Cabo La Nao",
          "Valentia"
        ],
        "unresolved_message_count": 1
      },
      {
        "code": "Q",
        "message_count": 3,
        "resolved_station_names": [
          "Split"
        ],
        "unresolved_message_count": 1
      },
      {
        "code": "I",
        "message_count": 1,
        "resolved_station_names": [],
        "unresolved_message_count": 1
      },
      {
        "code": "A",
        "message_count": 1,
        "resolved_station_names": [
          "Odesa"
        ],
        "unresolved_message_count": 0
      },
      {
        "code": "P",
        "message_count": 1,
        "resolved_station_names": [],
        "unresolved_message_count": 1
      },
      {
        "code": "H",
        "message_count": 1,
        "resolved_station_names": [
          "Irakleio"
        ],
        "unresolved_message_count": 0
      }
    ],
    "station_reference_source_label": "ITU List IV coast station table (2025)",
    "station_reference_source_url": "https://www.itu.int/en/ITU-R/terrestrial/mars/Documents/ListIV_User%20Guide%20and%20Reference%20Tables_2025.pdf",
    "global_map_source_label": "WMO NAVTEX stations map",
    "global_map_source_url": "https://wmo.int/navtex-stations"
  }
}