T
Sign in

REPORTS.md — report placement, exceptions & approvals (catalogue)

REPORTS.md — report placement, exceptions & approvals (catalogue)

Round 24 (2026-09-02) — rebuilt to the owner's philosophy. This catalogue is built step by step, one workflow step at a time: for each step we decide what report/dashboard lives there, how exceptions are reported, and how approvals happen. Nothing is final until the owner signs each point.

Standing caveat (owner, round 24): the existing inventory system is buggy and haphazardly built — its numbers and formats are taken with a grain of salt. Everything derived from it here is indicative: verify before trusting, ask when unsure. Same rule applies to every old-system upload we decode.

1. Principles (owner — binding on every design)

  1. No report silo. Reports are NOT a separate menu/module. Each report or dashboard is placed where it is used — in the workflow screen of the step whose decision it supports. The user never goes hunting for a report.
  2. A report is the finished product. Anything that needs further processing (export to Excel, pivot, manual calc) is not a report. If the user has to process it further, it is a dump — and dumps are only utility exports (form-entry listings with filters), clearly labelled as such, never presented as reports. Every placed report must end in the decision it supports (a number the user can act on), computed in-system.
  3. Exceptions are reported where they occur. Every workflow step flags its own exceptions in-system (queues, tiles, diff columns) at the moment and place the user is already working — not in a separate "exception report".
  4. Approvals happen in-system. All approvals/acknowledgements — hishob accept/object, amendments beyond tolerance, reconciliation acceptances, sample waivers, job-rate renegotiations — are inside the system. The user leaves the system only to communicate with external parties (WhatsApp), and even those confirmations come back in-system via tokenized confirm-links (round 20: /confirm/<token>, no login). Scope refinement (round 25): printed, stamped/signed documents exist ONLY where goods cross our boundary to/from EXTERNAL parties (trader, sizer, weaver, buyer); internal movements (dept↔dept, godown↔gate, transporter in our custody) are system-approval only — intimation → due-list → tap → confirm, no paper.
  5. Every form dumps. The universal dump station (docs/DUMPS.md) is a MUST: any form exports its raw records to Excel/CSV with filters drawn from its own fields (date range, party, quality/design, status…). Dumps cover the long tail of analysis without prebuilt reports and are the sensor for what the team needs next (the dump loop: recurring export → build it in-system → the recurring export retires). Dumps are deliberately NOT reports (§1.2) and never masquerade as one.
  6. One event journal (ARCHITECTURE.md §2): everything is a computed view over typed events; live by default, stamped with an as-of time when exported.
  7. Statuses are never manual (DASHBOARDS §5.3): a status is either workflow-derived (the entry IS the work), aging-derived (system assumes after N days), or system-prompted (a task on the user's personal dashboard — "no update in N days, reply with the reason"; the reply becomes the status). No manual status dropdowns anywhere.

Decision tags: R = printable/exportable statement (records, audit; paper prints only at the external boundary — round 25: internal moves are system-approval only) · L = live dashboard tile · RL = both · D = utility dump/export (form listing + filters — explicitly not a report; the dump station, DUMPS.md).

2. The two uploaded reports (decoded 2026-09-02 — reports/; buggy-source caveat above applies — verify the old system's numbers)

2.1 Job-work hishob — "In/Out/Consumption Statement" (per contract)

Source: 20260902-25a21f06-job_work_hishob.pdf (2 pages, contract 3 / party KEN ENTERPRISES LIMITED, P. Contract No 270052). The format we reproduce in-system as the per-contract hishob statement (A6). Sections:

Section What it carries Source events
BEAM INWARD DETAIL per set: set no, date, design, F.No (flange), beam no, cuts, sizing mtr, RS (reed space), sizing name, production mtr, beam ret.; totals C1–C3 beam register + D production mtrs
Getting / Knotting Less (105.00) — warp mtrs lost at knot join beam-end/knot events C5/D5
Shrinkage % (4.52%) = (sized warp mtrs − production mtrs) ÷ sized warp mtrs sizing mtrs vs production mtrs C3 + D
YARN OPENING DETAIL per yarn: from-set no, yarn, mill, net wt (opening balances) B movement events
YARN INWARD DETAILS per inward: GP no, PGPno, date, mill, yarn, bags, cones, net wt, rec. count, cal wt; totals B2 inward
COLTH OUTWARD DETAILS per dispatch slip: slip no, date, design, pick, tags/rolls, total mtr, fold, fold-less mtr; totals F2 dispatch
YARN CONSUMPTION per tag-batch: design, yarn, pick, tags, mtrs, consumed kgs consumed = mtrs × per-mtr req (standard!)
SUMMARY per set no: opening bal, inward, consumed, return/trans, balance; contract totals the four legs above
YARN RETURN / TRANSFER GP no, date, mill, yarn, bag, net wt, count, cal wt, set no B5 movements
WEFT YARN REQ count, RS, pick, count, Y Req, wastage %, PER Mtr Yarn Req costing engine (COSTING.md §2)

Key math verified: Per Mtr Yarn Req 0.095139 = Y Req 0.090608 × (1 + 5%); Y Req = pick × RS(m) × (0.5905/Ne)/1000; Consumed = mtrs × Per Mtr Yarn Req (checked 3710×0.095139 = 352.97 ✓, 41817×0.095139 = 3978.43 ✓). → The hishob's consumption is at STANDARD rate (engine factor), not weighed actual — it is a yarn-account statement, not a consumption study. Balance = opening + inward − consumed − returns/transfers per set; contract total here −49.47 kg (consumed exceeded yarn given) = the per-contract hishob difference — the exception this statement surfaces.

Approval (today, from the print): "Any complaint in report, inform within week, otherwise it is considered as accepted by you." In-system version: the statement is generated at the contract's last dispatch; status hishob-pending → hishob-sent (WhatsApp confirm-link to the party) → party Accept or Object (reason + photo) in-system → hishob-accepted → contract closes (PLANNING.md §13 p.2 / §12 flow). Exceptions: balance outside agreed tolerance (short yarn) → flagged on the contract + owner queue; hishob not accepted within N days → follow-up tile.

Placement: the contract screen itself (button "Generate hishob", status chip, objection thread) — RL: live per-contract status + printable statement in exactly this format.

2.2 Actual vs Standard yarn consumption (the why of weft-issue + barcoding)

Source: 20260902-d7f118d0-actual_vs_standard_consumtption.pdf (4 pages, period 01–31 Aug 2026). Purpose (owner): shows why every weft cone is barcode-issued to a loom/beam — without that, actual consumption per design does not exist, only standard estimates.

Column block Meaning
Party · Type of Loom · Design · Yarn Name · Count grouping
WeftIssue Cone cones issued to looms in the period (barcode-scanned weft issues, D2) — the ACTUAL basis
Physical Diff. Cone stock-take difference (barcode stock vs physical count)
Per Cone Wt · WeftIssue NetWt · WeftIssue CalWt actual issued kgs (weighed) vs calculated
Production Mtr mtrs produced per party/design in the period
Standard Consuma. mtrs × engine per-mtr weft req (like hishob §2.1)
Diff Consuma. issue wt − standard (positive = over-issue/wastage; negative = saved weft)

Grand total (Aug): 18,169 cones, physical diff 255 cones, issue net 38,354.29 kg, production 764,226 m, standard 42,527.97 kg, diff −3,594.47 kg — the factory wove with ~3.6 t LESS weft than standard (saved weft → weaver account/transfer, B6). Page 4 rolls up per yarn: diff wt + standard consumption.

Exceptions visible in the data (each becomes an in-system flag): rows with mtrs but zero issue (weft from opening balance/party yarn — must explain); rows with issue but zero mtrs (weft issued late in period); standard = 0 for 20S-SLUB (construction-master gap — flagged so the engine factor is fixed, not silently zero); physical-diff cones → stock-take exception.

Owner's instruction: we build consumption DIFFERENTLY — not a month-end 4-page dump. Placement: at the weft-issue / weaving step (D2, D3): a live per-loom per-beam consumption tile (actual issued vs engine standard, per design), exceptions flagged as they appear (over-limit diff, missing factor, no-issue-but-mtrs), period rollups only as downloads from the same tile. Actual consumption is a D2 by-product, not a report run.

3. Universal form dumps (the dump station — MUST)

Every form ships with a dump export: raw records to CSV/Excel with filters from the form's own fields (date range, party, quality/design, status, and per-form keys — set/beam/lot/loom/vehicle…). One Dump section indexes every form; the same export action sits on each form's list screen. The full per-form filter map, the dump-loop discovery (recurring export → build the analysis in-system → retire the export), formats, and integrity rules are in docs/DUMPS.md. A form without its dump is not done.

4. Placement map — step by step (A→F, +G hooks)

Per step: reports/dashboards placed there (R/L/RL/D), exceptions, approvals. Stage A is reviewed (round 23); stages B–F are initial placement only — exceptions/approvals to be reviewed at their step. Old-software menu names in brackets.

STAGE A — COMMERCIAL (✓ reviewed round 23)

Step Placed reports / dashboards Exceptions (in-system) Approvals (in-system)
A1 Lead/enquiry (trading) Lead pipeline tile (commercial board); lead log dump (D) follow-ups due queue; stuck-lead age — (capture is autopilot, Phase 4)
A1b Job-work contract entry Contract screen; broker-confirmation document attached (R, print) OCR-extraction low-confidence queue contract confirm taps (prefill requires explicit confirm)
A2 Requirement calc Procurement need tile at the requirement screen (Σ demand − free − in-transit) — the buy decision itself, not a dump nothing-to-procure / over-allocation flags —
A3 Samples / strike-offs Sample tracker + pending-samples tile (commercial board) follow-up due; sample not responded sample charge auto-priced; waiver = explicit owner action
A4 Order confirm / SO SO screen with live balance & delivery position; amendment history on the order (R print, D export) amendments beyond tolerance (Diff. Mtr./Beam) queue amendment within tolerance = auto; beyond = owner approve (logged, never rewritten)
A5 Hand-off Pending-references list (approx beams per contract/JW/prod-order → planner taps) unassigned park-lot aging flag —
A6 Status + hishob Job-work hishob at the contract (RL — §2.1); per-party yarn-account list; status timeline balance outside tolerance (short yarn); hishob not accepted in N days hishob accept/object by party via confirm-link → hishob-accepted closes contract

STAGE B — YARN (placement; review pending)

Gatepass/intimation/challan prints (R) · yarn stock statement with LOCATION (L+CSV) · Yarn Hishob (ledger = statement, RL) · Yarn hishob difference (RL) · stock-take difference (L) · procurement board (open POs, partial receipts, to-procure). Exceptions/approvals: review at step B.

STAGE C — WARP PREP (placement; review pending)

Sizing tippan print (R) · beam card (R) · sizer reconciliation (RL) · winder reconciliation (RL) · beam in-flight board section (L) · beam-end intimations. Exceptions/approvals: review at step C.

STAGE D — WEAVING (placement; review pending)

Production planning board (L; D1) · weft-issue consumption tile (L — §2.2) · out-house weaver section + rounder capture (L) · daily efficiency register live table (L, read-only — PLANNING §3.4) · beam-end/knot-gat changeover & downtime (L) · weaver reconciliation (RL). Exceptions/ approvals: review at step D.

STAGE E — CHECKING (& PACKING) (placement; review pending)

Checking report at the checking screen (RL — E1) · grade-mix tile today (L) · FG stock by grade (L) · lumps → bales (L). In-house variant graded at MENDING. Exceptions/approvals: review at step E.

STAGE F — DISPATCH (placement; review pending)

Dispatch pre-slip (F1) at planning/office — the plan created earlier, office marks graded rolls/lumps against the order (balance visible) → transporter + guard due-lists tap-load → on completion the final dispatch slip is generated (actuals vs plan, tolerance check) · SO vs delivery position by grade (L) · dispatch pending queue (L) · party-wise delivery performance (L). Print + stamped copies only at the external boundary (buyer crossing, round 25) with role copies (office/transport/ customer) + PDF + confirm-link. Exceptions/approvals: review at step F.

STAGE G — TALLY HOOKS (later)

Voucher exports per BRIDGE contract (yarn booking GST, receipts, dispatch, job-work billing) — D to Tally, never a placed report.

5. Cross-step runtime boards (DASHBOARDS.md §1–2)

Company / per-setup / floor-TV / commercial boards remain the live roll-ups; every tile maps to step events (DASHBOARDS.md §2). A placed report and a board tile share the same underlying aggregate — the report is the downloaded, as-of-stamped view of the tile where the step needs it.

6. Valuation decision — the one open owner decision (unchanged, round 22)

Owner decision pending (PLANNING §13 p.7; BUSINESS.md §4): stock-mode P&L needs FIFO vs weighted-avg; job-work needs none.

  • Scope: against-order trading = direct P&L per SO (no valuation); stock & sell trading consumes FG stock → COGS per the chosen method; job-work = conversion income on party material — never valued into our stock (ARCHITECTURE.md §2), only tracked given/WIP/returned + wastage recovery.
  • Lane cost per production lot, stored per lot, never aggregated away: yarn actual (booking/gatepass rate + freight) + conversion actual (sizing + weaving + checking/mending booked to the beam/lot). Yarn rates change daily (rate board exists) — lots of one design differ.
  • Recommendation: implement both as computed views (the method is a reporting choice, not an architecture decision); formal P&L defaults to weighted-avg per design-quality for Phase 1 (Tally-aligned, no per-lot chain risk), FIFO as the comparison view. Seconds/bales valuation waits on the grade-pricing decision (§13 p.11).

7. Owner inputs — cadence changed to step-by-step

Uploads land at the separate drop /upload-reports (files in reports/; distinct from the forms/gatepass drop at /upload). With the step-by-step review, reports arrive per workflow step as we review it.

  • Received (2026-09-02): job-work hishob statement (format, §2.1); actual-vs-standard consumption (context, §2.2). Received slips for OCR intake and the reconciliation formats (sizer/winder/weaver) still pending.
  • Decisions: valuation default (§5) · GST config per supplier · numbering sequences (FIELDMAP §10 q.17) · LTOL/UTL · grade pricing A/B/C/R · "Booking Entries" meaning · promised-completion vs target-date calendars.

8. Build note

Reports/dashboards/tiles are views over the event journal; print via daisyUI print CSS; exports CSV/XLSX/PDF with an as-of timestamp (DASHBOARDS.md §4). Placement is enforced in the screen map: a report that does not anchor to a workflow screen is a dump (D), not a placed report. New report screens are added to the full-flow map (static/full-flow.html) as designed — regenerate per the generator when the flow changes.

9. Boards added in the design freeze (rounds 37–43) — spec = BOARDS-A.md

Board (component page) Where it lives Key semantics
Capacity bar view (#cap) Company Gantt (days⇄months), in-house + outsourced rows, machine drill, next-order from pipeline quotes (start ≥15d → weaving → check/pack → dispatch), over-run → outsourced JW contract (15d floor, tolerance)
Cover days (#cov) Company planned-use profile (rise + date), contract-wise drill, Create PO
Party weft cover (#wf) B·Yarn days of weft stock per party vs running qualities, danger levels, 📲 WhatsApp replenish
Weft consumption (#wc) D·Weaving DAY-END (24h from issue), count-wise summary incl. production mtrs, drill per count
Prod-start promise (#pd) D·Weaving promised vs expected start + reasons; JW blocked by weft-not-given
Fabric quality (#gm) E·Checking packing %, C/R 24h, frequent damages loom-wise / quality-wise
Mending (#mn) · Checking (#cq) E packing %, C/R 24h with reasons, checking reports 24h (weaver + customer/SO)
Sell list w/ interest (#sl) Stock & sell value + 1%/mo interest + resultant — the sales tipping point
SS orders vs stock (#fg) Stock & sell SO ↔ assigned FG, free-floating ready-not-out by stage
Beam book (#bi) · Sizing (#sj) · Winding (#wd) C beam-wise drills, sizing-outward-wise pending, tippan-no-GP track, wastage %
Hishob (#hi) JW REPORT w/ final OWNER approval → print/send + bill-hold release (JW, sizing, winding); ⬇PDF/🖨/📲; auto-remove when nothing pending; PDF archive in dump station
Party yarn (#py) JW contract-end target-vs-actual saving; saved-weft transfer suggestion (nets cross-party use) → user confirms

Also adopted: every dashboard = period bars; every table = sort/search/ filter; every component = hover + ⓘ What·Data·Who/System; day-end vs live semantics; WhatsApp links to real numbers.