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.0.tar.gz (36.9 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.0-py3-none-any.whl (23.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nephyr_weather-0.1.0.tar.gz
  • Upload date:
  • Size: 36.9 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.0.tar.gz
Algorithm Hash digest
SHA256 0804115b5c4440f29d946345f344ae62078fab626278ac63857ed9d13f0aa4f9
MD5 0bbc9e79f5cbf22c740e081e6ae672c6
BLAKE2b-256 89a6f0e9a773d66d08c62a5b3c9c2d5419b9fe9c3a7e24112be278203eedbe4e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nephyr_weather-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.3 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1e6f7a149496fa051bdebb83b4b89c1b1032abf62b758dd42d3fd82ba7d63c33
MD5 d9547711c09290dc3b76792038548c90
BLAKE2b-256 b1d2b74fe337f6872c066d94e7baba22e9cfb3a40255301e348ac481dcedc46e

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