{
  "title": "NAVTEX Review",
  "generated_at_utc": "2026-04-03T20:12:03.452922+00:00",
  "lookback_hours": 24,
  "focus_region": "Strait of Hormuz",
  "focus_hit_count": 0,
  "message_count": 108,
  "latest_reception": "2026-04-03 22:54:48",
  "source_url": "https://navtex.lv/",
  "stale_issue_filtered_count": 52,
  "max_notice_age_hours": 24,
  "overview": {
    "message_count": 108,
    "counts_by_code": {
      "G": 36,
      "T": 30,
      "S": 16,
      "P": 9,
      "J": 5,
      "O": 3,
      "V": 3,
      "K": 2,
      "C": 1,
      "R": 1,
      "E": 1,
      "L": 1
    },
    "counts_by_area": {
      "G": 36,
      "T": 30,
      "S": 16,
      "P": 9,
      "J": 5,
      "O": 3,
      "V": 3,
      "K": 2,
      "C": 1,
      "R": 1,
      "E": 1,
      "L": 1
    },
    "keyword_counts": {
      "fog": 12,
      "warning": 6,
      "survey": 4,
      "exercise": 3,
      "gale": 2,
      "drifting": 1
    },
    "station_coverage": {
      "resolved_message_count": 66,
      "unresolved_message_count": 42,
      "resolved_station_count": 8,
      "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": 23,
          "basis": "station-signature",
          "matched_terms": [
            "DOGGER",
            "SOFIA OFFSHORE WIND FARM"
          ]
        },
        {
          "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": 17,
          "basis": "station-signature",
          "matched_terms": [
            "OOSTENDE",
            "OOSTENDERADIO"
          ]
        },
        {
          "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": 13,
          "basis": "station-signature",
          "matched_terms": [
            "GERMAN BIGHT"
          ]
        },
        {
          "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": 5,
          "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": 3,
          "basis": "station-signature",
          "matched_terms": [
            "AVURNAV CHERBOURG",
            "CHERBOURG"
          ]
        },
        {
          "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": [
            "MALIN"
          ]
        },
        {
          "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": "station-signature",
          "matched_terms": [
            "DUTCH EEZ"
          ]
        },
        {
          "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": 1,
          "basis": "regional-context",
          "matched_terms": [
            "WIGHT",
            "LUNDY",
            "PORTLAND"
          ]
        }
      ],
      "code_rows": [
        {
          "code": "G",
          "message_count": 36,
          "resolved_station_names": [
            "Cullercoats"
          ],
          "unresolved_message_count": 13
        },
        {
          "code": "T",
          "message_count": 30,
          "resolved_station_names": [
            "Oostende Radio"
          ],
          "unresolved_message_count": 14
        },
        {
          "code": "S",
          "message_count": 16,
          "resolved_station_names": [
            "Pinneberg"
          ],
          "unresolved_message_count": 3
        },
        {
          "code": "P",
          "message_count": 9,
          "resolved_station_names": [
            "Oostende (Thames Approaches relay)",
            "Netherlands Coastguard Radio"
          ],
          "unresolved_message_count": 4
        },
        {
          "code": "J",
          "message_count": 5,
          "resolved_station_names": [
            "Niton (France relay)"
          ],
          "unresolved_message_count": 4
        },
        {
          "code": "O",
          "message_count": 3,
          "resolved_station_names": [
            "Portpatrick"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "V",
          "message_count": 3,
          "resolved_station_names": [
            "Oostende (Thames Approaches relay)"
          ],
          "unresolved_message_count": 1
        },
        {
          "code": "K",
          "message_count": 2,
          "resolved_station_names": [
            "Niton (France relay)"
          ],
          "unresolved_message_count": 0
        },
        {
          "code": "C",
          "message_count": 1,
          "resolved_station_names": [
            "Oostende Radio"
          ],
          "unresolved_message_count": 0
        },
        {
          "code": "R",
          "message_count": 1,
          "resolved_station_names": [],
          "unresolved_message_count": 1
        },
        {
          "code": "E",
          "message_count": 1,
          "resolved_station_names": [
            "Niton"
          ],
          "unresolved_message_count": 0
        },
        {
          "code": "L",
          "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 108 messages; dominant B1 codes were G (36), T (30), S (16); keyword concentration led by fog (12), warning (6), survey (4), exercise (3).",
      "[TA04] navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: Special purpose buoy kycn, y. fl 5s, 51-09.88n aremppe established. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code T. Readable text says: Lightbuoy vg5, 51-24.7 n 002 8e drifting. Decoding is partial rather than complete.",
      "[unknown] 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": [
      "[TA04] navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: Special purpose buoy kycn, y. fl 5s, 51-09.88n aremppe established. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code T. Readable text says: Lightbuoy vg5, 51-24.7 n 002 8e drifting. Decoding is partial rather than complete.",
      "[unknown] 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.",
      "[TA27] navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: Shipping requeste t to anchor nzymhzm fjdmfmmyu/1 00 me o. Decoding is partial rather than complete.",
      "[SA79] navigational warning for Germany - German Bight and German North Sea. Readable text says: 5 sm lighting inoperative across the entire wind farm. Decoding is partial rather than complete.",
      "[SA85] navigational warning for Germany - German Bight and German North Sea. Readable text reports survey operations near 54-23.3N 005-54.2E; 54-47.3N 005-58.3E and implies local caution around the work area. Decoding is partial rather than complete.",
      "[RE88] weather forecast for Unresolved B1 code R. Readable text says: We ther forecast o r mediterrsean areas lssued by ology cjntre at 18/utc of pexprx pwy. Decoding is partial rather than complete.",
      "[PA96] navigational warning for Unresolved B1 code P. Readable text says: Buoy wp1 53-19n 004-03e temporarily withdrawn."
    ],
    "weather_and_sea_state": [
      "[GA899] navigational warning for Unresolved B1 code G. Readable text reports a fog signal outage. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code T. Readable text reports a fog signal outage near 53-11.9N 002-29.1E. Decoding is partial rather than complete.",
      "[VA15] navigational warning for Belgium / United Kingdom - Thames approaches and Dover approaches. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
      "[PE79] weather forecast for Netherlands - Dutch EEZ and southern North Sea. 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. Readable text reports a fog signal outage. Decoding is partial rather than complete."
    ],
    "navigation_and_safety_alerts": [
      "[TA04] navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: Special purpose buoy kycn, y. fl 5s, 51-09.88n aremppe established. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code T. Readable text says: Lightbuoy vg5, 51-24.7 n 002 8e drifting. Decoding is partial rather than complete.",
      "[unknown] 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.",
      "[TA27] navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: Shipping requeste t to anchor nzymhzm fjdmfmmyu/1 00 me o. Decoding is partial rather than complete.",
      "[SA79] navigational warning for Germany - German Bight and German North Sea. Readable text says: 5 sm lighting inoperative across the entire wind farm. Decoding is partial rather than complete.",
      "[SA85] navigational warning for Germany - German Bight and German North Sea. Readable text reports survey operations near 54-23.3N 005-54.2E; 54-47.3N 005-58.3E and implies local caution around the work area. Decoding is partial rather than complete.",
      "[RE88] weather forecast for Unresolved B1 code R. Readable text says: We ther forecast o r mediterrsean areas lssued by ology cjntre at 18/utc of pexprx pwy. Decoding is partial rather than complete.",
      "[PA96] navigational warning for Unresolved B1 code P. Readable text says: Buoy wp1 53-19n 004-03e temporarily withdrawn."
    ],
    "electronic_interference_and_navigation_integrity": [
      "[GA899] navigational warning for Unresolved B1 code G. Readable text reports a fog signal outage. Decoding is partial rather than complete.",
      "[unknown] operational notice for Unresolved B1 code T. Readable text reports a fog signal outage near 53-11.9N 002-29.1E. Decoding is partial rather than complete.",
      "[VA15] navigational warning for Belgium / United Kingdom - Thames approaches and Dover approaches. This is a weather bulletin; readable sections mention fog across the covered waters. Decoding is partial rather than complete.",
      "[GA89] navigational warning for United Kingdom - North Sea and north-east UK coast. Readable text reports a fog signal outage. Decoding is partial rather than complete."
    ],
    "special_operations_and_military_activity": [
      "[TA25] navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: Gunnery exercises in the great sector of lombardsijde 03 apr 20 3 6 . cmgchfsm. Decoding is partial rather than complete.",
      "[TA25] navigational warning for Belgium - Belgian coast and southern North Sea. Readable text says: De panne-oosten gunnery exercises in the great sector of lombardsijde 03 apr 2026 from 0700 until 1030 utc gunnery sector s listening on chan 16 and 74. Decoding is partial rather than complete.",
      "[JA29] navigational warning for Unresolved B1 code J. Readable text says: In area te iz u fs ngerous to shipping br-161."
    ],
    "focus_region": [
      "No direct mentions were found in this corpus window."
    ],
    "confidence_and_gaps": [
      "Decode quality across the window was high=26, medium=48, low=34.",
      "52 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.",
      "34 messages were classified as low decode quality and may contain damaged titles or coordinates."
    ]
  }
}