← back to Dw Catalog 404 Audit
Add audit-result.json (scope + sample + known-SKU verdicts)
dd16d3dc7c8da7e5b8d26d2412611ae20dcd9090 · 2026-06-26 10:31:53 -0700 · steve@designerwallcoverings.com
Files touched
Diff
commit dd16d3dc7c8da7e5b8d26d2412611ae20dcd9090
Author: steve@designerwallcoverings.com <steve@designerwallcoverings.com>
Date: Fri Jun 26 10:31:53 2026 -0700
Add audit-result.json (scope + sample + known-SKU verdicts)
---
audit-result.json | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/audit-result.json b/audit-result.json
new file mode 100644
index 0000000..8b11876
--- /dev/null
+++ b/audit-result.json
@@ -0,0 +1,60 @@
+{
+ "audit": "dw-catalog-404-integrity",
+ "date": "2026-06-26",
+ "owner": "vp-dw-commerce",
+ "mode": "READ-ONLY (psql SELECT + public storefront GET/HEAD only)",
+ "cost_usd": 0,
+ "scope": {
+ "active_rows": 74927,
+ "handle_null": 0,
+ "handle_empty": 0,
+ "handle_eq_lower_dwsku": 13715,
+ "handle_ne_lower_dwsku": 61212,
+ "dwsku_null_among_active": 12983,
+ "malformed_handle_suffix_-handle": 2649,
+ "malformed_handle_suffix_-sample": 527,
+ "handle_contains_banned_word_wallpaper": 6765
+ },
+ "http_sample_real_handle_column": {
+ "requested": 400,
+ "determinate_responses": 180,
+ "http_200": 172,
+ "http_404": 8,
+ "http_429_self_throttled_indeterminate": 220,
+ "point_404_rate": 0.0444,
+ "wilson_95ci": [0.023, 0.084],
+ "estimated_active_rows_with_404ing_handle": 3300,
+ "estimated_range": [1700, 6300],
+ "note": "Shopify/Cloudflare bot protection 429'd 220/400 on 8-way burst and stayed throttled on serial retry; 429 = self-inflicted, NOT a catalog 404. Estimate rests on the 180 determinate responses + structural DB evidence."
+ },
+ "sample_404_breakdown": {
+ "malformed_-handle_garbage": 3,
+ "descriptive_slug_pdp_gone": 5,
+ "all_status_in_mirror": "ACTIVE",
+ "all_synced_at": "2026-06-24 (fresh sync, not generic lag)"
+ },
+ "known_skus": {
+ "DWCW-705546": {
+ "panel_url": "/products/dwcw-705546",
+ "panel_url_http": 404,
+ "real_mirror_handle": "dwcw-705521",
+ "real_handle_http": 200,
+ "vendor": "China Seas",
+ "mirror_status": "ACTIVE",
+ "bucket": "b_handle_drift_panel_builds_url_from_dw_sku_not_handle"
+ },
+ "DWCS-895148": {
+ "panel_url": "/products/dwcs-895148",
+ "panel_url_http": 404,
+ "real_mirror_handle": "dwcs-895122",
+ "real_handle_http": 200,
+ "vendor": "China Seas",
+ "mirror_status": "ACTIVE",
+ "bucket": "b_handle_drift_panel_builds_url_from_dw_sku_not_handle"
+ }
+ },
+ "root_cause_summary": {
+ "problem_A_panel_bug": "3D catalog panel builds /products/<dw_sku> instead of /products/<handle>. Only 13715/74927 (18.3%) of ACTIVE products have handle==lower(dw_sku), so a dw_sku-derived URL 404s for the other 81.7%. Explains both known 404s. Read-side, catalog NOT at fault.",
+ "problem_B_catalog_handle_integrity": "Independent ~4.4% (~3300 ACTIVE rows) whose STORED handle itself 404s. Sub-buckets: (B1) malformed handle suffixes -handle/-sample ~3176 rows (import-template defect, Malibu/PS Removable/Fentucci); (B2) descriptive-slug PDPs that 404 despite mirror status=ACTIVE because the mirror's status column mirrors Shopify product.status, which does NOT reflect Online-Store sales-channel publication (bucket a staleness + c unpublished)."
+ }
+}
← 8c37b1d DW catalog 404 integrity audit (read-only scope + storefront
·
back to Dw Catalog 404 Audit
·
auto-save: 2026-06-26T11:15:12 (1 files) — fetch-publication 48a1070 →