← back to Dw Yolo Loop
cycle 84: officer CONFIRMED finding + RE-SCOPED fix — not blanket SPLIT; per-product title-promise triage (tag-as-Showroom vs SPLIT); 233 core + 5 outliers; SPLIT gated on real cost (unexecutable for PR — no price sheet); likely-untagged-Showroom batch
a7b5af4c896a7718fe8c55fc66e9b2b41e43764b · 2026-06-18 07:12:55 -0700 · Steve Abrams
Files touched
A scripts/inverse-mislabel-sweep/FINDING.md
Diff
commit a7b5af4c896a7718fe8c55fc66e9b2b41e43764b
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Jun 18 07:12:55 2026 -0700
cycle 84: officer CONFIRMED finding + RE-SCOPED fix — not blanket SPLIT; per-product title-promise triage (tag-as-Showroom vs SPLIT); 233 core + 5 outliers; SPLIT gated on real cost (unexecutable for PR — no price sheet); likely-untagged-Showroom batch
---
scripts/inverse-mislabel-sweep/FINDING.md | 43 +++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/scripts/inverse-mislabel-sweep/FINDING.md b/scripts/inverse-mislabel-sweep/FINDING.md
new file mode 100644
index 0000000..6eac4cf
--- /dev/null
+++ b/scripts/inverse-mislabel-sweep/FINDING.md
@@ -0,0 +1,43 @@
+# Inverse-mislabel: 238 active products titled as the full wallcovering but priced $5 (a swatch) — the residual the "Sample"-sweeps missed — cycle 84
+
+**DTD verdict A (unanimous 3/3).** READ-ONLY (Admin GraphQL full active scan; no mutation), **$0**. Measures the c83-officer-named residual the prior "Sample"-titled sweeps (c68/c82/c83) structurally could not see: the INVERSE mislabel — titled as the full product, priced like a sample.
+
+## 🔴 Result: 238 active single-variant products titled as the full product but priced $5 (sample-scale), NOT disclosed as samples
+Full active scan (71,733, complete):
+- **238 INVERSE-MISLABELS** = single-variant + price ≤$10 + title does NOT contain "Sample" + NOT tagged Showroom.
+- **233/238 carry variant title "Default Title"** (never split into Sample+roll) — the structural signature; flat **$5** (sample-scale).
+- **Excluded (negative control, by construction):** 26,652 "Sample"-titled (the already-decoded class — a $4.25 Sample correctly does NOT match), 2,768 deliberate Showroom-Lines (tagged — they legitimately list single-variant at $4.25), all products >$10. So a real full-price wallcovering and a real $4.25 Sample both correctly fall out.
+- **Vendor concentration:** Phillipe Romano 129 (54%), Designer Wallcoverings 27, Hollywood Wallcoverings 12, PR Faux Leather 10, British Walls 10, Malibu Wallpaper 10, Fentucci 7, LA Walls 6 … — overwhelmingly **DW private-label / Phillipe Romano** lines (a private-label import-batch signature).
+- **Examples:** "Akiko Classic Grasscloth Cinnabar | Phillipe Romano" $5 Wallcovering; "Gucciano Golden Natural Yarns on Metallic Gold" $5; "Tommy's Trees Wallcovering | Hollywood" $5; "Gator Faux - Faux Alligator - Curry" $5 Fabric; "Bengal basketweave | Phillipe Romano" $5.
+
+## Why this is a real (P2) customer-facing harm — the MIRROR of the roll-priced-"Sample"
+- A shopper sees **"Akiko Classic Grasscloth" for $5**, adds it expecting grasscloth, and receives a **$5 swatch** (a real grasscloth roll is $100–$300). The title discloses NO "Sample" — so unlike the deliberate Showroom-Lines (tagged + a known $4.25 category), this reads as the full product at an implausible price.
+- It's the **inverse** of the c72/c73/O&L roll-priced-"Sample" mislabel: there the label said "Sample" at a roll price; here the label says "Wallcovering" at a sample price. Both are title-≠-reality. Same underlying defect: **sample-only-no-roll + title-mismatch.**
+- Two harms: (1) deceptive presentation / fulfillment mismatch (paid for a "wallcovering," got a swatch), and (2) the actual roll is unbuyable (sample-only). Per the c62 discipline this is a **STOREFRONT title-accuracy** finding, NOT a reopening of the closed GMC story.
+
+## 🔬 Skeptical decode
+- **Structural signature, not magnitude-alone (c83 lesson):** the match requires single-variant + Default-Title + title-not-"Sample" + not-showroom + ≤$10 — i.e. the *structure* (an un-split $5 product presented as the full item), not just a cheap price. The 233/238 "Default Title" share confirms these are un-split raw imports, not maintained 2-variant products.
+- **Negative control held by construction** (Sample-titled + showroom-tagged + >$10 all excluded; 26,652 + 2,768 fell out correctly).
+- **Assumption named:** "$5 = a sample, so titling it as the full product is a mislabel" assumes none of the 238 is a *genuinely* $5 sellable item. For wallcovering/grasscloth/faux-leather/fabric titles that's safe ($5 is far below any real roll/yard). A per-product fix should still confirm no true-$5-product edge case (e.g. a trim/accessory) before relabeling — but the titles are all full-product types.
+- **Concentration = import-batch root cause:** 54% Phillipe Romano + the DW private-label tail suggests a PR/private-label import that created $5 single-variant "Default Title" products titled as the full item (same import-batch-defect family as the c70/c81 findings).
+
+## Recommendation (GATED — Steve's call; fix RE-SCOPED per officer — NOT a blanket SPLIT)
+The finding is sound; the fix must NOT default all 238 to SPLIT (over-broad + partly unexecutable). Re-scoped:
+1. **Scope to the 233 high-confidence core** (Default-Title + flat $5); **hand-review the 5 non-Default/non-flat-$5 outliers separately** — those are the likely genuinely-priced small goods (a $5 tile/trim/peel-stick/digital can be a real single-variant product, not a mislabel). Tightening to the core cuts the threshold-leak false-positive risk.
+2. **Per-product TITLE-PROMISE triage → {tag-as-Showroom | SPLIT}, NOT blanket SPLIT (officer):** the distinguisher from the 2,768 deliberate Showroom-Lines is the title-promise, not merely the missing tag. BUT the 54% Phillipe Romano / 233-Default-Title / flat-$5 shape looks like **ONE batch meant to be Showroom-Lines that never got tagged** — for those the correct fix is **ADD the Showroom tag + `custom.showroom_line`** (an intentional $5 swatch under a product title, like the rest of the showroom set), NOT a SPLIT. Decide per product on the title-promise test.
+3. **SPLIT half is gated on REAL cost/MAP — and is UNEXECUTABLE for Phillipe Romano today (officer):** synthesizing a $100–300 roll variant on a true intentional $5 swatch would MIS-state the product (worse than leaving it). PR private-label has **no bulk price sheet** (`phillipe-romano-pointe-pricing` — PR=Pointe Intl, per-pattern quotes only), so the roll price isn't computable → do NOT fabricate a roll for the PR 129. SPLIT only where a real roll price exists; otherwise tag-as-Showroom or leave.
+4. **Sequence:** lower priority than the at-MAP-verified Cole&Son/Kravet roll-mislabels (those have an authoritative price). For most of these 238 the likely-correct action is the cheap **tag-as-Showroom** (if intended) rather than a SPLIT.
+- **c75 canary:** add the inverse structural signature (single-variant + Default-Title + sample-priced + title-not-"Sample" + not-showroom) to the basis-aware guard — it catches the title-direction the original detector missed; on a hit, route to the title-promise triage, not auto-SPLIT.
+
+_Cycle 84. DTD-picked A (unanimous 3/3). Measured the c83-named residual: 238 ACTIVE single-variant products priced $5 (sample-scale) but titled as the full product ("...Wallcovering"/grasscloth/Fabric, no "Sample" word, NOT showroom-tagged, 233/238 "Default Title") — the INVERSE of the roll-priced-"Sample" mislabel, structurally invisible to the prior Sample-titled sweeps. A shopper adds a $5 "grasscloth" and gets a swatch = real storefront title-accuracy / fulfillment harm (P2). Heavily Phillipe Romano (129) + DW private-label (import-batch signature). Negative control held (Sample-titled 26,652 + showroom 2,768 + >$10 excluded). Fix = SPLIT (relabel $5→Sample + add real roll), same family as c72; storefront-only, NOT a GMC fire (c62). PJ excluded. Gated._
+
+---
+## 🏛️ OFFICER SIGN-OFF — vp-dw-commerce: CONFIRMED (finding sound) + fix RE-SCOPED (not a blanket SPLIT)
+- **Finding SOUND, distinguisher is the title-promise (not the missing tag):** the negative-control construction is tight; what separates these from the 2,768 deliberate Showroom-Lines is that the title promises a full roll-good ("Akiko Classic Grasscloth" = a $100–300 roll) at a $5 swatch price — that's the defect, tag or no tag. Correctly P2 storefront title-mismatch, NOT a GMC fire (c62).
+- **But DON'T assume untagged=mislabel uniformly:** the 54% PR / 233-Default-Title / flat-$5 shape = likely ONE batch meant to be Showroom-Lines but never tagged. Fix for those = ADD Showroom tag + `custom.showroom_line` (intentional $5 swatch), NOT a SPLIT. → re-scoped to per-product title-promise triage {tag | SPLIT}.
+- **False-positive leak (Q1):** $5/≤$10 catches a long tail of legit single tile/trim/peel-stick/digital. → tighten to the 233 high-confidence core (Default-Title + flat $5); hand-review the 5 non-Default outliers separately.
+- **Relabel-risk (Q2) blocks the SPLIT half for PR:** synthesizing a $100–300 roll on a true intentional $5 swatch MIS-states it; PR private-label has no bulk price sheet (`phillipe-romano-pointe-pricing`, per-pattern quotes only) → roll price not computable → do NOT fabricate a PR roll. SPLIT only where a real roll price exists.
+- **Concentration = import-batch (Q4):** 54% PR + 233 Default-Title flat-$5 = one untagged batch, fixable at the source (tag-as-Showroom) rather than 238 individual SPLITs.
+- **Net:** finding CONFIRMED + correctly P2 + correctly distinguished from Showroom-Lines; the FIX re-scoped from blanket-SPLIT to: (a) 233 core + 5 outliers hand-reviewed, (b) per-product title-promise triage → tag-vs-SPLIT, (c) SPLIT gated on real cost (unexecutable for PR), (d) likely-correct action for most = the cheap tag-as-Showroom.
+
+CONFIRMED (finding) + fix re-scoped (officer). The inverse-mislabel is a real, previously-unmeasured storefront title-accuracy class (238 active, mostly PR private-label); remediation is per-product tag-or-SPLIT (not blanket), SPLIT gated on a real roll price. All gated.
← 0a3f9a7 cycle 84: inverse-mislabel sweep — 238 active single-variant
·
back to Dw Yolo Loop
·
cycle 84: consistency fix — closing line reflects re-scoped b112a34 →