{"slug":"market-data-quality-checks","qid":"condition_codes","label":"Condition codes on one hour of prints, named from the exchange reference list","post_title":"Market data quality checks that catch real bugs","post_url":"/blog/market-data-quality-checks#q-condition_codes","columns":["condition_label","trade_count","share_of_hour_volume_pct"],"rows":[{"condition_label":"37 Odd Lot Trade","trade_count":109162,"share_of_hour_volume_pct":30.8},{"condition_label":"41 unmapped","trade_count":22513,"share_of_hour_volume_pct":34.03},{"condition_label":"14 Intermarket Sweep","trade_count":19275,"share_of_hour_volume_pct":30.78},{"condition_label":"10 Derivatively Priced","trade_count":3176,"share_of_hour_volume_pct":2.93},{"condition_label":"2 Average Price Trade","trade_count":192,"share_of_hour_volume_pct":1.02},{"condition_label":"7 Cash Sale","trade_count":17,"share_of_hour_volume_pct":0.18},{"condition_label":"53 Qualified Contingent Trade","trade_count":12,"share_of_hour_volume_pct":0.13},{"condition_label":"35 Stock Option","trade_count":12,"share_of_hour_volume_pct":0.13},{"condition_label":"32 Sold (Out Of Sequence)","trade_count":1,"share_of_hour_volume_pct":0}],"shape":"ranking","sql":"WITH\n    prints AS\n    (\n        SELECT\n            toInt32(arrayJoin(conditions)) AS code,\n            count()                        AS trades,\n            sum(size)                      AS shares\n        FROM global_markets.stocks_trades\n        WHERE ticker = 'AAPL'\n          AND sip_timestamp >= '2026-03-10 14:00:00'\n          AND sip_timestamp <  '2026-03-10 15:00:00'\n        GROUP BY code\n    ),\n    code_names AS\n    (\n        SELECT\n            toInt32(id) AS code,\n            any(name)   AS code_name\n        FROM global_markets.stocks_condition_codes\n        WHERE asset_class = 'stocks'\n          AND type = 'sale_condition'\n        GROUP BY code\n    )\nSELECT\n    concat(toString(p.code), ' ', if(empty(n.code_name), 'unmapped', n.code_name)) AS condition_label,\n    p.trades                                                                       AS trade_count,\n    round(100 * p.shares / (SELECT sum(shares) FROM prints), 2)                     AS share_of_hour_volume_pct\nFROM prints AS p\nLEFT JOIN code_names AS n ON n.code = p.code\nORDER BY p.trades DESC\nLIMIT 12","computed_at":"2026-10-07T15:22:23.853781+00:00","elapsed":0.436295022}