Skip to content

Overview

Introduction

Mostly Right is a local-first SDK for people who need weather and climate data they can trust inside a model. It starts with observations because the public feeds quietly disagree with each other — and those disagreements surface at the worst possible moment.

When you train or backtest on weather, you need exactly two things: what the station reported, and when. Public feeds give you approximations. Airport sensors publish METARs that get rewritten by downstream aggregators, rounded, timezone-shifted, and occasionally silently corrected hours later. By the time the number lands in most APIs, it’s no longer the number that was actually observed.

That mismatch corrupts a model quietly. Not every row. But when it does, you won’t know why — you’ll just see a backtest that won’t reproduce live.

The SDK fetches weather observations raw-as-reported, from the station, at the moment they were reported. It never substitutes a later correction. The first observation wins. It validates against physics at fetch time and flags bad records instead of dropping them silently.

Three sources, deduped with a deterministic tiebreak:

AWC (live aviation METAR) tiebreak 3
IEM (Iowa Environmental) tiebreak 2
GHCNh (NOAA hourly archive) tiebreak 1

When fetched feeds overlap, a client-side tiebreak runs in your process to pick one row per observation — rawer source first, first-reported first within a source. No hosted ranking, no silent overwrites.

  • Quants and researchers building models on weather who need the real observation, not a cleaned one.
  • ML pipelines that need reproducible, point-in-time-correct training data — the same number every time you rebuild.
  • AI agents — Claude, GPT, any model with tool-use — that need structured, reproducible weather data they can call directly from a notebook or runtime.

Not for: casual weather dashboards, consumer apps, or anyone who wants their data “tidied up.”

Trading weather on a prediction market (Kalshi, Polymarket)? The same observation truth is what settles the contract — see the markets guide.

import mostlyright
df = mostlyright.research(
station="KNYC",
from_date="2026-04-01",
to_date="2026-04-07",
)
print(df.head())

That’s it. You’re reading Central Park, April 1–7, raw. Twenty stations currently online. Observations, climate, forecasts, and live METAR all through the same package. The SDK calls AWC, IEM, GHCNh, and NWS CLI directly and caches to ~/.mostlyright/cache/.