How TweetStream measures X post detection speed

How TweetStream times X post detection, from X's post timestamp to first server receipt: rolling percentiles, which posts count, and how to test your watchlist.

Updated October 3, 2026

TweetStream measures detection time from the timestamp X gives a post to the moment a TweetStream server first receives it. Each post counts once. The speed report publishes p25, p50, and p95 over rolling 24-hour and seven-day windows and refreshes hourly. The figure leaves out your network, your own code, and order execution.

detection time = first TweetStream server receipt - X post timestamp

What TweetStream's detection time measures

The clock starts at X's own timestamp, so the figure includes X's processing time as well as ours. Compare it only with figures that start at the same point.

What the detection figure leaves out

The figure stops at the first TweetStream server receipt, so it leaves out:

  • The WebSocket hop from TweetStream to your host
  • Your own parsing, classification, and strategy time
  • Exchange acknowledgement and fill time
  • Context that arrives in a later update to the same post, such as OCR text, token detection, and prices

Which X posts are counted

The all-account figures count X posts only. Truth Social posts are not included.

They cover every account in a TweetStream customer watchlist and count each post once, at its earliest valid receipt. Detection times above 10 minutes, or below zero, are left out.

Rolling windows and percentiles

The report covers the last 24 hours and the last seven days, both ending when the report was generated, and it refreshes hourly. The seven-day p50 is the headline median on the report.

p25, p50, and p95 are the times by which 25%, 50%, and 95% of posts were detected. Lower is faster. The p95 shows the slow tail that a median hides.

All-account percentiles are withheld when a window has fewer than 20 posts. When the latest data is more than 2 hours old, the report shows as unavailable and no stored figure replaces it.

How the ten-account table is chosen

The table lists up to ten accounts. @elonmusk is always shown when he posted at least 20 times in the last seven days. The rest are the accounts our customers watch most that had at least 20 posts in seven days and a median under 170 ms over both the last seven days and the last 24 hours.

Because the table keeps only accounts under that cutoff, its rows are not typical of every account. The all-account cards at the top of the report give the overall figure.

How the 30-day speed tables on topic pages work

Some topic pages show a 30-day speed table for a fixed list of accounts. The first is on the Polymarket and Kalshi alerts page.

  • TweetStream picks the list for the topic. On the prediction markets page it is @Polymarket, @Kalshi, @DeItaone, @WhiteHouse, and @realDonaldTrump. The list is not chosen by speed or by customer demand.
  • Each account is matched by its X user ID. Truth Social posts are never counted, including posts from a Truth Social account with the same handle.
  • The window is the 30 days before the snapshot, in UTC. The snapshot refreshes daily and the table shows its dates.
  • An account appears only when it has at least 50 posts in the window.
  • The table shows each account's median detection time and the share of its posts detected in under 250 ms, with its post count under its name.
  • The clock is the same as on the speed report. If the snapshot is missing or more than 48 hours old, the table is hidden.

Polymarket and Kalshi alerts

Ultra Speed's lead is not in these figures

The detection figures stop when a TweetStream server first receives a post. From there, Ultra Speed sends eligible X posts from your selected accounts up to 50 ms ahead of standard delivery. That lead is not part of the detection percentiles.

Download the raw speed data

The same report is available as JSON and CSV. Each row carries its window, sample count, percentiles, and the measurement boundary, so you can check the figures or chart them yourself.

Speed report as JSON · Speed report as CSV

How to test the same watchlist

Measure on your own accounts and host to get the figure your strategy will see.

  1. Start a trial with your watchlistUse the accounts you trade on. The trial covers 3 days, 5 tracked accounts, and 1 WebSocket.
  2. Connect from your own hostRun the client on the machine where your strategy will run, so the network path matches production.
  3. Log arrival timesRecord when each post reaches your client next to the post's X timestamp.
  4. Compare percentilesAfter a few days, work out your own p50 and p95 and set them beside the report for the same accounts. Then add your parsing, decision, and order times to see the full path from post to trade.

Measure receipt time in your client · Twitter-to-trade latency guide

Comparing detection speed across vendors

Vendors start and stop the clock at different points. Some stop it when their own server receives a post; others stop it when the alert reaches a client. Two numbers are comparable only when they cover the same span, and a single best result can't be compared with a median.

X API, Truth API and alert speed facts

Test it on your own watchlist

Add up to 5 accounts you trade on, connect one WebSocket, and compare the alerts with what you see today.

3-day trial on Minimum or Pro: 5 tracked accounts and 1 WebSocket. Card trials convert to paid on the billing cycle you choose unless you cancel. Stablecoin trials from a Solana wallet are free and convert to paid unless you turn off auto-renew. Manual stablecoin trials take a non-refundable $5 deposit, and brand-new wallets may need one too; it's credited to your first invoice, and you pay that invoice to continue.