Running Orders
Running Orders is where fixes matter this week. Shipped Orders shows history.
Pick a check above
How this page works
- Every check runs live on both sheets each time you open the page. Counts are rows that need a look.
- Click a check to see its rows. Click a row number to jump to that row in the sheet, fix it there, and come back.
- Red = must fix (an order cannot be in that state). Amber = worth a look. Green = nothing found.
- Checks are added one by one. The list below says what each one tests.
- Factory. Pick one supplier and all 13 cards count that factory only, with the list showing every issue of that factory together, one line per order, worst first and nearest ETD first. "Open in Running Orders" then shows that factory's problem rows alone. "All factories" puts the page back. The filter resets each time the app opens.
- ETD. All orders, 5 weeks or 7 weeks. 5 weeks keeps orders shipping on or before today plus 35 days, 7 weeks today plus 49 days. Orders already past their ETD stay in. Orders with no ETD drop out. Use it to run a factory call on what ships next.
ORDER STATUS: running orders
column AOBuyer-wise running orders
by PO countSupplier-wise running orders
by PO countMilestones overdue (red cells)
plan date passed, actual blankNeeds review
flagged by the last Main DD import1Choose DD file
2Reading
3Review & tick
4Confirmed & locked
Drop this week's DD_BD / report BD export here
or
Try with demo data. Last week's made-up export is already loaded, so the DLO vs Agent pages are full. Load this week's export to see the import at work: 63 columns, 941 rows, 12 new orders, quantity and ETD changes and 6 cancellations. Confirm the update, then the DLO vs Agent pages refresh.
What the import does
Matches on PO#/order_id. Columns are found by header name, so a reordered export still works.
Updates only the source columns A, B, C, E, F, G, I, K, L, M, N, O, R, S (supplier, intake, buyer, brand, dept, subclass, product type, season, style, PO, qty, FOB, ETD, transport). An ETD earlier than today is set to today. Your dates, statuses, remarks and formulas stay as they are; the plan dates and ORDER STATUS recalculate from the new ETD.
Adds new orders for your buyers and factories with DD status Ordered or New, with the column rules applied.
Deletes POs that are cancelled in the DD file, and POs not found in the DD file. Every PO has a tick box, so you can keep any single one. Deleted rows stay in the Change Log inside Backup & Restore, with a Restore button.
Protects: a snapshot is taken before anything is written; if the file looks filtered or partial (many POs missing), nothing is pre-ticked for deletion.
Updates only the source columns A, B, C, E, F, G, I, K, L, M, N, O, R, S (supplier, intake, buyer, brand, dept, subclass, product type, season, style, PO, qty, FOB, ETD, transport). An ETD earlier than today is set to today. Your dates, statuses, remarks and formulas stay as they are; the plan dates and ORDER STATUS recalculate from the new ETD.
Adds new orders for your buyers and factories with DD status Ordered or New, with the column rules applied.
Deletes POs that are cancelled in the DD file, and POs not found in the DD file. Every PO has a tick box, so you can keep any single one. Deleted rows stay in the Change Log inside Backup & Restore, with a Restore button.
Protects: a snapshot is taken before anything is written; if the file looks filtered or partial (many POs missing), nothing is pre-ticked for deletion.
DLO vs Agent share
DLOAgentBuyer-wise
sorted by agent share, highest firstSeason-wise
Brand-wise
Dept-wise
top 8Agents on your buyers
who competes with DLOETD timeline
by month of ETD / vendor pickup dateOrders behind this view
How this page works
- DLO side = your chart. Every row of Running Orders (scope Open) and Shipped Orders -all (scope Shipped). Buyer, brand, dept, subclass, season, style, supplier, qty and ETD come from your sheets, not from the DD.
- Agent side = the DD. Rows of the last confirmed Main DD whose buyer is in Rules card 1, and which are not DLO: DD agent_id is not "Dhaka Office", the supplier or factory is not in Rules card 2, and the PO is not in your chart. Open = DD status ticked in Rules card 4; Shipped = any other status except cancelled.
- Buyers: the Buyer list comes from your chart in the chosen scope (Running Orders for Open, Shipped Orders for Shipped). Agent rows count only for those buyers, matched by name with accents ignored and shown in your chart's spelling. A buyer with no order of yours in that scope is left out together with their agent orders.
- DLO in DD, not in my chart: DD rows the DD marks as Dhaka Office (or that sit at your suppliers) whose PO is not in your chart. They are never counted. Open the warning strip to see the POs.
- Quantity is the DD exact_qty. The DD has no FOB, so value is not compared.
- Filters. Buyer, brand and season describe the order, so they cut both sides. DLO supplier sits only on my rows and Agent only on agent rows, so each of those keeps its own side and keeps the other side for the buyers still in view. Without that, picking a supplier of mine would leave no agent rows and the share would read 100%.
- Export this view (.xlsx) writes exactly what is on screen: the scope, every filter and the search box, with no 500-row cut. Sheets: Summary (what the filters were and what came out), Orders, By buyer, By DLO supplier, By agent supplier, By agent, then By season, brand, dept, subclass, transport and ETD month. A breakdown sheet is written only when that dimension has two or more values in the view, so a one-season export carries no By season sheet. Every breakdown shows POs and quantity side by side with the DLO share for each, and ends in a bold TOTAL row. The file name carries the filters.
Group comparison: brand + subclass
green DLO cheaper by over 3%red DLO dearer by over 3%grey level or sample too smallDecision matrix
x: DLO price gap vs agent · y: DLO share of POs · dot size: POs in groupWhat to do, by group
from the matrixSupplier price index
100 = median of the supplier's own groups. Below 100 is cheaper.Buyer view
where to push, per buyerPriced orders behind this view
How this page works
- Rows: the same rows as the DLO vs Agent Dashboard. DLO = your chart (Running + Shipped sheets). Agent = DD rows of your buyers not handled by DLO.
- DLO price: the FOB column (O) of your chart. If that cell is blank, the price book is used.
- Agent price: a price book keyed by PO#. Every DD import that has
cost_pricewrites or updates the price of each PO with currency, inco term, unit and the DD file name. A DD without cost_price changes nothing in the book. - Price band for a DLO row is looked up from the DD by PO#. A chart row that is not in the DD has no band and drops out when a band filter is set.
- Price basis: the DD unit price (cost_price) exactly as given, in USD. Non-USD rows and cancelled orders are left out. Inco term and unit (PCS or SET) are shown in the table but do not change the price.
- Group: brand + subclass. Prices are compared only inside a group. A group needs at least the minimum sample on both sides, otherwise it shows grey.
- Price band is a filter, not part of the group. The codes come from the
price_categorycolumn of the Main DD; this app never sets them. LIP = Low Image Price, the entry price point of the category. MIP = Medium Image Price, the core volume price point. HIP = High Image Price, the top price point. That wording follows the usual retail price-image ladder, so confirm it with the buying team. The cards under the filter bar list every band in the chosen scope with its PO count. - Mixing bands. With Price band on "All", a LIP style and a HIP style inside the same brand and subclass sit in the same group, so the gap % mixes two price points. Set the band filter, or read the By price band sheet in the export, before you take a number to a buyer.
- Gap % = (DLO median − Agent median) / Agent median. Negative means DLO is cheaper. Medians resist single odd prices. The qty-weighted average is shown beside the median.
- Decision matrix: DLO cheaper and low share = PUSH ask for more orders here first. DLO cheaper and high share = PROTECT. DLO dearer and high share = AT RISK cost work needed. DLO dearer and low share = FIX PRICE or let go. Share uses all POs of the group in scope, priced or not.
- Supplier price index: for each group, supplier median ÷ group median × 100, then averaged over the supplier's groups, weighted by POs. Below 100 = cheaper than the group.
- Export this view (.xlsx) writes exactly what is on screen: the scope, every filter and the search box, with no 500-row cut. Sheets: Summary, Price bands, Groups, Priced orders, then By price band, buyer, season, brand, subclass, DLO supplier, agent supplier and agent. A breakdown sheet is written only when that dimension varies in the view. No sheet averages medians: every ALL row is recomputed from the rows underneath it. The file name carries the filters.
Column rules (formulas for new rows)
Apply to
Written exactly as in Excel, for row 2. Every new row (Insert row, Add row, new orders from the Main DD import) gets these automatically. "Fill blanks" writes the rule only where the cell is empty; "Overwrite all" replaces the column in every row (a snapshot is taken first).
Conditional formatting
applies to both sheetsAmber window (days ahead):
Main DD import rules (read me first)
4 rules, all editable here, no code neededThe four cards below control how the Import Main DD page reads the weekly DD export. Each card has a How this rule works section: what the rule does, how to check it, and how to add, edit or delete it.
- Your buyers: buyer names that count as yours.
- Your suppliers / factories: supplier or factory names that count as yours.
- Supplier rename rules: name swaps applied while the DD file is read.
- New-order statuses: DD status values that count as a new order.
How the import uses them, in order
- The DD file is read. Supplier names are renamed by rule 3.
- Each DD row whose PO# is already in Running Orders is matched by PO# and updated. Rules 1, 2 and 4 do not block this. Only the status matters: a status not ticked in rule 4 (and not "ordered") sends the order to Review, and "cancelled" sends it to the Cancelled list.
- Each DD row whose PO# is not in the chart is offered as a New order only when all three match: buyer in rule 1 supplier or factory in rule 2 status ticked in rule 4. If any one fails, the row is ignored.
- Nothing is written to the chart until you review the preview and apply it.
Where the rules are saved
- Every change here is saved at once in this browser on this computer. There is no Save button.
- The rules are included in every Backup export and snapshot. To move them to another computer, use Backup & Restore.
1. Your buyers
new-order detection in the Main DD import
How this rule works
What it does
- Decides which DD rows are your new orders. A DD row with a PO# not yet in the chart is offered as a New order only if its buyer is in this list, and rules 2 and 4 also match.
- Orders already in the chart are updated by PO# whatever the buyer. Removing a buyer here never deletes their orders.
- Matching is on the full name, ignoring upper and lower case. Spelling and accents must be the same as in the DD export. The list uses plain letters (Novak, not Nowák), so keep that form.
How to check
- A new order you expected did not show in the import preview: open the DD file, copy the buyer name exactly as written there, and compare it with the tag here. Then check rule 2 and rule 4.
How to add
- Click in the box. The dropdown lists the names from My Buyers List not yet here. Click one, or type a name and press Enter or Add. Typing filters the list.
How to edit or delete
- Click × on a tag to remove it. To correct a spelling, remove the tag and add the name again.
2. Your suppliers / factories
matched on supplier or factoryHow this rule works
What it does
- Works with rule 1. A DD row is offered as a New order only if its supplier column OR its factory column equals a name here. Full name, upper and lower case ignored.
- Rename rules (rule 3) run first, while the file is read. So this list must hold the name after renaming (the "To" name), not the name the DD file shows.
- Orders already in the chart are updated by PO# whatever the supplier. Removing a supplier here never deletes rows.
How to check
- Compare the tags with the Supplier column of Running Orders. A factory with running orders that is missing here will not bring new orders in from the DD.
How to add
- Click in the box. The dropdown lists every supplier found in Running Orders and Shipped Orders -all that is not yet here. Click one, or type a name and press Enter or Add.
How to edit or delete
- Click × on a tag to remove it. To correct a spelling, remove the tag and add it again. Keep the exact DD text, including "[BD]" where the DD has it.
3. Supplier rename rules
applied on every importHow this rule works
What it does
- While a DD file is read, every supplier whose name equals From (upper and lower case ignored, spaces at the ends ignored) is replaced with To. This runs before matching, before new-order detection and before updates.
- Purpose: one factory, one name in the chart, even when the DD export uses a sister-company or legal name. Example: a factory that the DD calls by its legal name becomes the name you use in the chart.
- It applies on every import, to new orders and to updates. It does not rename rows already in the chart. Edit those by hand if needed.
- The whole name must match. a short name alone would not match the full legal name.
How to check
- After an import, search the chart for the From name. It should not appear on any updated or new row. Make sure the To name is also in rule 2.
How to add
- Type the exact DD name in From and the chart name in To, then click Add. Both boxes must be filled.
How to edit or delete
- Click Remove on the line. To change a rule, remove it and add it again with the new text.
4. New-order statuses
export status that counts as a new orderHow this rule works
What it does
- The ticked values are the DD status values that count as a new order. Default: ordered and new. Upper and lower case ignored (DD writes QUICK_ORDERED, the app shows quick_ordered).
- The list shows every status value in the DD export: new, quick_ordered, ordered, booked, in_transport, in_port, planned_to_dc, delivered, cancelled. Any new value met in a later import is added to the list automatically, unticked. You can also type a value and click Add.
- A DD row with an unticked status (for example booked or in_transport) is never added as a new order, even if rules 1 and 2 match.
- For orders already in the chart: a DD status that is not ticked (and is not "ordered") sends the order to Review with the note "DD status is now ...", instead of a quiet update. A status of cancelled sends it to the Cancelled list for you to confirm removal.
- Leave cancelled, in_transport, in_port, planned_to_dc and delivered unticked. Ticking them would bring cancelled or already shipped DD rows into Running Orders.
How to check
- A new order you expected is missing from the preview: look up its status in the DD file and compare with the ticks here.
How to edit
- Tick or untick a box. It is saved at once and used by the next import. To add a value before it appears in a DD file, type it in the box and click Add.
Default CC and sender
used in every draftEmail template
subject and opening text for every buyer emailPlaceholders: {buyer} {firstname} {brand} {Dept (Report)} {Dept (Auto)} {Subclass} {date} {etd} {pos} {qty} {brands} (brands in the email) {suppliers} (suppliers in the email, first 2 words) {shipfrom} {shipto} {shippos} (shipped period and PO count). Example subject:
Announcement
shown in red just above the signature, in every draft, until you clear itPreview
Signature
added at the end of every draftThe layout is fixed. Only these fields change.
Social icons, 20 x 20 px. A standard icon strip is already in place. Load your own picture for any of them, or remove one to show its name as text instead.
Picture (banner under the signature)
Preview
Active buyers
Checks
fix these before you rely on a draftInactive buyers
Ordered before (Open or Shipped orders) but not in your active list. Built automatically from both sheets. Add an email or move a buyer to Active any time.1. ETD cut-off and shipped orders
open orders up to the cut-off, plus orders shipped in the chosen period2. Buyers with open orders
3. Preview
click a buyer row to preview that email4. Table columns in the email
Tick a column to add it, untick to skip it. Use the arrows to change the order. Type a header to rename it in the email only; the sheet keeps its own header. "Internal" columns hold data buyers normally do not see.
5. Note below the table
added under the order table in every email; leave blank for no noteQuick references (click to add, then fill the [ ] parts):
Same placeholders as the template work here, e.g. {firstname} {etd} {pos} {qty}. Leave blank for no note.
The subject, the opening text, the announcement and the signature all come from My Buyers List, tabs Defaults and Signature.
Your data lives in this browser's storage for this file. Clearing browser data, or opening the file in a different browser, starts again from the copy embedded in the file, or empty when none is embedded. Export a backup (.json) or an .xlsx regularly and keep it in your own folder.
Snapshots
Change Log
Every import, file load, fix and deleted order. Deleted orders have a Restore button.What it is
- One local file, no server. Production Follow-Up Master replaces the weekly rebuild of the production follow-up Excel chart. It keeps the chart as a live, Excel-like grid, refreshes it from the weekly Main DD export, and builds the reports and comparisons on top. It works offline. Nothing is uploaded anywhere.
- Where the data lives. Orders, rules, contacts, the saved DD rows and the price book are stored in this browser on this computer (IndexedDB), not inside the HTML file. Export a backup every week from Backup & Restore; the sidebar shows an amber dot when the last backup is older than 7 days.
- What sits beside it. KPI Pulse.html in
E:\Claude Cowork\KPI Pulse, which the KPI Pulse page loads and feeds with the chart. A Windows desktop build of this same app lives inreleaseandshare; it ships empty, so the first thing to do after installing it is Import backup (.json). - Responsiveness. If the app ever freezes, open this page afterwards and look at the box below. It lists every pause longer than 1.5 seconds with what the app was doing. Press Copy and paste it into the chat. A freeze that leaves no line here happened outside the page.
Responsiveness log
- Two lists can be locked. My Buyers List and Rules card 1 (Your buyers) open locked. Click the lock to edit, lock them again when you are done. The lock stops a stray keystroke, it is not a password.
- Two blank templates. Blank template on the order sheets writes an empty follow-up chart, columns A to AP, with example rows and a Read me sheet. Blank template on My Buyers List writes an empty contact sheet with the right headers, one example row and a Read me sheet. Fill either one and bring it back in with Load order file or Import Excel.
- Every page exports what you see. TNA & Critical Path, DLO vs Agent Dashboard and DLO vs Agent Price each have an Export button that writes the rows on screen, scope, filters and search box included, with no row limit. Breakdown sheets are added only for the dimensions that vary in that view.
Pages, and where each one gets its data
| Page | What it does | Data source |
|---|---|---|
| Dashboard | Live figures from the running orders: status mix, overdue milestones, buyer and supplier counts, duplicate PO#s, the TNA & Critical Path total, the rows flagged by the last DD import, backup age and today's date. | Your chart |
| Running Orders Shipped Orders | The chart itself, columns A to AP, formulas, red/amber plan-date colouring, filters, sort, copy and paste with Excel, insert and delete rows, Move to Shipped, Export .xlsx and Blank template. Duplicate PO# rows are coloured light red, counted in the Subtotal row, and listed by the "Duplicates found" button. | Your chart |
| TNA & Critical Path | 15 consistency checks across Running Orders and Shipped Orders, one card per check with a count. Click a card for the rows, "Open in sheet" shows those rows in the grid with the offending cells in purple. A Factory filter narrows every card to one supplier and lists all its issues together, one line per order, for the factory call. An ETD window of 5 weeks or 7 weeks narrows it further to the orders shipping soon. Export to .xlsx. Nothing on this page changes your data. | Your chart |
| KPI Pulse | The KPI Pulse dashboard, loaded in place and fed with both sheets of this chart. Rebuilds itself when the chart changes. No file import inside it. | Your chart, sent to KPI Pulse.html |
| Import Main DD | Weekly refresh of Running Orders from the DD export: new orders, updates, ETD changes, cancellations, orders no longer in the DD, and rows to review. The confirmed DD stays locked here until you replace or clear it. | DD export (.xlsx) |
| DLO vs Agent Dashboard | Your orders (DLO) against the agent orders of the same buyers: share by PO count or quantity, by buyer, season, brand, dept, agent, DLO supplier and ETD month. Scope: Open, Shipped or All. Export this view writes exactly the rows on screen, filters and search included, with a breakdown sheet per dimension that varies, including agent suppliers. | DLO = your chart. Agent = DD rows of your buyers not handled by DLO |
| DLO vs Agent Price | Your FOB against agent FOB inside the same brand + subclass: medians, gap %, DLO share, a decision matrix (push, protect, at risk, fix price), supplier price index, buyer view. The price bands in the DD are explained on the page. Export this view writes exactly the rows on screen with a breakdown sheet per dimension that varies. | DLO price = FOB column of your chart. Agent price = price book from every DD that carried cost_price |
| Rules | Column formulas for new rows, conditional formatting, and the four import rules: your buyers, your suppliers, supplier rename rules, new-order statuses. Each rule has a "How this rule works" note. | Settings |
| My Buyers List | Four tabs. Defaults: the CC on every draft, the sender name, the subject and body template, and the announcement. Signature: your office block, banner, banner link, legal text and the four social links, with a switch to drop it when Outlook adds its own. Active buyers and Inactive buyers: one row per buyer with To and CC. Blank template, Excel import and export. Opens locked. | Settings |
| Auto Production Reports | One production status email per buyer: ETD cut-off, optional shipped orders, the order table, the announcement and your signature, downloaded as Outlook .eml drafts. You choose which columns go in the table. Nothing is sent from here. | Your chart + My Buyers List |
| Backup & Restore | Full backup to a .json file and restore from it. Snapshots are taken before bulk changes and imports. Also holds the Run data fixes again button. | Everything above |
| Change Log (inside Backup & Restore) | Every import, clear and one-time fix, with counts, and the rows it deleted. | App log |
Rules the app follows
- Plan dates and ORDER STATUS are formulas, set on the Rules page and applied to every new row. Red = plan date passed with no actual date; amber = due within the amber window (7 days by default).
- Main DD import. A DD row counts as a new order only when the buyer is in your buyers list, the supplier or factory is in your suppliers list, and the status is ticked in New-order statuses (ordered, new). Existing POs are updated by PO#. Supplier rename rules run first. A status not ticked sends the order to Review; cancelled goes to the Cancelled list.
- DLO or Agent. DLO = any row of your chart. Agent = a DD row of your buyers where agent_id is not "Dhaka Office", the supplier is not in your list, and the PO is not in your chart. DD rows marked Dhaka Office that are not in your chart are shown as a warning and never counted.
- Scopes. Open = your Running sheet plus agent rows with an open DD status. Shipped = your Shipped sheet plus agent rows with any other status except cancelled. All = both. Buyer lists and every filter follow the scope and the choices to their left.
- Filters on the two DLO vs Agent pages. Buyer, brand, season and subclass describe the order, so they cut both sides. DLO supplier exists only on your rows and Agent only on agent rows, so each of those keeps its own side and keeps the other side for the buyers still in view. Without that, picking one of your factories would leave no agent rows and the share would read 100%.
- Prices. Compared as given, USD only. The price book keeps the last known cost_price per PO from any DD that had it, so a DD without prices does not empty the price page.
- Price bands. LIP, MIP and HIP come from the
price_categorycolumn of the Main DD; this app never sets them. On the usual retail price-image ladder LIP is the entry price point, MIP the core volume price point and HIP the top price point, which the buying team should confirm. The band is a filter, not part of the comparison group, so with the filter on "All" a LIP style and a HIP style inside one brand and subclass are averaged together. A chart row that is not in the current DD has no band at all. - Duplicate PO#. Inside one sheet, the first row with a PO# is the live one and every later row with that PO# is coloured. A PO# that sits in both sheets is coloured on both rows, each pointing at the other, so you can delete the wrong one from whichever sheet you are on. Nothing is deleted by the app.
- Picking rows. Click a row number for one row, Shift-click a second number for a block, drag down the numbers for a block. Ctrl-click (Cmd on a Mac) adds or drops single rows that are not next to each other, and a blue chip in the toolbar counts them. Select all shown, the empty corner above the row numbers, and Ctrl+A each take every row on screen, filters included. Delete row(s), Move to Shipped and Ctrl+C then work on exactly those rows. A plain click, a sort, a filter or a sheet change drops the picks.
- Deleting cannot quietly lose an order. Before a delete the app checks whether any PO# would be left in neither sheet. If one would, it names those PO# and says the orders leave the chart, rather than calling it a duplicate cleanup. Cleaning the flagged rows on one sheet never triggers it, because the other sheet keeps its copy.
- Desktop app: shortcuts stay out of your typing. While you are typing in a cell, the find box or any other field, the menu shortcuts (Ctrl+I, Ctrl+E, Ctrl+B, Ctrl+S, Ctrl+T, Ctrl+M, Ctrl+O and the Ctrl+number page keys) do nothing. Before 1.2.10 they fired anyway and pulled the app to another page in the middle of a word, so the rest of the word was lost. Ctrl+Backspace is no longer a shortcut at all, it deletes the previous word as it does everywhere else. Page keys: Ctrl+1 to Ctrl+9 for the first nine pages, Ctrl+Shift+1 to Ctrl+Shift+4 for My Buyers List, Auto Production Reports, Backup & Restore and About. Ctrl+0 resets the zoom.
- Desktop app: three more fixes in 1.2.11. Every download name is now plain ASCII, so a buyer with an accented name gets a plain-letter file name instead of a file called "download". "Open in Outlook" on the desktop now opens your mail program; the shell used to block that link silently. Right-clicking in any text box now gives Cut, Copy, Paste and Select all, as in a browser.
- PPS rule. On Running Orders, when column AC (PP Status) contains the word "sent", Remarks (AN) starts with "Pending PPS comments"; an existing remark follows after it. When "sent" leaves AC, the tag is removed.
- Intake is read from the DD column named
intake. - TNA & Critical Path checks (15), on both sheets. Every check runs on Running Orders and on Shipped Orders. The rule is the same, only the wording changes: on Running Orders it says what to chase, on Shipped Orders it names the cell that was never filled so you can correct the record. Duplicate PO#. Sewing start (AF) must be after PP approval (AB); AB = "Repeat" counts as approved. AC "approved" needs a date in AB, or "Repeat". PPS marked sent in AC with AB still empty for more than 14 days. Fabric status Yes (X) needs a date in Z, or "Stock". Plan fabric inhouse date (Y) in the past with Z still empty; Z = "Stock" or "Repeat" accepted. Fabric status (X) must be Yes, blank or a plan date; "Sent" and "Plan TBC" count as valid, anything else is listed on both sheets. Fabric inhouse (Z) must be at least 3 days before sewing start (AF); Z = "Stock" accepted, "Repeat" not. Fabric OK and PP approved with no production status (AG blank) needs a sewing plan date in AF. Days from sewing start to ETD: minimum 14 up to 5,000 pcs, 21 up to 10,000, 28 up to 20,000, 35 above 20,000; 7 days less when Transport Type contains "Air". With AF blank the earliest start is the later of Z and AB plus 1 day. Shipment sample (AI) empty with the ETD 21 days away or less. Plus the four plan-date cards below.
- Factory filter on TNA & Critical Path. Pick a factory and every card counts that supplier only, the list switches to All issues with one line per order, and "Open in Running Orders" shows that factory's problem rows alone. The dropdown lists only factories that have something to look at, with the count beside the name. The filter is never saved: it resets to All factories each time the app opens, so no factory can be hidden by accident. The red dot and the Dashboard tile always count every factory.
- ETD window. All orders, 5 weeks or 7 weeks, beside the Factory filter. 5 weeks keeps the orders whose ETD falls on or before today plus 35 days, 7 weeks today plus 49 days. An order whose ETD has already passed stays in, it is the most urgent one. An order with no ETD drops out while a window is on. The window narrows the cards and the list, and it works with or without a factory. It resets to All orders each time the app opens.
- Plan and Sent text in X, AC and AI. Type a plan any way you like, such as "plan 5 oct" or "Plan- 5/Oct/26", and the cell is rewritten as
Plan 05-Oct-26. "Sent 2 sep" becomesSent 02-Sep-26. A plan typed without a year takes the nearest year to today; a Sent date takes the most recent one that is not in the future. The year is then written into the cell. In AI a plain date means the sample has gone, "Plan ..." means it is still to come. - Plan dates that have passed. TNA & Critical Path lists them, nothing is moved automatically: fabric plan in X, PP plan in AC, shipment sample plan in AI, and the sewing plan in AF when AG is blank. Update the date, or write the status that replaced it.
- Milestone colour and "Plan". A plan date column goes red when its date has passed and the actual column is still empty, amber inside the amber window. A cell holding "Plan ..." counts as empty for that colour, so the red stays until a real date or a real status goes in.
- One-time fixes (5 Oct 2026). Shipped rows: AB set to AF minus 1 day where AB was on or after AF; Z set to AF minus 3 days where Z was a later date. Both sheets: AF formulas replaced by the date shown. Each ran once, snapshot first, Change Log line. Those dates are placeholders, not factory dates.
Weekly routine
- Import Main DD: choose this week's DD export, review the preview, confirm.
- Running Orders: update actual dates, fabric and PP status, shipment sample and remarks; check the Duplicates found button and the DD import flags tile on the Dashboard.
- TNA & Critical Path: clear the red and amber cards, ask factories for the sewing plan dates, and check the ETD cases with the buyer.
- Auto Production Reports: generate the buyer emails.
- DLO vs Agent pages: check share and price gaps for the buyers you plan to approach.
- Backup & Restore: export the backup.
Technical notes
- Sheet names in the exported .xlsx are "Running Orders" and "Shipped Orders -all", columns A to AP, Calibri 9, grey bold header, freeze panes at J2 by default, autofilter on every column. The export keeps values, formulas, number formats and widths; it does not carry fill colours or the conditional formatting.
- Excel functions supported in formulas: IF, IFERROR, AND, OR, NOT, ISNUMBER, ISBLANK, ISTEXT, ISERROR, TODAY, DATE, YEAR, MONTH, DAY, SUM, MIN, MAX, COUNT, COUNTA, ROUND, ABS, LEN, UPPER, LOWER, TRIM, VALUE, WEEKNUM, and + − * / & comparisons. Anything else shows #NAME?. Formulas reference the same sheet only.
- The hidden helper columns AQ to BS and the DATA QUALITY / _CALC sheets of the original Excel chart are not part of this file; the Dashboard and KPI Pulse compute those figures directly.
- The DD export is read in a background worker (with a fallback on the main thread). Required columns: supplier, intake, buyer, brand, dept, subclass, product_type, order_season, style_id, order_id, exact_qty, vendor_pickup_date, transport_type, status, factory. Optional: cost_price, agent_id, price_category, currency_code, inco_term, uom_id, element_in_set.
- All dates show as dd-mmm-yy. Colours and due dates follow the PC clock, shown on the Dashboard.
- Theme: three sidebar colours at the bottom of the menu. Saved with your settings.
- One-time fixes follow the PC clock and run once per browser. If this file is opened in another browser, they run again there on its own stored data. No plan date is ever moved for you.
- Every .xlsx this app writes carries a coloured header row, borders, column widths, number formats and an autofilter. The writer built into the file cannot freeze panes, so use the filter row instead.
- The desktop build wraps this same HTML in a Windows shell. It carries no orders, no buyer contacts, no buyer or supplier lists. Downloads go straight to your Windows Downloads folder with no Save dialog, and a small box then tells you the file was saved and offers to open the folder. Build it from
desktopwithnpm run build:winafter refreshing the renderer.