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.
01 · The problem
Section titled “01 · The problem”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.
02 · What we do
Section titled “02 · What we do”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 3IEM (Iowa Environmental) tiebreak 2GHCNh (NOAA hourly archive) tiebreak 1When 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.
03 · Who this is for
Section titled “03 · Who this is for”- 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.
04 · A first call
Section titled “04 · A first call”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/.
Next steps
Section titled “Next steps”- Python quickstart — install, first call, cache layout.
- TypeScript quickstart — same surface from a Node or browser runtime.
- Data sources — why we pick AWC over IEM over GHCNh.