← back to Harlequin Sample Price Analysis
artifacts/FLEET-INTEGRITY-SWEEP.md
44 lines
# Fleet integrity sweep — product-id collision class (read-only)
Ran the reusable detector's product-id-collision check across the top 19 vendor catalogs with a
Shopify presence, then applied the same-pattern-vs-cross-pattern second-level test that separates
the real Cranes-class bug (different patterns merged under one product id) from legitimate
colorway-under-one-product grouping. **No writes.**
## Actionable — genuine Cranes-class identity corruption (cross-pattern merges)
| vendor | cross-pattern collision groups | note |
| --- | ---: | --- |
| **thibaut_catalog** | **447** | CONFIRMED by sampling: product 7865265389619 = "Birch Cork" (9010) + "Tosca" (AT1402); 7865265520691 = "Aida" (9020) + "Barafundle" (AT1405). Two distinct patterns per product id. |
| **schumacher_catalog** | **5** | small, same signature |
| jeffrey_stevens_catalog | 0 (1 collision was same-pattern) | clean |
## NOT bugs — legitimate colorway grouping (many catalog rows → one product by design)
| vendor | raw collisions | real cross-pattern | verdict |
| --- | ---: | ---: | --- |
| koroseal_catalog | 2,545 | 0 (2,471 same-pattern) | by design |
| hollywood_catalog | 154 | 0 | by design |
| (14 other top vendors) | 0 | 0 | clean |
## Lesson (same as the junk-mfr right-sizing)
The raw collision count (3,252 across the fleet) is dominated by legitimate colorway grouping. The
real, actionable identity-corruption is **~452 groups, concentrated in Thibaut (447)**. Reporting the
raw number would have been a false alarm. The detector finds candidates; the pattern-distinctness
check is what makes it truthful.
## Recommendation
Open a ticket to reconcile the **Thibaut 447 cross-pattern product-id merges** (same class as the
Harlequin Cranes fix: each merged pattern needs its own Shopify product + correct mfr_sku). Schumacher's
5 can ride along. All fixes are gated customer-facing/canonical writes. Detector: `scripts/integrity-report.mjs`.
## Thibaut 447 — deep characterization (read-only, right-sized)
All 447 are clean PAIRS (898 rows, 2 distinct patterns each). Severity split by LIVE status:
- **26 LIVE ACTIVE customer-facing collisions** — ALL are **Anna French (`AT####`) × Thibaut (numeric)**.
Root cause: Anna French (served on thibautdesign.com, shares the Thibaut catalog) was imported with
`shopify_product_id`s that collided with Thibaut-proper products. HIGH priority, tractable (26 products).
- **421 STALE** — `shopify_product_id` not present in the live shopify_products mirror (points at non-live
products). Data-hygiene cleanup, LOW priority, NOT customer-facing.
- Schumacher's 5 ride along.
**Actionable = 26 live Anna-French×Thibaut merges** (split each to its own product + correct mfr_sku,
same as the Harlequin Cranes fix). The 421 stale rows are a separate catalog-hygiene pass.