[object Object]

← back to Eur Recrawl

Cody gate (verified): price-basis unknown (trade>retail backwards), 729 colorway-ambiguous codes, normalize recovers 0, CF feasibility unproven — FIX FIRST, blocked on Steve for price basis

8563be949158337e1128ae38caef3e13cf3bc418 · 2026-07-30 17:58:45 -0700 · Steve

Files touched

Diff

commit 8563be949158337e1128ae38caef3e13cf3bc418
Author: Steve <steve@designerwallcoverings.com>
Date:   Thu Jul 30 17:58:45 2026 -0700

    Cody gate (verified): price-basis unknown (trade>retail backwards), 729 colorway-ambiguous codes, normalize recovers 0, CF feasibility unproven — FIX FIRST, blocked on Steve for price basis
---
 PLAN.md | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/PLAN.md b/PLAN.md
index 4f4c890..21494bd 100644
--- a/PLAN.md
+++ b/PLAN.md
@@ -29,3 +29,11 @@ Osborne & Little 838 · Designers Guild 792 · Nina Campbell 306 · Christian La
 
 ## Status
 Scaffold + target list built (safe/local). Authenticated crawler = next, gated on Steve's go for the credentialed Cloudflare login. Zero live writes. Cost so far: $0 (local).
+
+## Cody gate — FIX FIRST (verified 2026-07-30, before any crawl)
+1. **PRICE BASIS UNKNOWN (critical).** In osborne_catalog where both set, `price_trade` avg $240 > `price_retail` avg $173 (52/55 rows) — backwards from normal wholesale. So it's unclear what "the price we pay logged in" maps to (net cost? trade list? = price_retail already?). Applying cost/0.65/0.85 to the wrong number mis-prices ALL 2,099. **Blocker: Steve must confirm what the logged-in portal number represents + what DW should charge from it (formula).** Best resolved against one known DW invoice OR one authenticated portal lookup.
+2. **729 SKUs (35%) share an mfr_code** with sibling colorways. One portal price stamped on all → mis-prices any colorway priced differently. Crawler must capture per-colorway OR verify same-price-per-pattern before stamping.
+3. **Normalization does NOT recover more matches** (369=369 for O&L) — the 348 catalog misses are real gaps, so the crawl IS necessary for them (not avoidable by a better join). Catalog tops out ~369 priceable + 105 matched-no-price.
+4. **Cloudflare feasibility unproven** — "Playwright passes CF naturally" is an assumption; CF Bot Management fingerprints automation. Needs a real authenticated-session test, not the curl inference.
+
+**Loop state: BLOCKED on Steve for the price basis (#1) — cannot build the pricing step until the logged-in number's meaning + DW's charge formula are pinned.**

← e22b931 EUR recrawl scaffold: target list (2099) + plan (real-browse  ·  back to Eur Recrawl  ·  Cycle 4 ledger + loop HOLD-FOR-STEVE on price basis (5/5 DTD 7a59e04 →