← back to Dw Five Field Step0
fivefield-drain: exclude internal-only Schumacher from the worklist load
771e5bf09cc9dbe708bf3b63647a2ab4d122efab · 2026-07-20 14:20:40 -0700 · Steve Abrams
Schumacher is internal-only (never launched/published to the storefront), yet its
270 priceable SKUs sat pending in bulk_fivefield_worklist and the hourly drain was
building Sample($4.25)/roll(MAP) variants on them — burning the scarce 500/day
'backlog' variant budget on products that stay ARCHIVED and will never sell. The
drain only creates variants (never un-archives/publishes), so this was budget waste,
not a storefront leak. Added an internal-only vendor exclusion to load_worklist()'s
SQL and drain.sh's TOTAL count (kept consistent). Verified: pending 20304 -> 20034.
Mirrors the marketing-command-center calendars filter. The 10 variants already
created on archived Schumacher products are left as-is (harmless, non-customer-facing).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
M bulk-fivefield-exec.pyM drain.sh
Diff
commit 771e5bf09cc9dbe708bf3b63647a2ab4d122efab
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Jul 20 14:20:40 2026 -0700
fivefield-drain: exclude internal-only Schumacher from the worklist load
Schumacher is internal-only (never launched/published to the storefront), yet its
270 priceable SKUs sat pending in bulk_fivefield_worklist and the hourly drain was
building Sample($4.25)/roll(MAP) variants on them — burning the scarce 500/day
'backlog' variant budget on products that stay ARCHIVED and will never sell. The
drain only creates variants (never un-archives/publishes), so this was budget waste,
not a storefront leak. Added an internal-only vendor exclusion to load_worklist()'s
SQL and drain.sh's TOTAL count (kept consistent). Verified: pending 20304 -> 20034.
Mirrors the marketing-command-center calendars filter. The 10 variants already
created on archived Schumacher products are left as-is (harmless, non-customer-facing).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
bulk-fivefield-exec.py | 4 ++++
drain.sh | 6 ++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/bulk-fivefield-exec.py b/bulk-fivefield-exec.py
index 3815ea2..1a3e9c5 100644
--- a/bulk-fivefield-exec.py
+++ b/bulk-fivefield-exec.py
@@ -150,6 +150,10 @@ def load_worklist():
" is_kravet_fam, computed_price::float8 AS computed_price, "
" kravet_price::float8 AS kravet_price "
" FROM bulk_fivefield_worklist WHERE status='pending'"
+ # Schumacher is internal-only (never launched/published to the storefront),
+ # so building sellable Sample/roll variants for it only burns the scarce
+ # daily variant budget on products that stay archived. Skip it at the source.
+ " AND lower(coalesce(vendor,'')) <> 'schumacher'"
") t;"
)
raw = subprocess.check_output(
diff --git a/drain.sh b/drain.sh
index 37c2610..8d4d675 100644
--- a/drain.sh
+++ b/drain.sh
@@ -23,8 +23,10 @@ if ! mkdir "$LOCKDIR" 2>/dev/null; then
fi
trap 'rmdir "$LOCKDIR" 2>/dev/null' EXIT
-# executable total (worklist minus the held-no-cost reprice-zeros)
-TOTAL=$(psql -d dw_unified -tAc "select count(*) from bulk_fivefield_worklist where status='pending' and fix_type <> 'reprice-zero'" 2>/dev/null || echo 0)
+# executable total (worklist minus the held-no-cost reprice-zeros, minus
+# internal-only Schumacher — matches the executor's load_worklist() exclusion so
+# done/total stays consistent; Schumacher stays archived and off the storefront)
+TOTAL=$(psql -d dw_unified -tAc "select count(*) from bulk_fivefield_worklist where status='pending' and fix_type <> 'reprice-zero' and lower(coalesce(vendor,'')) <> 'schumacher'" 2>/dev/null || echo 0)
DONE=$(node -e 'try{const r=require(process.argv[1]);console.log(r.filter(x=>x.status==="fixed"||x.status==="skipped").length)}catch(e){console.log(0)}' "$RESULT" 2>/dev/null || echo 0)
echo "[$(ts)] drain start — done=$DONE / total=$TOTAL" >>"$LOG"
← 9229d64 auto-save: 2026-07-20T01:29:12 (1 files) — out/display-varia
·
back to Dw Five Field Step0
·
auto-save: 2026-07-21T01:35:05 (1 files) — out/display-varia 7cfa1bd →