[object Object]

← back to Consulting Designerwallcoverings Com

Correct Phase-1 cost-sourcing: momentum cost col is NULL (join hw_price); surface Greenland/Hollywood as cost-ready canary vs cost-blocked Osborne

4455119271784e1075e8ae404941e3734cfab6d5 · 2026-07-27 14:40:33 -0700 · steve@designerwallcoverings.com

Files touched

Diff

commit 4455119271784e1075e8ae404941e3734cfab6d5
Author: steve@designerwallcoverings.com <steve@designerwallcoverings.com>
Date:   Mon Jul 27 14:40:33 2026 -0700

    Correct Phase-1 cost-sourcing: momentum cost col is NULL (join hw_price); surface Greenland/Hollywood as cost-ready canary vs cost-blocked Osborne
---
 data/work-orders/PHASE-1-COST-SOURCING.md | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/data/work-orders/PHASE-1-COST-SOURCING.md b/data/work-orders/PHASE-1-COST-SOURCING.md
index 537aaec..6298f44 100644
--- a/data/work-orders/PHASE-1-COST-SOURCING.md
+++ b/data/work-orders/PHASE-1-COST-SOURCING.md
@@ -20,7 +20,7 @@ A **display "retail" figure already on a product** (a `min_variant_price` > $4.2
 | Staging table | Rows | Price/cost columns | Populated? | Verdict |
 |---|--:|---|---|---|
 | `greenland_catalog` | 213 | `price_per_yard`, `min_increment_yards` | **213 / 213** | **EXISTS** — $59.50/yd (6-yд increments) |
-| `momentum_colorways` | 10,985 | `list_price`, `cost`, `hw_price`, `retail_price` | **10,985 / 10,985** | **EXISTS** — full list + cost (Hollywood upstream) |
+| `momentum_colorways` | 10,985 | `list_price`, `cost`, `hw_price`, `retail_price` | `list_price` **10,985**, `hw_price` **10,985**, `retail_price` 8,083, **`cost` 0 (NULL)** | **EXISTS via `hw_price`** — pre-computed HW sell price populated; wholesale `cost` column is EMPTY (see corrected Line 3) |
 | `justin_david_pricing_2026` | 1,833 | `list_price_yd`, `our_cost_yd`, `retail_yd`, `tariff_yd` | **1,528** list+cost | **EXISTS** (partial) — JD Jan-2026 list, 15% trade |
 | `osborne_catalog` | 14,107 | `price_retail`, `price_trade`, `our_price` | `price_retail` **836**, `price_trade` **1,010**, `our_price` **0** | **PARTIAL** — scraped list/trade exist; confirmed DW cost (`our_price`) NULL |
 | `coordonne_catalog` | 6,460 | `price_retail`, `price_trade`, `tariff_amount_per_yard` | `price_retail` **4,205**, `price_trade` **0** | **PARTIAL** — retail only, **no trade/cost basis** |
@@ -55,10 +55,10 @@ A **display "retail" figure already on a product** (a `min_variant_price` > $4.2
 ## Line 3 — Hollywood Wallcoverings (private-label = Momentum/Versa; 843 backlog SKUs; `has_cost` on 0)
 
 **Price basis needed:** list price + DW markup.
-**Source / exists today:** **EXISTS.** `momentum_colorways` carries `list_price` **AND** `cost` populated **10,985 / 10,985** — a full upstream cost basis is already in the mirror (Meilisearch feed). This is the strongest cost position of any GO line.
-**Lands in:** `momentum_colorways.cost` / `list_price` → join to Hollywood backlog `dw_sku`.
+**Source / exists today:** **EXISTS via `hw_price`, NOT `cost`.** ⚠️ **VERIFIED CORRECTION (2026-07-27, direct query):** the wholesale `momentum_colorways.cost` column is **0 / 10,985 — entirely NULL.** What IS populated: `list_price` **10,985/10,985**, `hw_price` **10,985/10,985** (the pre-computed Hollywood private-label sell price), `retail_price` 8,083/10,985. So Hollywood is still a strong position — arguably the strongest, since `hw_price` is already the customer-facing sell figure — but it prices off **`hw_price`**, not a wholesale `cost`. A canary that joined on `cost` would hit all-NULLs and fail.
+**Lands in:** `momentum_colorways.hw_price` (primary) / `list_price` → join to Hollywood backlog `dw_sku`. Do **not** join on `cost` (empty).
 **Leak-guard (hard):** "Momentum" and "Versa / Versa Designed Surfaces" must NEVER appear customer-facing — line stays "Hollywood Wallcoverings" with California-city collection names.
-**Phase-1 status:** **cost source present** — the blocker is the join + a `has_cost` refresh, not a vendor request. Strong second-canary candidate after Osborne (leak-guard adds risk vs Osborne's clean retail line).
+**Phase-1 status:** **sell-price source present (`hw_price`)** — blocker is the join + a `has_cost`/price refresh, not a vendor request. Alongside Greenland, one of the two genuinely cost-ready canary candidates (leak-guard adds risk vs Osborne's clean retail line, but Osborne is cost-blocked and Hollywood is not).
 
 ## Line 4 — Designers Guild (designer/retail; 840 backlog SKUs; `has_cost` on 2)
 
@@ -99,7 +99,8 @@ A GO line is Phase-1-complete when, for the SKUs to be activated:
 | Line | Cost source today | Blocker | Soonest path |
 |---|---|---|---|
 | **Osborne & Little** | scraped list/trade in `osborne_catalog` | `our_price` NULL; need O&L trade % or wholesale sheet | **Nearest** — confirm discount, derive cost, load `our_price` |
-| **Hollywood (Momentum)** | full `list_price`+`cost` in `momentum_colorways` | join + `has_cost` refresh (no vendor request) | Near — but leak-guard risk |
+| **Hollywood (Momentum)** | `hw_price`+`list_price` in `momentum_colorways` (**`cost` is NULL** — join on `hw_price`) | join + `has_cost` refresh (no vendor request) | **Cost-ready now** — leak-guard risk |
+| **Greenland (PR sub-label)** | `greenland_catalog.price_per_yard` 213/213 @ $59.50/yd; maps to 289 `GRS-` + 29 `CORK-` backlog rows | join + per-yard variant model + leak-guard | **Cost-ready now** — cleanest confirmed price basis |
 | **Phillipe Romano** | Greenland + Justin David real; Command54 + RIGO empty | request Command54/RIGO lists | Partial (per sub-label) |
 | **Coordonné** | `price_retail` only (no trade/cost) | request trade list / confirm discount | Vendor request |
 | **Designers Guild** | ~none (`price_retail` 23/1,294) | request DG wholesale list (likely via O&L) | Vendor request |

← 9d147c4 Phase-1 cost-sourcing plan for the 5 GO lines (read-only)  ·  back to Consulting Designerwallcoverings Com  ·  Fix contrarian-caught join errors: Greenland already-buyable 0c7e77f →