{
  "title": "NAVTEX Review",
  "generated_at_utc": "2026-04-03T06:12:04.540819+00:00",
  "lookback_hours": 24,
  "focus_region": "Strait of Hormuz",
  "focus_hit_count": 0,
  "message_count": 128,
  "latest_reception": "2026-04-03 08:50:08",
  "source_url": "https://navtex.lv/",
  "stale_issue_filtered_count": 32,
  "max_notice_age_hours": 24,
  "overview": {
    "message_count": 128,
    "counts_by_code": {
      "G": 25,
      "T": 20,
      "E": 11,
      "J": 10,
      "S": 10,
      "O": 9,
      "R": 9,
      "W": 6,
      "P": 6,
      "F": 4,
      "U": 4,
      "Q": 4,
      "L": 3,
      "K": 3,
      "V": 2,
      "M": 1,
      "I": 1
    },
    "counts_by_area": {
      "G": 25,
      "T": 20,
      "E": 11,
      "J": 10,
      "S": 10,
      "O": 9,
      "R": 9,
      "W": 6,
      "P": 6,
      "F": 4,
      "U": 4,
      "Q": 4,
      "L": 3,
      "K": 3,
      "V": 2,
      "M": 1,
      "I": 1
    },
    "keyword_counts": {
      "warning": 21,
      "gale": 8,
      "fog": 8,
      "survey": 5,
      "ais": 3,
      "storm": 3,
      "sar": 3,
      "exercise": 1,
      "ice": 1
    },
    "station_coverage": {
      "resolved_message_count": 64,
      "unresolved_message_count": 64,
      "resolved_station_count": 13,
      "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": 12,
          "basis": "station-signature",
          "matched_terms": [
            "HUMBER",
            "DOGGER",
            "CROMARTY",
            "TYNE"
          ]
        },
        {
          "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": 10,
          "basis": "station-signature",
          "matched_terms": [
            "LA MADDALENA"
          ]
        },
        {
          "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": 9,
          "basis": "station-signature",
          "matched_terms": [
            "NAVTEX HAMBURG"
          ]
        },
        {
          "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": 6,
          "basis": "station-signature",
          "matched_terms": [
            "THAMES"
          ]
        },
        {
          "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": 4,
          "basis": "station-signature",
          "matched_terms": [
            "AVURNAV CHERBOURG",
            "CHERBOURG"
          ]
        },
        {
          "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": 4,
          "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": 4,
          "basis": "station-signature",
          "matched_terms": [
            "MONDOLFO RADIO"
          ]
        },
        {
          "key": "cross_la_garde",
          "code": "W",
          "station_name": "CROSS La Garde",
          "country": "France",
          "nav_area": "III",
          "latitude": 43.1043,
          "longitude": 5.9915,
          "coverage_label": "Provence, Ligurian Sea and western Mediterranean",
          "message_count": 4,
          "basis": "station-signature",
          "matched_terms": [
            "AVURNAV TOULON"
          ]
        },
        {
          "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": "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": 3,
          "basis": "station-signature",
          "matched_terms": [
            "NORTHSEA"
          ]
        },
        {
          "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": "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"
          ]
        }
      ],
      "code_rows": [
        {
          "code": "G",
          "message_count": 25,
          "resolved_station_names": [
            "Cullercoats"
          ],
          "unresolved_message_count": 13
        },
        {
          "code": "T",
          "message_count": 20,
          "resolved_station_names": [
            "Oostende Radio",
            "Oostende (Thames Approaches relay)",
            "La Maddalena"
          ],
          "unresolved_message_count": 14
        },
        {
          "code": "E",
          "message_count": 11,
          "resolved_station_names": [
            "Niton",
            "Oostende (Thames Approaches relay)"
          ],
          "unresolved_message_count": 7
        },
        {
          "code": "J",
          "message_count": 10,
          "resolved_station_names": [
            "Niton (France relay)"
          ],
          "unresolved_message_count": 9
        },
        {
          "code": "S",
          "message_count": 10,
          "resolved_station_names": [
            "Pinneberg"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "O",
          "message_count": 9,
          "resolved_station_names": [],
          "unresolved_message_count": 9
        },
        {
          "code": "R",
          "message_count": 9,
          "resolved_station_names": [
            "La Maddalena"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "W",
          "message_count": 6,
          "resolved_station_names": [
            "CROSS La Garde"
          ],
          "unresolved_message_count": 2
        },
        {
          "code": "P",
          "message_count": 6,
          "resolved_station_names": [
            "Netherlands Coastguard Radio",
            "Oostende (Thames Approaches relay)"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "F",
          "message_count": 4,
          "resolved_station_names": [],
          "unresolved_message_count": 4
        },
        {
          "code": "U",
          "message_count": 4,
          "resolved_station_names": [
            "Mondolfo"
          ],
          "unresolved_message_count": 0
        },
        {
          "code": "Q",
          "message_count": 4,
          "resolved_station_names": [
            "Split"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "L",
          "message_count": 3,
          "resolved_station_names": [
            "Orlandet",
            "Rogaland Radio"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "K",
          "message_count": 3,
          "resolved_station_names": [
            "Niton (France relay)"
          ],
          "unresolved_message_count": 0
        },
        {
          "code": "V",
          "message_count": 2,
          "resolved_station_names": [
            "Oostende (Thames Approaches relay)"
          ],
          "unresolved_message_count": 0
        },
        {
          "code": "M",
          "message_count": 1,
          "resolved_station_names": [],
          "unresolved_message_count": 1
        },
        {
          "code": "I",
          "message_count": 1,
          "resolved_station_names": [
            "La Maddalena"
          ],
          "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"
    }
  },
  "sections": {
    "executive_summary": [
      "The window contains 128 messages; dominant B1 codes were G (25), T (20), E (11); keyword concentration led by warning (21), gale (8), fog (8), survey (5).",
      "[OB09] meteorological warning for Unresolved B1 code O. Readable text says: Southeasterly gale force 8 006!. 0 06' . 03 -)3 !94:3 9 )- $. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code T. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
      "[JA45] navigational warning for Unresolved B1 code J. Readable text reports survey operations and implies local caution around the work area. Decoding is partial rather than complete.",
      "No direct mentions were found in this corpus window."
    ],
    "main_developments": [
      "[OB09] meteorological warning for Unresolved B1 code O. Readable text says: Southeasterly gale force 8 006!. 0 06' . 03 -)3 !94:3 9 )- $. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code T. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
      "[JA45] navigational warning for Unresolved B1 code J. Readable text reports survey operations and implies local caution around the work area. Decoding is partial rather than complete.",
      "[JE51] weather forecast for Unresolved B1 code J. This is a weather bulletin; readable sections mention fog, rain across the covered waters. Decoding is partial rather than complete.",
      "[GA82] navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Beryl spm3 buoy 59-31.7n 001-33.5e temporarily removed. 9, 9,,8(((((((((( ((((((! )$6 ! 1,- 8 -. Decoding is partial rather than complete.",
      "[GA89] 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.",
      "[GA96] navigational warning for Unresolved B1 code G. Readable text says: Geon south buoy 53-12.5n 001-25.6e unlit. Decoding is partial rather than complete.",
      "[GA61] navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete."
    ],
    "weather_and_sea_state": [
      "[OB09] meteorological warning for Unresolved B1 code O. Readable text says: Southeasterly gale force 8 006!. 0 06' . 03 -)3 !94:3 9 )- $. Decoding is partial rather than complete.",
      "[JE51] weather forecast for Unresolved B1 code J. This is a weather bulletin; readable sections mention fog, rain across the covered waters. Decoding is partial rather than complete.",
      "[GA89] 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.",
      "[GA61] navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
      "[unknown] operational notice for Belgium / United Kingdom - Thames approaches and Dover approaches. This is a weather bulletin; readable sections mention gales, ice, rain across the covered waters. Decoding is partial rather than complete."
    ],
    "navigation_and_safety_alerts": [
      "[OB09] meteorological warning for Unresolved B1 code O. Readable text says: Southeasterly gale force 8 006!. 0 06' . 03 -)3 !94:3 9 )- $. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code T. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
      "[JA45] navigational warning for Unresolved B1 code J. Readable text reports survey operations and implies local caution around the work area. Decoding is partial rather than complete.",
      "[JE51] weather forecast for Unresolved B1 code J. This is a weather bulletin; readable sections mention fog, rain across the covered waters. Decoding is partial rather than complete.",
      "[GA82] navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text says: Beryl spm3 buoy 59-31.7n 001-33.5e temporarily removed. 9, 9,,8(((((((((( ((((((! )$6 ! 1,- 8 -. Decoding is partial rather than complete.",
      "[GA89] 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.",
      "[GA96] navigational warning for Unresolved B1 code G. Readable text says: Geon south buoy 53-12.5n 001-25.6e unlit. Decoding is partial rather than complete.",
      "[GA61] navigational warning for Unresolved B1 code G. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete."
    ],
    "electronic_interference_and_navigation_integrity": [
      "[GA18] 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.",
      "[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.",
      "[KA28] navigational warning for United Kingdom / France - Channel Islands and north-east French coast. Readable text sets local operating restrictions, including anchoring, fishing, or towing limits. Decoding is partial rather than complete.",
      "[GA94] navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text reports a fog signal outage near 55-06.8N 001-23.6W."
    ],
    "special_operations_and_military_activity": [
      "[JA29] navigational warning for Unresolved B1 code J. Readable text says: In area te iz u fs ngerous to shipping br-161.",
      "[UA64] navigational warning for Italy - Adriatic Sea and central Italian coast. Readable text says: 1. turbine a06 51-45.0n 001-14.6e o cwnpu. Decoding is partial rather than complete.",
      "[UA61] navigational warning for Italy - Adriatic Sea and central Italian coast. Readable text says: G 40 23'54 n 18 17'30 pmonjfsf anchorage and fishing are prohibited. Decoding is partial rather than complete.",
      "[RA89] navigational warning for Italy - Tyrrhenian Sea and Sardinia approaches. Readable text says: Mgjhhm transit, anchorage and fishing are prohibited. Decoding is partial rather than complete.",
      "[RA88] navigational warning for Italy - Tyrrhenian Sea and Sardinia approaches. Readable text says: Transit, anchorage and fishing are prohibited. Decoding is partial rather than complete.",
      "[OD71] search and rescue message for Unresolved B1 code O. Readable text indicates a search-and-rescue related notice. 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=31, medium=50, low=47.",
      "32 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.",
      "47 messages were classified as low decode quality and may contain damaged titles or coordinates."
    ]
  }
}