[object Object]

← back to Dw Unbuyable Recovery Pilot

TK-11041: Innovations reprice — LIST basis, decimal-safe /0.65/0.85 markup, Skylark by-roll, current 2026-09-15 terms + auto-exclude disco rule

d4fae99bf04d944e9f3d2bde827abd01983ce76f · 2026-09-15 09:35:22 -0700 · Steve

Files touched

Diff

commit d4fae99bf04d944e9f3d2bde827abd01983ce76f
Author: Steve <steve@designerwallcoverings.com>
Date:   Tue Sep 15 09:35:22 2026 -0700

    TK-11041: Innovations reprice — LIST basis, decimal-safe /0.65/0.85 markup, Skylark by-roll, current 2026-09-15 terms + auto-exclude disco rule
---
 .../config/innovations-current-pricing.json        |  40 +
 .../rescrape/data/pattern-order-terms.json         | 372 +++++++--
 .../rescrape/data/tk11041-authoritative-table.json | 927 +++++++++++++++++++++
 .../rescrape/stage-reprice.mjs                     |  20 +-
 .../rescrape/tk11041-authoritative-table.mjs       |  97 +++
 5 files changed, 1385 insertions(+), 71 deletions(-)

diff --git a/tk11041-innovations-reconcile/rescrape/config/innovations-current-pricing.json b/tk11041-innovations-reconcile/rescrape/config/innovations-current-pricing.json
new file mode 100644
index 0000000..9451bb6
--- /dev/null
+++ b/tk11041-innovations-reconcile/rescrape/config/innovations-current-pricing.json
@@ -0,0 +1,40 @@
+{
+  "_doc": "AUTHORITATIVE current Innovations (private-label Phillipe Romano) pricing + order terms. Innovations is sold customer-facing ONLY as Phillipe Romano (PRW-/PR- / La Turino etc.) — the names 'Innovations'/'Innovations USA' must NEVER be customer-facing.",
+  "vendor_code": "innovations",
+  "catalog_table": "innovations_catalog",
+  "trade_discount_pct": 10,
+  "trade_discount_source": "Sales Order O-111475 + Currier correction (SETTLED); vendor_registry.innovations.vendor_discount_pct=10",
+  "price_basis": "LIST (vendor's quoted price). Steve-confirmed 2026-09-15.",
+  "formula": {
+    "net_cost": "round(list * 0.90, 2)  -> price_trade   (10% trade discount)",
+    "retail": "round(net_cost / 0.65 / 0.85, 2)  -> our_price   (canonical DW markup; matches scripts/innovations-reprice/stage-innov-reprice.mjs line 40)",
+    "rounding": "DECIMAL/integer-cents (half-up). NOT naive JS float — 132.95*0.90=119.655 must round to 119.66, a PostgreSQL NUMERIC round(list*0.90,2) is correct."
+  },
+  "price_list_source": "Hektor Martinez reply 2026-09-15 (pattern-level LIST)",
+  "patterns": {
+    "Costine":    { "prefix": "CSO", "list_per_yd": 49.95,  "sold_by": "yard", "min_order_yds": 10, "cut_fee_per_yd": 4, "cut_fee_below_yds": 30, "net_per_yd": 44.96,  "retail_per_yd": 81.38 },
+    "Enchase":    { "prefix": "ENS", "list_per_yd": 69.95,  "sold_by": "yard", "min_order_yds": 10, "cut_fee_per_yd": 5, "cut_fee_below_yds": 30, "net_per_yd": 62.96,  "retail_per_yd": 113.95 },
+    "Flanders":   { "prefix": "FLN", "list_per_yd": 132.95, "sold_by": "yard", "min_order_yds": 10, "cut_fee_per_yd": 5, "cut_fee_below_yds": 30, "net_per_yd": 119.66, "retail_per_yd": 216.58, "note": "half-cent boundary: net must be 119.66 (decimal round), not 119.65 (float artifact)" },
+    "Province":   { "prefix": "PRO", "list_per_yd": 31.95,  "sold_by": "yard", "min_order_yds": 10, "cut_fee_per_yd": 4, "cut_fee_below_yds": 30, "net_per_yd": 28.76,  "retail_per_yd": 52.05 },
+    "Skylark":    { "prefix": "SKL", "list_per_yd": 134.95, "sold_by": "roll", "roll_yds": 10, "min_order_yds": 10, "list_per_roll": 1349.50, "net_per_roll": 1214.55, "retail_per_roll": 2198.28, "cut_fee_per_yd": null, "note": "SOLD BY THE ROLL (10yd/roll). Was MTO on the Oct-2025 list; vendor 2026-09-15 confirms stocked, by the roll. price_unit='roll'; price computed at the ROLL unit, not per-yard-then-x10." },
+    "Tatami":     { "prefix": "TTM", "list_per_yd": 64.95,  "sold_by": "yard", "min_order_yds": 10, "cut_fee_per_yd": 5, "cut_fee_below_yds": 30, "net_per_yd": 58.46,  "retail_per_yd": 105.81 },
+    "Vinyl Cork": { "prefix": "VCO", "list_per_yd": 49.95,  "sold_by": "yard", "min_order_yds": 10, "cut_fee_per_yd": 4, "cut_fee_below_yds": 30, "net_per_yd": 44.96,  "retail_per_yd": 81.38 }
+  },
+  "discontinued_patterns": {
+    "Whistler": {
+      "prefix": "WHL",
+      "status": "discontinued",
+      "reason": "vendor 2026-09-15 (Hektor Martinez): discontinued, only limited per-color stock ('which color are you interested in?').",
+      "sku_count": 12,
+      "on_shopify": false,
+      "action": "EXCLUDE from publish/buyable. Not on Shopify (0 live products) — no archive needed; mark do_not_publish in dw_unified so it never gets published going forward."
+    }
+  },
+  "standing_rules": {
+    "auto_exclude_from_publish": "Any SKU that is DISCONTINUED or LIMITED-STOCK per the vendor is auto-excluded from publish/buyable going forward (Steve 2026-09-15: 'Drop any with limited stock going fwd or disco'). Do not make it freely buyable; keep it off Shopify (archive if already live). This applies to future scrapes/refreshes, not just Whistler.",
+    "list_basis": "Vendor-quoted numbers are LIST; net = list*0.90; never apply the discount twice.",
+    "never_active_without_image_and_width": "Standard DW rule still applies — no product goes ACTIVE without image + width metafield."
+  },
+  "generated": "2026-09-15",
+  "ticket": "TK-11041"
+}
diff --git a/tk11041-innovations-reconcile/rescrape/data/pattern-order-terms.json b/tk11041-innovations-reconcile/rescrape/data/pattern-order-terms.json
index b395d69..fad45eb 100644
--- a/tk11041-innovations-reconcile/rescrape/data/pattern-order-terms.json
+++ b/tk11041-innovations-reconcile/rescrape/data/pattern-order-terms.json
@@ -7,7 +7,13 @@
   "pattern": "Costine",
   "warehouse": "NJ",
   "weight": "34 oz",
-  "width": "52\""
+  "width": "52\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "CSO-002": {
   "freight_or_mto": "Fee A",
@@ -17,7 +23,13 @@
   "pattern": "Costine",
   "warehouse": "NJ",
   "weight": "34 oz",
-  "width": "52\""
+  "width": "52\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "CSO-003": {
   "freight_or_mto": "Fee A",
@@ -27,117 +39,189 @@
   "pattern": "Costine",
   "warehouse": "NJ",
   "weight": "34 oz",
-  "width": "52\""
+  "width": "52\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "ENS-01": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 69.95,
   "pattern": "Enchase",
   "warehouse": "NJ",
   "weight": "7 oz",
-  "width": "35\""
+  "width": "35\"",
+  "current_list_per_yd": 69.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$69.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "ENS-02": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 69.95,
   "pattern": "Enchase",
   "warehouse": "NJ",
   "weight": "7 oz",
-  "width": "35\""
+  "width": "35\"",
+  "current_list_per_yd": 69.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$69.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "ENS-03": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 69.95,
   "pattern": "Enchase",
   "warehouse": "NJ",
   "weight": "7 oz",
-  "width": "35\""
+  "width": "35\"",
+  "current_list_per_yd": 69.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$69.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "ENS-04": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 69.95,
   "pattern": "Enchase",
   "warehouse": "NJ",
   "weight": "7 oz",
-  "width": "35\""
+  "width": "35\"",
+  "current_list_per_yd": 69.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$69.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "ENS-05": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 69.95,
   "pattern": "Enchase",
   "warehouse": "NJ",
   "weight": "7 oz",
-  "width": "35\""
+  "width": "35\"",
+  "current_list_per_yd": 69.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$69.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "ENS-06": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 69.95,
   "pattern": "Enchase",
   "warehouse": "NJ",
   "weight": "7 oz",
-  "width": "35\""
+  "width": "35\"",
+  "current_list_per_yd": 69.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$69.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "FLN-01": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 112.95,
   "pattern": "Flanders",
   "warehouse": "INTL",
   "weight": "16 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 132.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$132.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "FLN-02": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 112.95,
   "pattern": "Flanders",
   "warehouse": "INTL",
   "weight": "16 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 132.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$132.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "FLN-03": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 112.95,
   "pattern": "Flanders",
   "warehouse": "INTL",
   "weight": "16 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 132.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$132.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "FLN-04": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 112.95,
   "pattern": "Flanders",
   "warehouse": "INTL",
   "weight": "16 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 132.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$132.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "FLN-05": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 112.95,
   "pattern": "Flanders",
   "warehouse": "INTL",
   "weight": "16 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 132.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$132.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "PRO-012": {
   "freight_or_mto": "Fee A",
@@ -147,117 +231,197 @@
   "pattern": "Province",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 31.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$31.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "SKL-001": {
   "freight_or_mto": "MTO (no cut-fee code)",
-  "made_to_order": true,
+  "made_to_order": false,
   "min_order_yds": 10,
   "oct2025_list_per_yd": 129.95,
   "pattern": "Skylark",
-  "warehouse": "MTO",
+  "warehouse": "stock (by roll)",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 134.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "roll",
+  "roll_yds": 10,
+  "roll_list": 1349.5,
+  "cut_fee_per_yd": null,
+  "cut_fee_below_yds": null,
+  "terms_note": "SOLD BY THE ROLL, 10yd/roll. Was MTO on Oct-2025 list; vendor 2026-09-15 confirms stocked by roll."
  },
  "SKL-002": {
   "freight_or_mto": "MTO (no cut-fee code)",
-  "made_to_order": true,
+  "made_to_order": false,
   "min_order_yds": 10,
   "oct2025_list_per_yd": 129.95,
   "pattern": "Skylark",
-  "warehouse": "MTO",
+  "warehouse": "stock (by roll)",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 134.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "roll",
+  "roll_yds": 10,
+  "roll_list": 1349.5,
+  "cut_fee_per_yd": null,
+  "cut_fee_below_yds": null,
+  "terms_note": "SOLD BY THE ROLL, 10yd/roll. Was MTO on Oct-2025 list; vendor 2026-09-15 confirms stocked by roll."
  },
  "SKL-003": {
   "freight_or_mto": "MTO (no cut-fee code)",
-  "made_to_order": true,
+  "made_to_order": false,
   "min_order_yds": 10,
   "oct2025_list_per_yd": 129.95,
   "pattern": "Skylark",
-  "warehouse": "MTO",
+  "warehouse": "stock (by roll)",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 134.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "roll",
+  "roll_yds": 10,
+  "roll_list": 1349.5,
+  "cut_fee_per_yd": null,
+  "cut_fee_below_yds": null,
+  "terms_note": "SOLD BY THE ROLL, 10yd/roll. Was MTO on Oct-2025 list; vendor 2026-09-15 confirms stocked by roll."
  },
  "SKL-004": {
   "freight_or_mto": "MTO (no cut-fee code)",
-  "made_to_order": true,
+  "made_to_order": false,
   "min_order_yds": 10,
   "oct2025_list_per_yd": 129.95,
   "pattern": "Skylark",
-  "warehouse": "MTO",
+  "warehouse": "stock (by roll)",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 134.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "roll",
+  "roll_yds": 10,
+  "roll_list": 1349.5,
+  "cut_fee_per_yd": null,
+  "cut_fee_below_yds": null,
+  "terms_note": "SOLD BY THE ROLL, 10yd/roll. Was MTO on Oct-2025 list; vendor 2026-09-15 confirms stocked by roll."
  },
  "TTM-01": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 59.95,
   "pattern": "Tatami",
   "warehouse": "NJ",
   "weight": "8 oz",
-  "width": "36\""
+  "width": "36\"",
+  "current_list_per_yd": 64.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$64.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "TTM-02": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 59.95,
   "pattern": "Tatami",
   "warehouse": "NJ",
   "weight": "8 oz",
-  "width": "36\""
+  "width": "36\"",
+  "current_list_per_yd": 64.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$64.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "TTM-03": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 59.95,
   "pattern": "Tatami",
   "warehouse": "NJ",
   "weight": "8 oz",
-  "width": "36\""
+  "width": "36\"",
+  "current_list_per_yd": 64.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$64.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "TTM-04": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 59.95,
   "pattern": "Tatami",
   "warehouse": "NJ",
   "weight": "8 oz",
-  "width": "36\""
+  "width": "36\"",
+  "current_list_per_yd": 64.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$64.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "TTM-05": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 59.95,
   "pattern": "Tatami",
   "warehouse": "NJ",
   "weight": "8 oz",
-  "width": "36\""
+  "width": "36\"",
+  "current_list_per_yd": 64.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$64.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "TTM-06": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 59.95,
   "pattern": "Tatami",
   "warehouse": "NJ",
   "weight": "8 oz",
-  "width": "36\""
+  "width": "36\"",
+  "current_list_per_yd": 64.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$64.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "TTM-07": {
   "freight_or_mto": "Fee C",
   "made_to_order": false,
-  "min_order_yds": 6,
+  "min_order_yds": 10,
   "oct2025_list_per_yd": 59.95,
   "pattern": "Tatami",
   "warehouse": "NJ",
   "weight": "8 oz",
-  "width": "36\""
+  "width": "36\"",
+  "current_list_per_yd": 64.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 5,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$64.95/yd list, 10yd min, +$5/yd cut fee on orders <30yd"
  },
  "VCO-001": {
   "freight_or_mto": "Fee A",
@@ -267,7 +431,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-002": {
   "freight_or_mto": "Fee A",
@@ -277,7 +447,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-003": {
   "freight_or_mto": "Fee A",
@@ -287,7 +463,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-004": {
   "freight_or_mto": "Fee A",
@@ -297,7 +479,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-005": {
   "freight_or_mto": "Fee A",
@@ -307,7 +495,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-006": {
   "freight_or_mto": "Fee A",
@@ -317,7 +511,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-007": {
   "freight_or_mto": "Fee A",
@@ -327,7 +527,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-008": {
   "freight_or_mto": "Fee A",
@@ -337,7 +543,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-009": {
   "freight_or_mto": "Fee A",
@@ -347,7 +559,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-010": {
   "freight_or_mto": "Fee A",
@@ -357,7 +575,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-011": {
   "freight_or_mto": "Fee A",
@@ -367,7 +591,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-012": {
   "freight_or_mto": "Fee A",
@@ -377,7 +607,13 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  },
  "VCO-013": {
   "freight_or_mto": "Fee A",
@@ -387,6 +623,12 @@
   "pattern": "Vinyl Cork",
   "warehouse": "NJ",
   "weight": "20 oz",
-  "width": "54\""
+  "width": "54\"",
+  "current_list_per_yd": 49.95,
+  "current_list_source": "Hektor Martinez reply 2026-09-15",
+  "sold_by": "yard",
+  "cut_fee_per_yd": 4,
+  "cut_fee_below_yds": 30,
+  "terms_note": "$49.95/yd list, 10yd min, +$4/yd cut fee on orders <30yd"
  }
 }
\ No newline at end of file
diff --git a/tk11041-innovations-reconcile/rescrape/data/tk11041-authoritative-table.json b/tk11041-innovations-reconcile/rescrape/data/tk11041-authoritative-table.json
new file mode 100644
index 0000000..1864961
--- /dev/null
+++ b/tk11041-innovations-reconcile/rescrape/data/tk11041-authoritative-table.json
@@ -0,0 +1,927 @@
+{
+  "ticket": "TK-11041",
+  "kind": "authoritative-reprice-table",
+  "generated_at": "2026-09-15T16:34:00.361Z",
+  "read_only": true,
+  "no_db_write": true,
+  "no_shopify_write": true,
+  "basis": "LIST (Steve-confirmed; Hektor Martinez reply 2026-09-15)",
+  "formula": "net = round(list*0.90); retail = round(net/0.65/0.85). Matches stage-innov-reprice.mjs.",
+  "skylark_note": "SOLD BY THE ROLL (10yd/roll). price_trade/our_price computed at the ROLL unit.",
+  "cohort_n": 39,
+  "rows": [
+    {
+      "mfr_sku": "CSO-001",
+      "pattern": "Costine",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "52\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862998761523",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "CSO-002",
+      "pattern": "Costine",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "52\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862983622707",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "CSO-003",
+      "pattern": "Costine",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "52\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862984146995",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "ENS-01",
+      "pattern": "Enchase",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 69.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "35\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862983163955",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 62.96,
+      "retail_per_yd": 113.95,
+      "price_unit": "yard",
+      "price_trade": 62.96,
+      "our_price": 113.95
+    },
+    {
+      "mfr_sku": "ENS-02",
+      "pattern": "Enchase",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 69.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "35\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862984769587",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 62.96,
+      "retail_per_yd": 113.95,
+      "price_unit": "yard",
+      "price_trade": 62.96,
+      "our_price": 113.95
+    },
+    {
+      "mfr_sku": "ENS-03",
+      "pattern": "Enchase",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 69.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "35\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862985392179",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 62.96,
+      "retail_per_yd": 113.95,
+      "price_unit": "yard",
+      "price_trade": 62.96,
+      "our_price": 113.95
+    },
+    {
+      "mfr_sku": "ENS-04",
+      "pattern": "Enchase",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 69.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "35\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862982639667",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 62.96,
+      "retail_per_yd": 113.95,
+      "price_unit": "yard",
+      "price_trade": 62.96,
+      "our_price": 113.95
+    },
+    {
+      "mfr_sku": "ENS-05",
+      "pattern": "Enchase",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 69.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "35\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862983032883",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 62.96,
+      "retail_per_yd": 113.95,
+      "price_unit": "yard",
+      "price_trade": 62.96,
+      "our_price": 113.95
+    },
+    {
+      "mfr_sku": "ENS-06",
+      "pattern": "Enchase",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 69.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "35\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862987227187",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 62.96,
+      "retail_per_yd": 113.95,
+      "price_unit": "yard",
+      "price_trade": 62.96,
+      "our_price": 113.95
+    },
+    {
+      "mfr_sku": "FLN-01",
+      "pattern": "Flanders",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 132.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "INTL",
+      "shopify_product_id": "gid://shopify/Product/7862983786547",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 119.66,
+      "retail_per_yd": 216.58,
+      "price_unit": "yard",
+      "price_trade": 119.66,
+      "our_price": 216.58
+    },
+    {
+      "mfr_sku": "FLN-02",
+      "pattern": "Flanders",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 132.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "INTL",
+      "shopify_product_id": "gid://shopify/Product/7862985523251",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 119.66,
+      "retail_per_yd": 216.58,
+      "price_unit": "yard",
+      "price_trade": 119.66,
+      "our_price": 216.58
+    },
+    {
+      "mfr_sku": "FLN-03",
+      "pattern": "Flanders",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 132.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "INTL",
+      "shopify_product_id": "gid://shopify/Product/7862986080307",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 119.66,
+      "retail_per_yd": 216.58,
+      "price_unit": "yard",
+      "price_trade": 119.66,
+      "our_price": 216.58
+    },
+    {
+      "mfr_sku": "FLN-04",
+      "pattern": "Flanders",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 132.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "INTL",
+      "shopify_product_id": "gid://shopify/Product/7862983295027",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 119.66,
+      "retail_per_yd": 216.58,
+      "price_unit": "yard",
+      "price_trade": 119.66,
+      "our_price": 216.58
+    },
+    {
+      "mfr_sku": "FLN-05",
+      "pattern": "Flanders",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 132.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "INTL",
+      "shopify_product_id": "gid://shopify/Product/7862983688243",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 119.66,
+      "retail_per_yd": 216.58,
+      "price_unit": "yard",
+      "price_trade": 119.66,
+      "our_price": 216.58
+    },
+    {
+      "mfr_sku": "PRO-012",
+      "pattern": "Province",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 31.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7863155425331",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 28.76,
+      "retail_per_yd": 52.05,
+      "price_unit": "yard",
+      "price_trade": 28.76,
+      "our_price": 52.05
+    },
+    {
+      "mfr_sku": "SKL-001",
+      "pattern": "Skylark",
+      "sold_by": "roll",
+      "vendor_list_per_yd": 134.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": null,
+      "cut_fee_below_yds": null,
+      "width": "54\"",
+      "warehouse": "stock (by roll)",
+      "shopify_product_id": "gid://shopify/Product/7862993682483",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "roll",
+      "roll_yds": 10,
+      "list_roll": 1349.5,
+      "net_cost_roll": 1214.55,
+      "retail_roll": 2198.28,
+      "ref_net_per_yd": 121.46,
+      "ref_retail_per_yd": 219.84,
+      "price_unit": "roll",
+      "price_trade": 1214.55,
+      "our_price": 2198.28
+    },
+    {
+      "mfr_sku": "SKL-002",
+      "pattern": "Skylark",
+      "sold_by": "roll",
+      "vendor_list_per_yd": 134.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": null,
+      "cut_fee_below_yds": null,
+      "width": "54\"",
+      "warehouse": "stock (by roll)",
+      "shopify_product_id": "gid://shopify/Product/7862991028275",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "roll",
+      "roll_yds": 10,
+      "list_roll": 1349.5,
+      "net_cost_roll": 1214.55,
+      "retail_roll": 2198.28,
+      "ref_net_per_yd": 121.46,
+      "ref_retail_per_yd": 219.84,
+      "price_unit": "roll",
+      "price_trade": 1214.55,
+      "our_price": 2198.28
+    },
+    {
+      "mfr_sku": "SKL-003",
+      "pattern": "Skylark",
+      "sold_by": "roll",
+      "vendor_list_per_yd": 134.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": null,
+      "cut_fee_below_yds": null,
+      "width": "54\"",
+      "warehouse": "stock (by roll)",
+      "shopify_product_id": "gid://shopify/Product/7862991683635",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "roll",
+      "roll_yds": 10,
+      "list_roll": 1349.5,
+      "net_cost_roll": 1214.55,
+      "retail_roll": 2198.28,
+      "ref_net_per_yd": 121.46,
+      "ref_retail_per_yd": 219.84,
+      "price_unit": "roll",
+      "price_trade": 1214.55,
+      "our_price": 2198.28
+    },
+    {
+      "mfr_sku": "SKL-004",
+      "pattern": "Skylark",
+      "sold_by": "roll",
+      "vendor_list_per_yd": 134.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": null,
+      "cut_fee_below_yds": null,
+      "width": "54\"",
+      "warehouse": "stock (by roll)",
+      "shopify_product_id": "gid://shopify/Product/7862995255347",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "roll",
+      "roll_yds": 10,
+      "list_roll": 1349.5,
+      "net_cost_roll": 1214.55,
+      "retail_roll": 2198.28,
+      "ref_net_per_yd": 121.46,
+      "ref_retail_per_yd": 219.84,
+      "price_unit": "roll",
+      "price_trade": 1214.55,
+      "our_price": 2198.28
+    },
+    {
+      "mfr_sku": "TTM-01",
+      "pattern": "Tatami",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 64.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "36\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862991421491",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 58.46,
+      "retail_per_yd": 105.81,
+      "price_unit": "yard",
+      "price_trade": 58.46,
+      "our_price": 105.81
+    },
+    {
+      "mfr_sku": "TTM-02",
+      "pattern": "Tatami",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 64.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "36\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862992109619",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 58.46,
+      "retail_per_yd": 105.81,
+      "price_unit": "yard",
+      "price_trade": 58.46,
+      "our_price": 105.81
+    },
+    {
+      "mfr_sku": "TTM-03",
+      "pattern": "Tatami",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 64.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "36\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862995714099",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 58.46,
+      "retail_per_yd": 105.81,
+      "price_unit": "yard",
+      "price_trade": 58.46,
+      "our_price": 105.81
+    },
+    {
+      "mfr_sku": "TTM-04",
+      "pattern": "Tatami",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 64.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "36\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862992371763",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 58.46,
+      "retail_per_yd": 105.81,
+      "price_unit": "yard",
+      "price_trade": 58.46,
+      "our_price": 105.81
+    },
+    {
+      "mfr_sku": "TTM-05",
+      "pattern": "Tatami",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 64.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "36\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862993715251",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 58.46,
+      "retail_per_yd": 105.81,
+      "price_unit": "yard",
+      "price_trade": 58.46,
+      "our_price": 105.81
+    },
+    {
+      "mfr_sku": "TTM-06",
+      "pattern": "Tatami",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 64.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "36\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862994272307",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 58.46,
+      "retail_per_yd": 105.81,
+      "price_unit": "yard",
+      "price_trade": 58.46,
+      "our_price": 105.81
+    },
+    {
+      "mfr_sku": "TTM-07",
+      "pattern": "Tatami",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 64.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 5,
+      "cut_fee_below_yds": 30,
+      "width": "36\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862991650867",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 58.46,
+      "retail_per_yd": 105.81,
+      "price_unit": "yard",
+      "price_trade": 58.46,
+      "our_price": 105.81
+    },
+    {
+      "mfr_sku": "VCO-001",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862996697139",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-002",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862993354803",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-003",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862994632755",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-004",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862995320883",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-005",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862992601139",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-006",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862993190963",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-007",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862996893747",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-008",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862993551411",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-009",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862994829363",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-010",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862995484723",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-011",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862992830515",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-012",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862993387571",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    },
+    {
+      "mfr_sku": "VCO-013",
+      "pattern": "Vinyl Cork",
+      "sold_by": "yard",
+      "vendor_list_per_yd": 49.95,
+      "min_order_yds": 10,
+      "cut_fee_per_yd": 4,
+      "cut_fee_below_yds": 30,
+      "width": "54\"",
+      "warehouse": "NJ",
+      "shopify_product_id": "gid://shopify/Product/7862997090355",
+      "restore": {
+        "old_price_trade": null,
+        "old_our_price": null,
+        "old_price_unit": null
+      },
+      "order_unit": "yard",
+      "net_cost_per_yd": 44.96,
+      "retail_per_yd": 81.38,
+      "price_unit": "yard",
+      "price_trade": 44.96,
+      "our_price": 81.38
+    }
+  ]
+}
\ No newline at end of file
diff --git a/tk11041-innovations-reconcile/rescrape/stage-reprice.mjs b/tk11041-innovations-reconcile/rescrape/stage-reprice.mjs
index 9128902..1811737 100644
--- a/tk11041-innovations-reconcile/rescrape/stage-reprice.mjs
+++ b/tk11041-innovations-reconcile/rescrape/stage-reprice.mjs
@@ -25,15 +25,23 @@ const TERMS = path.join(HERE, 'data/pattern-order-terms.json');
 const PREFIX_OF = { Costine:'CSO', Enchase:'ENS', Flanders:'FLN', Province:'PRO',
                     Skylark:'SKL', Tatami:'TTM', 'Vinyl Cork':'VCO' };
 const DISCOUNT = 0.90;   // 10% off list — vendor Sales Order O-111475, 3x corroborated
-const MARKUP   = 1.81;   // 1/0.65/0.85, verified 57/57 rows to 4dp
 
 const r2 = n => Math.round(n * 100) / 100;
+// DECIMAL-SAFE money math via integer cents — matches a PostgreSQL NUMERIC round(list*0.90,2) write.
+// Plain Math.round(list*0.90*100)/100 hits an IEEE-754 artifact on half-cent boundaries
+// (132.95*0.90 = 119.655 reads as 119.6549999 -> rounds DOWN to 119.65, a silent 1c Flanders
+// underprice). Integer cents keeps 119.655 -> 11965.5 -> half-up 11966 -> $119.66.
+const cents  = d => Math.round(d * 100);
+const netFromList = list => Math.round(cents(list) * 9 / 10) / 100;    // 10% off, exact decimal
+// Retail = net / 0.65 / 0.85 — canonical DW markup, matching production writer stage-innov-reprice.mjs
+// line 40 (RETAIL = c => round(c/0.65/0.85)). (Was MARKUP=1.81, a 4dp approx 1c high on boundaries.)
+const retailOf = net => Math.round(cents(net) / 0.65 / 0.85) / 100;
 
 // Returns {list, net, retail} or throws. Never silently coerces.
 function derive(value, basis) {
   if (!Number.isFinite(value) || value <= 0) throw new Error(`price must be a positive number, got ${value}`);
-  if (basis === 'list') { const net = r2(value * DISCOUNT); return { list: r2(value), net, retail: r2(net * MARKUP) }; }
-  if (basis === 'net')  { const net = r2(value);            return { list: r2(value / DISCOUNT), net, retail: r2(net * MARKUP) }; }
+  if (basis === 'list') { const net = netFromList(value);      return { list: r2(value), net, retail: retailOf(net) }; }
+  if (basis === 'net')  { const net = r2(value);               return { list: r2(cents(value) * 10 / 9) / 100, net, retail: retailOf(net) }; }
   throw new Error(`basis must be "list" or "net", got ${JSON.stringify(basis)}`);
 }
 
@@ -60,7 +68,7 @@ function selftest() {
   console.log('[selftest] TK-11041 stage-reprice');
   const L = derive(45.95, 'list');
   ck('list 45.95 -> net 41.36 (x0.90)', L.net === 41.36);
-  ck('list 45.95 -> retail 74.86 (net x1.81)', L.retail === r2(41.36 * 1.81));
+  ck('list 45.95 -> retail 74.86 (net / 0.65 / 0.85)', L.retail === r2(41.36 / 0.65 / 0.85));
   const N = derive(41.36, 'net');
   ck('net 41.36 round-trips to list ~45.96', Math.abs(N.list - 45.96) < 0.02);
   ck('net and list bases agree on retail', N.retail === L.retail);
@@ -109,8 +117,8 @@ for (const [sku, t] of Object.entries(terms).sort()) {
 
 const ts = new Date().toISOString().replace(/[:.]/g, '').slice(0, 15) + 'Z';
 const doc = {
-  ticket: 'TK-11041', generated: ts, basis, quoted, discount: DISCOUNT, markup: MARKUP,
-  formula: 'list x0.90 = net cost; net x1.81 (1/0.65/0.85) = retail. Verified on 57 rows.',
+  ticket: 'TK-11041', generated: ts, basis, quoted, discount: DISCOUNT, markup: '1/0.65/0.85',
+  formula: 'list x0.90 = net cost; retail = net / 0.65 / 0.85 (canonical DW markup, matches stage-innov-reprice.mjs). Verified on 57 rows.',
   priced: out.length, not_priced: missing,
   sanity_flags: flags,
   made_to_order_warning: out.some(r => r.made_to_order)
diff --git a/tk11041-innovations-reconcile/rescrape/tk11041-authoritative-table.mjs b/tk11041-innovations-reconcile/rescrape/tk11041-authoritative-table.mjs
new file mode 100644
index 0000000..43a4efd
--- /dev/null
+++ b/tk11041-innovations-reconcile/rescrape/tk11041-authoritative-table.mjs
@@ -0,0 +1,97 @@
+#!/usr/bin/env node
+/**
+ * TK-11041 — the AUTHORITATIVE per-SKU reprice table for the 39 live PR-Innovations items.
+ * READ-ONLY. Writes NOTHING to dw_unified or Shopify. Emits JSON + markdown for the gated memo.
+ *
+ * Canonical chain — EXACTLY matches the production gated writer
+ * scripts/innovations-reprice/stage-innov-reprice.mjs line 40:
+ *     price_trade (net) = round(list * 0.90)          # 10% trade discount, Sales Order O-111475
+ *     our_price  (retail) = round(price_trade / 0.65 / 0.85)   # canonical DW markup (NOT the 1.81 approx)
+ * Net is rounded to cents FIRST because price_trade is a real 2dp stored cost column, then retail
+ * is derived from that stored net — this is the DW cadence-import convention.
+ *
+ * SKYLARK is SOLD BY THE ROLL (vendor 2026-09-15). Its price_trade/our_price are computed at the
+ * ROLL unit (list_roll = list_per_yd * 10), NOT per-yard-then-x10 — that avoids the 12-cent
+ * rounding drift ($2198.28 roll-level vs $2198.40 per-yд-x10).
+ */
+import fs from 'node:fs';
+import path from 'node:path';
+import { fileURLToPath } from 'node:url';
+import { execFileSync } from 'node:child_process';
+
+const HERE = path.dirname(fileURLToPath(import.meta.url));
+const TERMS = JSON.parse(fs.readFileSync(path.join(HERE, 'data/pattern-order-terms.json'), 'utf8'));
+const r2 = n => Math.round(n * 100) / 100;
+// DECIMAL-SAFE money math via integer cents — matches a PostgreSQL NUMERIC round(list*0.90,2)
+// write. Plain JS `Math.round(list*0.90*100)/100` hits an IEEE-754 artifact on half-cent
+// boundaries (132.95*0.90 = 119.655 reads as 119.6549999 and rounds DOWN to 119.65, a silent 1c
+// underprice on Flanders). Integer cents keeps 119.655 -> 11965.5 -> half-up 11966 -> $119.66.
+const cents = dollars => Math.round(dollars * 100);
+const netOf = list => Math.round(cents(list) * 9 / 10) / 100;          // 10% off, exact
+const retailOf = net => Math.round(cents(net) / 0.65 / 0.85) / 100;    // canonical DW markup
+
+// live shopify_product_id from the Mac2 mirror (READ-ONLY) for the restore-map
+const psql = sql => execFileSync('psql', ['-h', '/tmp', '-At', '-F', '\t', '-d', 'dw_unified', '-c', sql], { encoding: 'utf8' }).trim();
+const spidRows = psql(`SELECT mfr_sku, coalesce(shopify_product_id::text,''), coalesce(price_trade::text,''),
+  coalesce(our_price::text,''), coalesce(price_unit,'') FROM innovations_catalog
+  WHERE substring(mfr_sku from '^[A-Za-z]+') IN ('CSO','ENS','FLN','PRO','SKL','TTM','VCO') ORDER BY mfr_sku;`);
+const SPID = {};
+for (const l of spidRows.split('\n').filter(Boolean)) {
+  const [sku, spid, pt, op, pu] = l.split('\t');
+  SPID[sku] = { spid, old_price_trade: pt || null, old_our_price: op || null, old_price_unit: pu || null };
+}
+
+const rows = [];
+for (const [sku, t] of Object.entries(TERMS).sort()) {
+  const listYd = t.current_list_per_yd;
+  const base = {
+    mfr_sku: sku, pattern: t.pattern, sold_by: t.sold_by,
+    vendor_list_per_yd: listYd, min_order_yds: t.min_order_yds,
+    cut_fee_per_yd: t.cut_fee_per_yd, cut_fee_below_yds: t.cut_fee_below_yds,
+    width: t.width, warehouse: t.warehouse,
+    shopify_product_id: SPID[sku]?.spid || null,
+    restore: { old_price_trade: SPID[sku]?.old_price_trade ?? null,
+               old_our_price: SPID[sku]?.old_our_price ?? null,
+               old_price_unit: SPID[sku]?.old_price_unit ?? null },
+  };
+  if (t.sold_by === 'roll') {
+    const listRoll = r2(listYd * t.roll_yds);          // 134.95 * 10 = 1349.50
+    const netRoll = netOf(listRoll);                   // round(1349.50 * 0.90) = 1214.55
+    const retailRoll = retailOf(netRoll);              // round(1214.55 / 0.65 / 0.85) = 2198.28
+    rows.push({ ...base, order_unit: 'roll', roll_yds: t.roll_yds,
+      list_roll: listRoll, net_cost_roll: netRoll, retail_roll: retailRoll,
+      // per-yд shown for reference only; NOT the stored price for a by-roll item
+      ref_net_per_yd: netOf(listYd), ref_retail_per_yd: retailOf(netOf(listYd)),
+      price_unit: 'roll', price_trade: netRoll, our_price: retailRoll });
+  } else {
+    const net = netOf(listYd);
+    rows.push({ ...base, order_unit: 'yard',
+      net_cost_per_yd: net, retail_per_yd: retailOf(net),
+      price_unit: 'yard', price_trade: net, our_price: retailOf(net) });
+  }
+}
+
+const now = new Date().toISOString();
+const doc = {
+  ticket: 'TK-11041', kind: 'authoritative-reprice-table', generated_at: now,
+  read_only: true, no_db_write: true, no_shopify_write: true,
+  basis: 'LIST (Steve-confirmed; Hektor Martinez reply 2026-09-15)',
+  formula: 'net = round(list*0.90); retail = round(net/0.65/0.85). Matches stage-innov-reprice.mjs.',
+  skylark_note: 'SOLD BY THE ROLL (10yd/roll). price_trade/our_price computed at the ROLL unit.',
+  cohort_n: rows.length, rows,
+};
+fs.writeFileSync(path.join(HERE, 'data/tk11041-authoritative-table.json'), JSON.stringify(doc, null, 2));
+
+// pattern-level summary
+const money = v => '$' + Number(v).toFixed(2);
+const byPat = {};
+for (const r of rows) if (!byPat[r.pattern]) byPat[r.pattern] = r;
+console.log('PATTERN        UNIT   LIST       NET        RETAIL      min  cutfee');
+for (const p of Object.keys(byPat)) {
+  const r = byPat[p];
+  if (r.order_unit === 'roll')
+    console.log(`${p.padEnd(14)} roll   ${money(r.list_roll).padEnd(10)} ${money(r.net_cost_roll).padEnd(10)} ${money(r.retail_roll).padEnd(11)} ${String(r.min_order_yds).padEnd(3)}  n/a (roll)  [per-yd ref retail ${money(r.ref_retail_per_yd)}]`);
+  else
+    console.log(`${p.padEnd(14)} yard   ${money(r.vendor_list_per_yd).padEnd(10)} ${money(r.net_cost_per_yd).padEnd(10)} ${money(r.retail_per_yd).padEnd(11)} ${String(r.min_order_yds).padEnd(3)}  +$${r.cut_fee_per_yd}/yd <${r.cut_fee_below_yds}yd`);
+}
+console.log(`\nrows=${rows.length}  ->  data/tk11041-authoritative-table.json`);

← 18ec8a3 TK-11252 fork-1: set 8 Hollywood/Versa dead-ends to DRAFT (S  ·  back to Dw Unbuyable Recovery Pilot  ·  TK-11041 Innovations (Phillipe Romano) go-live: 39 repriced e8277ec →