{
  "destination": "bahamas",
  "name": "Bahamas",
  "hazard": "hurricane",
  "has_page": true,
  "question": "When is hurricane season in the Bahamas?",
  "answer": "The Bahamas' hurricane risk runs with the Atlantic hurricane season, 1 June to 30 November, with most activity between mid-August and mid-October (NOAA); in 1991–2020 a tropical storm or hurricane passed within 100 nm of Marsh Harbour, Abaco in 6 of 30 Augusts, and none in December to May (our count from NOAA's HURDAT2). If you book June to November, read your charter contract's hurricane clause and consider travel insurance that covers named storms; this is a historical frequency, not a forecast.",
  "answer_markdown": "The Bahamas' hurricane risk runs with the Atlantic hurricane season, 1 June to 30 November, with most activity between mid-August and mid-October (NOAA); in 1991–2020 a tropical storm or hurricane passed within 100 nm of Marsh Harbour, Abaco in 6 of 30 Augusts, and none in December to May (our count from NOAA's HURDAT2). If you book June to November, read your charter contract's hurricane clause and consider travel insurance that covers named storms; this is a historical frequency, not a forecast.",
  "checked": "2026-10-29",
  "canonical_url": "https://catamaranindex.com/weather-risk/bahamas/",
  "api_url": "https://catamaranindex.com/api/weather-risk/bahamas.json",
  "best_time_url": "https://catamaranindex.com/best-time/bahamas/",
  "book_url": "https://catamaranindex.com/go/samboat?dest=bahamas&pos=api",
  "calendar": [
    {
      "month": 1,
      "name": "January",
      "codes": [],
      "notes": []
    },
    {
      "month": 2,
      "name": "February",
      "codes": [],
      "notes": []
    },
    {
      "month": 3,
      "name": "March",
      "codes": [],
      "notes": []
    },
    {
      "month": 4,
      "name": "April",
      "codes": [],
      "notes": []
    },
    {
      "month": 5,
      "name": "May",
      "codes": [],
      "notes": []
    },
    {
      "month": 6,
      "name": "June",
      "codes": [
        "hurricane"
      ],
      "notes": []
    },
    {
      "month": 7,
      "name": "July",
      "codes": [
        "hurricane"
      ],
      "notes": []
    },
    {
      "month": 8,
      "name": "August",
      "codes": [
        "hurricane-peak"
      ],
      "notes": []
    },
    {
      "month": 9,
      "name": "September",
      "codes": [
        "hurricane-peak"
      ],
      "notes": []
    },
    {
      "month": 10,
      "name": "October",
      "codes": [
        "hurricane-peak"
      ],
      "notes": []
    },
    {
      "month": 11,
      "name": "November",
      "codes": [
        "hurricane"
      ],
      "notes": []
    },
    {
      "month": 12,
      "name": "December",
      "codes": [],
      "notes": []
    }
  ],
  "storms": {
    "meta": {
      "file": "hurdat2-1851-2025-092326.txt",
      "sha256": "75202780ce56c8458f16fbef5fb8a026b99b00878dbb95c458211b3e6ef125b4",
      "first": 1991,
      "last": 2020,
      "radiusNm": 100,
      "stepMin": 60,
      "statuses": [
        "TS",
        "HU"
      ],
      "pulled": "2026-10-29"
    },
    "place": "Marsh Harbour, Abaco",
    "months": [
      {
        "month": 1,
        "name": "January",
        "passes": 0,
        "years": 0,
        "hurricane_years": 0,
        "share_pct": 0
      },
      {
        "month": 2,
        "name": "February",
        "passes": 0,
        "years": 0,
        "hurricane_years": 0,
        "share_pct": 0
      },
      {
        "month": 3,
        "name": "March",
        "passes": 0,
        "years": 0,
        "hurricane_years": 0,
        "share_pct": 0
      },
      {
        "month": 4,
        "name": "April",
        "passes": 0,
        "years": 0,
        "hurricane_years": 0,
        "share_pct": 0
      },
      {
        "month": 5,
        "name": "May",
        "passes": 0,
        "years": 0,
        "hurricane_years": 0,
        "share_pct": 0
      },
      {
        "month": 6,
        "name": "June",
        "passes": 0,
        "years": 0,
        "hurricane_years": 0,
        "share_pct": 0
      },
      {
        "month": 7,
        "name": "July",
        "passes": 3,
        "years": 3,
        "hurricane_years": 1,
        "share_pct": 10
      },
      {
        "month": 8,
        "name": "August",
        "passes": 7,
        "years": 6,
        "hurricane_years": 4,
        "share_pct": 20
      },
      {
        "month": 9,
        "name": "September",
        "passes": 7,
        "years": 4,
        "hurricane_years": 3,
        "share_pct": 13
      },
      {
        "month": 10,
        "name": "October",
        "passes": 2,
        "years": 2,
        "hurricane_years": 2,
        "share_pct": 7
      },
      {
        "month": 11,
        "name": "November",
        "passes": 3,
        "years": 3,
        "hurricane_years": 2,
        "share_pct": 10
      },
      {
        "month": 12,
        "name": "December",
        "passes": 0,
        "years": 0,
        "hurricane_years": 0,
        "share_pct": 0
      }
    ],
    "passes": [
      {
        "id": "AL052019",
        "name": "DORIAN",
        "year": 2019,
        "month": 9,
        "month_name": "September",
        "min_nm": 3.1,
        "max_kt": 160,
        "hurricane": true
      },
      {
        "id": "AL092019",
        "name": "HUMBERTO",
        "year": 2019,
        "month": 9,
        "month_name": "September",
        "min_nm": 21,
        "max_kt": 51,
        "hurricane": false
      },
      {
        "id": "AL142016",
        "name": "MATTHEW",
        "year": 2016,
        "month": 10,
        "month_name": "October",
        "min_nm": 83.4,
        "max_kt": 120,
        "hurricane": true
      },
      {
        "id": "AL122015",
        "name": "KATE",
        "year": 2015,
        "month": 11,
        "month_name": "November",
        "min_nm": 47,
        "max_kt": 55,
        "hurricane": false
      },
      {
        "id": "AL182012",
        "name": "SANDY",
        "year": 2012,
        "month": 10,
        "month_name": "October",
        "min_nm": 4.9,
        "max_kt": 73,
        "hurricane": true
      },
      {
        "id": "AL052011",
        "name": "EMILY",
        "year": 2011,
        "month": 8,
        "month_name": "August",
        "min_nm": 68.1,
        "max_kt": 35,
        "hurricane": false
      },
      {
        "id": "AL092011",
        "name": "IRENE",
        "year": 2011,
        "month": 8,
        "month_name": "August",
        "min_nm": 7.7,
        "max_kt": 90,
        "hurricane": true
      },
      {
        "id": "AL022011",
        "name": "BRET",
        "year": 2011,
        "month": 7,
        "month_name": "July",
        "min_nm": 55.8,
        "max_kt": 60,
        "hurricane": false
      },
      {
        "id": "AL082008",
        "name": "HANNA",
        "year": 2008,
        "month": 9,
        "month_name": "September",
        "min_nm": 22.6,
        "max_kt": 55,
        "hurricane": false
      },
      {
        "id": "AL162007",
        "name": "NOEL",
        "year": 2007,
        "month": 11,
        "month_name": "November",
        "min_nm": 31.5,
        "max_kt": 70,
        "hurricane": true
      },
      {
        "id": "AL122005",
        "name": "KATRINA",
        "year": 2005,
        "month": 8,
        "month_name": "August",
        "min_nm": 47.1,
        "max_kt": 53,
        "hurricane": false
      },
      {
        "id": "AL062005",
        "name": "FRANKLIN",
        "year": 2005,
        "month": 7,
        "month_name": "July",
        "min_nm": 14.6,
        "max_kt": 45,
        "hurricane": false
      },
      {
        "id": "AL062004",
        "name": "FRANCES",
        "year": 2004,
        "month": 9,
        "month_name": "September",
        "min_nm": 39.2,
        "max_kt": 95,
        "hurricane": true
      },
      {
        "id": "AL112004",
        "name": "JEANNE",
        "year": 2004,
        "month": 9,
        "month_name": "September",
        "min_nm": 6.8,
        "max_kt": 105,
        "hurricane": true
      },
      {
        "id": "AL152001",
        "name": "MICHELLE",
        "year": 2001,
        "month": 11,
        "month_name": "November",
        "min_nm": 77.3,
        "max_kt": 77,
        "hurricane": true
      },
      {
        "id": "AL081999",
        "name": "FLOYD",
        "year": 1999,
        "month": 9,
        "month_name": "September",
        "min_nm": 9.7,
        "max_kt": 115,
        "hurricane": true
      },
      {
        "id": "AL101999",
        "name": "HARVEY",
        "year": 1999,
        "month": 9,
        "month_name": "September",
        "min_nm": 85.1,
        "max_kt": 40,
        "hurricane": false
      },
      {
        "id": "AL051999",
        "name": "DENNIS",
        "year": 1999,
        "month": 8,
        "month_name": "August",
        "min_nm": 14.6,
        "max_kt": 90,
        "hurricane": true
      },
      {
        "id": "AL021996",
        "name": "BERTHA",
        "year": 1996,
        "month": 7,
        "month_name": "July",
        "min_nm": 57.2,
        "max_kt": 80,
        "hurricane": true
      },
      {
        "id": "AL051995",
        "name": "ERIN",
        "year": 1995,
        "month": 8,
        "month_name": "August",
        "min_nm": 31.2,
        "max_kt": 75,
        "hurricane": true
      },
      {
        "id": "AL041992",
        "name": "ANDREW",
        "year": 1992,
        "month": 8,
        "month_name": "August",
        "min_nm": 68.9,
        "max_kt": 150,
        "hurricane": true
      },
      {
        "id": "AL031991",
        "name": "BOB",
        "year": 1991,
        "month": 8,
        "month_name": "August",
        "min_nm": 56.5,
        "max_kt": 50,
        "hurricane": false
      }
    ],
    "passes_total": 22
  },
  "wind": [
    {
      "point": "bahamas",
      "place": "Marsh Harbour, Abaco",
      "lat": 26.541,
      "lon": -77.064,
      "elev_m": 0.44,
      "years": 10,
      "months": [
        {
          "month": 1,
          "name": "January",
          "force5_days": 10.2,
          "force6_days": 3.9,
          "force6_days_total": 39,
          "force6_direction_counts_45deg_from_0": [
            6,
            4,
            4,
            3,
            4,
            4,
            10,
            4
          ],
          "force6_share_north_east": 0.2564102564102564,
          "force6_share_south_east": 0.1794871794871795,
          "force6_share_northerly": 0.2564102564102564,
          "mean_wind_kn": 12.1,
          "rain_mm": 54
        },
        {
          "month": 2,
          "name": "February",
          "force5_days": 8.3,
          "force6_days": 2.6,
          "force6_days_total": 26,
          "force6_direction_counts_45deg_from_0": [
            2,
            3,
            2,
            2,
            5,
            3,
            6,
            3
          ],
          "force6_share_north_east": 0.19230769230769232,
          "force6_share_south_east": 0.15384615384615385,
          "force6_share_northerly": 0.19230769230769232,
          "mean_wind_kn": 11.8,
          "rain_mm": 29
        },
        {
          "month": 3,
          "name": "March",
          "force5_days": 8.6,
          "force6_days": 2.6,
          "force6_days_total": 26,
          "force6_direction_counts_45deg_from_0": [
            5,
            8,
            0,
            0,
            3,
            3,
            2,
            5
          ],
          "force6_share_north_east": 0.5,
          "force6_share_south_east": 0,
          "force6_share_northerly": 0.38461538461538464,
          "mean_wind_kn": 11.6,
          "rain_mm": 43
        },
        {
          "month": 4,
          "name": "April",
          "force5_days": 7.2,
          "force6_days": 0.6,
          "force6_days_total": 6,
          "force6_direction_counts_45deg_from_0": [
            0,
            3,
            1,
            0,
            2,
            0,
            0,
            0
          ],
          "force6_share_north_east": 0.5,
          "force6_share_south_east": 0.16666666666666666,
          "force6_share_northerly": 0,
          "mean_wind_kn": 11.7,
          "rain_mm": 53
        },
        {
          "month": 5,
          "name": "May",
          "force5_days": 4.6,
          "force6_days": 0.8,
          "force6_days_total": 8,
          "force6_direction_counts_45deg_from_0": [
            0,
            3,
            2,
            2,
            0,
            0,
            1,
            0
          ],
          "force6_share_north_east": 0.375,
          "force6_share_south_east": 0.5,
          "force6_share_northerly": 0,
          "mean_wind_kn": 10.3,
          "rain_mm": 100
        },
        {
          "month": 6,
          "name": "June",
          "force5_days": 1.9,
          "force6_days": 0.2,
          "force6_days_total": 2,
          "force6_direction_counts_45deg_from_0": [
            0,
            0,
            0,
            1,
            0,
            1,
            0,
            0
          ],
          "force6_share_north_east": 0,
          "force6_share_south_east": 0.5,
          "force6_share_northerly": 0,
          "mean_wind_kn": 9.3,
          "rain_mm": 109
        },
        {
          "month": 7,
          "name": "July",
          "force5_days": 0.6,
          "force6_days": 0,
          "force6_days_total": 0,
          "force6_direction_counts_45deg_from_0": [
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0
          ],
          "force6_share_north_east": null,
          "force6_share_south_east": null,
          "force6_share_northerly": null,
          "mean_wind_kn": 9.1,
          "rain_mm": 75
        },
        {
          "month": 8,
          "name": "August",
          "force5_days": 2.2,
          "force6_days": 0.5,
          "force6_days_total": 5,
          "force6_direction_counts_45deg_from_0": [
            2,
            0,
            1,
            2,
            0,
            0,
            0,
            0
          ],
          "force6_share_north_east": 0.4,
          "force6_share_south_east": 0.6,
          "force6_share_northerly": 0.4,
          "mean_wind_kn": 9.4,
          "rain_mm": 77
        },
        {
          "month": 9,
          "name": "September",
          "force5_days": 3.8,
          "force6_days": 1.8,
          "force6_days_total": 18,
          "force6_direction_counts_45deg_from_0": [
            1,
            3,
            4,
            4,
            5,
            1,
            0,
            0
          ],
          "force6_share_north_east": 0.2222222222222222,
          "force6_share_south_east": 0.4444444444444444,
          "force6_share_northerly": 0.05555555555555555,
          "mean_wind_kn": 9.1,
          "rain_mm": 127
        },
        {
          "month": 10,
          "name": "October",
          "force5_days": 8.6,
          "force6_days": 1.7,
          "force6_days_total": 17,
          "force6_direction_counts_45deg_from_0": [
            0,
            10,
            2,
            1,
            0,
            3,
            1,
            0
          ],
          "force6_share_north_east": 0.5882352941176471,
          "force6_share_south_east": 0.17647058823529413,
          "force6_share_northerly": 0,
          "mean_wind_kn": 11.7,
          "rain_mm": 102
        },
        {
          "month": 11,
          "name": "November",
          "force5_days": 8.1,
          "force6_days": 2.5,
          "force6_days_total": 25,
          "force6_direction_counts_45deg_from_0": [
            6,
            10,
            6,
            1,
            0,
            0,
            0,
            2
          ],
          "force6_share_north_east": 0.64,
          "force6_share_south_east": 0.28,
          "force6_share_northerly": 0.32,
          "mean_wind_kn": 11.2,
          "rain_mm": 56
        },
        {
          "month": 12,
          "name": "December",
          "force5_days": 9,
          "force6_days": 2.3,
          "force6_days_total": 23,
          "force6_direction_counts_45deg_from_0": [
            2,
            7,
            3,
            1,
            1,
            2,
            5,
            2
          ],
          "force6_share_north_east": 0.391304347826087,
          "force6_share_south_east": 0.17391304347826086,
          "force6_share_northerly": 0.17391304347826086,
          "mean_wind_kn": 11.8,
          "rain_mm": 48
        }
      ]
    }
  ],
  "season": [
    {
      "text": "The Atlantic hurricane season runs from June 1 to November 30. The peak of the season is September 10, with most activity between mid-August and mid-October (NOAA National Hurricane Center).",
      "status": "official",
      "sources": [
        {
          "id": "noaa_season",
          "name": "NOAA National Hurricane Center",
          "title": "Tropical cyclone climatology",
          "url": "https://www.nhc.noaa.gov/climo/",
          "checked": "2026-10-29",
          "note": "No page date. Season 1 June–30 November; peak 10 September; most activity mid-August to mid-October; average season 14 named storms, 7 hurricanes, 3 major hurricanes (1991–2020).",
          "tier": "official"
        }
      ]
    },
    {
      "text": "Based on a 30-year climate period from 1991 to 2020, an average Atlantic hurricane season has 14 named storms, 7 hurricanes and 3 major hurricanes. These are counts for the whole Atlantic basin, not for one island group (NOAA National Hurricane Center).",
      "status": "official",
      "sources": [
        {
          "id": "noaa_season",
          "name": "NOAA National Hurricane Center",
          "title": "Tropical cyclone climatology",
          "url": "https://www.nhc.noaa.gov/climo/",
          "checked": "2026-10-29",
          "note": "No page date. Season 1 June–30 November; peak 10 September; most activity mid-August to mid-October; average season 14 named storms, 7 hurricanes, 3 major hurricanes (1991–2020).",
          "tier": "official"
        }
      ]
    },
    {
      "text": "NOAA defines a tropical storm as a tropical cyclone with maximum sustained surface wind (1-minute average) of 34 kt to 63 kt, and a hurricane as one with 64 kt or more (NOAA National Hurricane Center glossary).",
      "status": "official",
      "sources": [
        {
          "id": "wr_nhc_glossary",
          "name": "NOAA National Hurricane Center",
          "title": "Glossary of NHC terms (tropical storm, hurricane, hurricane season)",
          "url": "https://www.nhc.noaa.gov/aboutgloss.shtml",
          "checked": "2026-10-29",
          "note": "No page date. Tropical storm 34–63 kt; hurricane 64 kt or more (1-minute sustained).",
          "tier": "official"
        }
      ]
    }
  ],
  "context": [],
  "method": {
    "storms": "Storm passes: from NOAA's HURDAT2 best-track file (hurdat2-1851-2025-092326.txt) we take every tropical storm or hurricane (HURDAT2 status TS or HU) whose track starts in 1991–2020, NHC's 30-year climate period. We interpolate the track in a straight line every 60 minutes between fixes (not across gaps over 12 hours) and count a storm once, in the month it first came within 100 nm of our reference point. The 100 nm radius, the interpolation and the month rule are our choices. \"Storm-years\" are the years out of 30 with at least one pass in that month. Our calculation.",
    "wind": "Strong-wind days: from NASA POWER's daily WS10M_MAX (the highest hourly mean 10 m wind of the day in one grid cell), converted to knots (1 m/s = 3600/1852 kn), we count the days per month at or above 17 kn (Beaufort force 5, fresh breeze) and 22 kn (force 6, strong breeze), the lower limits on the Met Office scale, as a mean per month over 2016–2025. Direction shares use the day's mean wind direction (WD10M) in 45° bins. Our calculation.",
    "rain": "Rain: NASA POWER's monthly corrected precipitation (PRECTOTCORR, mm/day) times the days in each month, averaged over 2016–2025, whole millimetres. Our calculation, not a rain-gauge normal.",
    "calendar": "Calendar: a month is marked if any part of it falls in the source's window (our mapping). \"Mid-July\", \"the cold part of the year\" and similar are the source's words."
  },
  "caveats": [
    "Storm passes are historical frequencies for 1991–2020 within 100 nm of one reference point (our choice of radius); they are not a forecast, and a pass within 100 nm does not mean storm-force winds at the anchorage.",
    "Strong-wind days use NASA POWER's highest hourly mean wind of the day in a ½° × ⅝° grid cell (about 50 km across); real gusts and local winds (funnelling between islands, the bora at the foot of the mountains) are stronger than the cell shows.",
    "Some grid cells include land (elevation from NASA POWER: 0 m at Marsh Harbour, Abaco), so their winds are lower than at sea.",
    "Wind direction is the cell's daily mean direction; north-easterly days are our proxy for the bora and northerly days for the meltemi, not observed events.",
    "Rainfall is NASA POWER's corrected precipitation for the cell, not a rain-gauge normal from the national weather service.",
    "Official dates (\"mid-July\", \"the cold part of the year\") are quoted; our month mapping in the calendar is ours."
  ],
  "derived": "Storm passes, shares, strong-wind days, direction shares and rainfall are our calculation from NOAA HURDAT2 and NASA POWER.",
  "insurance_note": "Booking in a risk season? Read your charter contract's weather and hurricane clauses: what happens if a named storm or a port closure stops you sailing, and whether you get a refund, a credit or new dates. Some booking platforms and charter companies sell cancellation options or a \"weather guarantee\", and some travel insurance covers trip cancellation or cutting a trip short because of weather; check what triggers the cover. We have no insurance partner and do not recommend a product.",
  "not_verified": [
    "The Bahamas Department of Meteorology climate document (the PDF could not be read)."
  ],
  "status_legend": {
    "official": "Read in an official text: government, park authority, ministry or official tourism board.",
    "secondary": "From a newspaper, NGO, guide or tour operator; not official.",
    "not_verified": "We could not confirm it. We leave it open rather than guess."
  },
  "sources": [
    {
      "id": "noaa_season",
      "name": "NOAA National Hurricane Center",
      "title": "Tropical cyclone climatology",
      "url": "https://www.nhc.noaa.gov/climo/",
      "checked": "2026-10-29",
      "note": "No page date. Season 1 June–30 November; peak 10 September; most activity mid-August to mid-October; average season 14 named storms, 7 hurricanes, 3 major hurricanes (1991–2020).",
      "tier": "official"
    },
    {
      "id": "wr_nhc_glossary",
      "name": "NOAA National Hurricane Center",
      "title": "Glossary of NHC terms (tropical storm, hurricane, hurricane season)",
      "url": "https://www.nhc.noaa.gov/aboutgloss.shtml",
      "checked": "2026-10-29",
      "note": "No page date. Tropical storm 34–63 kt; hurricane 64 kt or more (1-minute sustained).",
      "tier": "official"
    },
    {
      "id": "wr_nhc_hurdat2",
      "name": "NOAA National Hurricane Center",
      "title": "Atlantic hurricane database HURDAT2, 1851–2025",
      "url": "https://www.nhc.noaa.gov/data/#hurdat",
      "checked": "2026-10-29",
      "note": "File hurdat2-1851-2025-092326.txt (updated 23 September 2026). Storm passes within 100 nm of our reference points, 1991–2020, are our calculation (scripts/fetch-hurdat.mjs).",
      "tier": "official"
    },
    {
      "id": "wr_nasa_power_daily",
      "name": "NASA POWER",
      "title": "Prediction Of Worldwide Energy Resources: Daily API (WS10M_MAX, WD10M) and Monthly API (PRECTOTCORR)",
      "url": "https://power.larc.nasa.gov/docs/services/api/temporal/daily/",
      "checked": "2026-10-29",
      "note": "Pulled with scripts/fetch-weather-daily.mjs for 2016–2025 at our 10 reference points and 2 route points. WS10M_MAX is the highest hourly mean of the day in a ½° × ⅝° grid cell, not a gust. Strong-wind day counts and rainfall means are our calculation.",
      "tier": "official"
    },
    {
      "id": "su_metoffice_beaufort",
      "name": "Met Office",
      "title": "Beaufort wind force scale",
      "url": "https://weather.metoffice.gov.uk/guides/coast-and-sea/beaufort-scale",
      "checked": "2026-10-29",
      "note": "UK national weather service. No page date. Force 2 (light breeze) 4–6 kn; force 4 (moderate breeze) 11–16 kn. We use 6 and 16 kn as the anchors of our wind score. Force 5 (fresh breeze) 17–21 kn; force 6 (strong breeze) 22–27 kn. We use 17 and 22 kn as the thresholds of our strong-wind day counts.",
      "tier": "official"
    },
    {
      "id": "nasa_power_monthly",
      "name": "NASA POWER",
      "title": "Prediction Of Worldwide Energy Resources: Monthly API (T2M, WS10M)",
      "url": "https://power.larc.nasa.gov/docs/services/api/temporal/monthly/",
      "checked": "2026-10-28",
      "note": "Monthly point data for 2016–2025 pulled on 28 Oct 2026 with scripts/fetch-weather.mjs (API v2.10.0, community RE, parameters T2M = temperature at 2 m in °C and WS10M = wind speed at 10 m in m/s; meteorological grid ½° × ⅝° per https://power.larc.nasa.gov/docs/methodology/). One request per reference point, in the form https://power.larc.nasa.gov/api/temporal/monthly/point?parameters=T2M,WS10M&community=RE&longitude=<lon>&latitude=<lat>&start=2016&end=2025&format=JSON (coordinates in src/data/weather.ts). Route points for the Dubrovnik and Cyclades itineraries are in src/data/weather-routes.ts (scripts/fetch-route-weather.mjs, pulled 29 Oct 2026). Credit: https://power.larc.nasa.gov/docs/referencing/ . The pages we opened did not state a licence; NASA data is described to us as free for any use. Palma (Mallorca) reference point for the Mallorca vs Ibiza comparison in src/data/weather-routes.ts (scripts/fetch-route-weather.mjs, pulled 29 Oct 2026)."
    }
  ],
  "attribution": "Cite \"Catamaran Index\" with a link to the canonical_url of the page the figure comes from, and name the original source listed with it.",
  "affiliate_note": "book_url links go through /go/samboat, an affiliate link: Catamaran Index may earn a commission on bookings, at no extra cost to the traveller. It never changes the data."
}
