Skip to content

Daily summaries

weather.daily_summaries() returns the official NWS CLI daily high and low for each station-local date. Use these rows when you need the published daily summary rather than an aggregate computed from individual observations.

from mostlyright import weather
daily = weather.daily_summaries(
"KNYC",
"2026-01-01",
"2026-01-03",
)
print(daily[[
"local_standard_date",
"daily_summary_temp_high_f",
"daily_summary_temp_low_f",
"daily_summary_report_type",
"source",
]])
print(daily.attrs["source"]) # cli.archive

Both dates are inclusive. station accepts a four-letter ICAO code such as KNYC or the corresponding three-letter NWS code such as NYC.

import { dailySummaries } from "@mostlyrightmd/weather/daily-summaries";
const { rows } = await dailySummaries(
"KNYC",
"2026-01-01",
"2026-01-03",
);
for (const row of rows) {
console.log(
row.local_standard_date,
row.daily_summary_temp_high_f,
row.daily_summary_temp_low_f,
row.source,
);
}

The serialized field names stay in snake case in both runtimes.

  • local_standard_date: the station’s fixed local-standard calendar day
  • daily_summary_temp_high_f: the published daily high in °F, or null
  • daily_summary_temp_low_f: the published daily low in °F, or null
  • daily_summary_report_type: whether the source report is preliminary, final, or another published type
  • issued_at_utc: when the report was issued, when the source supplies it
  • source: the endpoint that produced the row

The frame-level source is cli.archive. Each returned row keeps the endpoint source beside the value.

NWS CLI is a daily batch product. A later report can supersede an earlier preliminary report for the same day. Mostly Right applies a fixed report priority so the final daily record wins when it is available.

daily_summaries() has no live stream. Current periods can be fetched again as the source publishes updated reports.

These are the official daily-summary labels used for Kalshi NHIGH and NLOW weather markets. They are not reconstructed from the highest or lowest METAR observation.

Use Daily windows to understand why the station-local date differs from the raw UTC date around midnight.

  • Unknown stations and malformed dates fail before a data frame is returned.
  • from_date after to_date raises an error.
  • Python rejects source="acis" because this method has no ACIS path.
  • Python with backend="polars" requires return_type="wrapper".