Short answer: real-time views update in under 5 seconds. Pre-aggregated reports (the main dashboard, geographic breakdown, top-pages tables) refresh on a 1-2 minute cycle.
The full timing breakdown
| Surface | Typical delay | Why |
|---|---|---|
| Live tab | < 5 seconds | Streamed via Supabase Realtime over WebSocket |
| 3D globe | < 5 seconds | Same WebSocket stream as Live |
| Visitor counter (header) | < 10 seconds | Cloudflare KV with short TTL |
| Main dashboard charts | 1-2 minutes | Pre-aggregated for query speed |
| Top pages / sources / countries | 1-2 minutes | Pre-aggregated |
| Daily totals (analytics_daily) | up to 5 minutes | Rolled up on a short-window job |
| Retention / cohort charts | 5-15 minutes | More expensive; computed on a slower cycle |
| CSV / JSON export | up to 15 minutes | Pulls from the most recent rollup |
What "real-time" means in practice
When the tracker fires track on a visitor's browser, the request lands at Cloudflare Workers in 50-100 ms (closest edge POP), is validated and forwarded to the EU primary database, and the change is broadcast to any open dashboard tab over Supabase Realtime within a few seconds.
That's why the Live tab and the 3D globe feel instantaneous — they subscribe directly to the database stream.
Why the main charts have a 1-2 minute delay
Charts like "Page views over the last 24h" don't run a full table scan every time you load the dashboard. Instead, a small background job rolls events up into pre-computed time buckets every 1-2 minutes. This makes the dashboard fast even for sites with millions of monthly events — at the cost of a small lag.
If you want to verify a brand-new event landed, watch the Live tab, not the main charts.
When you should expect more than 2 minutes
A few legitimate reasons for longer delays:
- Heavy filter combinations — applying 5+ filters can fall back to a direct query, which is slower than pre-aggregated.
- Custom date ranges that include "now" — some date pickers re-aggregate on the fly.
- Retention and cohort reports — these are computed on a 5-15 minute cadence by design.
- Recently identified visitors — the link between an anonymous session and a logged-in user is processed asynchronously and can take up to a minute.
Troubleshooting
If your event still hasn't shown up after 5 minutes in the Live tab, the issue is most likely on the install side (script not loading, ad blocker, wrong tracking code) — see first event not appearing and verifying your installation.