{
  "title": "NAVTEX Review",
  "generated_at_utc": "2026-04-06T17:12:03.934247+00:00",
  "lookback_hours": 24,
  "focus_region": "Strait of Hormuz",
  "focus_hit_count": 0,
  "message_count": 117,
  "latest_reception": "2026-04-06 20:09:14",
  "source_url": "https://navtex.lv/",
  "stale_issue_filtered_count": 43,
  "max_notice_age_hours": 24,
  "overview": {
    "message_count": 117,
    "counts_by_code": {
      "G": 37,
      "T": 22,
      "J": 12,
      "E": 11,
      "S": 7,
      "V": 6,
      "K": 5,
      "U": 4,
      "N": 3,
      "Q": 3,
      "P": 2,
      "O": 2,
      "L": 2,
      "I": 1
    },
    "counts_by_area": {
      "G": 37,
      "T": 22,
      "J": 12,
      "E": 11,
      "S": 7,
      "V": 6,
      "K": 5,
      "U": 4,
      "N": 3,
      "Q": 3,
      "P": 2,
      "O": 2,
      "L": 2,
      "I": 1
    },
    "keyword_counts": {
      "warning": 15,
      "gale": 9,
      "fog": 5,
      "ais": 2,
      "exercise": 1,
      "drifting": 1,
      "survey": 1
    },
    "station_coverage": {
      "resolved_message_count": 44,
      "unresolved_message_count": 73,
      "resolved_station_count": 12,
      "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": [
            "CULLERCOATS",
            "CULLERCOATSRADIO"
          ]
        },
        {
          "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": [
            "CHERBOURG"
          ]
        },
        {
          "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": [
            "LUNDY"
          ]
        },
        {
          "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": 3,
          "basis": "station-signature",
          "matched_terms": [
            "WEISSE BANK"
          ]
        },
        {
          "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": "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": 3,
          "basis": "station-signature",
          "matched_terms": [
            "MONDOLFO RADIO"
          ]
        },
        {
          "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": [
            "IONIAN",
            "SOUTHERN IONIAN"
          ]
        },
        {
          "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": 2,
          "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": "regional-context",
          "matched_terms": [
            "STOREGGA",
            "HALTEN BANK",
            "FROEYA"
          ]
        },
        {
          "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": 1,
          "basis": "station-signature",
          "matched_terms": [
            "DUTCH EEZ"
          ]
        },
        {
          "key": "split",
          "code": "Q",
          "station_name": "Split",
          "country": "Croatia",
          "nav_area": "III",
          "latitude": 43.1757,
          "longitude": 16.423,
          "coverage_label": "Adriatic Sea",
          "message_count": 1,
          "basis": "regional-context",
          "matched_terms": [
            "ADRIATIC"
          ]
        }
      ],
      "code_rows": [
        {
          "code": "G",
          "message_count": 37,
          "resolved_station_names": [
            "Cullercoats"
          ],
          "unresolved_message_count": 21
        },
        {
          "code": "T",
          "message_count": 22,
          "resolved_station_names": [
            "Oostende Radio"
          ],
          "unresolved_message_count": 19
        },
        {
          "code": "J",
          "message_count": 12,
          "resolved_station_names": [],
          "unresolved_message_count": 12
        },
        {
          "code": "E",
          "message_count": 11,
          "resolved_station_names": [
            "Niton"
          ],
          "unresolved_message_count": 8
        },
        {
          "code": "S",
          "message_count": 7,
          "resolved_station_names": [
            "Pinneberg"
          ],
          "unresolved_message_count": 4
        },
        {
          "code": "V",
          "message_count": 6,
          "resolved_station_names": [
            "Sellia Marina",
            "Oostende (Thames Approaches relay)"
          ],
          "unresolved_message_count": 2
        },
        {
          "code": "K",
          "message_count": 5,
          "resolved_station_names": [
            "Niton (France relay)"
          ],
          "unresolved_message_count": 0
        },
        {
          "code": "U",
          "message_count": 4,
          "resolved_station_names": [
            "Mondolfo"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "N",
          "message_count": 3,
          "resolved_station_names": [
            "Oostende (Thames Approaches relay)",
            "Orlandet"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "Q",
          "message_count": 3,
          "resolved_station_names": [
            "Split"
          ],
          "unresolved_message_count": 2
        },
        {
          "code": "P",
          "message_count": 2,
          "resolved_station_names": [
            "Netherlands Coastguard Radio",
            "Oostende (Thames Approaches relay)"
          ],
          "unresolved_message_count": 0
        },
        {
          "code": "O",
          "message_count": 2,
          "resolved_station_names": [],
          "unresolved_message_count": 2
        },
        {
          "code": "L",
          "message_count": 2,
          "resolved_station_names": [
            "Rogaland Radio"
          ],
          "unresolved_message_count": 0
        },
        {
          "code": "I",
          "message_count": 1,
          "resolved_station_names": [],
          "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 117 messages; dominant B1 codes were G (37), T (22), J (12); keyword concentration led by warning (15), gale (9), fog (5), ais (2).",
      "[unknown] operational notice for Unresolved B1 code T. Readable text says: 1. nng e buoy 56-14. , 002-08.0w wnd nhg s bud. Decoding is partial rather than complete.",
      "[VA63] navigational warning for Unresolved B1 code V. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
      "[T] operational notice for Belgium - Belgian coast and southern North Sea. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
      "No direct mentions were found in this corpus window."
    ],
    "main_developments": [
      "[unknown] operational notice for Unresolved B1 code T. Readable text says: 1. nng e buoy 56-14. , 002-08.0w wnd nhg s bud. Decoding is partial rather than complete.",
      "[VA63] navigational warning for Unresolved B1 code V. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
      "[T] operational notice for Belgium - Belgian coast and southern North Sea. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
      "[KA28] navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text reports an aid-to-navigation fault near 50-10.84N 001-29.44E; 50-10.44N 001-29.13E. Decoding is partial rather than complete.",
      "[KA29] navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text reports an aid-to-navigation fault near 51-21.20N 002-17.30E.",
      "[JB29] meteorological warning for Unresolved B1 code J. Readable text says: Near gale warning. Decoding is partial rather than complete.",
      "[GA96] navigational warning for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code G. Readable text says: Gale warning monday 06 april 0357 utc. Decoding is partial rather than complete."
    ],
    "weather_and_sea_state": [
      "[JB29] meteorological warning for Unresolved B1 code J. Readable text says: Near gale warning. Decoding is partial rather than complete.",
      "[GA96] navigational warning for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code G. Readable text says: Gale warning monday 06 april 0357 utc. Decoding is partial rather than complete.",
      "[GA94] navigational warning for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
      "[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."
    ],
    "navigation_and_safety_alerts": [
      "[unknown] operational notice for Unresolved B1 code T. Readable text says: 1. nng e buoy 56-14. , 002-08.0w wnd nhg s bud. Decoding is partial rather than complete.",
      "[VA63] navigational warning for Unresolved B1 code V. The received text is too corrupted to decode safely. No reliable plain-language extraction was possible.",
      "[T] operational notice for Belgium - Belgian coast and southern North Sea. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
      "[KA28] navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text reports an aid-to-navigation fault near 50-10.84N 001-29.44E; 50-10.44N 001-29.13E. Decoding is partial rather than complete.",
      "[KA29] navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text reports an aid-to-navigation fault near 51-21.20N 002-17.30E.",
      "[JB29] meteorological warning for Unresolved B1 code J. Readable text says: Near gale warning. Decoding is partial rather than complete.",
      "[GA96] navigational warning for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code G. Readable text says: Gale warning monday 06 april 0357 utc. Decoding is partial rather than complete."
    ],
    "electronic_interference_and_navigation_integrity": [
      "[KA28] navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text reports an aid-to-navigation fault near 50-10.84N 001-29.44E; 50-10.44N 001-29.13E. Decoding is partial rather than complete.",
      "[GA96] navigational warning for United Kingdom - North Sea and north-east UK coast. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
      "[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.",
      "[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."
    ],
    "special_operations_and_military_activity": [
      "[KA40] navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text says: ! 9, p fsmz pyhfzjon firing exercise. Decoding is partial rather than complete.",
      "[UA76] navigational warning for Italy - Adriatic Sea and central Italian coast. Readable text says: Transit, anchorage and fishing are prohibited."
    ],
    "focus_region": [
      "No direct mentions were found in this corpus window."
    ],
    "confidence_and_gaps": [
      "Decode quality across the window was high=16, medium=37, low=64.",
      "43 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.",
      "64 messages were classified as low decode quality and may contain damaged titles or coordinates."
    ]
  }
}