← back to Dw Yolo Loop

scripts/inverse-mislabel-disambig/FINDING.md

51 lines

# c84 238 inverse-mislabels DISAMBIGUATED — they are NOT an untagged Showroom-Lines batch (officer hypothesis REFUTED via negative control); genuine mislabels → relabel/SPLIT, NOT tag — cycle 85

**DTD verdict A (unanimous 3/3 — Claude + Codex + Qwen).** READ-ONLY (Admin GraphQL full active scan + a negative-control sample; no mutation), **$0**. Resolves the disambiguation the c84 officer REQUIRED before any fix: are the 238 an UNTAGGED Showroom-Lines batch (cheap fix = add the tag/metafield) or GENUINE mislabels (fix = SPLIT, gated on cost)?

## 🔴 Answer: GENUINE mislabels, NOT untagged-Showroom — 0/238 carry the showroom signature that 100% of real showroom products carry
Full active scan (71,733, complete=true), all 238 re-matched:
- **0/238 are in a showroom collection.**
- **0/238 carry the `custom.showroom_line` metafield.**
- **238/238 = NEITHER** → none match the deliberate Showroom-Lines signature.

## 🔬 The skeptical check that makes this load-bearing — NEGATIVE CONTROL validates the signal (not a tautology)
"0/238 carry the marker" is meaningless UNLESS real Showroom-Lines actually carry it. So I sampled the deliberate set (`tag:showroom*`, 600 active products):
- **`custom.showroom_line` metafield: 600/600 = 100.0%**
- in a showroom collection: 445/600 = 74.2%
- **collection OR metafield (the disambig signal): 600/600 = 100.0%**
- **tag-only (no collection, no metafield) — the case that would BREAK the signal: 0/600 = 0.0%**
→ Every deliberate Showroom-Lines product carries the metafield (and 74% also the collection). The signal is **fully validated**: the 238 lack what 100% of real showroom products have. The "one untagged Showroom-Lines batch that never got tagged" hypothesis (the c84 officer's leading guess) is **REFUTED** — an untagged-but-intended batch would still carry the metafield/collection (the tag is the LAST marker applied, not the first); these carry none of the three. They were never set up as showroom items at all.

## 📋 So the tag-vs-SPLIT decision the officer asked for: NOT tag. They are genuine mislabels.
- **Cheap "tag-as-Showroom" fix is WRONG for all 238** — they don't match the showroom signature; tagging them would misfile genuine products as intentional $5 swatches.
- These are what they looked like in c84: **single-variant products priced $5 (sample-scale) but titled as the full wallcovering/grasscloth/faux-leather/fabric, with NO showroom intent marker** = the inverse mislabel. A shopper adds "$5 Akiko Classic Grasscloth" and receives a swatch.
- **Presentation reinforces "genuine product, not swatch":** of 60 sampled, **17 have full-product copy (body ≥200 chars)** and several have rich PDPs — e.g. *Byzantium Flock Velvet* (11 images, 1,059 chars), *Lizzie Lizard* (982 chars), *Aquarium Fish Tank* (972 chars), *Pleated Piazza* (859 chars). You do not write 1,000 chars + 11 images for a $5 swatch — these were built as **full products that never received a roll variant/price** ($5 is a never-completed placeholder). 24/60 are swatch-sparse (body <60, 1 image) — the ambiguous tail.

## Vendor split = who can be fixed vs who is blocked (the actionable cut)
| Group | Vendors | n | SPLIT executable? |
|---|---|---|---|
| **Phillipe Romano (PR + PR Faux Leather)** | Phillipe Romano 129 + PR Faux Leather 10 | **139** | ❌ NO — PR = Pointe Intl private-label, per-pattern quotes only, **no bulk price sheet** (`phillipe-romano-pointe-pricing`). Roll price not computable → relabel/unpublish only until a quote. |
| **DW-owned private-label** | Designer Wallcoverings 27, Hollywood 12, British Walls 10, Malibu 10, LA Walls 6, LEED 2, Glass Beaded 2, Primo 2, Surface Stick 3 | ~74 | ✅ in principle — DW SETS these prices (own lines, `private-label-va-agents-no-scraper`); SPLIT with a DW-set roll price is doable. |
| **Branded tail** | Fentucci 7, Versace 2, Missoni 2, Lee Jofa 2, … | ~25 | mixed — Lee Jofa = Kravet-MAP (computable); Fentucci = benign $5 sample family (c82); decode per-vendor. |
- **Variant title:** 233/238 "Default Title" (the never-split core) + **5 outliers** (Sold Per Single Roll, "15x16.5", Square-Polyester 24x24, Sold Per Unit, Sold Per Yard) — the 5 are already partly-structured (a unit named) → hand-review separately (a real $5 unit-good may exist).

## Recommendation (GATED — Steve's call; the disambiguation is now resolved)
0. **STEVE DECISION before anything executes (officer):** confirm the disposition VERB on the 238 — **relabel-in-place vs unpublish**. Unpublish pulls live products dark (customer-facing, reversible-but-visible) — that's Steve's call, not the loop's.
1. **Do NOT tag-as-Showroom** (refuted). These are genuine mislabels at the aggregate. **Caveat (officer):** the rich-PDP subset (17/60: full copy, multi-image — e.g. Byzantium 11img/1059ch) is the *unambiguous* mislabel core; the **24/60 swatch-sparse subset (body<60, 1 image)** could be legitimately sample-only items that merely never got the Showroom metafield/tag → the ungated relabel/unpublish is safe for them regardless, but **do NOT auto-SPLIT a thin-PDP item without first confirming a real roll exists upstream.**
2. **Ungated, cheap, honest-now fix (no roll price needed):** relabel so the $5 stops masquerading as the full product — either rename the single variant/title to disclose "Sample/Memo" OR unpublish until a roll variant exists. This is the O&L-officer move (relabel makes the existing price honestly presented; doesn't fabricate a number). Safe for all 238 including the PR 139.
3. **SPLIT (add a real roll variant + price) where cost exists:** the ~74 DW-owned private-label (DW sets price) + Lee Jofa (Kravet-MAP) are SPLIT-executable; **the PR 139 are SPLIT-BLOCKED** (no price sheet) → relabel/unpublish only. Use the non-default-consuming variant path (`shopify-default-variant-consumes-sample`).
4. **Sequence:** lower priority than the at-MAP-verified Cole&Son/Kravet roll-mislabels (authoritative price). For the 238 the immediate safe action is the cheap relabel/unpublish (ungated); SPLIT follows where a price exists.
5. **c75 canary:** the inverse signature is now confirmed real + distinct from Showroom-Lines — add it to the basis-aware guard with the **metafield/collection negative-control built in** (flag single-variant + sample-priced + title-not-"Sample" + **NOT carrying `custom.showroom_line`**), so it never re-flags a real showroom product and never mis-routes a genuine mislabel to tag-as-Showroom.

_Cycle 85. DTD-picked A (unanimous 3/3). Disambiguated the c84 238 inverse-mislabels per the c84 officer's requirement: full active scan (71,733) shows 0/238 in a showroom collection + 0/238 with `custom.showroom_line`, while a negative control proves 100% of 600 deliberate Showroom-Lines carry the metafield (0% tag-only) → the signal is validated and the "untagged Showroom-Lines batch" hypothesis is REFUTED. The 238 are genuine mislabels (single-variant $5 titled as the full product, no showroom marker; 17/60 have full-product PDPs ⇒ built as products, never given a roll/price). Tag-vs-SPLIT answer: NOT tag. Fix = relabel/unpublish (ungated, cheap, all 238) and/or SPLIT-with-real-roll where cost exists (~74 DW private-label + Lee Jofa executable; the PR 139 SPLIT-BLOCKED, no price sheet). 5 unit-named outliers hand-reviewed. PJ excluded by construction. Gated._

---
## 🏛️ OFFICER SIGN-OFF — vp-dw-commerce: CONFIRMED (2 non-blocking softens, folded in)
- **Q1 — negative control SOUND; hypothesis correctly REFUTED.** The metafield is the load-bearing marker for the deliberate batch (600/600), and the signal-breaker case (tag-only, no collection/metafield) is 0/600. The "intended-but-unfinished batch lacks all three markers" escape hatch is real in theory but doesn't survive the data — every actual Showroom product, regardless of build stage, got the metafield; there's no observed zero-marker cohort. The presentation sample kills it independently: 17/60 ship full PDP copy (200+ chars, up to 11 images, real descriptions). A swatch batch doesn't ship 1,000-char PDPs — that's a product page that lost its roll variant, not an untagged swatch.
- **Q2 — "relabel/unpublish, NOT tag" CORRECT.** Tagging would launder a $5 sample price into the deliberate Showroom-Lines program — the exact $4.25/$5-as-product-price leak the MAP-auditor + GMC-feed memos exist to stop. Titled as the full wallcovering, no "Sample" word, 233/238 Default Title → reads as the full product at $5 to a shopper AND to Google's per-variant feed. Ungated relabel/unpublish is safe + reversible for all 238 incl. PR 139, rightly decoupled from SPLIT.
- **Q3 — DW-private-label-SPLIT vs PR-blocked cut CORRECT.** DW-owned private label = DW sets price → roll SPLIT executable; Lee Jofa = Kravet-family at MAP (WHLS×1.5) → computable. PR 139 SPLIT-block matches standing memory (PR=Pointe Intl via Justin David, no bulk sheet, per-pattern quotes only) — no roll price to split to; don't fabricate one.
- **Q4 — 2 non-blocking softens (folded in):** (a) the 5 unit-named outliers → hand-review, don't fold into either bucket; (b) softened the aggregate "genuine mislabels, NOT swatches" — the 24/60 thin-PDP subset could be legit sample-only; ungated relabel is safe regardless, but don't auto-SPLIT a thin-PDP item without confirming a real roll exists upstream. Rich-PDP subset = the unambiguous mislabel core.
- **Steve ask before execution:** confirm the disposition verb (relabel-in-place vs unpublish) — the customer-facing/visible call is Steve's, not the loop's.

CONFIRMED. The c84 officer's required disambiguation is RESOLVED: the 238 are genuine mislabels (not an untagged Showroom batch), disposition = relabel/unpublish (all 238, ungated) + SPLIT where cost exists (~74 DW private-label + Lee Jofa; PR 139 held). Read-only, $0, all fixes Steve-gated.