# Sample flow (attrition) — WP38 Snapshot 2026-11-01T17:38:30Z. Nothing is deleted; every step is a flag in `data/interim/listings_clean.parquet`. | step | listings | |---|---:| | DB product rows (all statuses all stores) | 465 388 | | active = 1 and listing_status = 'published' | 390 108 | | … of an enabled store with >= 1 published listing | 390 108 | | … excluding store_kind = hors_mission | 390 074 | | … keeping one representative per (store normalised title) and non-empty title | 370 828 | | … excluding mirror domains of the same business (sibling stores non-representative) [ASSORTMENT SAMPLE] | 370 054 | | … and CAD-priced store/listing | 369 325 | | … and a positive listed price <= 50 000 CAD not on request [PRICE SAMPLE] | 359 612 | ## Assortment sample diagnostics ``` { "listings": 370054, "stores": 1557, "categories": 20, "dup_in_store_listings_removed": 19245, "share_autre": 0.1113, "available_0_share": 0.1307, "on_sale_share": 0.087, "has_variants_share": 0.2782, "sku_share": 0.7667, "vendor_share": 0.7558 } ``` ## Price-sample exclusions (from the assortment sample) ``` { "non_cad_listing_or_store": 729, "price_missing_or_on_request": 9635, "price_zero": 0, "price_gt_cap": 78 } ``` ## Price quantiles in the price sample (CAD) ``` { "0.001": 0.26, "0.01": 1.5, "0.1": 5.99, "0.5": 24.99, "0.9": 274.56, "0.99": 3700.0, "0.999": 18500.0 } ``` Top-10 stores hold 37.1% of the assortment sample.