# NYC flight delays and weather, 2023–2025

**Model New York flight delays with schedule, route, airport, and pre-departure weather fields.** This dataset joins reported domestic departures from JFK, Newark, and LaGuardia with earlier weather observations and airport metadata. Use it for departure-delay classification, signed delay-minute regression, and comparisons across carriers, routes, schedules, and weather conditions. It contains 1,…

NYC flight delays and weather, 2023–2025 is an open, machine-readable dataset published on Mostly Right as immutable Parquet versions, with a documented column schema, a JSON query API and a direct download. Its first rows are free to read and it is open to AI agents.

## Facts

- Slug: `nyc-flight-delays-and-weather-januaryjuly-2025`
- Canonical page: https://mostlyright.md/datasets/nyc-flight-delays-and-weather-januaryjuly-2025
- Publisher: mostlyrightmd (https://mostlyright.md/publishers/mostlyrightmd)
- Published: 2026-09-14T23:18:20.217Z
- Tables: 1
- Formats: Apache Parquet (download), JSON (query and sample)
- Cost: the first 500 rows of each table are free to everyone; querying and downloading need a free account and count against a monthly free allowance unless the workspace is subscribed
- Metadata API: `GET https://mostlyright.md/api/v2/public/datasets/nyc-flight-delays-and-weather-januaryjuly-2025`
- Topics: flight delays, new york city, aviation, weather, machine learning

## How to use it

1. Read a table's schema — no account needed.
2. Fetch its published sample rows — no account needed.
   The first 500 rows of every table, in stored order, are free to everyone, with or without an account. Without an account you get that sample and nothing else: no filter, sort, search, download or page past row 500.
3. Sign in at https://mostlyright.md/login, connect this dataset to a workspace on its page, and create an `mr_use_` key.
4. Query bounded JSON, or download the complete Parquet snapshot and read it locally.
   A free workspace may read 100,000 rows and run 1,000 queries a UTC month past the sample. The allowance is shared by everyone in the workspace, and a free workspace may have any number of members. Reads count against the workspace whose data or key they use. A subscribed workspace is never counted, for anyone working in it.

Agents can do all of this over MCP at `https://mostlyright.md/api/mcp` — searching, reading schemas and sampling rows work with no credential at all.

## Table: nyc_flight_delays_ml

- Table id: `ca5f9706-e597-4842-9bd5-57215d43158c`
- Slug: `nyc-flight-delays-ml`
- Immutable version: `f878c247-6c2b-5f45-90ff-ec71a221511c`
- Schema: `GET https://mostlyright.md/api/v2/public/tables/ca5f9706-e597-4842-9bd5-57215d43158c/schema`
- Sample rows, no key: `GET https://mostlyright.md/api/v2/public/tables/ca5f9706-e597-4842-9bd5-57215d43158c/preview`
- Bounded JSON query: `POST https://mostlyright.md/api/v2/public/tables/ca5f9706-e597-4842-9bd5-57215d43158c/query` with `x-api-key: mr_use_…`
- Full Parquet snapshot: `GET https://mostlyright.md/api/v2/public/tables/ca5f9706-e597-4842-9bd5-57215d43158c/current` with `x-api-key: mr_use_…` (application/vnd.apache.parquet)

### Columns (33)

| Column | Type | Description |
| --- | --- | --- |
| `flight_date` | date | BTS scheduled departure local date. |
| `carrier` | string | Reporting operating carrier code. |
| `flight_number` | string | Reporting carrier flight number. |
| `origin` | string | Departure airport IATA code: JFK, EWR or LGA. |
| `destination` | string | Domestic destination IATA code. |
| `scheduled_departure_hhmm` | string | Scheduled departure local clock time, zero padded HHMM. |
| `departure_hour` | integer | Scheduled local hour. |
| `month` | integer | Calendar month. |
| `day_of_week` | integer | Monday 1 through Sunday 7. |
| `scheduled_elapsed_minutes` | decimal | Scheduled flight duration. |
| `distance_miles` | decimal | BTS nonstop flight distance. |
| `departure_delay_minutes` | decimal | Observed signed departure delay; negative is early. Outcome, not a predictor. |
| `arrival_delay_minutes` | decimal | Observed signed arrival delay; negative is early. Outcome, not a predictor. |
| `departure_delayed_15` | boolean | Observed departure at least 15 minutes late; outcome. |
| `arrival_delayed_15` | boolean | Observed arrival at least 15 minutes late; outcome. |
| `cancelled` | boolean | Observed cancellation; outcome. |
| `diverted` | boolean | Observed diversion; outcome. |
| `scheduled_departure_utc` | timestamp_utc | Scheduled departure converted from New York time; DST ambiguous hours left null. |
| `feature_cutoff_utc` | timestamp_utc | One hour before scheduled departure. |
| `origin_name` | string | Current airport metadata; not historically versioned. |
| `origin_latitude` | number | Current airport latitude. |
| `origin_longitude` | number | Current airport longitude. |
| `destination_name` | string | Current destination airport name. |
| `destination_latitude` | number | Current destination latitude. |
| `destination_longitude` | number | Current destination longitude. |
| `weather_station` | string | NOAA USAF+WBAN station identifier matched through ICAO codes. |
| `weather_observed_utc` | timestamp_utc | Latest routine METAR observation at or before feature cutoff, at most 3 hours old. Archive does not establish original publication time. |
| `weather_age_minutes` | decimal | Age of observation relative to feature cutoff. |
| `temperature_c` | decimal | NOAA temperature; missing and failed quality flags become null. |
| `dewpoint_c` | decimal | NOAA dewpoint; missing and failed quality flags become null. |
| `wind_speed_mps` | decimal | NOAA wind speed; missing and failed quality flags become null. |
| `visibility_m` | integer | NOAA horizontal visibility; missing and failed quality flags become null. |
| `ceiling_m` | integer | NOAA ceiling height; missing and failed quality flags become null. |

## Citing this dataset

Cite the dataset by name and canonical URL (https://mostlyright.md/datasets/nyc-flight-delays-and-weather-januaryjuly-2025), the table, and the immutable `version_id` the rows came from. A query response carries `table.version_id` and `table.content_digest`; a download carries a strong ETag and a `Content-Digest` header.
