← back to Ticket System
TK-11861: PR sell-mode segmentation evidence (read-only, 13,018 ACTIVE)
c5597b864e9b84f3507e8dc0bc851da8cb08b69b · 2026-09-26 09:15:52 -0700 · Steve Abrams
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ldza8j7VMv745vygXJCcoB
Files touched
A data/tk11861-evidence/segmentation.mdA data/tk11861-evidence/segmentation.sql
Diff
commit c5597b864e9b84f3507e8dc0bc851da8cb08b69b
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sat Sep 26 09:15:52 2026 -0700
TK-11861: PR sell-mode segmentation evidence (read-only, 13,018 ACTIVE)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ldza8j7VMv745vygXJCcoB
---
data/tk11861-evidence/segmentation.md | 26 ++++++++++++++++++++++++++
data/tk11861-evidence/segmentation.sql | 11 +++++++++++
2 files changed, 37 insertions(+)
diff --git a/data/tk11861-evidence/segmentation.md b/data/tk11861-evidence/segmentation.md
new file mode 100644
index 00000000..3e0f99c4
--- /dev/null
+++ b/data/tk11861-evidence/segmentation.md
@@ -0,0 +1,26 @@
+# TK-11861 — Phillipe Romano sell-mode segmentation (read-only)
+
+Measured 2026-09-26 against the local dw_unified mirror (`shopify_products`, vendor='Phillipe Romano', status='ACTIVE', mirror synced_at 2026-09-26 08:32). Population 13,018 products. SQL: `segmentation.sql`.
+
+Sell mode is decided by `has_product_variant`:
+- **ORDERABLE**: a sellable (non-sample) variant exists. This is the only place a missing cost can lose money.
+- **NOT-MEASURED-by-design** (sample-only / quote-only / showroom-only): no sellable variant, so it is never sold at a price that can lose money. Steve's ruling (Q1, 2026-09-26): permanently NOT-MEASURED, counted separately from PASS.
+
+Tags (`quotes`, `ShowroomOnly`/`Showroom Line`) are shown as a separate dimension. They are not the sell-mode test: 731 DWPP and 559 XXP products carry the showroom/quote tags but still have an orderable per-yard variant.
+
+| Cohort | Orderable (needs cost) | NOT-MEASURED by design | Total | Ticket |
+|---|---:|---:|---:|---|
+| DWPP (MDC) | 731 | 2,899 | 3,630 | MDC/DWPP cohort ticket (priority 1) |
+| PRW | 998 | 13 | 1,011 | PRW cohort ticket (priority 2) |
+| GRS | 587 | 269 | 856 | GRS cohort ticket (priority 3) |
+| XXP | 585 | 210 | 795 | XXP cohort ticket (later) |
+| XTY | 0 | 716 | 716 | XTY cohort ticket (later; 100% not-measured) |
+| CORK (Greenland) | 88 | 35 | 123 | cork cohort ticket (later) |
+| OTHER (~220 prefixes) | 2,421 | 3,466 | 5,887 | long-tail ticket |
+| **Total** | **5,410** | **7,608** | **13,018** | |
+
+Notes:
+- Only 5,410 of 13,018 (41.6%) can actually lose money. The other 7,608 are NOT-MEASURED by design.
+- Q3 ruling: a cohort without cost stays LIVE at its current sell price with a canary watching it. It is switched to quote-only only if a measured cost shows it is underwater. DWPP is already watched by `dw-mdc-margin-canary` (NOT_MEASURED until a rep list loads).
+- Greenland $59.50/yd is a SELL price, not cost evidence (codex correction, 2026-09-16).
+- Agents send no email. Steve requests the lists from the reps himself (Q2).
diff --git a/data/tk11861-evidence/segmentation.sql b/data/tk11861-evidence/segmentation.sql
new file mode 100644
index 00000000..9888f3cf
--- /dev/null
+++ b/data/tk11861-evidence/segmentation.sql
@@ -0,0 +1,11 @@
+with pr as (
+ select tags, has_product_variant, min_variant_price, price,
+ upper(substring(coalesce(nullif(dw_sku,''),sku,handle) from '^([A-Za-z]+)')) pfx
+ from shopify_products where vendor='Phillipe Romano' and status='ACTIVE'),
+m as (select *,
+ case when pfx in ('DWPP','PRW','GRS','XXP','XTY','CORK') then pfx else 'OTHER' end cohort,
+ case when coalesce(has_product_variant,false) then 'ORDERABLE' else 'SAMPLE/QUOTE' end sell,
+ (tags ilike '%"quotes"%') q, (tags ~* 'showroom') s from pr)
+select cohort, sell, count(*) n, count(*) filter (where q) quote_tag, count(*) filter (where s) showroom_tag,
+ round(avg(nullif(min_variant_price,0))::numeric,2) avg_price
+from m group by 1,2 order by 1,2;
← d7dcc35d TK-11855: read-only Stage 1 post-reboot verifier for pm2 boo
·
back to Ticket System
·
TK-11856 rc-propagation (RSYNC): ticket-gdrive-sync exits no 121b08b5 →