Skip to main content

Weather signal intelligence for prediction markets — GFS ensemble forecasts vs market prices

Project description

Nephyr Weather

Weather signal intelligence for prediction markets.

Fetches 31-member GFS ensemble forecasts from Open-Meteo and compares model probabilities against live market prices on Polymarket and Kalshi to detect tradeable edges.

Install

pip install nephyr-weather          # core + httpx
pip install "nephyr-weather[mcp]"   # + MCP server
pip install "nephyr-weather[api]"   # + FastAPI REST server
pip install "nephyr-weather[all]"   # everything

Quick start

import asyncio
from nephyr_weather import OpenMeteoClient, signal_from_forecast, MarketInfo, detect_edge

async def main():
    # 1. Fetch GFS ensemble forecast
    async with OpenMeteoClient() as client:
        forecast = await client.fetch_ensemble("NYC", "2026-03-29")

    # 2. Generate probability signal
    signal = signal_from_forecast(forecast, threshold_f=75.0, direction="above")
    print(f"Model P(NYC high > 75°F): {signal.model_probability:.1%}")

    # 3. Compare to market price
    market = MarketInfo(
        platform="kalshi",
        ticker="KXHIGHNY-26MAR29-T75",
        city="NYC",
        threshold_f=75.0,
        direction="above",
        market_price=0.55,
    )
    result = detect_edge(signal, market)
    print(f"Edge: {result.edge:+.1%}, EV: {result.ev:.4f}, Tradeable: {result.is_tradeable}")

asyncio.run(main())

Supported cities

NYC, Chicago, Miami, Austin, LA, Denver, Boston, London, Seoul, Shanghai, Hong Kong, Atlanta

Modules

Module Purpose
cities City coordinates + name normalisation
ensemble Open-Meteo GFS client, temperature utils
signals Probability calculations from ensemble arrays
markets Polymarket + Kalshi weather market discovery
edge Edge detection, EV calculation
types Public dataclasses

MCP server

nephyr-weather-mcp

Tools: get_weather_signals, get_ensemble_forecast, detect_edges, list_active_markets, get_city_info

REST API

uvicorn api.app:app --reload

Endpoints: POST /v1/signals, POST /v1/forecast, POST /v1/edges, GET /v1/markets, GET /v1/cities, GET /v1/health

Pricing

Tier Details
Free 10 signals/day (one city)
Paid $49/month — all 12 cities, unlimited calls
Enterprise $499/month — custom cities, SLA, dedicated support
Agent-to-agent $0.01/signal

License

MIT — CLM Studios

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nephyr_weather-0.1.1.tar.gz (37.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nephyr_weather-0.1.1-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file nephyr_weather-0.1.1.tar.gz.

File metadata

  • Download URL: nephyr_weather-0.1.1.tar.gz
  • Upload date:
  • Size: 37.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for nephyr_weather-0.1.1.tar.gz
Algorithm Hash digest
SHA256 74b8f20a4057eef310b89cfb7e1ee9bffd542a1b179f0d8b77f713869c6fb882
MD5 801c7f745741303d9753dacb67300767
BLAKE2b-256 3cd4b79a2690a61b0dca6947dc710d9c9d79bc60a1ac81e40126e7a65962af56

See more details on using hashes here.

File details

Details for the file nephyr_weather-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: nephyr_weather-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for nephyr_weather-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 57c69bd406646aa4763f109519fb42b6b59430a06a25b5cff330015905113fb2
MD5 aa6305af11769160c9b145308a198ab4
BLAKE2b-256 f685370a7eef7088566e28e2ab055620bba94332f9fc59f92143af80cf824562

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page