Table of Contents

On January 26-27, 2026, a winter storm hit the northeast. The FAA issued BOS ground stops across both days (7 BOS advisories on Jan 26, 4 on Jan 27, within 95 and 69 total advisories respectively).

Unlike the May 19 thunderstorm, winter storms produce a different ADS-B signature: extended ground stops (hours, not the 2.5-hour thunderstorm window), deicing delays visible as long gate holds, and reduced but not eliminated traffic — airlines cancel flights proactively rather than holding airborne.

1. Storm Impact Summary

Data sourced from Boston.com and NBC Boston:

Metric Value
Snow at Logan 18.6 inches
Flight cancellations (Logan) 508-971
US-wide cancellations 3,921
US-wide delays 1,655
Ground stop No official stop — "few airlines operating"
Runway goal 1 runway open for emergencies

Massport advisory: "Due to winter storm clean up, few airlines are operating at Logan today. Please check with your airline before coming to the airport."

2. Weather Data Sources

The following APIs provide weather data for KBOS correlation:

Source Endpoint Historical Notes
NWS Observations api.weather.gov 3 days Free, no auth
AWC Archive aviationweather.gov 30 days METAR/TAF
NCEI CDO ncei.noaa.gov 5 years Request via AIRS
NWS FTP tgftp.nws.noaa.gov Current Raw METAR

For data older than 30 days (like January 2026), use the NCEI Archive Information Request System (AIRS). Select "Land-Based" → "Service Records Retention System (SRRS)" and request KBOS data for the date range. Results are emailed within ~30 minutes.

3. REPL Session: Querying NWS API

The following demonstrates fetching current KBOS weather via the NWS API. This same pattern works for historical analysis once data is retrieved from NCEI.

;; REPL session: 2026-05-23T19:45:00Z
;; Query NWS API for KBOS current observations

(require '[babashka.http-client :as http])
(require '[cheshire.core :as json])

;; Fetch latest observation
(def kbos-obs
  (-> (http/get "https://api.weather.gov/stations/KBOS/observations/latest"
                {:headers {"User-Agent" "flight-tracking/1.0"}})
      :body
      (json/parse-string true)))

;; Extract key fields
(def weather
  {:station (get-in kbos-obs [:properties :station])
   :timestamp (get-in kbos-obs [:properties :timestamp])
   :temperature-c (get-in kbos-obs [:properties :temperature :value])
   :wind-speed-kmh (get-in kbos-obs [:properties :windSpeed :value])
   :visibility-m (get-in kbos-obs [:properties :visibility :value])
   :description (get-in kbos-obs [:properties :textDescription])})

weather
;; => {:station "https://api.weather.gov/stations/KBOS"
;;     :timestamp "2026-05-23T23:45:00+00:00"
;;     :temperature-c 13
;;     :wind-speed-kmh 9.252
;;     :visibility-m 16093.44
;;     :description "Clear"}

The NWS API returns GeoJSON with nested properties. Key fields for flight impact assessment:

  • visibility — below 1600m triggers IFR, affecting approach rates
  • windSpeed / windDirection — crosswind limits vary by runway
  • textDescription — human-readable conditions

4. REPL Session: Historical METAR Fetch

For January 26 data, the Aviation Weather Center archive provides 30-day lookback. Beyond that, NCEI AIRS is required:

;; Fetch METAR from AWC archive (within 30 days)
(defn fetch-metar-archive [station date]
  (let [url (format "https://aviationweather.gov/api/data/metar?ids=%s&date=%s"
                    station date)]
    (-> (http/get url {:headers {"User-Agent" "flight-tracking/1.0"}})
        :body)))

;; For Jan 26 (>30 days old), we need NCEI AIRS
;; Submit request at: https://www.ncdc.noaa.gov/has/HAS.DsSelect
;; Select: Land-Based → SRRS Text Products
;; Station: KBOS, Date: 2026-01-26 to 2026-01-27

;; Once retrieved, parse the SRRS format:
(defn parse-metar-line [line]
  (let [[_ time wind vis wx temp dew altim]
        (re-matches #"KBOS (\d{6}Z) (\S+) (\S+) (\S*) (\S+)/(\S+) A(\d+)" line)]
    {:time time :wind wind :visibility vis :weather wx
     :temp temp :dewpoint dew :altimeter altim}))

;; Example METAR from Jan 26 blizzard:
;; KBOS 261456Z 02025G35KT 1/4SM +SN BLSN VV008 M04/M06 A2974
;; Wind 020 at 25 gusting 35kt, 1/4 mile vis, heavy snow, blowing snow

5. FAA Timeline

Advisory Time (UTC) Facility Action
Jan 26 BOS/ZBW 7 BOS advisories within 95 total
Jan 27 BOS/ZBW 4 BOS advisories within 69 total

6. What's Missing

  • ADS-B receiver archive availability for Jan 26-27 (not yet confirmed)
  • NCEI SRRS data request pending — submit via AIRS for historical METAR
  • If no ADS-B archive: this case study stays FAA + weather-only, demonstrating ground stop recovery from public data alone

7. Data Source Verification

Sources for this section:

8. Open Question

Do winter ground stops produce the same altitude-band signature as thunderstorms? The hypothesis: no. Winter operations keep aircraft on the ground (deicing, cancellations), so the approach band shouldn't show holding patterns. The REPL test:

;; If archives exist: compare altitude distributions
(def winter-bands (altitude-histogram (load-data "2026-01-26" (range 24))))
(def storm-bands  (altitude-histogram (load-data "2026-05-19" [21 22 23])))

;; Are the distributions different?
(chi-squared-test winter-bands storm-bands)