← All projects
PROJECT 03 / Market data / Research infrastructure

WeatherBot

Building a record of what the market could know.

  • Python
  • WebSockets
  • PySide6
  • CSV / JSONL
W / WeatherBotSYSTEM WORKFLOW
POINT-IN-TIME RESEARCH

What was known. And when.

01
Source time

When the observation happened

02
Receipt time

When the collector first saw it

03
Decision time

What the research could know

RulesStationFreshnessFull depth

Quality gates precede paper entry · architecture illustration

01

Overview

WeatherBot combines a historical weather-market backtest, prospective public-data recorders, a research dashboard, and a persistent paper engine. The core concern is provenance: what observation and what market depth were actually available at a decision time?

02

Problem

Weather markets depend on exact stations, local dates, bucket boundaries, rounding, and resolution sources. A later corrected observation or an incomplete order book can make a historical opportunity look more executable than it was.

03

Approach

Keep collection, point-in-time normalization, research, and paper execution behind separate boundaries. Retain original observations and local receipt times, validate each event’s rules, and expose missing evidence instead of filling it with market-implied guesses.

04

How it works

The NYC recorder discovers the exact Gamma event, validates the KLGA station and outcome partition, and subscribes to the YES-token level-two books. It records the complete received depth alongside distinct weather observations and their first-seen timestamps.

The multi-city paper runbook extends monitoring to NYC, Chicago, and Toronto. Local dashboard and Windows desktop modules provide collection controls, health views, and paper-account visibility.

  1. 01Weather & CLOB feeds
  2. 02Source + receipt timestamps
  3. 03Point-in-time records
  4. 04Quality & fee checks
  5. 05Depth simulation & reports
05

Strategy & methodology

The research foundation’s model-based entry function requires ten explicit gates, including valid rules and station, complete and fresh books, verified fees, model calibration, supported regime, source freshness, and a valid clock. Any failed gate blocks paper entry.

The separately configured three-city paper workflow checks afternoon checkpoints, a 0.90–0.97 price band, and at least 1.5% conservative edge after recorded fees and depth-weighted price. One entry per city/event and a shared exposure cap limit paper deployment.

06

Implementation

Python uses requests and websockets for ingestion, Decimal for monetary calculations, and zoneinfo for local-day handling. CSV and JSONL records preserve observations, depth, and research evidence; JSON persists paper state.

weather_research contains timestamp validation, precise METAR parsing, resolution emulation, calibration metrics, and full-depth entry evaluation. PySide6 supplies the Windows desktop interface; PyInstaller packaging is declared in the project.

07

Results & output

Outputs include timestamped order books, observation records, event metadata, trigger reports, research audits, and paper signal/fill records. The repository also contains screenshots of the local monitoring interface.

The documented research foundation explicitly withholds a trained model because its cited archive had only two incomplete event days. The existence of later collectors and strategy scripts does not establish a calibrated predictive edge.

Configured cities3
Model-entry quality gates10
Market captureFull depth
ExecutionPaper only

The three-city runbook covers NYC, Chicago, and Toronto. Collection and simulation features are demonstrated; this portfolio makes no profitability claim.

Original WeatherBot dashboard with collection health, paper account, and three city monitors
Original repository screenshot · paper-only monitoring interface · click to enlarge
08

Technical challenges

Receipt-time filtering prevents future observations from leaking into replay. Strict UTC handling and local timezone conversion preserve the correct event date across day boundaries.

Long recordings produce large full-depth files. Completed books can be losslessly compressed only after verifying the decompressed SHA-256 digest, while research readers support both raw and compressed records.

09

Takeaways

WeatherBot demonstrates that reliable research starts with the data record. Source interpretation, timestamp discipline, and explicit missing-data states are part of the system’s behavior, not just documentation.

CONTINUE EXPLORING

PolyWeather Lab

All selected work ↑