{
  "title": "NAVTEX Review",
  "generated_at_utc": "2026-03-26T03:12:03.319340+00:00",
  "lookback_hours": 24,
  "focus_region": "Strait of Hormuz",
  "focus_hit_count": 0,
  "message_count": 127,
  "latest_reception": "2026-03-26 05:10:45",
  "source_url": "https://navtex.lv/",
  "stale_issue_filtered_count": 33,
  "max_notice_age_hours": 24,
  "overview": {
    "message_count": 127,
    "counts_by_code": {
      "G": 30,
      "T": 19,
      "J": 11,
      "E": 8,
      "S": 7,
      "O": 7,
      "K": 6,
      "V": 6,
      "Q": 5,
      "P": 4,
      "C": 4,
      "U": 4,
      "F": 3,
      "A": 3,
      "L": 2,
      "M": 2,
      "H": 2,
      "I": 2,
      "X": 2
    },
    "counts_by_area": {
      "G": 30,
      "T": 19,
      "J": 11,
      "E": 8,
      "S": 7,
      "O": 7,
      "K": 6,
      "V": 6,
      "Q": 5,
      "P": 4,
      "C": 4,
      "U": 4,
      "F": 3,
      "A": 3,
      "L": 2,
      "M": 2,
      "H": 2,
      "I": 2,
      "X": 2
    },
    "keyword_counts": {
      "warning": 27,
      "gale": 15,
      "exercise": 10,
      "fog": 7,
      "ais": 4,
      "survey": 3,
      "storm": 1,
      "ice": 1,
      "drifting": 1,
      "gnss": 1
    },
    "station_coverage": {
      "resolved_message_count": 59,
      "unresolved_message_count": 68,
      "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": 16,
          "basis": "station-signature",
          "matched_terms": [
            "HUMBER",
            "DOGGER",
            "CROMARTY",
            "TYNE"
          ]
        },
        {
          "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": 6,
          "basis": "station-signature",
          "matched_terms": [
            "GERMAN BIGHT"
          ]
        },
        {
          "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": 5,
          "basis": "station-signature",
          "matched_terms": [
            "DST MANCHE"
          ]
        },
        {
          "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": "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": 4,
          "basis": "station-signature",
          "matched_terms": [
            "MONDOLFO RADIO"
          ]
        },
        {
          "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": 3,
          "basis": "regional-context",
          "matched_terms": [
            "WIGHT",
            "LUNDY",
            "PORTLAND"
          ]
        },
        {
          "key": "split",
          "code": "Q",
          "station_name": "Split",
          "country": "Croatia",
          "nav_area": "III",
          "latitude": 43.1757,
          "longitude": 16.423,
          "coverage_label": "Adriatic Sea",
          "message_count": 3,
          "basis": "station-signature",
          "matched_terms": [
            "SPLIT RADIO"
          ]
        },
        {
          "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": 3,
          "basis": "station-signature",
          "matched_terms": [
            "OOSTENDE",
            "OOSTENDERADIO"
          ]
        },
        {
          "key": "oostende_thames",
          "code": "V",
          "station_name": "Oostende (Thames Approaches relay)",
          "country": "Belgium / United Kingdom",
          "nav_area": "I",
          "latitude": 51.1825,
          "longitude": 2.8078,
          "coverage_label": "Thames approaches and Dover approaches",
          "message_count": 3,
          "basis": "station-signature",
          "matched_terms": [
            "THAMES"
          ]
        },
        {
          "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": 3,
          "basis": "station-signature",
          "matched_terms": [
            "SELLIA MARINA"
          ]
        },
        {
          "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": [
            "IRISH SEA"
          ]
        },
        {
          "key": "netherlands_coastguard",
          "code": "P",
          "station_name": "Netherlands Coastguard Radio",
          "country": "Netherlands",
          "nav_area": "I",
          "latitude": 52.9177,
          "longitude": 4.739,
          "coverage_label": "Dutch EEZ and southern North Sea",
          "message_count": 2,
          "basis": "regional-context",
          "matched_terms": [
            "TERSCHELLING"
          ]
        },
        {
          "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": "kerkyra",
          "code": "K",
          "station_name": "Kerkyra",
          "country": "Greece",
          "nav_area": "III",
          "latitude": 39.6072,
          "longitude": 19.8912,
          "coverage_label": "Ionian Sea and western Greece",
          "message_count": 1,
          "basis": "station-signature-fallback",
          "matched_terms": [
            "KERKYRA"
          ]
        },
        {
          "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": "malin_head",
          "code": "Q",
          "station_name": "Malin Head",
          "country": "Ireland",
          "nav_area": "I",
          "latitude": 55.3633,
          "longitude": -7.3398,
          "coverage_label": "North-west approaches to Ireland",
          "message_count": 1,
          "basis": "station-signature",
          "matched_terms": [
            "MALIN HEAD"
          ]
        }
      ],
      "code_rows": [
        {
          "code": "G",
          "message_count": 30,
          "resolved_station_names": [
            "Cullercoats",
            "Oostende (Thames Approaches relay)"
          ],
          "unresolved_message_count": 13
        },
        {
          "code": "T",
          "message_count": 19,
          "resolved_station_names": [
            "Oostende Radio"
          ],
          "unresolved_message_count": 16
        },
        {
          "code": "J",
          "message_count": 11,
          "resolved_station_names": [],
          "unresolved_message_count": 11
        },
        {
          "code": "E",
          "message_count": 8,
          "resolved_station_names": [
            "Niton"
          ],
          "unresolved_message_count": 5
        },
        {
          "code": "S",
          "message_count": 7,
          "resolved_station_names": [
            "Pinneberg"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "O",
          "message_count": 7,
          "resolved_station_names": [
            "Portpatrick"
          ],
          "unresolved_message_count": 5
        },
        {
          "code": "K",
          "message_count": 6,
          "resolved_station_names": [
            "Niton (France relay)"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "V",
          "message_count": 6,
          "resolved_station_names": [
            "Sellia Marina",
            "Oostende (Thames Approaches relay)"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "Q",
          "message_count": 5,
          "resolved_station_names": [
            "Split",
            "Malin Head"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "P",
          "message_count": 4,
          "resolved_station_names": [
            "Netherlands Coastguard Radio"
          ],
          "unresolved_message_count": 2
        },
        {
          "code": "C",
          "message_count": 4,
          "resolved_station_names": [
            "Odesa"
          ],
          "unresolved_message_count": 0
        },
        {
          "code": "U",
          "message_count": 4,
          "resolved_station_names": [
            "Mondolfo"
          ],
          "unresolved_message_count": 0
        },
        {
          "code": "F",
          "message_count": 3,
          "resolved_station_names": [],
          "unresolved_message_count": 3
        },
        {
          "code": "A",
          "message_count": 3,
          "resolved_station_names": [],
          "unresolved_message_count": 3
        },
        {
          "code": "L",
          "message_count": 2,
          "resolved_station_names": [
            "Rogaland Radio"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "M",
          "message_count": 2,
          "resolved_station_names": [
            "Orlandet"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "H",
          "message_count": 2,
          "resolved_station_names": [
            "Irakleio"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "I",
          "message_count": 2,
          "resolved_station_names": [],
          "unresolved_message_count": 2
        },
        {
          "code": "X",
          "message_count": 2,
          "resolved_station_names": [
            "Kerkyra"
          ],
          "unresolved_message_count": 1
        }
      ],
      "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"
    }
  },
  "sections": {
    "executive_summary": [
      "The window contains 127 messages; dominant B1 codes were G (30), T (19), J (11); keyword concentration led by warning (27), gale (15), exercise (10), fog (7).",
      "[TB13] meteorological warning for Belgium - Belgian coast and southern North Sea. Readable text says: Oostenderadio gale warning 10/26. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code T. Readable text says: Wave height warning 400cm tss tpyj dpssfm mg pybmlf nfjjcpwmhm. Decoding is partial rather than complete.",
      "[SB37] meteorological warning for Germany - German Bight and German North Sea. Readable text says: Warning no. 105 2120utc mar.",
      "No direct mentions were found in this corpus window."
    ],
    "main_developments": [
      "[TB13] meteorological warning for Belgium - Belgian coast and southern North Sea. Readable text says: Oostenderadio gale warning 10/26. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code T. Readable text says: Wave height warning 400cm tss tpyj dpssfm mg pybmlf nfjjcpwmhm. Decoding is partial rather than complete.",
      "[SB37] meteorological warning for Germany - German Bight and German North Sea. Readable text says: Warning no. 105 2120utc mar.",
      "[QA01] navigational warning for Croatia - Adriatic Sea. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code P. Readable text says: Green light buoy mnw1 lfl(1)g 8s. Decoding is partial rather than complete.",
      "[OA71] navigational warning for United Kingdom - Irish Sea and western UK approaches. This is a weather bulletin; readable sections mention ice, showers across the covered waters. Decoding is partial rather than complete.",
      "[PL08] navigational warning for Unresolved B1 code P. Readable text says: Seastate warning cancelled thu mar 26 02:00:03 utc 2026. Decoding is partial rather than complete.",
      "[MB08] meteorological warning for Norway - Norwegian Sea and central Norwegian coast. Readable text says: Outer skagerrak: nw gale 8 fm wed 22utc to thu 08utc. Decoding is partial rather than complete."
    ],
    "weather_and_sea_state": [
      "[TB13] meteorological warning for Belgium - Belgian coast and southern North Sea. Readable text says: Oostenderadio gale warning 10/26. Decoding is partial rather than complete.",
      "[LB80] meteorological warning for Unresolved B1 code L. Readable text says: Gale warnin zbm ghypm pongdpsspf m zh. Decoding is partial rather than complete.",
      "[unknown] operational notice for United Kingdom - Irish Sea and western UK approaches. This is a weather bulletin; readable sections mention gales, ice across the covered waters. Decoding is partial rather than complete.",
      "[MB08] meteorological warning for Norway - Norwegian Sea and central Norwegian coast. Readable text says: Outer skagerrak: nw gale 8 fm wed 22utc to thu 08utc. Decoding is partial rather than complete.",
      "[ME92] weather forecast for Unresolved B1 code M. Readable text says: Nw gale 8, dw o vrb 4. very rough to slt. dry, good."
    ],
    "navigation_and_safety_alerts": [
      "[TB13] meteorological warning for Belgium - Belgian coast and southern North Sea. Readable text says: Oostenderadio gale warning 10/26. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code T. Readable text says: Wave height warning 400cm tss tpyj dpssfm mg pybmlf nfjjcpwmhm. Decoding is partial rather than complete.",
      "[SB37] meteorological warning for Germany - German Bight and German North Sea. Readable text says: Warning no. 105 2120utc mar.",
      "[QA01] navigational warning for Croatia - Adriatic Sea. This is a weather bulletin; readable sections mention ice across the covered waters. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code P. Readable text says: Green light buoy mnw1 lfl(1)g 8s. Decoding is partial rather than complete.",
      "[OA71] navigational warning for United Kingdom - Irish Sea and western UK approaches. This is a weather bulletin; readable sections mention ice, showers across the covered waters. Decoding is partial rather than complete.",
      "[PL08] navigational warning for Unresolved B1 code P. Readable text says: Seastate warning cancelled thu mar 26 02:00:03 utc 2026. Decoding is partial rather than complete.",
      "[MB08] meteorological warning for Norway - Norwegian Sea and central Norwegian coast. Readable text says: Outer skagerrak: nw gale 8 fm wed 22utc to thu 08utc. Decoding is partial rather than complete."
    ],
    "electronic_interference_and_navigation_integrity": [
      "[KA26] navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text reports an aid-to-navigation fault near 50-32.80N 000-57.80E.",
      "[GA82] navigational warning for Unresolved B1 code G. Readable text says an AIS transmitter is inoperative near 56-12.3N 002-09.8W. Decoding is partial rather than complete.",
      "[GA07] navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text reports a fog signal outage near 53-11.9N 002-29.1E.",
      "[EA22] navigational warning for United Kingdom - English Channel and western approaches. Readable text reports a fog signal outage near 50-39.7N 001-35.5W. Decoding is partial rather than complete."
    ],
    "special_operations_and_military_activity": [
      "[JA26] navigational warning for Unresolved B1 code J. Readable text says: Ships exercises 11100. Decoding is partial rather than complete.",
      "[JA27] navigational warning for Unresolved B1 code J. Readable text says: Hh pub g m iikk e 55-32.00n 019-50.00e. Decoding is partial rather than complete.",
      "[JA28] navigational warning for Unresolved B1 code J. Readable text says: Kalingrad nav warn 052/26.",
      "[JA29] navigational warning for Unresolved B1 code J. Readable text says: In area temporarily dangerous to shipping br-161. Decoding is partial rather than complete.",
      "[AALFIO] navigational warning for Unresolved B1 code A. Readable text says: 1. filing exercise. Decoding is partial rather than complete.",
      "[AA09] navigational warning for Unresolved B1 code A. Readable text says: 1. firing exercise. Decoding is partial rather than complete."
    ],
    "focus_region": [
      "No direct mentions were found in this corpus window."
    ],
    "confidence_and_gaps": [
      "Decode quality across the window was high=41, medium=56, low=30.",
      "33 older rebroadcast notices were removed because their internal issue times predated the 24-hour operating window.",
      "Published timestamps reflect reception time in the received corpus, not necessarily original notice issue time.",
      "Repeated or rebroadcast notices can persist inside the rolling window; message IDs are retained for traceability.",
      "30 messages were classified as low decode quality and may contain damaged titles or coordinates."
    ]
  }
}