Futures
Access hundreds of perpetual contracts
TradFi
Gold
One platform for global traditional assets
Options
Hot
Trade European-style vanilla options
Unified Account
Maximize your capital efficiency
Demo Trading
Introduction to Futures Trading
Learn the basics of futures trading
Futures Events
Join events to earn rewards
Demo Trading
Use virtual funds to practice risk-free trading
Launch
CandyDrop
Collect candies to earn airdrops
Launchpool
Quick staking, earn potential new tokens
HODLer Airdrop
Hold GT and get massive airdrops for free
Launchpad
Be early to the next big token project
Alpha Points
Trade on-chain assets and earn airdrops
Futures Points
Earn futures points and claim airdrop rewards
Using AI for weather forecasting, can you earn $200 a day just by relaxing?
Title: “Playing Weather Forecasts with AI, Earning $200 a Day”
Author: Changan
Source:
Repost: Mars Finance
Weather isn’t like elections—no stance; unlike NBA—no home team. But surprisingly, this market attracts domestic users. The reason is simple: everyone has feelings, everyone thinks they understand Shanghai’s weather.
But “feeling like you understand” and “being able to make money” are two different things.
Today, Biteye shares three things:
Understanding the settlement rules
Building a weather prediction method
Using systems to find trading opportunities others can’t see
First, clarify: How exactly is this weather market settled?
The settled temperature isn’t what you think
Many newcomers have a misconception: they compare the highest temperature forecast on their weather app with the market settlement, but the app shows the temperature for downtown Shanghai, while Polymarket (PM) settles based on actual measured data from Shanghai Pudong Airport (ZSPD weather station). This data is publicly available through Wunderground, an American weather platform, which PM directly reads as the settlement basis.
Two places, two numbers. Pudong Airport is on the east side of the city, near the Yangtze River estuary, affected by sea breezes, so its temperature is usually lower than downtown. This difference is hard to notice normally, but at boundary points, it can be the difference between a correct and incorrect bet.
So, in the weather market comment sections, you might see confusion like: “It feels warmer today than yesterday, why is the displayed max temperature actually lower?”
WU’s data comes directly from hourly METAR reports (the global civil aviation weather report format).
A detail here: METAR records temperatures in Fahrenheit as integers, and Wunderground displays these numbers directly, without conversion or correction.
Most weather forecast systems and meteorological models output temperatures with decimals. The more refined your model, the easier it is to overlook this rough detail.
After analyzing nearly 1,900 days of ZSPD data, the peak temperature times in Shanghai are more concentrated than expected:
All four seasons see peaks mainly between 11:00-13:00
Summer peaks at 12:00 are the most concentrated, accounting for 27.6% of the season’s maximum temperatures
Autumn peaks slightly earlier, with 10:00 also being a high-frequency period
Knowing the pattern is the first step, but patterns don’t monitor the market themselves. You need to know when the highest temperature occurs, whether it’s been broken, and how far it is from the boundary.
So, I built a system: before daily settlement, predict as accurately as possible which temperature range the highest will fall into.
After understanding the market rules, the next question is: how to predict the day’s highest temperature?
As a weather novice, the first step was to ask ChatGPT: how does the meteorological industry calculate the highest temperature of the day? What mature methods are there? ChatGPT provided a theoretical framework, which Claude turned into code. Two AIs working together, a weekend to set up the system.
We tried five methods in total, and only three worked.
The successful ones:
Predicting the highest temperature requires data. We used two sources:
Weather Company (WC): a commercial weather API providing hourly forecasts with high accuracy
ECMWF: the European Centre for Medium-Range Weather Forecasts, with a global meteorological model sensitive to large-scale weather systems
Each has strengths and weaknesses, so we combined them with weighted voting. The weights are dynamically adjusted based on the day’s weather type: on sunny days, trust WC more; on cloudy, windy days, trust ECMWF more.
Forecasts are made last night, but weather changes throughout the day. This module uses measured data from this morning to estimate the maximum temperature today.
The logic is simple: Shanghai’s temperature rises fastest between 8-9 am. Once the system gets the measured temperature at that time, it looks up historical data: in the same season and time, how much more can it typically rise?
Then, apply two corrections:
If cloud cover is heavy, multiply by a discount factor; thicker clouds hinder warming.
If wind speeds are high, multiply by another discount; strong winds accelerate heat loss. This yields an “extrapolated estimate.”
Pressure, dew point, humidity are also considered, but after backtesting, their influence was minimal, so they were removed.
But extrapolation alone isn’t stable enough. Here, a Kalman gain concept is used—essentially, a weighted average between the extrapolated result and the original forecast, with the weight adjusting automatically over time.
6 am: extrapolation accounts for only 20%, most reliance on forecast
12 pm: extrapolation accounts for 72%
After 1 pm: almost entirely based on measured data, at 85%
The later it gets, the more important real-time data; earlier, the more the historical forecast matters.
After 2 pm, the system judges the peak has likely passed and directly takes the highest temperature from historical records, no longer extrapolating.
This is the most satisfying module: every morning at 2-4 am, the system makes a judgment: will today’s highest temperature be higher than yesterday’s?
It collects weather data:
Pressure changes over the past 3 and 12 hours
Wind direction and speed at dawn, cloud cover
Yesterday’s temperature swing, temperature trend over the past three days, whether yesterday was high or low
Month, season, day of the year, whether it rained yesterday
The model outputs five categories: warming day, slightly warming, stable, slightly cooling, cooling day, with confidence levels.
However, accuracy varies across seasons:
Winter: most accurate—cold air arrives, pressure rises sharply, north winds strengthen, signals are very clear
Autumn: least accurate—repeated warm and cold air masses, temperature fluctuates daily, the pattern breaks down fastest
Elimination methods:
Initially tried fitting historical temperature cycles with Fourier analysis to predict the day’s maximum temperature.
Result: it only indicates the average temperature for that season, not daily fluctuations. Shanghai’s weather is too random; Fourier fit produces a smooth average curve, with an error of 3.6°C and systematic underestimation, so discarded.
ERA5 is the European climate center’s global reanalysis dataset, used to predict when the maximum temperature occurs.
Backtest results:
Within 1 hour: 59.6% accuracy
Within 2 hours: 81.3% accuracy
It sounds decent, but PM’s data is more precise, leaving little time for traders to act. If you can’t predict the peak within half an hour, it’s better to just watch Polymarket’s data. So, this method was eliminated.
Polymarket’s weather market opens trading four days in advance, with popular temperature ranges often fully priced early. Betting on high-probability ranges yields poor risk-reward.
My strategy is: wait for signals, wait for the warming window before entering.
Based on the custom weather system, I took two actions:
Case 1:
On the 16th early morning, Telegram pushed a night-mode report: tomorrow is a cooling day. The reason: thick clouds that night, and features indicating cooling—seasonal and day-of-year factors pointing downward.
I didn’t bet immediately. The early morning signal was just a first reference.
By 11 am, the system sent a real-time report during the warming period. The measured max temperature was already 12°C, with a +1°C probability score indicating a 42% chance of rising another degree—leaning towards no further warming.
Combining this with the early logic regression’s slight cooling signal, both modules agreed. The signal was much clearer now. So, I bet that the 16th’s max wouldn’t exceed 13°C.
Settlement that day: 12°C. The previous day, the 15th, was 15°C—a full 3-degree drop.
Case 2:
For today, the 17th, the weather system also provided early warning: at 7 am, a push showed an abnormal peak time at 22:00.
Normally, clear days peak at 1-3 pm, but today’s peak at 10 pm indicates not sunshine warming but warm, moist airflow at night. It rained all day, cloud cover 97-100%, almost no sunlight.
Checking Polymarket, the 12°C price was still at 53%. Some community members were confused: it’s already afternoon, temperature is only 11°C, the peak time has passed, why are people still betting on 12°C?
The confusion stems from using clear-sky logic to judge a rainy market.
The system isn’t confused. It identified the day’s weather type early, and with an abnormal peak time, there’s a clear discrepancy between current temperature and market expectations. This is an information gap—an opportunity for trading.
This is the purpose of the system: to make opportunities easier to spot and risks to be warned of faster.
What are other shortcomings?
A weekend’s worth of system development inevitably reveals issues:
Autumn accuracy is only 63.7%, close to a coin flip
Cold and warm air masses repeatedly tug at each other, causing temperature swings that invalidate historical patterns fastest in fall
Atmospheric pressure features are unavailable in live data. During training, pressure change was used as a feature, with good backtest results
Signals from cold air passages are clear, but in live operation, real-time pressure data isn’t accessible
Coastal corrections are pending data activation. The effect of sea breezes at Pudong is real, and the system has a correction module, but the sample size is still small
Running a system over a weekend has already uncovered these issues—valuable progress. Next, it will be refined while running.
Meteorology has developed over centuries, using satellites, supercomputers, global models, yet weather forecasts still can’t guarantee 100% accuracy for tomorrow. It’s not that scientists aren’t working hard enough; the atmosphere itself is chaotic—small initial differences can lead to vastly different outcomes.
This weekend’s system will inevitably make mistakes. Autumn accuracy is near a coin flip; early cold air might be missed; sea breeze effects are not fully captured yet.
But that’s not the point. In prediction markets, you don’t need to be right every time—just need to see more information than the market when odds are favorable.