[object Object]

← back to Dw Activation Calendar

calendar: default 500/day breadth-first (uncapped per-vendor) — true 35-day projection + updated note

08719555539a136d0ab9b576e75362833c31474d · 2026-06-21 18:29:03 -0700 · Steve

Files touched

Diff

commit 08719555539a136d0ab9b576e75362833c31474d
Author: Steve <steve@designerwallcoverings.com>
Date:   Sun Jun 21 18:29:03 2026 -0700

    calendar: default 500/day breadth-first (uncapped per-vendor) — true 35-day projection + updated note
---
 public/index.html | 10 +++++-----
 server.js         |  7 +++++--
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/public/index.html b/public/index.html
index 410df58..6ab7e10 100644
--- a/public/index.html
+++ b/public/index.html
@@ -58,14 +58,14 @@
     <div class="wordmark">Activation Calendar<span class="dot">.</span></div>
   </div>
   <div class="spacer"></div>
-  <div class="ctrl"><label>Per day</label><input id="perDay" type="number" value="432" min="1"></div>
-  <div class="ctrl"><label>Per vendor/day</label><input id="perVendorDay" type="number" value="10" min="1"></div>
+  <div class="ctrl"><label>Per day</label><input id="perDay" type="number" value="500" min="1"></div>
+  <div class="ctrl"><label>Per vendor/day</label><input id="perVendorDay" type="number" value="500" min="1"></div>
   <div class="ctrl"><label>Start</label><input id="start" type="date"></div>
   <button id="apply">Apply</button>
 </header>
 
 <div class="summary" id="summary"></div>
-<div class="note">Projected go-active schedule for every SKU staged for activation — published at <b>18/hr (432/day)</b>, max <b>10 per vendor/day</b>, in date order, until the list is cleared. Each chip is a SKU: product image + vendor. <span style="color:#6db36d">●</span> sample-add · <span style="color:#c2a064">●</span> roll/price build.</div>
+<div class="note">Projected go-active schedule for every SKU staged for activation — published at <b>500 variants/day</b> (the 5-field backlog half of the 1,000/day cap), round-robin breadth-first across all vendors, in date order, until the list is cleared. Each chip is a SKU: product image + vendor. <span style="color:#6db36d">●</span> sample-add · <span style="color:#c2a064">●</span> roll/price build.</div>
 
 <div class="monthbar">
   <button class="ghost" id="prev">‹ Prev</button>
@@ -88,8 +88,8 @@ const PROXY=u=>u; // shopify CDN loads direct
 function fmtMonth(d){return d.toLocaleString(undefined,{month:'long',year:'numeric'});}
 
 async function load(){
-  const perDay=document.getElementById('perDay').value||432;
-  const perVendorDay=document.getElementById('perVendorDay').value||10;
+  const perDay=document.getElementById('perDay').value||500;
+  const perVendorDay=document.getElementById('perVendorDay').value||500;
   const start=document.getElementById('start').value;
   const qs=new URLSearchParams({perDay,perVendorDay}); if(start) qs.set('start',start);
   document.getElementById('cal').innerHTML='<div class="loading">Scheduling '+'…</div>';
diff --git a/server.js b/server.js
index 180b699..18af79c 100644
--- a/server.js
+++ b/server.js
@@ -88,8 +88,11 @@ function schedule(rows, { perDay = 432, perVendorDay = 10, startISO } = {}) {
 app.get('/api/schedule', async (req, res) => {
   try {
     const rows = await loadStaged();
-    const perDay = Math.max(1, parseInt(req.query.perDay, 10) || 432);
-    const perVendorDay = Math.max(1, parseInt(req.query.perVendorDay, 10) || 10);
+    const perDay = Math.max(1, parseInt(req.query.perDay, 10) || 500);        // EVEN 50/50: backlog gets 500 variants/day
+    // No hard per-vendor cap by default — matches the executor (pure round-robin: breadth-first
+    // while many vendors have stock, then the full 500/day flows to whoever remains, so the big
+    // vendors' tail clears instead of dragging for months). Set a number to impose a cap.
+    const perVendorDay = Math.max(1, parseInt(req.query.perVendorDay, 10) || 500);
     const startISO = req.query.start && /^\d{4}-\d{2}-\d{2}$/.test(req.query.start) ? req.query.start : null;
     const out = schedule(rows, { perDay, perVendorDay, startISO });
     // vendor totals for the legend

← 633aba6 DW Activation Calendar — 1-month rollout schedule (18/hr + 1  ·  back to Dw Activation Calendar  ·  auto-save: 2026-06-21T18:53:00 (1 files) — screenshot-calend a04151c →