BOARDS-A.md — DASHBOARD SPECIFICATION (final, rounds 27–43, 2026-09-02)
Status: FROZEN in principle ("mota-mota we are there"). The interactive
reference is /board.html (the master mock — all sections, all
component pages, per-user dashboards); THIS document is the spec that
production builds from (ROADMAP Phase 1+). Corrections still welcome —
they land here AND in the mock before/during production.
1. The pattern — one drill tree, dashboards ARE the system
- Main dashboard = a card grid (grouped by section: Company, SO, JW, Stock & sell, B/C/D/E/F). Each card is a live snapshot (3–4 numbers); clicking it opens that component's page (sub-dashboard) with the full analysis. Deeper drills end at the form / approve / chat / dump — the deepest drill IS the work.
- Personal dashboard per role is the landing screen: a todos strip on top (approvals, chats awaiting you, OCR confirmations, prompted status replies, hishob/liquidity actions) + the user's own components.
- No separate Reports / Approvals / Dumps menus that fragment the flow — every action is reachable from the component/row itself.
- Users never leave the system. WhatsApp = share/notify only (pretyped messages, in-app links); external parties get tokenized confirm-links (no login).
2. Global behaviors (binding on every dashboard & table)
- Period bar on every dashboard (from–to; tiles state their period; stats are always period-bound).
- Table standard: click-to-sort any column (asc/desc), per-column search, filters — on every table, everywhere.
- Provenance comments: hover → one-line "what it is"; ⓘ → full What · Data · Who enters / System-calculated (doubles as help text; written once per component).
- Status axiom — no manual statuses. A status is either workflow-derived (the entry IS the work), aging-derived (system assumes after N days), or system-prompted (dashboard task "no update in N days — reply with the reason"; the reply becomes status + logged reasoning).
- Record chat on every row — append-only thread, @mentions surface in the mentioned member's personal dashboard.
- Approvals from the dashboard: amendments beyond tolerance, PO spend > threshold, sample waiver (≤₹1000 user right; >₹1000 owner), hishob final approval (owner), misc decisions. Registry + drill.
- WhatsApp: team share w/ in-app link · external confirm-links · replenishment messages pretyped (weft cover, delivery asks).
- Dumps from every component (context filters inherited) + the dump station; hishob statements export as PDF archive (previous ones included). Dump loop: recurring export → build in-system → retire.
- Sub-row drill pattern used wherever detail exists under a row (yarn→contracts, count→party/design, party→qualities, position→beams, outward→beams, grade→rolls…).
- AI report bot present on every screen (custom reports from all historical data; saved templates).
- Anti-overload: default view = 3–4 numbers per card; deeper data on the component page (not behind expanders on the main); owner decides any further reduction himself.
- Day-end vs live: weft actual-vs-standard updates after day end (weft issued once daily; 24-h window from issue); everything else is live.
3. Master dashboard — sections & cards
| Section | Cards (→ component page) |
|---|---|
| 🏢 Company | Stock cycle (#cyc) · Capacity bar view (#cap) · Cover days (#cov) |
| 🏷️ SO | Pipeline (#pl) · Order book (#ob) · Procurement common (#proc) · Samples (#samp) |
| 🤝 JW | Job-work hishob (#hi) · Party yarn + savings transfer (#py) |
| 📦 Stock & sell | SS orders vs stock (#fg) · Sell list/dead (#sl) |
| 🧶 B Yarn | Yarn stock + 24h movements (#ys) · Party weft cover (#wf) · Park-lots (#pk) · Gate (#gt) |
| 🪵 C Warp | Beam book (#bi) · Sizing jobs (#sj) · Winding recon (#wd) |
| 🪡 D Weaving | Planning board (prod-time) · Loom efficiency (#ef) · Weft consumption day-end (#wc) · Prod-start promise (#pd) |
| 🧾 E Checking | Checking (#cq) · Fabric quality (#gm) · Mending (#mn) |
| 🚚 F Dispatch | Pre-slips (#ps) · Ready-not-out (#rn) · Delivery vs SO (#dv) |
4. Component pages — what each contains (the depth bar)
- Stock cycle: stages beam→planned→drawn→production→mending→checked→ ready→dispatched, avg days vs target, system-flagged candidate reasons per bad stage; employee-KPI hook.
- Capacity bar view (Gantt): X = days (⇄ months), rows = 190 / 250 /
outsourced; committed blocks colored, empty = free; click a 190/250
bar → machine-wise drill; over-run week → + Outsourced JW contract
(
#ojc, expected start days, floor 15, tolerance). Next-order plan = pick a QUOTE from pipeline → full chain timing (start ≥15d → weaving 9.8d → mending/checking ≈3d → packing 1d → first dispatch → weekly lots → end). Plan-vs-actual lives in the order section. - Cover days: full yarn names; cover against PLANNED use (rise + date shown); click yarn → contract-wise consumption; Create PO per yarn.
- Pipeline: funnel + ₹ revenue & margin potential; 📲 Follow up = wa.me to customer/broker number; leads w/o quote → 🧮 Quote (costing) (#quote: engine lines, margin table, share, create order).
- Order book: sold → delivered → pending; ready-but-not-dispatched by stage (the leak); dead + no-order; amendment approval; Promise vs Plan (overdue days); release = workflow, no approval.
- Samples: requested-not-sent (send flow lives in the dispatch form — no "mark sent" here), sent/awaiting, results; 📲 follow-up; waiver.
- Hishob (a REPORT, not a form): beam-mtrs, L2L/lasa sampled, knotting-less + shrinkage, yarn given/consumed/balance; FINAL OWNER APPROVAL unlocks print/send (and bill-hold release: sizing, winding, job-work all gated); party accept/object via confirm-link; rows auto-remove when nothing pending. ⬇ PDF / 🖨 Print / 📲 send.
- Party yarn + savings: given vs used vs returned; contract-end target-vs-actual saving + system SUGGESTS transfer (nets cross-party usage) → user confirms → logged transfer to owner account; reasoning thread per contract.
- SS orders vs stock: SS SOs ↔ assigned FG (short/excess) + free-floating FG ready-but-not-dispatched by stage.
- Sell list: dead/no-order with interest cost @1%/mo + resultant; the sales tipping point (offer −3/−5/−8%).
- Yarn stock: own|party by location + today's movements (24h) + direct deliveries pending confirm + gatepass pending external confirm (confirm-links, WhatsApp asks).
- Party weft cover (#wf): stock, daily use of running qualities, cover days, danger level (<5d), 📲 WhatsApp replenish pretyped; sub-rows quality-wise; "0d blocked" for C-14.
- Beam book: positions empty/floor/at-sizing/at-weaving/repair/ party-to-empty (each drills beam-wise); pending outward = sizing-outward-wise (OS-31… one load many beams, drills beam-wise).
- Sizing: pending tippans vs SO/prod-order (warp assigned) → confirm; tippan issued but GP/delivery not assigned → assign outward; sizing done → reconciliation pending (two-step receipt, used-kgs).
- Winding recon: bags·cones·kg out → cones·kg in, empty bags + ring wt, wastage % vs 2% target, diff net/gr, recon status; over-target flagged until winder explains.
- Loom efficiency: fleet + per-loom (breaks/stops) + 🔗 loomgate utility dashboard link (machine-vendor analytics; adapter D4).
- Weft consumption (day-end): count-wise summary (incl. production mtrs) + drill per count → party/design rows; std=0 gap flagged (20S-SLUB design master).
- Prod-start promise vs expected (#pd): per order/contract — promised vs expected start, delay + reason (planning backlog, sizer delay, looms down, JW weft-not-given blocks).
- Checking (#cq): queue (source: in-house/weaver) · C/R 24h with reasons · checking reports 24h weaver-wise (signatures) and customer/SO-wise (grade split) · packing %.
- Fabric quality (#gm): grade distribution + packing% + C/R 24h · most frequent damages · loom-wise damages · quality-wise damages (shareable to yarn).
- Mending (#mn): packing% · C/R 24h with reasons + dispositions.
- Dispatch: pre-slips w/ rolls·m·kg·grade-split·vehicle · ready-not-out w/ kg+grade · delivery-vs-SO w/ m·kg by grade · role copies at external boundary.
5. Per-user personal dashboards
- Owner: todos (amendments, hishob gates/objections, OCR, PO threshold, ready-not-out) + stock cycle / order book / hishob.
- Planner: beams to plan, tippans to confirm, next-beam proposals, load (advisory), his cycle stages.
- Godown: gate to confirm, OCR receipts, park-lots, stock take, weft cover replenishments.
- Checker: queue, my grades.
- Sales: stale leads (reply), OCR, sample follow-ups, deliveries.
6. Approval & control flows
- Amendments: within tolerance auto; beyond → owner approve (logged).
- PO: above spend threshold → owner (Create PO carries need context).
- Sample waiver: ≤₹1000 the user's right; >₹1000 owner.
- Hishob final approval (owner) — every type (job-work, sizing, winding) → unlocks print/send + releases the bill hold (payment blocked until approved).
- Outsourced JW contract: weaver/machines/mtrs, expected start days (floor 15), delivery tolerance at creation.
- Saved-weft contract-end transfer: system suggestion (nets cross-party use) → user confirm → execute.
7. Metrics and semantics (as agreed)
- Cover = stock ÷ planned-use profile (current until rise date, then planned rate). Capacity = in-house + outsourced loom-days. Packing % = fresh-goods share. C/R 24h = C+R rolls last 24h with defect reasons. Interest cost = value ×1%/month aged. Promise-vs-Plan = promised start/completion vs expected, shown as overdue days.
8. Open decisions (do not block production)
Valuation FIFO vs weighted-avg (REPORTS §6) · numbering sequences · grade pricing (A/B/C/R) · promised-completion vs target calendar · Tally dues (later phase) · AI bot phase · planning-board detail (production-time) · 3rd-shift matrix · partner confirmations (WhatsApp Business API later).