← back to Dw Five Field Step0
snapshot price-finder cost-map after Osborne fix (live file is gitignored under ~/.claude/skills/*)
308bce51a41bb9995a4fcc8d9c7d858c9d22061d · 2026-06-21 19:06:00 -0700 · Steve
Files touched
A config-snapshots/price-finder-cost-map.json
Diff
commit 308bce51a41bb9995a4fcc8d9c7d858c9d22061d
Author: Steve <steve@designerwallcoverings.com>
Date: Sun Jun 21 19:06:00 2026 -0700
snapshot price-finder cost-map after Osborne fix (live file is gitignored under ~/.claude/skills/*)
---
config-snapshots/price-finder-cost-map.json | 51 +++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/config-snapshots/price-finder-cost-map.json b/config-snapshots/price-finder-cost-map.json
new file mode 100644
index 0000000..b8dcc19
--- /dev/null
+++ b/config-snapshots/price-finder-cost-map.json
@@ -0,0 +1,51 @@
+{
+ "_doc": "Per-vendor cost resolution for the price-finder. basis='cost' => cost_expr already yields OUR net cost. basis='retail' => cost_expr is vendor MSRP, net cost = value*(1-discount). Discount is read live from vendor_registry.vendor_discount_pct. NEVER guess a cost column \u2014 verify by inspection before adding.",
+ "vendors": {
+ "Romo": {
+ "table": "romo_catalog",
+ "cost_expr": "GREATEST(COALESCE(NULLIF(total_price_per_roll,0),0), COALESCE(NULLIF(trade_price_per_roll,0),0)*(1+COALESCE(tariff_pct,0)/100), COALESCE(cost,0)*1.10)",
+ "basis": "cost",
+ "verified": "2026-06-11",
+ "note": "DTD-B 2026-06-11: landed cost = trade_price_per_roll*(1+tariff). 2026-06-11 fix: GREATEST guards 57 corrupt total_price_per_roll rows (were ~10x low). Designer-Net (no discount)."
+ },
+ "Thibaut": {
+ "table": "thibaut_catalog",
+ "cost_expr": "your_cost",
+ "basis": "cost",
+ "verified": "2026-06-11"
+ },
+ "Osborne & Little": {
+ "table": "osborne_catalog",
+ "cost_expr": "price_retail::numeric",
+ "basis": "retail",
+ "verified": "2026-06-21",
+ "note": "2026-06-21 fix (vp-dw-commerce): price_trade is EMPTY (0/787); the real catalog price is in price_retail (781/787). Repointed from empty price_trade -> price_retail, basis=retail so net cost = price_retail*(1-discount). Was silently resolving 0 cost for all 955 flagged Osborne SKUs."
+ "Designtex": {
+ "table": "designtex_catalog",
+ "cost_expr": "price_retail::numeric",
+ "basis": "cost",
+ "verified": "2026-06-11",
+ "note": "price_trade EMPTY; Steve 2026-06-11 'designtex price / .65 / .85' \u2014 designtex catalog price (price_retail) IS our cost"
+ },
+ "Ralph Lauren": {
+ "table": "rl_catalog",
+ "cost_expr": "cost",
+ "basis": "cost",
+ "verified": "2026-06-11"
+ },
+ "WallQuest": {
+ "table": "wallquest_catalog",
+ "cost_expr": "price_retail::numeric",
+ "basis": "cost",
+ "verified": "2026-06-11",
+ "note": "price_retail holds cost; price_dw is our retail"
+ },
+ "York Contract": {
+ "table": "york_contract_catalog",
+ "cost_expr": "retail_price",
+ "basis": "retail",
+ "verified": "2026-06-11",
+ "note": "only retail in catalog; net cost = retail*(1-discount)"
+ }
+ }
+}
\ No newline at end of file
← effb876 cost-relink SAFE first pass: read-only classifier + exact/fu
·
back to Dw Five Field Step0
·
phase2 add-sample bulk script - 13,669 SKUs (needs GraphQL s da33ebd →