{"slug":"market-data-quality-checks","qid":"seq_gaps","label":"One symbol's quote messages against the sequence numbers they span","post_title":"Market data quality checks that catch real bugs","post_url":"/blog/market-data-quality-checks#q-seq_gaps","columns":["et_time","quote_count","contiguity_pct"],"rows":[{"et_time":"10:00","quote_count":3991,"contiguity_pct":0.928},{"et_time":"10:01","quote_count":4339,"contiguity_pct":0.9027},{"et_time":"10:02","quote_count":4982,"contiguity_pct":0.95},{"et_time":"10:03","quote_count":4701,"contiguity_pct":0.9568},{"et_time":"10:04","quote_count":4100,"contiguity_pct":0.8446},{"et_time":"10:05","quote_count":4473,"contiguity_pct":0.7932},{"et_time":"10:06","quote_count":5395,"contiguity_pct":0.9995},{"et_time":"10:07","quote_count":5568,"contiguity_pct":0.9573},{"et_time":"10:08","quote_count":4777,"contiguity_pct":0.9867},{"et_time":"10:09","quote_count":4572,"contiguity_pct":0.953},{"et_time":"10:10","quote_count":5196,"contiguity_pct":0.9829},{"et_time":"10:11","quote_count":3552,"contiguity_pct":0.8337},{"et_time":"10:12","quote_count":5005,"contiguity_pct":0.9664},{"et_time":"10:13","quote_count":4283,"contiguity_pct":0.9063},{"et_time":"10:14","quote_count":4692,"contiguity_pct":1.1505},{"et_time":"10:15","quote_count":5268,"contiguity_pct":1.0285},{"et_time":"10:16","quote_count":5022,"contiguity_pct":0.9299},{"et_time":"10:17","quote_count":5286,"contiguity_pct":1.0564},{"et_time":"10:18","quote_count":4078,"contiguity_pct":0.9567},{"et_time":"10:19","quote_count":6136,"contiguity_pct":1.2365},{"et_time":"10:20","quote_count":4693,"contiguity_pct":1.0514},{"et_time":"10:21","quote_count":3766,"contiguity_pct":0.8902},{"et_time":"10:22","quote_count":3599,"contiguity_pct":1.0199},{"et_time":"10:23","quote_count":4108,"contiguity_pct":1.1477},{"et_time":"10:24","quote_count":3511,"contiguity_pct":0.9644},{"et_time":"10:25","quote_count":3960,"contiguity_pct":1.0388},{"et_time":"10:26","quote_count":3290,"contiguity_pct":0.933},{"et_time":"10:27","quote_count":3569,"contiguity_pct":0.962},{"et_time":"10:28","quote_count":3100,"contiguity_pct":0.8715},{"et_time":"10:29","quote_count":3254,"contiguity_pct":1.0156},{"et_time":"10:30","quote_count":5561,"contiguity_pct":1.1597},{"et_time":"10:31","quote_count":4241,"contiguity_pct":1.2002},{"et_time":"10:32","quote_count":3310,"contiguity_pct":0.9886},{"et_time":"10:33","quote_count":3032,"contiguity_pct":0.9473},{"et_time":"10:34","quote_count":4661,"contiguity_pct":1.2683},{"et_time":"10:35","quote_count":3857,"contiguity_pct":0.9373},{"et_time":"10:36","quote_count":3035,"contiguity_pct":0.9648},{"et_time":"10:37","quote_count":3248,"contiguity_pct":1.0884},{"et_time":"10:38","quote_count":3210,"contiguity_pct":1.2065},{"et_time":"10:39","quote_count":3628,"contiguity_pct":1.1889},{"et_time":"10:40","quote_count":4364,"contiguity_pct":1.2022},{"et_time":"10:41","quote_count":4404,"contiguity_pct":1.279},{"et_time":"10:42","quote_count":4836,"contiguity_pct":1.4374},{"et_time":"10:43","quote_count":4342,"contiguity_pct":1.3245},{"et_time":"10:44","quote_count":4353,"contiguity_pct":1.5708},{"et_time":"10:45","quote_count":5047,"contiguity_pct":1.3701},{"et_time":"10:46","quote_count":3643,"contiguity_pct":1.1156},{"et_time":"10:47","quote_count":4042,"contiguity_pct":1.2045},{"et_time":"10:48","quote_count":3021,"contiguity_pct":0.9317},{"et_time":"10:49","quote_count":3566,"contiguity_pct":1.1568},{"et_time":"10:50","quote_count":3693,"contiguity_pct":1.1455},{"et_time":"10:51","quote_count":2657,"contiguity_pct":0.9069},{"et_time":"10:52","quote_count":2864,"contiguity_pct":0.9122},{"et_time":"10:53","quote_count":2489,"contiguity_pct":0.8334},{"et_time":"10:54","quote_count":2130,"contiguity_pct":0.8955},{"et_time":"10:55","quote_count":2489,"contiguity_pct":0.9705},{"et_time":"10:56","quote_count":2374,"contiguity_pct":0.9365},{"et_time":"10:57","quote_count":2185,"contiguity_pct":0.8907},{"et_time":"10:58","quote_count":2414,"contiguity_pct":0.9347},{"et_time":"10:59","quote_count":3038,"contiguity_pct":1.1978}],"shape":"series","sql":"SELECT\n    formatDateTime(toStartOfMinute(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,\n    count()                                                                     AS quote_count,\n    round(100 * count() / (max(sequence_number) - min(sequence_number) + 1), 4) AS contiguity_pct\nFROM global_markets.cache_stocks_quotes\nWHERE ticker = 'AAPL'\n  AND sip_timestamp >= '2026-03-10 14:00:00'\n  AND sip_timestamp <  '2026-03-10 15:00:00'\nGROUP BY et_time\nORDER BY et_time","computed_at":"2026-10-07T15:22:23.131800+00:00","elapsed":0.001666674}