How APH Weather Predictor Works
This app finds mispriced Polymarket temperature markets by comparing real-time airport weather observations to current market prices. It reads the exact same data source that Polymarket uses to resolve markets — ASOS stations at major airports, reported via METAR and archived on Weather Underground.
Four background engines run continuously without any manual intervention:
| Engine | Source | Frequency | What It Does |
|---|---|---|---|
| METAR Observer | aviationweather.gov | Every 2 min | Pulls live temperature from every resolution airport station |
| NWS Forecaster | api.weather.gov | Every 10 min | Refreshes hourly forecast data for all US cities |
| Market Scanner | Gamma API | Every 15 min | Discovers new temperature events across all cities and dates |
| Price Tracker | Gamma API | Every 60 sec | Refreshes YES/NO prices for all known markets |
After every METAR or price update, the EV calculator re-runs across all markets. The UI refreshes every 10 seconds.
Understanding the Edge
There are three layers of edge, in order of strength:
1. Observation Edge (strongest)
As the day progresses, METAR observations show the actual temperature right now at the resolution station. By early afternoon, the daily high is often effectively locked in — but the market still prices uncertainty. The pace-adjusted projection incorporates this live data. When you see running hot or already hit in the Pace Adj column, the model is highly confident.
2. Forecast Divergence Edge
NWS forecasts are updated hourly but Polymarket prices lag behind, especially for tomorrow's markets. When the NWS shifts a forecast by 3-4 degrees, the market often takes 30-60 minutes to adjust. The system catches these shifts automatically.
3. Model Run Edge
The GFS model updates at 00, 06, 12, and 18 UTC. ECMWF updates at 00 and 12 UTC. When a new model run drops with a significant forecast shift, you have a window of 15-45 minutes before the market reprices.
When to Place Bets
Best Windows for Today's Markets (same-day)
| Time (Local) | Market Type | Why This Window |
|---|---|---|
| 6:00-8:00 AM | Low Temp | Morning low is being set right now. METAR shows real-time low. Market still pricing yesterday's forecast. |
| 10:00 AM-12:00 PM | High Temp | Temperature is ramping. Pacing data tells you if it's running ahead or behind. Market hasn't repriced for the latest observations. |
| 1:00-3:00 PM | High Temp | Peak window. The high is nearly locked in at most stations. Observation edge is at maximum. If you see "running hot" or "already hit", bet with high confidence. |
Best Windows for Tomorrow's Markets
| Time (UTC) | What Happens | Action |
|---|---|---|
| 03:00-05:00 UTC | GFS 00z run completes | Check for forecast shifts vs. current market prices |
| 09:00-11:00 UTC | GFS 06z + ECMWF 00z available | Best time to bet tomorrow's markets — freshest model data, market is sleepiest |
| 15:00-17:00 UTC | GFS 12z + ECMWF 12z | Afternoon update. Good for refining positions or catching late shifts. |
Most Profitable Cities (from Backtest)
10-day backtest results ranked by profitability:
| Rank | City | Win Rate | Optimal Sigma | Why It Works |
|---|---|---|---|---|
| 1 | Miami | 100% | 1.0°F | Extremely predictable coastal temps. Market consistently overestimates uncertainty. The tightest sigma of any city. |
| 2 | Los Angeles | 100% | 1.0°F | Marine layer makes LAX temps highly regular. Same tight sigma as Miami. Market treats it like an inland city. |
| 3 | Atlanta | 91% | 1.0°F | Strong performance. Occasional misses from surprise storms, but very predictable most days. |
| 4 | Chicago | 82% | 1.0°F | Lake Michigan adds volatility, but the model handles it. Higher miss rate but still very profitable. |
| 5 | Houston | 100% | 2.0°F | Gulf Coast consistency. Slightly wider sigma than coastal cities but still well-calibrated. |
| 6 | Denver | 100% | 3.5°F | Widest sigma due to Front Range weather swings. Fewer bets but high conviction when they trigger. |
Bet Sizing Strategy
The Half-Kelly column shows the recommended bet size as a percentage of your bankroll. This is derived from the Kelly Criterion, the mathematically optimal sizing formula that maximizes long-term growth while managing risk.
Rules of Thumb
| Half-Kelly % | Meaning | Suggested Action |
|---|---|---|
| > 20% | Massive edge detected | Verify the data manually before betting this large. Could be a data anomaly. Cap at 10% of bankroll per bet. |
| 10-20% | Strong edge | Bet comfortably. These are your bread-and-butter plays. |
| 5-10% | Solid edge | Standard bet. Good risk/reward. |
| 2-5% | Marginal edge | Small bet or skip. Only take these if you have high conviction from the pace data. |
Understanding Pace Status Tags
| Tag | Meaning | Confidence Level |
|---|---|---|
| running hot | Current temp already exceeds the NWS forecast. Projection adjusted upward. | Very high for HIGH markets — the actual high will likely exceed forecast. |
| already hit | The observed high today has already reached the forecast. Projection uses actual observed high. | Extremely high — the daily high is essentially known. Bet aggressively on any mispriced buckets. |
| pacing behind | Current temp is below the hourly forecast curve. Projection adjusted slightly downward. | Moderate — the high may still come in lower than forecast, but temps could also catch up. |
| low already set | For LOW markets: the observed low is already below forecast. Uses actual observed low as projection. | Very high — the daily low is effectively locked in once morning warming begins. |
| no obs | No METAR observation available for this station yet. Falling back to NWS forecast only. | Lower — you're operating on forecast alone without observation confirmation. |
Tips and Tricks
Quick Reference: Market Resolution
Every Polymarket temperature market resolves based on the daily weather history page on Weather Underground for a specific airport ASOS station. The station is listed in each market's rules. Resolution typically happens within hours of midnight local time, after the full day's data is finalized.
Temperature is measured to whole degrees (Fahrenheit for US, Celsius for international). The reading comes from automated sensors that update every 60 seconds, with formal METAR reports every hour and special reports every 5 minutes when conditions change rapidly.