← 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
M public/index.htmlM server.js
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 →