How to Build a Probability Convergence Chart Using Kalshi Historical Weather Data (VWPA Guide)
Step-by-step guide to building a probability convergence chart for Kalshi weather markets using historical trades, VWPA, and time bucketing in Lychee.
Kalshi weather markets often look noisy in real time.
But when you reconstruct them using historical trade data, a pattern emerges:
Prices don’t move randomly — they converge toward outcomes.
This guide shows you how to build that exact chart.
You will learn how to:
- connect to the largest Kalshi historical datasets avaiable anywhere
- pull Kalshi historical market data
- pull Kalshi historical trade data
- filter weather markets
- rank markets by volume
- reconstruct historical trade activity
- aggregate trades into 15-minute time buckets
- compute VWPA - style probability curves using volume weighted average prices.
- bucket trades into time intervals
- visualize probability convergence over time
- build an interactive probability convergence chart
No code required.
No infrastructure.
Just structured market data.
What you are building
You will recreate a chart that shows:
YES probability over time NO probability over time smoothed using VWPA aggregated in 15-minute intervals
This reveals:
how market consensus evolves before settlement
Why this matters
Raw trade data is too noisy to interpret directly.
A single market can have thousands of trades per hour.
So instead of raw ticks, we:
- smooth price using VWPA
- aggregate into time buckets
- reconstruct probability over time
This turns chaotic trading into:
a clean probability convergence curve
Make a request on Kalshi historical data now
You can start pulling weather market and trade data here before walking through each step. Try Markets with a Weather category filter, or search by ticker to load trade history for convergence analysis.
Search Kalshi weather trades now
Filter weather markets, sort by volume, and pull trade data — the same workflow this guide builds step by step below.
Step 1 — Connect to Kalshi Historical Data
Go to Lychee and open:
- Kalshi Historical Integration

Then:
- Select Markets

- Choose columns:
category: Kalshi meta categories (Sports, Crypto, Weather, Finance, Politics, Science/Tech, Entertainment, Media, World Events, Esports, Other)ticker: Kalshi's unique identifier for each market. Required to pull trade data for that market.title: Human-readable market name (e.g. “Will NYC high temperature be X on date Y?”). Useful for finding markets of interest.volume: Total contracts traded over the market's lifespan.

Step 2 — Filter Weather Markets
Head to Refine Query section.
Select "Where" to apply filter:
WHERE → Category
value → Weather (you would change the value selection to Sports, Crypto, etc depending on the category you are interested in)
This isolates weather-related prediction markets.

Step 3 — Sort by Volume (find meaningful markets)
Now:
SORT → volume
order → Descending
This arranges your Weather markets from highest volume to lowest volume.
This ensures you are working with liquid markets (important for signal quality).

Step 4 — Limit dataset
Select "Limit" from Refine query section
Set the limit value to 30:
LIMIT → 30
Now you have:
Top 30 most actively traded Kalshi weather markets
Setting a limit to your dataset is good practice to limit query size, memory usage and load times.
Name your Sheet and hit "Run Pull" to execute your query.

Step 5 — Select a market
Your data is now loaded into Data Sheet. Browse the different markets that match your query criteria.
Pick a market like:
“Will NYC high temperature be X on date Y?”
Copy its ticker by double clicking on the cell in the Ticker column and ctrl + c

Step 6 — Pull historical trades
Now that we know which market we want to analyze. Lets pull all trades placed for this market. In this guides case:
- Title: "Will the high temp in NYC be 48-49° on Nov 13, 2024?
- Ticker: KXHIGHNY-24NOV13-B48.5
Now switch to Trades in Kalshi Historical Data:
- Select
Integrationstab in data sheets. This will open the side panel.- This side panel allows you to make a new data pull request within your current Project workspace
- Select
Kalshi Historicalto start another request to Kalshi Historical Data

In Kalshi Historical:
- Select
TRADES - Select
Select All: to select all columns in theTRADESdata base:trade_id: each trade has a unique trade_id to identify the tradeticker: this is the market ticker, in our caseKXHIGHNY-24NOV13-B48.5count: the number of contracts that exchanged hands in each tradeyes_price: the yes_price set for this trade in cents (0-99)no_price: the no_price set for this trade in cents (0-99)- note
yes_price+no_price= 100 for a given trade i.e. $1
- note
taker_side: which side of the trade (yesorno) was playing the role of the takercreated-time: the time that the trade was executed_fetched_at: this is a meta metric when the data was pulled by Lychee. You can mostly ignore it.

Apply query filter:
WHERE → ticker = your selected market
In this guide's case:
WHEREticker=KXHIGHNY-24NOV13-B48.5

Then:
- create New Sheet, Name your sheet
- run query
You now have full trade history for your market.

Step 7 — Bucket trades into time intervals
Time bucketing is a practical data aggregation method that takes high-frequency, tick-by-tick trading data and organizes it into fixed time intervals — like 1-minute, 5-minute, or 1-hour blocks.
Rather than analyzing every single second, it lets traders step back to see the bigger picture, smooth out random short-term noise, and more effectively run technical analysis or quantitative trading strategies.
- Open:
FUNCTIONS (Σ)

- Select
Stats→BUCKET

- In the Bucket view, set:
New Sheetto bucket trades into a new sheet (i.e. not overwrite the original trades and market pulls)Column to Bucket→ created_time- Name the new bucket column anything you want, we are going with "date"
Bucket Style→Time IntervalsTime Bucket→15 mins- This aggregates our trades into 15 minute windows
This converts tick data into time series structure.
- You may also name your new sheet for clarity

Step 8 — Aggregate volume
Now since we are bucketing multiple rows in 15 minute windows into a single row, we need to aggreagate the columns we are interested in analyzing:
- Select Aggreatagions and set the following:
- Aggreagation 1: get the total volume traded during each 15 minute time interval
Type:SumValue Column:countGenerated Column:volume(you can name this anything you want)
- Aggreagation 1: get the total volume traded during each 15 minute time interval
Step 9 — Compute VWPA (key step)
Here for added accuracy we will use a quantitative financial technique called `Volume Weighted Average Price".
Unlike a regular simple average (which treats every price equally regardless of how many shares were traded), VWAP is superior because it weights each price by the actual trading volume at that price. This gives much more importance to prices where heavy volume occurred, making it a far more accurate reflection of the true average price buyers and sellers paid during that time bucket.
Traders rely on VWAP as a key benchmark because it shows where the real money was exchanged, rather than being skewed by low-volume outlier prices.
- Aggregation 2: Calculate Volume Weighted Average Yes_Price for each 15 minute window
Type:Value weighted avgValue Column:yes_priceWeight Column:countGenerated Column:vwpa_yes_price(you can name this anything you want)
- Aggregation 3: Calculate Volume Weighted Average No_Price for each 15 minute window
Type:Value weighted avgValue Column:no_priceWeight Column:countGenerated Column:vwpa_no_price(you can name this anything you want)

This represents traded activity per interval.
- Click
Create bucket sheet
Step 10 — Interpret convergence (Building Chart)
- Select
chartsfrom the tabs aboveData Sheetor above the right Side Panel

Set:
Chart→Line ChartX-axis→time_bucket(whatever you named this column. Dropdown is organized bysheet name + column name)Y-axis→yes_price
Then:
- add second line →
no_price

- Use the design panel to design the chart as you desire
What you now see:
- early: noisy disagreement
- mid: information incorporation
- late: sharp convergence
- final: settlement-level consensus
This is:
real-time probability discovery in action
Key Insight
Kalshi weather markets are not static probabilities.
They are:
evolving belief systems shaped by continuous trading
VWPA reveals the true signal behind noisy ticks.
What to build next
You now know how to:
- pull historical Kalshi markets
- reconstruct trade history
- aggregate market probabilities
- calculate VWAP-style pricing
- visualize convergence over time
Once you understand convergence curves, you can extend this into:
- volatility clustering analysis
- forecast vs market divergence
- regime detection (trend vs mean reversion)
- cross-city weather comparison
- liquidity analysis
- probability forecasting systems
- prediction market research
Related guides
- Kalshi Weather Market Analysis
- Kalshi Weather Probability Calibration Chart
- Kalshi Weather Volatility Chart
- Kalshi Historical Data Guide
Final takeaway
If you strip away noise, liquidity, and individual trades:
prediction markets become structured probability time series systems
And VWPA is how you extract that structure.
Go from raw markets to charts and dashboards in seconds—no code, no CSVs.
Free to explore here · Polymarket, Kalshi, Chainlink & more
More reading
How to Build a Kalshi Weather Volatility Chart (Step-by-Step Guide)
Step-by-step guide to calculating and visualizing volatility in Kalshi weather markets using historical trade data and no-code analysis in Lychee.
How to Build a Probability Calibration Chart Using Kalshi Weather Markets (Accuracy Analysis Guide)
Step-by-step guide to building a probability calibration chart using Kalshi historical weather market data and bucketed prediction analysis in Lychee.
Kalshi Weather Prediction Markets Explained: How They Work, How Prices Are Set, and What Historical Data Reveals
Learn how Kalshi weather prediction markets work, how pricing is formed, how accurate they are, and what historical data reveals about forecasting behavior.
What Does Volume Mean on Kalshi? Trading Volume Explained
Learn what volume means on Kalshi, how trading volume works, why it matters, and how to analyze Kalshi market activity using historical volume charts.
When Do Prediction Markets Become Accurate? A Kalshi Political Market Lifecycle Analysis
Are prediction markets accurate? We analyzed 3,195 resolved Kalshi political prediction markets across 25,552 lifecycle snapshots to measure when market odds become reliable.
Are 90% Prediction Markets Reliable? A Kalshi Political Calibration Study
We analyzed resolved Kalshi political markets to test whether 90–100% prediction markets are overconfident. The data showed high-probability markets were reliable, while the middle probability range was sparse and noisy.