[object Object]

← back to Maya Width Fix

TK-11029: read-only diagnosis + deterministic dry-run correction pipeline + tested widthlib + source proof

3b407f58df57ca58df7c65eb9c5ec7f7e77f1929 · 2026-09-02 13:57:01 -0700 · Steve Abrams

- widthlib.py: pure width classifier (SINGLE/MULTI_WIDTH/META_POLLUTION), 17 unit tests (fixtures=live DB distinct values + negatives), all pass
- diagnose.py: read-only DB diagnosis -> 224 total, 2 residual polluted (DWMR-80026/80211, both 404), 222 clean
- authoritative_source.py: $0 read-only re-scrape + DB reconciliation; all 14 single-width slugs match DB exactly, 2x404, 4 multi-width
- pipeline.py: deterministic DRY-RUN correction plan (never writes; --apply refused); rollback artifact per run
- evidence/: committed stable JSON proofs; README with finalizer gated-apply path

No canonical DB/Shopify writes, no deploy/restart/spend/send/DNS/delete/remote-push. Prior applied backfill + restore-maps left intact.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q8Z4wTw69YbodS8A2FkQj4

Files touched

Diff

commit 3b407f58df57ca58df7c65eb9c5ec7f7e77f1929
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Sep 2 13:57:01 2026 -0700

    TK-11029: read-only diagnosis + deterministic dry-run correction pipeline + tested widthlib + source proof
    
    - widthlib.py: pure width classifier (SINGLE/MULTI_WIDTH/META_POLLUTION), 17 unit tests (fixtures=live DB distinct values + negatives), all pass
    - diagnose.py: read-only DB diagnosis -> 224 total, 2 residual polluted (DWMR-80026/80211, both 404), 222 clean
    - authoritative_source.py: $0 read-only re-scrape + DB reconciliation; all 14 single-width slugs match DB exactly, 2x404, 4 multi-width
    - pipeline.py: deterministic DRY-RUN correction plan (never writes; --apply refused); rollback artifact per run
    - evidence/: committed stable JSON proofs; README with finalizer gated-apply path
    
    No canonical DB/Shopify writes, no deploy/restart/spend/send/DNS/delete/remote-push. Prior applied backfill + restore-maps left intact.
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01Q8Z4wTw69YbodS8A2FkQj4
---
 .gitignore                           |    6 +
 README.md                            |   75 ++
 __pycache__/widthlib.cpython-314.pyc |  Bin 0 -> 4037 bytes
 authoritative_source.py              |  127 ++
 diagnose.py                          |   71 ++
 evidence/diagnosis.json              |  156 +++
 evidence/dryrun-plan-all.json        | 2261 ++++++++++++++++++++++++++++++++++
 evidence/dryrun-plan-polluted.json   |   38 +
 evidence/source-proof.json           |  354 ++++++
 pipeline.py                          |  137 ++
 test_widthlib.py                     |   75 ++
 widthlib.py                          |   68 +
 12 files changed, 3368 insertions(+)

diff --git a/.gitignore b/.gitignore
index ff2422c..a20ab8b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,9 @@ node_modules/
 tmp/
 *.log
 .DS_Store
+
+# TK-11029 generated dry-run churn (stable copies live in evidence/)
+/diagnosis-*.json
+/dryrun-plan-*.json
+/restore-map-dryrun-*.json
+/authoritative-source-proof-*.json
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..da900cb
--- /dev/null
+++ b/README.md
@@ -0,0 +1,75 @@
+# maya-width-fix — TK-11029
+
+Fixes the `maya_catalog.width` meta-tag pollution: at ticket open, **all 224**
+`DWMR-8%` rows held the scraped garbage string `=device-width, initial-scale=1">`
+(a `<meta name="viewport">` leak), so the Maya importer emitted 0 width metafields.
+
+## Current state (read-only, verified 2026-09-02)
+
+| metric | value |
+|---|---|
+| total `DWMR-8%` rows | 224 |
+| originally polluted | 224 / 224 |
+| **still polluted (residual)** | **2** — `DWMR-80026`, `DWMR-80211` |
+| clean width | 222 |
+| `width_inches` NULL | 17 (genuine multi-width, ambiguous by design) + 2 residual |
+
+The 2 residual rows (`cozy-bed-fellow` / `cozy-nestle`) return **HTTP 404** on
+mayaromanoff.com (discontinued) → width is **unrecoverable from the web**; needs a
+Maya rep/PDF. A rep width-request email is drafted (unsent, Steve-gated). **Do not guess.**
+
+## Authoritative source
+
+`mayaromanoff.com/collections/<slug>` → the spec-table `Width` cell. `$0` plain-fetch
+GET, no browser/proxy/creds. Each collection resolves to exactly one width string,
+classified as SINGLE (one roll width → `width_inches` derivable) or MULTI_WIDTH (one
+pattern genuinely offered in 2 roll widths, **no per-SKU width exists** → keep the full
+string, `width_inches` = NULL).
+
+## Files
+
+| file | role | writes? |
+|---|---|---|
+| `widthlib.py` | pure width classifier/parser (SINGLE / MULTI_WIDTH / META_POLLUTION / …) | none |
+| `test_widthlib.py` | unit tests, fixtures = live DB distinct values + negatives | none |
+| `diagnose.py` | read-only DB diagnosis → `evidence/diagnosis.json` | none |
+| `authoritative_source.py` | read-only re-scrape + DB reconciliation source-proof | none |
+| `pipeline.py` | **deterministic DRY-RUN** correction plan + rollback artifact | **none** |
+| `restore.py` | one-command UNDO from a restore-map (finalizer/undo tool) | DB (undo only) |
+| `evidence/` | committed stable copies of the JSON proofs | — |
+
+`scrape.py` / `backfill.py` / `backfill-multiwidth.py` + `restore-map-2026-*.json`
+are the **prior** (already-applied) one-time backfill + its rollback maps — left intact.
+
+## Run
+
+```bash
+python3 test_widthlib.py            # unit tests (exit 0 = pass)
+python3 diagnose.py                 # current counts + residual rows
+python3 authoritative_source.py     # re-scrape + prove DB == live source
+python3 pipeline.py                 # DRY-RUN plan, currently-polluted scope (2 rows)
+python3 pipeline.py --simulate-all  # DRY-RUN plan over all 224 (proves convergence)
+python3 pipeline.py --apply         # REFUSED — dry-run only (see below)
+```
+
+## Finalizer (/root) apply path — GATED
+
+`pipeline.py` never writes. Applying a `maya_catalog` correction is a **canonical
+Mac2-staging-DB write** and stays gated. To apply a reviewed dry-run plan:
+
+1. Re-run `python3 pipeline.py --simulate-all` (or polluted scope) to regenerate the
+   plan + a fresh `restore-map-dryrun-<ts>.json` (rollback artifact) against live DB.
+2. Review `plan[].sql` — each is a single bounded `UPDATE … WHERE dw_sku='…'`.
+3. Apply the `sql` lines (finalizer authority) inside one transaction.
+4. **Undo** at any time: `python3 restore.py restore-map-dryrun-<ts>.json`.
+
+Current recommendation for the finalizer: **no apply needed.** 222/224 are already
+correct; the 2 residual are unrecoverable (rep-gated); the only `--simulate-all` diff
+is 3 `wisping-weaves-montauk` rows where the **stored DB value is cleaner**
+(`137.2 cm`) than the live page's current vendor typo (`137.2 m`, curly quote) —
+cosmetic, `width_inches` NULL either way → keep the DB value.
+
+## Constraints honored
+
+Read-only diagnosis + dry-run only. No canonical DB / Shopify writes, no
+deploy/restart/spend/send/DNS/delete/remote-push. Unrelated edits preserved.
diff --git a/__pycache__/widthlib.cpython-314.pyc b/__pycache__/widthlib.cpython-314.pyc
new file mode 100644
index 0000000..830c005
Binary files /dev/null and b/__pycache__/widthlib.cpython-314.pyc differ
diff --git a/authoritative_source.py b/authoritative_source.py
new file mode 100644
index 0000000..4080289
--- /dev/null
+++ b/authoritative_source.py
@@ -0,0 +1,127 @@
+#!/usr/bin/env python3
+"""
+authoritative_source.py — TK-11029 authoritative-field mapping + SOURCE PROOF.
+
+READ-ONLY. Re-fetches each Maya Romanoff collection page ($0 plain-fetch GET,
+no browser/proxy/creds), extracts the spec-table Width value, classifies it with
+widthlib, and (if the DB is reachable) proves the already-applied maya_catalog
+widths equal the live authoritative source.
+
+Emits: authoritative-source-proof-<ts>.json
+Never writes the DB. Network egress = read-only GETs of public product pages.
+"""
+import urllib.request, re, json, subprocess, sys, datetime, os
+from widthlib import classify_width, is_meta_pollution
+
+SLUGS = [
+    "island-weaves", "craze", "natural-elements", "braided-hemp", "ajiro-burst-of-happiness",
+    "entwine-inlet-linen", "serigraph-cityscape", "beadazzled-leaf", "entwine-tranquil-linen",
+    "bouquet", "entwine-serene-silk", "wisping-weaves-montauk", "beadazzled",
+    "wisping-weaves-cape-may", "cozy-nestle", "cozy-bed-fellow", "coco-chenille",
+    "beadazzled-geode", "hurly-burly-ii", "ajiro-sunburst",
+]
+UA = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 "
+      "(KHTML, like Gecko) Chrome/120 Safari/537.36")
+WIDTH_RX = re.compile(r'>\s*Width\s*</td>\s*<td[^>]*>\s*([^<]{1,120}?)\s*</td>', re.I)
+HERE = os.path.dirname(os.path.abspath(__file__))
+
+
+def fetch_width(slug, attempts=3):
+    url = f"https://www.mayaromanoff.com/collections/{slug}"
+    last = None
+    for i in range(attempts):
+        try:
+            req = urllib.request.Request(url, headers={"User-Agent": UA})
+            with urllib.request.urlopen(req, timeout=30) as r:
+                html = r.read().decode("utf-8", "ignore")
+                status = r.status
+            break
+        except urllib.error.HTTPError as e:
+            # 404 is authoritative (discontinued) — do not retry
+            return {"slug": slug, "http_status": e.code, "width": None, "error": f"HTTP {e.code}"}
+        except Exception as e:
+            last = str(e)
+            import time as _t; _t.sleep(1.5 * (i + 1))
+    else:
+        return {"slug": slug, "http_status": None, "width": None, "error": f"transient: {last}"}
+    m = WIDTH_RX.search(html)
+    val = re.sub(r"\s+", " ", m.group(1).strip()) if m else None
+    dec, wi = classify_width(val)
+    return {"slug": slug, "http_status": status, "width": val,
+            "decision": dec, "width_inches": wi}
+
+
+def db_rows():
+    """Current maya_catalog state per collection slug (read-only)."""
+    sql = ("SELECT split_part(product_url,'/collections/',2) AS slug, "
+           "count(*), "
+           "count(*) FILTER (WHERE width LIKE '%device-width%'), "
+           "string_agg(DISTINCT coalesce(width_inches::text,'NULL'), '|') "
+           "FROM maya_catalog WHERE dw_sku LIKE 'DWMR-8%' GROUP BY slug")
+    r = subprocess.run(["psql", "-h", "/tmp", "-d", "dw_unified", "-At", "-F", "\t", "-c", sql],
+                       capture_output=True, text=True)
+    if r.returncode != 0:
+        return None
+    out = {}
+    for line in r.stdout.strip().split("\n"):
+        if not line:
+            continue
+        slug, n, poll, wis = line.split("\t")
+        out[slug] = {"rows": int(n), "polluted": int(poll), "db_width_inches": wis}
+    return out
+
+
+def main():
+    ts = datetime.datetime.now(datetime.timezone.utc).isoformat()
+    src = [fetch_width(s) for s in SLUGS]
+    for s in src:
+        print(f"  {s['slug']:28s} http={str(s.get('http_status')):>4}  "
+              f"{s.get('decision','-'):<14} wi={s.get('width_inches')}  {s.get('width')}")
+
+    db = db_rows()
+    proof = []
+    if db:
+        for s in src:
+            d = db.get(s["slug"])
+            if not d:
+                continue
+            match = None
+            if s.get("decision") == "SINGLE":
+                # every recovered row for this slug should carry the parsed inch value
+                match = (d["db_width_inches"] == s["width_inches"])
+            elif s.get("decision") == "MULTI_WIDTH":
+                match = (d["db_width_inches"] == "NULL")   # ambiguous by design
+            elif s.get("http_status") == 404:
+                match = (d["polluted"] > 0)                # correctly left flagged
+            proof.append({"slug": s["slug"], "decision": s.get("decision"),
+                          "http_status": s.get("http_status"),
+                          "src_width_inches": s.get("width_inches"),
+                          "db_width_inches": d["db_width_inches"],
+                          "db_rows": d["rows"], "db_polluted": d["polluted"],
+                          "db_matches_source": match})
+
+    single_ok = all(p["db_matches_source"] for p in proof
+                    if p["decision"] == "SINGLE" and p["db_matches_source"] is not None)
+    out = {
+        "ticket": "TK-11029", "generated_at": ts, "mode": "READ-ONLY source proof",
+        "source": "mayaromanoff.com collection spec-table Width cell",
+        "slugs_fetched": len(src),
+        "http_200": sum(1 for s in src if s.get("http_status") == 200),
+        "http_404": sum(1 for s in src if s.get("http_status") == 404),
+        "single_slugs": sum(1 for s in src if s.get("decision") == "SINGLE"),
+        "multi_width_slugs": sum(1 for s in src if s.get("decision") == "MULTI_WIDTH"),
+        "authoritative_source": src,
+        "db_reconciliation": proof,
+        "all_single_slugs_match_db": bool(single_ok) if proof else None,
+    }
+    path = os.path.join(HERE, f"authoritative-source-proof-{ts.replace(':', '-')}.json")
+    json.dump(out, open(path, "w"), indent=2)
+    print(f"\nSOURCE PROOF -> {path}")
+    print(f"  200s={out['http_200']} 404s={out['http_404']} "
+          f"single={out['single_slugs']} multi={out['multi_width_slugs']} "
+          f"all_single_match_db={out['all_single_slugs_match_db']}")
+    return 0
+
+
+if __name__ == "__main__":
+    sys.exit(main())
diff --git a/diagnose.py b/diagnose.py
new file mode 100644
index 0000000..9580ec8
--- /dev/null
+++ b/diagnose.py
@@ -0,0 +1,71 @@
+#!/usr/bin/env python3
+"""
+diagnose.py — TK-11029 READ-ONLY diagnosis of maya_catalog.width pollution.
+Emits exact affected counts (original vs current), per-slug breakdown, and the
+residual still-polluted rows. Zero writes. dw_unified via local socket.
+"""
+import subprocess, json, datetime, os, sys
+
+HERE = os.path.dirname(os.path.abspath(__file__))
+PSQL = ["psql", "-h", "/tmp", "-d", "dw_unified", "-At", "-F", "\t", "-c"]
+
+
+def q(sql):
+    r = subprocess.run(PSQL + [sql], capture_output=True, text=True)
+    if r.returncode != 0:
+        print("SQL ERR:", r.stderr, file=sys.stderr); sys.exit(1)
+    return [ln.split("\t") for ln in r.stdout.strip().split("\n") if ln]
+
+
+def main():
+    ts = datetime.datetime.now(datetime.timezone.utc).isoformat()
+    counts = q("""SELECT
+        count(*) FILTER (WHERE dw_sku LIKE 'DWMR-8%'),
+        count(*) FILTER (WHERE dw_sku LIKE 'DWMR-8%' AND width LIKE '%device-width%'),
+        count(*) FILTER (WHERE dw_sku LIKE 'DWMR-8%' AND width IS NOT NULL AND width NOT LIKE '%device-width%'),
+        count(*) FILTER (WHERE dw_sku LIKE 'DWMR-8%' AND width IS NULL),
+        count(*) FILTER (WHERE dw_sku LIKE 'DWMR-8%' AND width_inches IS NULL)
+      FROM maya_catalog""")[0]
+    total, polluted, clean, nullw, null_wi = map(int, counts)
+
+    residual = [{"dw_sku": r[0], "mfr_sku": r[1], "width": r[2],
+                 "width_inches": r[3], "product_url": r[4], "slug": r[5]}
+                for r in q("""SELECT dw_sku, mfr_sku, width, coalesce(width_inches::text,''),
+                                     product_url, split_part(product_url,'/collections/',2)
+                              FROM maya_catalog
+                              WHERE dw_sku LIKE 'DWMR-8%' AND width LIKE '%device-width%'
+                              ORDER BY dw_sku""")]
+
+    per_slug = [{"slug": r[0], "rows": int(r[1]), "polluted": int(r[2]),
+                 "distinct_width_inches": r[3]}
+                for r in q("""SELECT split_part(product_url,'/collections/',2), count(*),
+                                     count(*) FILTER (WHERE width LIKE '%device-width%'),
+                                     string_agg(DISTINCT coalesce(width_inches::text,'NULL'),'|')
+                              FROM maya_catalog WHERE dw_sku LIKE 'DWMR-8%'
+                              GROUP BY 1 ORDER BY 2 DESC""")]
+
+    out = {
+        "ticket": "TK-11029", "generated_at": ts, "mode": "READ-ONLY diagnosis",
+        "table": "maya_catalog", "row_scope": "dw_sku LIKE 'DWMR-8%'",
+        "polluted_string": "=device-width, initial-scale=1\">",
+        "counts": {
+            "total_dwmr8": total,
+            "original_polluted_all_224": total,   # historical: 224/224 were polluted at ticket open
+            "current_still_polluted": polluted,
+            "current_clean_width": clean,
+            "current_null_width": nullw,
+            "current_null_width_inches": null_wi,   # 17 multi-width (ambiguous) + 2 residual keep NULL/garbage
+        },
+        "residual_rows": residual,
+        "per_slug": per_slug,
+    }
+    path = os.path.join(HERE, f"diagnosis-{ts.replace(':', '-')}.json")
+    json.dump(out, open(path, "w"), indent=2)
+    print(f"total={total} still_polluted={polluted} clean={clean} null_width={nullw} null_width_inches={null_wi}")
+    print(f"residual (needs Maya rep): {[r['dw_sku'] for r in residual]}")
+    print(f"DIAGNOSIS -> {path}")
+    return 0
+
+
+if __name__ == "__main__":
+    sys.exit(main())
diff --git a/evidence/diagnosis.json b/evidence/diagnosis.json
new file mode 100644
index 0000000..ef2ea67
--- /dev/null
+++ b/evidence/diagnosis.json
@@ -0,0 +1,156 @@
+{
+  "ticket": "TK-11029",
+  "generated_at": "2026-09-02T20:54:39.510058+00:00",
+  "mode": "READ-ONLY diagnosis",
+  "table": "maya_catalog",
+  "row_scope": "dw_sku LIKE 'DWMR-8%'",
+  "polluted_string": "=device-width, initial-scale=1\">",
+  "counts": {
+    "total_dwmr8": 224,
+    "original_polluted_all_224": 224,
+    "current_still_polluted": 2,
+    "current_clean_width": 222,
+    "current_null_width": 0,
+    "current_null_width_inches": 17
+  },
+  "residual_rows": [
+    {
+      "dw_sku": "DWMR-80026",
+      "mfr_sku": "MR-CC-1506-H",
+      "width": "=device-width, initial-scale=1\">",
+      "width_inches": "1",
+      "product_url": "https://www.mayaromanoff.com/collections/cozy-bed-fellow",
+      "slug": "cozy-bed-fellow"
+    },
+    {
+      "dw_sku": "DWMR-80211",
+      "mfr_sku": "MR-CZ-2511",
+      "width": "=device-width, initial-scale=1\">",
+      "width_inches": "1",
+      "product_url": "https://www.mayaromanoff.com/collections/cozy-nestle",
+      "slug": "cozy-nestle"
+    }
+  ],
+  "per_slug": [
+    {
+      "slug": "island-weaves",
+      "rows": 70,
+      "polluted": 0,
+      "distinct_width_inches": "36"
+    },
+    {
+      "slug": "craze",
+      "rows": 47,
+      "polluted": 0,
+      "distinct_width_inches": "55"
+    },
+    {
+      "slug": "natural-elements",
+      "rows": 24,
+      "polluted": 0,
+      "distinct_width_inches": "49"
+    },
+    {
+      "slug": "braided-hemp",
+      "rows": 20,
+      "polluted": 0,
+      "distinct_width_inches": "36"
+    },
+    {
+      "slug": "ajiro-burst-of-happiness",
+      "rows": 16,
+      "polluted": 0,
+      "distinct_width_inches": "36"
+    },
+    {
+      "slug": "entwine-inlet-linen",
+      "rows": 9,
+      "polluted": 0,
+      "distinct_width_inches": "NULL"
+    },
+    {
+      "slug": "serigraph-cityscape",
+      "rows": 8,
+      "polluted": 0,
+      "distinct_width_inches": "36.5"
+    },
+    {
+      "slug": "beadazzled-leaf",
+      "rows": 6,
+      "polluted": 0,
+      "distinct_width_inches": "28.5"
+    },
+    {
+      "slug": "bouquet",
+      "rows": 4,
+      "polluted": 0,
+      "distinct_width_inches": "38"
+    },
+    {
+      "slug": "entwine-serene-silk",
+      "rows": 4,
+      "polluted": 0,
+      "distinct_width_inches": "NULL"
+    },
+    {
+      "slug": "entwine-tranquil-linen",
+      "rows": 4,
+      "polluted": 0,
+      "distinct_width_inches": "54"
+    },
+    {
+      "slug": "wisping-weaves-montauk",
+      "rows": 3,
+      "polluted": 0,
+      "distinct_width_inches": "NULL"
+    },
+    {
+      "slug": "beadazzled",
+      "rows": 2,
+      "polluted": 0,
+      "distinct_width_inches": "28.5"
+    },
+    {
+      "slug": "hurly-burly-ii",
+      "rows": 1,
+      "polluted": 0,
+      "distinct_width_inches": "54"
+    },
+    {
+      "slug": "ajiro-sunburst",
+      "rows": 1,
+      "polluted": 0,
+      "distinct_width_inches": "NULL"
+    },
+    {
+      "slug": "coco-chenille",
+      "rows": 1,
+      "polluted": 0,
+      "distinct_width_inches": "52"
+    },
+    {
+      "slug": "cozy-nestle",
+      "rows": 1,
+      "polluted": 1,
+      "distinct_width_inches": "1"
+    },
+    {
+      "slug": "cozy-bed-fellow",
+      "rows": 1,
+      "polluted": 1,
+      "distinct_width_inches": "1"
+    },
+    {
+      "slug": "beadazzled-geode",
+      "rows": 1,
+      "polluted": 0,
+      "distinct_width_inches": "28.5"
+    },
+    {
+      "slug": "wisping-weaves-cape-may",
+      "rows": 1,
+      "polluted": 0,
+      "distinct_width_inches": "54"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/evidence/dryrun-plan-all.json b/evidence/dryrun-plan-all.json
new file mode 100644
index 0000000..ba22304
--- /dev/null
+++ b/evidence/dryrun-plan-all.json
@@ -0,0 +1,2261 @@
+{
+  "ticket": "TK-11029",
+  "generated_at": "2026-09-02T20:55:47.927815+00:00",
+  "mode": "DRY-RUN (no writes)",
+  "scope": "all-224-simulated",
+  "source_proof_used": "authoritative-source-proof-2026-09-02T20-55-17.462412+00-00.json",
+  "rows_in_scope": 224,
+  "actionable_updates": 3,
+  "tally": {
+    "FIX_SINGLE": 0,
+    "KEEP_MULTI_WIDTH": 3,
+    "UNRECOVERABLE_404": 2,
+    "SOURCE_MISSING": 0,
+    "NO_CHANGE": 219
+  },
+  "plan": [
+    {
+      "dw_sku": "DWMR-80000",
+      "mfr_sku": "MR-AZ-1667-G",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80001",
+      "mfr_sku": "MR-ABH-1001",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80002",
+      "mfr_sku": "MR-ABH-1107",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80003",
+      "mfr_sku": "MR-RA-888",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80004",
+      "mfr_sku": "MR-AZ-1604",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80005",
+      "mfr_sku": "MR-AZ-4852-S",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80006",
+      "mfr_sku": "MR-AZ-1176-S",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80007",
+      "mfr_sku": "MR-AZ-1109-S",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80008",
+      "mfr_sku": "MR-AZ-1510-S",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80009",
+      "mfr_sku": "MR-AZ-4508-S",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80010",
+      "mfr_sku": "MR-AS-3604-X",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80011",
+      "mfr_sku": "MR-AS-3676-P",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80012",
+      "mfr_sku": "MR-AS-3608-G",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80013",
+      "mfr_sku": "MR-AS-3607-M",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80014",
+      "mfr_sku": "MR-AS-3852",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80015",
+      "mfr_sku": "MR-AS-3852-G",
+      "slug": "ajiro-burst-of-happiness",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80016",
+      "mfr_sku": "MR-AS-3055-S",
+      "slug": "ajiro-sunburst",
+      "current_width": "15\" Width Approx. 30 in untrimmed (76.2 cm); 18\" Width Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "15\" Width Approx. 30 in untrimmed (76.2 cm); 18\" Width Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80017",
+      "mfr_sku": "MR-RA-555",
+      "slug": "beadazzled",
+      "current_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "current_width_inches": "28.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "proposed_width_inches": "28.5"
+    },
+    {
+      "dw_sku": "DWMR-80018",
+      "mfr_sku": "MR-BM-1389-GS",
+      "slug": "beadazzled",
+      "current_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "current_width_inches": "28.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "proposed_width_inches": "28.5"
+    },
+    {
+      "dw_sku": "DWMR-80019",
+      "mfr_sku": "MR-RA-838",
+      "slug": "beadazzled-geode",
+      "current_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "current_width_inches": "28.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "proposed_width_inches": "28.5"
+    },
+    {
+      "dw_sku": "DWMR-80020",
+      "mfr_sku": "MR-GC-1101",
+      "slug": "beadazzled-leaf",
+      "current_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "current_width_inches": "28.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "proposed_width_inches": "28.5"
+    },
+    {
+      "dw_sku": "DWMR-80021",
+      "mfr_sku": "MR-GC-1510-S",
+      "slug": "beadazzled-leaf",
+      "current_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "current_width_inches": "28.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "proposed_width_inches": "28.5"
+    },
+    {
+      "dw_sku": "DWMR-80022",
+      "mfr_sku": "MR-GC-1109-S",
+      "slug": "beadazzled-leaf",
+      "current_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "current_width_inches": "28.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "proposed_width_inches": "28.5"
+    },
+    {
+      "dw_sku": "DWMR-80023",
+      "mfr_sku": "MR-GC-1113",
+      "slug": "beadazzled-leaf",
+      "current_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "current_width_inches": "28.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "proposed_width_inches": "28.5"
+    },
+    {
+      "dw_sku": "DWMR-80024",
+      "mfr_sku": "MR-GC-1244-G",
+      "slug": "beadazzled-leaf",
+      "current_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "current_width_inches": "28.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "proposed_width_inches": "28.5"
+    },
+    {
+      "dw_sku": "DWMR-80025",
+      "mfr_sku": "MR-GC-1109-G",
+      "slug": "beadazzled-leaf",
+      "current_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "current_width_inches": "28.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "proposed_width_inches": "28.5"
+    },
+    {
+      "dw_sku": "DWMR-80026",
+      "mfr_sku": "MR-CC-1506-H",
+      "slug": "cozy-bed-fellow",
+      "current_width": "=device-width, initial-scale=1\">",
+      "current_width_inches": "1",
+      "decision": "UNRECOVERABLE_404",
+      "proposed_width": null,
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80027",
+      "mfr_sku": "MR-RV-11113",
+      "slug": "bouquet",
+      "current_width": "Approx. 38 in untrimmed (96.5 cm)",
+      "current_width_inches": "38",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 38 in untrimmed (96.5 cm)",
+      "proposed_width_inches": "38"
+    },
+    {
+      "dw_sku": "DWMR-80028",
+      "mfr_sku": "MR-RV-11511",
+      "slug": "bouquet",
+      "current_width": "Approx. 38 in untrimmed (96.5 cm)",
+      "current_width_inches": "38",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 38 in untrimmed (96.5 cm)",
+      "proposed_width_inches": "38"
+    },
+    {
+      "dw_sku": "DWMR-80029",
+      "mfr_sku": "MR-RV-11381",
+      "slug": "bouquet",
+      "current_width": "Approx. 38 in untrimmed (96.5 cm)",
+      "current_width_inches": "38",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 38 in untrimmed (96.5 cm)",
+      "proposed_width_inches": "38"
+    },
+    {
+      "dw_sku": "DWMR-80030",
+      "mfr_sku": "MR-RV-11464",
+      "slug": "bouquet",
+      "current_width": "Approx. 38 in untrimmed (96.5 cm)",
+      "current_width_inches": "38",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 38 in untrimmed (96.5 cm)",
+      "proposed_width_inches": "38"
+    },
+    {
+      "dw_sku": "DWMR-80031",
+      "mfr_sku": "MR-PD-1604-N",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80032",
+      "mfr_sku": "MR-PD-1381-R",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80033",
+      "mfr_sku": "MR-PD-1099-G",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80034",
+      "mfr_sku": "MR-PD-1109-B",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80035",
+      "mfr_sku": "MR-PD-1510-B",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80036",
+      "mfr_sku": "MR-PD-1608-B",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80037",
+      "mfr_sku": "MR-PD-1670-G",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80038",
+      "mfr_sku": "MR-PE-1604-N",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80039",
+      "mfr_sku": "MR-PE-1099-G",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80040",
+      "mfr_sku": "MR-PE-1109-B",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80041",
+      "mfr_sku": "MR-PL-1604-N",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80042",
+      "mfr_sku": "MR-PL-1099-G",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80043",
+      "mfr_sku": "MR-PL-1109-B",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80044",
+      "mfr_sku": "MR-TY-2070",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80045",
+      "mfr_sku": "MR-TY-2051",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80046",
+      "mfr_sku": "MR-TY-2081",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80047",
+      "mfr_sku": "MR-TY-2083",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80048",
+      "mfr_sku": "MR-TY-2073",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80049",
+      "mfr_sku": "MR-TY-2075",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80050",
+      "mfr_sku": "MR-TY-2054",
+      "slug": "braided-hemp",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80051",
+      "mfr_sku": "MR-CC-1667-A",
+      "slug": "coco-chenille",
+      "current_width": "Approx. 52 in untrimmed (132.1 cm)",
+      "current_width_inches": "52",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 52 in untrimmed (132.1 cm)",
+      "proposed_width_inches": "52"
+    },
+    {
+      "dw_sku": "DWMR-80052",
+      "mfr_sku": "MR-FV-25169",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80053",
+      "mfr_sku": "MR-FV-25110",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80054",
+      "mfr_sku": "MR-FV-38032",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80055",
+      "mfr_sku": "MR-FV-38033",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80056",
+      "mfr_sku": "MR-FV-38099",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80057",
+      "mfr_sku": "MR-FV-38105",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80058",
+      "mfr_sku": "MR-FV-38169",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80059",
+      "mfr_sku": "MR-FV-38176",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80060",
+      "mfr_sku": "MR-FV-38179",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80061",
+      "mfr_sku": "MR-FV-38244",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80062",
+      "mfr_sku": "MR-FV-38389",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80063",
+      "mfr_sku": "MR-FV-38501",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80064",
+      "mfr_sku": "MR-FV-41055",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80065",
+      "mfr_sku": "MR-FV-41113",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80066",
+      "mfr_sku": "MR-FV-41176",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80067",
+      "mfr_sku": "MR-FV-41244",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80068",
+      "mfr_sku": "MR-FV-41389",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80069",
+      "mfr_sku": "MR-FV-41507",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80070",
+      "mfr_sku": "MR-FV-41667",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80071",
+      "mfr_sku": "MR-FV-40032",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80072",
+      "mfr_sku": "MR-FV-40099",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80073",
+      "mfr_sku": "MR-FV-40113",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80074",
+      "mfr_sku": "MR-FV-40169",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80075",
+      "mfr_sku": "MR-FV-40176",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80076",
+      "mfr_sku": "MR-FV-40389",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80077",
+      "mfr_sku": "MR-FV-40500",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80078",
+      "mfr_sku": "MR-FV-40504",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80079",
+      "mfr_sku": "MR-FV-40505",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80080",
+      "mfr_sku": "MR-FV-43176",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80081",
+      "mfr_sku": "MR-FV-43381",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80082",
+      "mfr_sku": "MR-FV-43506",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80083",
+      "mfr_sku": "MR-FV-37032",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80084",
+      "mfr_sku": "MR-FV-37105",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80085",
+      "mfr_sku": "MR-FV-37169",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80086",
+      "mfr_sku": "MR-FV-37176",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80087",
+      "mfr_sku": "MR-FV-37179",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80088",
+      "mfr_sku": "MR-FV-37387",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80089",
+      "mfr_sku": "MR-FV-37389",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80090",
+      "mfr_sku": "MR-FV-37500",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80091",
+      "mfr_sku": "MR-FV-37501",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80092",
+      "mfr_sku": "MR-FV-42032",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80093",
+      "mfr_sku": "MR-FV-42105",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80094",
+      "mfr_sku": "MR-FV-42113",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80095",
+      "mfr_sku": "MR-FV-42176",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80096",
+      "mfr_sku": "MR-FV-42505",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80097",
+      "mfr_sku": "MR-FV-42508",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80098",
+      "mfr_sku": "MR-FV-42667",
+      "slug": "craze",
+      "current_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "current_width_inches": "55",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 55 in untrimmed (139.7 cm)",
+      "proposed_width_inches": "55"
+    },
+    {
+      "dw_sku": "DWMR-80099",
+      "mfr_sku": "MR-FV-38407",
+      "slug": "entwine-inlet-linen",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80100",
+      "mfr_sku": "MR-FV-38508",
+      "slug": "entwine-inlet-linen",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80101",
+      "mfr_sku": "MR-FV-38510",
+      "slug": "entwine-inlet-linen",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80102",
+      "mfr_sku": "MR-FV-38603",
+      "slug": "entwine-inlet-linen",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80103",
+      "mfr_sku": "MR-FV-38604",
+      "slug": "entwine-inlet-linen",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80104",
+      "mfr_sku": "MR-FV-38605",
+      "slug": "entwine-inlet-linen",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80105",
+      "mfr_sku": "MR-FV-38606",
+      "slug": "entwine-inlet-linen",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80106",
+      "mfr_sku": "MR-FV-38608",
+      "slug": "entwine-inlet-linen",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80107",
+      "mfr_sku": "MR-FV-38667",
+      "slug": "entwine-inlet-linen",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80108",
+      "mfr_sku": "MR-FV-40507",
+      "slug": "entwine-serene-silk",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80109",
+      "mfr_sku": "MR-FV-40508",
+      "slug": "entwine-serene-silk",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80110",
+      "mfr_sku": "MR-FV-40667",
+      "slug": "entwine-serene-silk",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80111",
+      "mfr_sku": "MR-FV-40670",
+      "slug": "entwine-serene-silk",
+      "current_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "",
+      "decision": "NO_CHANGE",
+      "proposed_width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80112",
+      "mfr_sku": "MR-FV-37505",
+      "slug": "entwine-tranquil-linen",
+      "current_width": "Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "54",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": "54"
+    },
+    {
+      "dw_sku": "DWMR-80113",
+      "mfr_sku": "MR-FV-37506",
+      "slug": "entwine-tranquil-linen",
+      "current_width": "Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "54",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": "54"
+    },
+    {
+      "dw_sku": "DWMR-80114",
+      "mfr_sku": "MR-FV-37507",
+      "slug": "entwine-tranquil-linen",
+      "current_width": "Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "54",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": "54"
+    },
+    {
+      "dw_sku": "DWMR-80115",
+      "mfr_sku": "MR-FV-37508",
+      "slug": "entwine-tranquil-linen",
+      "current_width": "Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "54",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": "54"
+    },
+    {
+      "dw_sku": "DWMR-80116",
+      "mfr_sku": "MR-FV-20176",
+      "slug": "hurly-burly-ii",
+      "current_width": "Approx. 54 in untrimmed (137.2 cm)",
+      "current_width_inches": "54",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 54 in untrimmed (137.2 cm)",
+      "proposed_width_inches": "54"
+    },
+    {
+      "dw_sku": "DWMR-80117",
+      "mfr_sku": "MR-TY-2076",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80118",
+      "mfr_sku": "MR-TY-2069",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80119",
+      "mfr_sku": "MR-TY-2059",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80120",
+      "mfr_sku": "MR-TY-2045",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80121",
+      "mfr_sku": "MR-TY-2047",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80122",
+      "mfr_sku": "MR-TY-2067",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80123",
+      "mfr_sku": "MR-TY-2068",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80124",
+      "mfr_sku": "MR-TY-2084",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80125",
+      "mfr_sku": "MR-TY-2046",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80126",
+      "mfr_sku": "MR-TY-2048",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80127",
+      "mfr_sku": "MR-TY-2063",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80128",
+      "mfr_sku": "MR-TY-2049",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80129",
+      "mfr_sku": "MR-TY-2061",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80130",
+      "mfr_sku": "MR-TY-2058",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80131",
+      "mfr_sku": "MR-TY-2060",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80132",
+      "mfr_sku": "MR-TY-2071",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80133",
+      "mfr_sku": "MR-TY-2062",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80134",
+      "mfr_sku": "MR-TY-2053",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80135",
+      "mfr_sku": "MR-TY-2042",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80136",
+      "mfr_sku": "MR-TY-2064",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80137",
+      "mfr_sku": "MR-TY-2079",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80138",
+      "mfr_sku": "MR-TY-2080",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80139",
+      "mfr_sku": "MR-TY-2065",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80140",
+      "mfr_sku": "MR-TY-2072",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80141",
+      "mfr_sku": "MR-TY-2057",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80142",
+      "mfr_sku": "MR-TY-2078",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80143",
+      "mfr_sku": "MR-TY-2074",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80144",
+      "mfr_sku": "MR-TY-2077",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80145",
+      "mfr_sku": "MR-TY-2082",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80146",
+      "mfr_sku": "MR-TY-2056",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80147",
+      "mfr_sku": "MR-TY-2066",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80148",
+      "mfr_sku": "MR-FV-39099",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80149",
+      "mfr_sku": "MR-FV-39169",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80150",
+      "mfr_sku": "MR-FV-39179",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80151",
+      "mfr_sku": "MR-FV-39385",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80152",
+      "mfr_sku": "MR-FV-39387",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80153",
+      "mfr_sku": "MR-FV-39501",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80154",
+      "mfr_sku": "MR-FV-39505",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80155",
+      "mfr_sku": "MR-FV-39389",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80156",
+      "mfr_sku": "MR-FV-39603",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80157",
+      "mfr_sku": "MR-FV-35109",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80158",
+      "mfr_sku": "MR-FV-35176",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80159",
+      "mfr_sku": "MR-FV-35506",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80160",
+      "mfr_sku": "MR-FV-35510",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80161",
+      "mfr_sku": "MR-FV-31032",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80162",
+      "mfr_sku": "MR-FV-31099",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80163",
+      "mfr_sku": "MR-FV-31105",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80164",
+      "mfr_sku": "MR-FV-31169",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80165",
+      "mfr_sku": "MR-FV-31176",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80166",
+      "mfr_sku": "MR-FV-31389",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80167",
+      "mfr_sku": "MR-FV-31506",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80168",
+      "mfr_sku": "MR-FV-31508",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80169",
+      "mfr_sku": "MR-FV-31509",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80170",
+      "mfr_sku": "MR-FV-33113",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80171",
+      "mfr_sku": "MR-FV-33169",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80172",
+      "mfr_sku": "MR-FV-33389",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80173",
+      "mfr_sku": "MR-FV-33510",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80174",
+      "mfr_sku": "MR-FV-34176",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80175",
+      "mfr_sku": "MR-FV-34389",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80176",
+      "mfr_sku": "MR-FV-34506",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80177",
+      "mfr_sku": "MR-FV-34508",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80178",
+      "mfr_sku": "MR-FV-32176",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80179",
+      "mfr_sku": "MR-FV-32506",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80180",
+      "mfr_sku": "MR-FV-32510",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80181",
+      "mfr_sku": "MR-FV-32667",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80182",
+      "mfr_sku": "MR-FV-36033",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80183",
+      "mfr_sku": "MR-FV-36109",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80184",
+      "mfr_sku": "MR-FV-36167",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80185",
+      "mfr_sku": "MR-FV-36176",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80186",
+      "mfr_sku": "MR-FV-36510",
+      "slug": "island-weaves",
+      "current_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "current_width_inches": "36",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36 in untrimmed (91.4 cm)",
+      "proposed_width_inches": "36"
+    },
+    {
+      "dw_sku": "DWMR-80187",
+      "mfr_sku": "MR-NE-1026",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80188",
+      "mfr_sku": "MR-NE-1176",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80189",
+      "mfr_sku": "MR-NE-1055-S",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80190",
+      "mfr_sku": "MR-NE-1109",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80191",
+      "mfr_sku": "MR-FV-26033",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80192",
+      "mfr_sku": "MR-FV-26099",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80193",
+      "mfr_sku": "MR-FV-26176",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80194",
+      "mfr_sku": "MR-FV-26389",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80195",
+      "mfr_sku": "MR-FV-26510",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80196",
+      "mfr_sku": "MR-FV-29109",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80197",
+      "mfr_sku": "MR-FV-29113",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80198",
+      "mfr_sku": "MR-FV-29605",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80199",
+      "mfr_sku": "MR-FV-27109",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80200",
+      "mfr_sku": "MR-FV-27113",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80201",
+      "mfr_sku": "MR-FV-27176",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80202",
+      "mfr_sku": "MR-FV-27605",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80203",
+      "mfr_sku": "MR-FV-28055",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80204",
+      "mfr_sku": "MR-FV-28176",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80205",
+      "mfr_sku": "MR-FV-28389",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80206",
+      "mfr_sku": "MR-FV-28508",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80207",
+      "mfr_sku": "MR-FV-28510",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80208",
+      "mfr_sku": "MR-FV-30176",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80209",
+      "mfr_sku": "MR-FV-30510",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80210",
+      "mfr_sku": "MR-FV-30605",
+      "slug": "natural-elements",
+      "current_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "current_width_inches": "49",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 49 in untrimmed (124.5 cm)",
+      "proposed_width_inches": "49"
+    },
+    {
+      "dw_sku": "DWMR-80211",
+      "mfr_sku": "MR-CZ-2511",
+      "slug": "cozy-nestle",
+      "current_width": "=device-width, initial-scale=1\">",
+      "current_width_inches": "1",
+      "decision": "UNRECOVERABLE_404",
+      "proposed_width": null,
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80212",
+      "mfr_sku": "MR-SPC-1033-E",
+      "slug": "serigraph-cityscape",
+      "current_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "current_width_inches": "36.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "proposed_width_inches": "36.5"
+    },
+    {
+      "dw_sku": "DWMR-80213",
+      "mfr_sku": "MR-SPC-1177-E",
+      "slug": "serigraph-cityscape",
+      "current_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "current_width_inches": "36.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "proposed_width_inches": "36.5"
+    },
+    {
+      "dw_sku": "DWMR-80214",
+      "mfr_sku": "MR-SPC-1506-E",
+      "slug": "serigraph-cityscape",
+      "current_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "current_width_inches": "36.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "proposed_width_inches": "36.5"
+    },
+    {
+      "dw_sku": "DWMR-80215",
+      "mfr_sku": "MR-SPD-1033-E",
+      "slug": "serigraph-cityscape",
+      "current_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "current_width_inches": "36.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "proposed_width_inches": "36.5"
+    },
+    {
+      "dw_sku": "DWMR-80216",
+      "mfr_sku": "MR-SPD-1177-E",
+      "slug": "serigraph-cityscape",
+      "current_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "current_width_inches": "36.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "proposed_width_inches": "36.5"
+    },
+    {
+      "dw_sku": "DWMR-80217",
+      "mfr_sku": "MR-SPD-1506-E",
+      "slug": "serigraph-cityscape",
+      "current_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "current_width_inches": "36.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "proposed_width_inches": "36.5"
+    },
+    {
+      "dw_sku": "DWMR-80218",
+      "mfr_sku": "MR-SPM-1177-E",
+      "slug": "serigraph-cityscape",
+      "current_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "current_width_inches": "36.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "proposed_width_inches": "36.5"
+    },
+    {
+      "dw_sku": "DWMR-80219",
+      "mfr_sku": "MR-SPM-1506-E",
+      "slug": "serigraph-cityscape",
+      "current_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "current_width_inches": "36.5",
+      "decision": "NO_CHANGE",
+      "proposed_width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "proposed_width_inches": "36.5"
+    },
+    {
+      "dw_sku": "DWMR-80220",
+      "mfr_sku": "MR-FV-39665",
+      "slug": "wisping-weaves-cape-may",
+      "current_width": "54\u201d untrimmed (137.2 m), 13.5 sq ft/yd (1.25 sq m/yd)",
+      "current_width_inches": "54",
+      "decision": "NO_CHANGE",
+      "proposed_width": "54\u201d untrimmed (137.2 m), 13.5 sq ft/yd (1.25 sq m/yd)",
+      "proposed_width_inches": "54"
+    },
+    {
+      "dw_sku": "DWMR-80221",
+      "mfr_sku": "MR-FV-31510",
+      "slug": "wisping-weaves-montauk",
+      "current_width": "27\" untrimmed (68.6 cm), 6.75 sq ft/yd (0.63 sq m/yd); 54\" untrimmed (137.2 cm), 13.5 sq ft/yd (1.25 sq m/yd)",
+      "current_width_inches": "",
+      "decision": "KEEP_MULTI_WIDTH",
+      "proposed_width": "27\" untrimmed (68.6 cm), 6.75 sq ft/yd (0.63 sq m/yd); 54\u201d untrimmed (137.2 m), 13.5 sq ft/yd (1.25 sq m/yd)",
+      "proposed_width_inches": null,
+      "sql": "UPDATE maya_catalog SET width='27\" untrimmed (68.6 cm), 6.75 sq ft/yd (0.63 sq m/yd); 54\u201d untrimmed (137.2 m), 13.5 sq ft/yd (1.25 sq m/yd)', width_inches = NULL, updated_at=now() WHERE dw_sku='DWMR-80221';"
+    },
+    {
+      "dw_sku": "DWMR-80222",
+      "mfr_sku": "MR-FV-31511",
+      "slug": "wisping-weaves-montauk",
+      "current_width": "27\" untrimmed (68.6 cm), 6.75 sq ft/yd (0.63 sq m/yd); 54\" untrimmed (137.2 cm), 13.5 sq ft/yd (1.25 sq m/yd)",
+      "current_width_inches": "",
+      "decision": "KEEP_MULTI_WIDTH",
+      "proposed_width": "27\" untrimmed (68.6 cm), 6.75 sq ft/yd (0.63 sq m/yd); 54\u201d untrimmed (137.2 m), 13.5 sq ft/yd (1.25 sq m/yd)",
+      "proposed_width_inches": null,
+      "sql": "UPDATE maya_catalog SET width='27\" untrimmed (68.6 cm), 6.75 sq ft/yd (0.63 sq m/yd); 54\u201d untrimmed (137.2 m), 13.5 sq ft/yd (1.25 sq m/yd)', width_inches = NULL, updated_at=now() WHERE dw_sku='DWMR-80222';"
+    },
+    {
+      "dw_sku": "DWMR-80223",
+      "mfr_sku": "MR-FV-31603",
+      "slug": "wisping-weaves-montauk",
+      "current_width": "27\" untrimmed (68.6 cm), 6.75 sq ft/yd (0.63 sq m/yd); 54\" untrimmed (137.2 cm), 13.5 sq ft/yd (1.25 sq m/yd)",
+      "current_width_inches": "",
+      "decision": "KEEP_MULTI_WIDTH",
+      "proposed_width": "27\" untrimmed (68.6 cm), 6.75 sq ft/yd (0.63 sq m/yd); 54\u201d untrimmed (137.2 m), 13.5 sq ft/yd (1.25 sq m/yd)",
+      "proposed_width_inches": null,
+      "sql": "UPDATE maya_catalog SET width='27\" untrimmed (68.6 cm), 6.75 sq ft/yd (0.63 sq m/yd); 54\u201d untrimmed (137.2 m), 13.5 sq ft/yd (1.25 sq m/yd)', width_inches = NULL, updated_at=now() WHERE dw_sku='DWMR-80223';"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/evidence/dryrun-plan-polluted.json b/evidence/dryrun-plan-polluted.json
new file mode 100644
index 0000000..53db44c
--- /dev/null
+++ b/evidence/dryrun-plan-polluted.json
@@ -0,0 +1,38 @@
+{
+  "ticket": "TK-11029",
+  "generated_at": "2026-09-02T20:56:15.187699+00:00",
+  "mode": "DRY-RUN (no writes)",
+  "scope": "currently-polluted-only",
+  "source_proof_used": "authoritative-source-proof-2026-09-02T20-55-17.462412+00-00.json",
+  "rows_in_scope": 2,
+  "actionable_updates": 0,
+  "tally": {
+    "FIX_SINGLE": 0,
+    "KEEP_MULTI_WIDTH": 0,
+    "UNRECOVERABLE_404": 2,
+    "SOURCE_MISSING": 0,
+    "NO_CHANGE": 0
+  },
+  "plan": [
+    {
+      "dw_sku": "DWMR-80026",
+      "mfr_sku": "MR-CC-1506-H",
+      "slug": "cozy-bed-fellow",
+      "current_width": "=device-width, initial-scale=1\">",
+      "current_width_inches": "1",
+      "decision": "UNRECOVERABLE_404",
+      "proposed_width": null,
+      "proposed_width_inches": null
+    },
+    {
+      "dw_sku": "DWMR-80211",
+      "mfr_sku": "MR-CZ-2511",
+      "slug": "cozy-nestle",
+      "current_width": "=device-width, initial-scale=1\">",
+      "current_width_inches": "1",
+      "decision": "UNRECOVERABLE_404",
+      "proposed_width": null,
+      "proposed_width_inches": null
+    }
+  ]
+}
\ No newline at end of file
diff --git a/evidence/source-proof.json b/evidence/source-proof.json
new file mode 100644
index 0000000..25927e3
--- /dev/null
+++ b/evidence/source-proof.json
@@ -0,0 +1,354 @@
+{
+  "ticket": "TK-11029",
+  "generated_at": "2026-09-02T20:55:17.462412+00:00",
+  "mode": "READ-ONLY source proof",
+  "source": "mayaromanoff.com collection spec-table Width cell",
+  "slugs_fetched": 20,
+  "http_200": 18,
+  "http_404": 2,
+  "single_slugs": 14,
+  "multi_width_slugs": 4,
+  "authoritative_source": [
+    {
+      "slug": "island-weaves",
+      "http_status": 200,
+      "width": "Approx. 36 in untrimmed (91.4 cm)",
+      "decision": "SINGLE",
+      "width_inches": "36"
+    },
+    {
+      "slug": "craze",
+      "http_status": 200,
+      "width": "Approx. 55 in untrimmed (139.7 cm)",
+      "decision": "SINGLE",
+      "width_inches": "55"
+    },
+    {
+      "slug": "natural-elements",
+      "http_status": 200,
+      "width": "Approx. 49 in untrimmed (124.5 cm)",
+      "decision": "SINGLE",
+      "width_inches": "49"
+    },
+    {
+      "slug": "braided-hemp",
+      "http_status": 200,
+      "width": "Approx. 36 in untrimmed (91.4 cm)",
+      "decision": "SINGLE",
+      "width_inches": "36"
+    },
+    {
+      "slug": "ajiro-burst-of-happiness",
+      "http_status": 200,
+      "width": "Approx. 36 in untrimmed (91.4 cm)",
+      "decision": "SINGLE",
+      "width_inches": "36"
+    },
+    {
+      "slug": "entwine-inlet-linen",
+      "http_status": 200,
+      "width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "decision": "MULTI_WIDTH",
+      "width_inches": null
+    },
+    {
+      "slug": "serigraph-cityscape",
+      "http_status": 200,
+      "width": "Approx. 36.5 in untrimmed (92.7 cm)",
+      "decision": "SINGLE",
+      "width_inches": "36.5"
+    },
+    {
+      "slug": "beadazzled-leaf",
+      "http_status": 200,
+      "width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "decision": "SINGLE",
+      "width_inches": "28.5"
+    },
+    {
+      "slug": "entwine-tranquil-linen",
+      "http_status": 200,
+      "width": "Approx. 54 in untrimmed (137.2 cm)",
+      "decision": "SINGLE",
+      "width_inches": "54"
+    },
+    {
+      "slug": "bouquet",
+      "http_status": 200,
+      "width": "Approx. 38 in untrimmed (96.5 cm)",
+      "decision": "SINGLE",
+      "width_inches": "38"
+    },
+    {
+      "slug": "entwine-serene-silk",
+      "http_status": 200,
+      "width": "27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+      "decision": "MULTI_WIDTH",
+      "width_inches": null
+    },
+    {
+      "slug": "wisping-weaves-montauk",
+      "http_status": 200,
+      "width": "27\" untrimmed (68.6 cm), 6.75 sq ft/yd (0.63 sq m/yd); 54\u201d untrimmed (137.2 m), 13.5 sq ft/yd (1.25 sq m/yd)",
+      "decision": "MULTI_WIDTH",
+      "width_inches": null
+    },
+    {
+      "slug": "beadazzled",
+      "http_status": 200,
+      "width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "decision": "SINGLE",
+      "width_inches": "28.5"
+    },
+    {
+      "slug": "wisping-weaves-cape-may",
+      "http_status": 200,
+      "width": "54\u201d untrimmed (137.2 m), 13.5 sq ft/yd (1.25 sq m/yd)",
+      "decision": "SINGLE",
+      "width_inches": "54"
+    },
+    {
+      "slug": "cozy-nestle",
+      "http_status": 404,
+      "width": null,
+      "error": "HTTP 404"
+    },
+    {
+      "slug": "cozy-bed-fellow",
+      "http_status": 404,
+      "width": null,
+      "error": "HTTP 404"
+    },
+    {
+      "slug": "coco-chenille",
+      "http_status": 200,
+      "width": "Approx. 52 in untrimmed (132.1 cm)",
+      "decision": "SINGLE",
+      "width_inches": "52"
+    },
+    {
+      "slug": "beadazzled-geode",
+      "http_status": 200,
+      "width": "Approx. 28.5 in trimmed (72.4 cm)",
+      "decision": "SINGLE",
+      "width_inches": "28.5"
+    },
+    {
+      "slug": "hurly-burly-ii",
+      "http_status": 200,
+      "width": "Approx. 54 in untrimmed (137.2 cm)",
+      "decision": "SINGLE",
+      "width_inches": "54"
+    },
+    {
+      "slug": "ajiro-sunburst",
+      "http_status": 200,
+      "width": "15\" Width Approx. 30 in untrimmed (76.2 cm); 18\" Width Approx. 36 in untrimmed (91.4 cm)",
+      "decision": "MULTI_WIDTH",
+      "width_inches": null
+    }
+  ],
+  "db_reconciliation": [
+    {
+      "slug": "island-weaves",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "36",
+      "db_width_inches": "36",
+      "db_rows": 70,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "craze",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "55",
+      "db_width_inches": "55",
+      "db_rows": 47,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "natural-elements",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "49",
+      "db_width_inches": "49",
+      "db_rows": 24,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "braided-hemp",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "36",
+      "db_width_inches": "36",
+      "db_rows": 20,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "ajiro-burst-of-happiness",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "36",
+      "db_width_inches": "36",
+      "db_rows": 16,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "entwine-inlet-linen",
+      "decision": "MULTI_WIDTH",
+      "http_status": 200,
+      "src_width_inches": null,
+      "db_width_inches": "NULL",
+      "db_rows": 9,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "serigraph-cityscape",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "36.5",
+      "db_width_inches": "36.5",
+      "db_rows": 8,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "beadazzled-leaf",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "28.5",
+      "db_width_inches": "28.5",
+      "db_rows": 6,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "entwine-tranquil-linen",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "54",
+      "db_width_inches": "54",
+      "db_rows": 4,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "bouquet",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "38",
+      "db_width_inches": "38",
+      "db_rows": 4,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "entwine-serene-silk",
+      "decision": "MULTI_WIDTH",
+      "http_status": 200,
+      "src_width_inches": null,
+      "db_width_inches": "NULL",
+      "db_rows": 4,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "wisping-weaves-montauk",
+      "decision": "MULTI_WIDTH",
+      "http_status": 200,
+      "src_width_inches": null,
+      "db_width_inches": "NULL",
+      "db_rows": 3,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "beadazzled",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "28.5",
+      "db_width_inches": "28.5",
+      "db_rows": 2,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "wisping-weaves-cape-may",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "54",
+      "db_width_inches": "54",
+      "db_rows": 1,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "cozy-nestle",
+      "decision": null,
+      "http_status": 404,
+      "src_width_inches": null,
+      "db_width_inches": "1",
+      "db_rows": 1,
+      "db_polluted": 1,
+      "db_matches_source": true
+    },
+    {
+      "slug": "cozy-bed-fellow",
+      "decision": null,
+      "http_status": 404,
+      "src_width_inches": null,
+      "db_width_inches": "1",
+      "db_rows": 1,
+      "db_polluted": 1,
+      "db_matches_source": true
+    },
+    {
+      "slug": "coco-chenille",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "52",
+      "db_width_inches": "52",
+      "db_rows": 1,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "beadazzled-geode",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "28.5",
+      "db_width_inches": "28.5",
+      "db_rows": 1,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "hurly-burly-ii",
+      "decision": "SINGLE",
+      "http_status": 200,
+      "src_width_inches": "54",
+      "db_width_inches": "54",
+      "db_rows": 1,
+      "db_polluted": 0,
+      "db_matches_source": true
+    },
+    {
+      "slug": "ajiro-sunburst",
+      "decision": "MULTI_WIDTH",
+      "http_status": 200,
+      "src_width_inches": null,
+      "db_width_inches": "NULL",
+      "db_rows": 1,
+      "db_polluted": 0,
+      "db_matches_source": true
+    }
+  ],
+  "all_single_slugs_match_db": true
+}
\ No newline at end of file
diff --git a/pipeline.py b/pipeline.py
new file mode 100644
index 0000000..4d7209a
--- /dev/null
+++ b/pipeline.py
@@ -0,0 +1,137 @@
+#!/usr/bin/env python3
+"""
+pipeline.py — TK-11029 deterministic DRY-RUN correction pipeline for
+maya_catalog.width meta-tag pollution.
+
+DRY-RUN ONLY. Produces, deterministically and reproducibly, the exact per-row
+correction plan by joining current DB rows to the authoritative mayaromanoff.com
+source (via a source-proof JSON, or a fresh read-only re-scrape), classifying each
+with widthlib, and emitting:
+  - dryrun-plan-<ts>.json     the proposed UPDATE plan (NOT applied)
+  - restore-map-dryrun-<ts>.json  rollback artifact: current state of every row the
+                                  plan would touch (finalizer applies UPDATEs, then
+                                  restore.py <this-map> is the one-command undo)
+
+This script performs NO database writes and NO Shopify/deploy/send actions.
+Applying the plan is the finalizer's (/root) gated step — see README.md.
+
+Modes:
+  (default)         scope = currently-polluted rows only (width LIKE '%device-width%')
+  --simulate-all    scope = ALL 224 DWMR-8 rows, re-derived from source (full-line
+                    deterministic plan; proves the correction logic end-to-end)
+  --source PATH     use an existing authoritative-source-proof-*.json (skip network)
+"""
+import subprocess, json, datetime, os, sys, glob
+from widthlib import classify_width
+
+HERE = os.path.dirname(os.path.abspath(__file__))
+PSQL = ["psql", "-h", "/tmp", "-d", "dw_unified", "-At", "-F", "\t", "-c"]
+
+
+def db(sql):
+    r = subprocess.run(PSQL + [sql], capture_output=True, text=True)
+    if r.returncode != 0:
+        print("SQL ERR:", r.stderr, file=sys.stderr); sys.exit(1)
+    return [ln.split("\t") for ln in r.stdout.strip().split("\n") if ln]
+
+
+def load_source(path=None):
+    """slug -> {decision, width, width_inches, http_status} from a source-proof JSON."""
+    if not path:
+        cands = sorted(glob.glob(os.path.join(HERE, "authoritative-source-proof-*.json")))
+        if not cands:
+            print("No source-proof JSON found; run authoritative_source.py first "
+                  "or pass --source.", file=sys.stderr)
+            sys.exit(2)
+        path = cands[-1]
+    data = json.load(open(path))
+    smap = {s["slug"]: s for s in data["authoritative_source"]}
+    return smap, path
+
+
+def main():
+    args = sys.argv[1:]
+    simulate_all = "--simulate-all" in args
+    src_path = None
+    if "--source" in args:
+        src_path = args[args.index("--source") + 1]
+    if "--apply" in args:
+        print("REFUSED: pipeline.py is DRY-RUN ONLY. Applying maya_catalog writes is a\n"
+              "canonical-DB change owned by the finalizer (/root) under approval. "
+              "See README.md.", file=sys.stderr)
+        return 3
+
+    ts = datetime.datetime.now(datetime.timezone.utc).isoformat()
+    smap, used_src = load_source(src_path)
+
+    where = "" if simulate_all else "AND width LIKE '%device-width%'"
+    rows = db(f"""SELECT dw_sku, mfr_sku, width, coalesce(width_inches::text,''),
+                         split_part(product_url,'/collections/',2)
+                  FROM maya_catalog WHERE dw_sku LIKE 'DWMR-8%' {where} ORDER BY dw_sku""")
+
+    plan, restore = [], []
+    tally = {"FIX_SINGLE": 0, "KEEP_MULTI_WIDTH": 0, "UNRECOVERABLE_404": 0,
+             "SOURCE_MISSING": 0, "NO_CHANGE": 0}
+    for dw_sku, mfr_sku, cur_w, cur_wi, slug in rows:
+        s = smap.get(slug)
+        restore.append({"dw_sku": dw_sku, "old_width": cur_w, "old_width_inches": cur_wi})
+        if s is None:
+            decision, new_w, new_wi = "SOURCE_MISSING", None, None
+        elif s.get("http_status") == 404 or s.get("width") is None:
+            decision, new_w, new_wi = "UNRECOVERABLE_404", None, None
+        else:
+            dec, wi = classify_width(s["width"])
+            if dec == "SINGLE":
+                decision, new_w, new_wi = "FIX_SINGLE", s["width"], wi
+            elif dec == "MULTI_WIDTH":
+                decision, new_w, new_wi = "KEEP_MULTI_WIDTH", s["width"], None
+            else:
+                decision, new_w, new_wi = "SOURCE_MISSING", None, None
+        # NO_CHANGE if the DB already holds exactly what we'd write
+        if new_w is not None and cur_w == new_w and (cur_wi or "") == (new_wi or ""):
+            decision = "NO_CHANGE"
+        tally[decision] = tally.get(decision, 0) + 1
+        entry = {"dw_sku": dw_sku, "mfr_sku": mfr_sku, "slug": slug,
+                 "current_width": cur_w, "current_width_inches": cur_wi,
+                 "decision": decision, "proposed_width": new_w,
+                 "proposed_width_inches": new_wi}
+        # only rows that would actually change are "actionable"
+        if decision in ("FIX_SINGLE", "KEEP_MULTI_WIDTH"):
+            entry["sql"] = _update_sql(dw_sku, new_w, new_wi)
+        plan.append(entry)
+
+    actionable = [p for p in plan if p["decision"] in ("FIX_SINGLE", "KEEP_MULTI_WIDTH")]
+    out = {
+        "ticket": "TK-11029", "generated_at": ts, "mode": "DRY-RUN (no writes)",
+        "scope": "all-224-simulated" if simulate_all else "currently-polluted-only",
+        "source_proof_used": os.path.basename(used_src),
+        "rows_in_scope": len(rows), "actionable_updates": len(actionable),
+        "tally": tally, "plan": plan,
+    }
+    plan_path = os.path.join(HERE, f"dryrun-plan-{ts.replace(':', '-')}.json")
+    json.dump(out, open(plan_path, "w"), indent=2)
+
+    rm = {"ticket": "TK-11029", "generated_at": ts, "table": "maya_catalog",
+          "columns": "width,width_inches", "restore_map": restore,
+          "note": "finalizer applies dryrun-plan then `python3 restore.py <this>` = undo"}
+    rm_path = os.path.join(HERE, f"restore-map-dryrun-{ts.replace(':', '-')}.json")
+    json.dump(rm, open(rm_path, "w"), indent=2)
+
+    print(f"scope={out['scope']} rows={len(rows)} actionable={len(actionable)}  tally={tally}")
+    print(f"DRY-RUN PLAN  -> {plan_path}")
+    print(f"RESTORE-MAP   -> {rm_path}")
+    if not simulate_all and tally.get("UNRECOVERABLE_404"):
+        print(f"NOTE: {tally['UNRECOVERABLE_404']} residual row(s) unrecoverable from web "
+              f"(collection 404) -> needs Maya rep/PDF; DO NOT guess.")
+    return 0
+
+
+def _update_sql(dw_sku, w, wi):
+    esc = lambda s: (s or "").replace("'", "''")
+    wi_clause = f"width_inches = {wi}" if wi else "width_inches = NULL"
+    return (f"UPDATE maya_catalog SET width='{esc(w)}', {wi_clause}, updated_at=now() "
+            f"WHERE dw_sku='{esc(dw_sku)}';")
+
+
+if __name__ == "__main__":
+    sys.exit(main())
diff --git a/test_widthlib.py b/test_widthlib.py
new file mode 100644
index 0000000..cb5e042
--- /dev/null
+++ b/test_widthlib.py
@@ -0,0 +1,75 @@
+#!/usr/bin/env python3
+"""
+Unit tests for widthlib — TK-11029.
+Fixtures are the EXACT distinct width strings observed in maya_catalog (DWMR-8%),
+plus negative / edge cases. Run: python3 test_widthlib.py   (exit 0 = all pass).
+"""
+from widthlib import classify_width, is_meta_pollution, width_measurements
+
+# (raw_width, expected_decision, expected_width_inches)  — mirrors live DB distinct values
+CASES = [
+    # --- SINGLE roll width (the recoverable majority) ---
+    ("Approx. 36 in untrimmed (91.4 cm)",              "SINGLE", "36"),    # island/braided/ajiro-boh  (106 rows)
+    ("Approx. 55 in untrimmed (139.7 cm)",             "SINGLE", "55"),    # craze                     (47 rows)
+    ("Approx. 49 in untrimmed (124.5 cm)",             "SINGLE", "49"),    # natural-elements          (24 rows)
+    ("Approx. 28.5 in trimmed (72.4 cm)",              "SINGLE", "28.5"),  # beadazzled*               (9 rows)
+    ("Approx. 36.5 in untrimmed (92.7 cm)",            "SINGLE", "36.5"),  # serigraph-cityscape       (8 rows)
+    ("Approx. 54 in untrimmed (137.2 cm)",             "SINGLE", "54"),    # entwine-tranquil/hurly    (5 rows)
+    ("Approx. 38 in untrimmed (96.5 cm)",              "SINGLE", "38"),    # bouquet                   (4 rows)
+    ("Approx. 52 in untrimmed (132.1 cm)",             "SINGLE", "52"),    # coco-chenille             (1 row)
+    ("54” untrimmed (137.2 m), 13.5 sq ft/yd (1.25 sq m/yd)", "SINGLE", "54"),  # cape-may curly-quote (1 row)
+
+    # --- MULTI_WIDTH (genuine 2-width patterns; NO per-SKU width -> never guess) ---
+    ("27\" Width Approx. 27 in untrimmed (68.6 cm); 54\" Width Approx. 54 in untrimmed (137.2 cm)",
+     "MULTI_WIDTH", None),                                                            # entwine-inlet/serene (13 rows)
+    ("27\" untrimmed (68.6 cm), 6.75 sq ft/yd (0.63 sq m/yd); 54\" untrimmed (137.2 cm), 13.5 sq ft/yd (1.25 sq m/yd)",
+     "MULTI_WIDTH", None),                                                            # wisping-weaves-montauk (3 rows)
+    ("15\" Width Approx. 30 in untrimmed (76.2 cm); 18\" Width Approx. 36 in untrimmed (91.4 cm)",
+     "MULTI_WIDTH", None),                                                            # ajiro-sunburst (1 row)
+
+    # --- META_POLLUTION (the bug this ticket exists for) ---
+    ("=device-width, initial-scale=1\">",              "META_POLLUTION", None),        # cozy-* 404s (2 rows)
+
+    # --- EMPTY / edge ---
+    (None, "EMPTY", None),
+    ("", "EMPTY", None),
+    ("   ", "EMPTY", None),
+
+    # --- UNPARSEABLE (defensive: real text but no roll-width token) ---
+    ("Contact rep for width", "UNPARSEABLE", None),
+]
+
+
+def run():
+    failures = []
+    for raw, exp_dec, exp_wi in CASES:
+        dec, wi = classify_width(raw)
+        if (dec, wi) != (exp_dec, exp_wi):
+            failures.append(f"  FAIL classify_width({raw!r}) = ({dec},{wi}) expected ({exp_dec},{exp_wi})")
+
+    # is_meta_pollution focused checks
+    assert is_meta_pollution("=device-width, initial-scale=1\">") is True
+    assert is_meta_pollution("Approx. 36 in untrimmed (91.4 cm)") is False
+    assert is_meta_pollution("") is False
+    assert is_meta_pollution(None) is False
+
+    # measurement counting is the multi-width discriminator
+    assert len(width_measurements("Approx. 36 in untrimmed (91.4 cm)")) == 1
+    assert len(width_measurements("27\" untrimmed (68.6 cm); 54\" untrimmed (137.2 cm)")) == 2
+    assert len(width_measurements("=device-width, initial-scale=1\">")) == 0
+
+    # numeric normalization
+    assert classify_width("Approx. 36.0 in untrimmed (x)") == ("SINGLE", "36")
+    assert classify_width("Approx. 28.50 in trimmed (x)") == ("SINGLE", "28.5")
+
+    if failures:
+        print(f"{len(failures)} FAILURE(S):")
+        print("\n".join(failures))
+        return 1
+    print(f"OK: {len(CASES)} classify cases + focused asserts all pass.")
+    return 0
+
+
+if __name__ == "__main__":
+    import sys
+    sys.exit(run())
diff --git a/widthlib.py b/widthlib.py
new file mode 100644
index 0000000..c1a5653
--- /dev/null
+++ b/widthlib.py
@@ -0,0 +1,68 @@
+#!/usr/bin/env python3
+"""
+widthlib — pure, deterministic helpers for classifying/parsing Maya Romanoff
+width strings scraped from mayaromanoff.com collection spec tables.
+
+TK-11029. No I/O, no network, no DB — safe to unit-test in isolation.
+
+Vocabulary of decisions a raw width string maps to:
+  META_POLLUTION      the scraped meta-tag leak ('=device-width, initial-scale=1">')
+                      -> unrecoverable from the string; needs re-scrape or rep.
+  SINGLE              exactly one roll width -> width_inches is derivable.
+  MULTI_WIDTH         the vendor genuinely offers ONE pattern in >1 roll width and
+                      no per-SKU width exists -> keep the full string, width_inches=NULL
+                      (ambiguous BY DESIGN, never guessed).
+  UNPARSEABLE         a non-empty, non-pollution string we cannot classify.
+  EMPTY               NULL / blank.
+"""
+import re
+
+META_POLLUTION_MARKER = "device-width"
+
+# One roll-width measurement, e.g. "36 in untrimmed", '27" untrimmed', '54” trimmed'.
+# Accepts straight/curly/prime inch marks and the word 'in'. Trailing (un)trimmed anchors it.
+_MEASURE_RX = re.compile(r'(\d+(?:\.\d+)?)\s*(?:in|["”″])\s*(?:un)?trimmed', re.I)
+
+
+def is_meta_pollution(width: str) -> bool:
+    """True iff the width holds the scraped meta-tag garbage."""
+    return bool(width) and META_POLLUTION_MARKER in width
+
+
+def width_measurements(width: str):
+    """Return the ordered list of inch measurements found in the string."""
+    if not width:
+        return []
+    return [m.group(1) for m in _MEASURE_RX.finditer(width)]
+
+
+def classify_width(width):
+    """
+    Classify a raw width string.
+    Returns (decision, width_inches) where width_inches is a str|None.
+      - SINGLE      -> the single inch value as a normalized numeric string
+      - MULTI_WIDTH -> None (ambiguous by design)
+      - META_POLLUTION / EMPTY / UNPARSEABLE -> None
+    """
+    if width is None or str(width).strip() == "":
+        return ("EMPTY", None)
+    width = str(width)
+    if is_meta_pollution(width):
+        return ("META_POLLUTION", None)
+    meas = width_measurements(width)
+    if len(meas) == 1:
+        return ("SINGLE", _norm_num(meas[0]))
+    if len(meas) > 1:
+        return ("MULTI_WIDTH", None)
+    return ("UNPARSEABLE", None)
+
+
+def _norm_num(s: str) -> str:
+    """'36.0' -> '36', '28.50' -> '28.5', '28.5' -> '28.5'."""
+    f = float(s)
+    return str(int(f)) if f == int(f) else str(f).rstrip("0").rstrip(".")
+
+
+if __name__ == "__main__":
+    import sys, json
+    print(json.dumps(list(classify_width(sys.argv[1] if len(sys.argv) > 1 else ""))))

← 9397433 TK-11029 phase2: recover 17 multi-width Maya widths (verifie  ·  back to Maya Width Fix  ·  TK-11029: E2E proof (PASS) + gitignore pycache 4044134 →