Automation Opportunities — Client Reference Docs Review
Date: 2026-10-01 · Source: docs/reference-docs-shared-by-client/ (9 ERP screenshots, 5 product-master screenshots, 4 Excel workbooks)
Purpose: list every automation we can offer the client, backed by evidence from their own files, and show how each one connects to the Ops Tracker (PPC) build.
1. Executive summary
The client runs the whole business on a Google Sheets "ERP" with tabs STATUS · INV/PUR · ORDERS · CHALLAN · COP · IN/OUT · VSR · COP HISTORY · MASTER. Next to it sit Google Forms for the machine master and breakdown log, plus per-item costing sheets that pull rates from a central rate sheet through IMPORTRANGE. Scripts and buttons already exist ("UPDATE ALL", "Update Stock", "SUBMIT"), so the team is comfortable with automation. The sheets have simply hit their limits.
What we found in their files:
- Status text is typed by hand and goes stale. Order lines show "IN STOCK" while net stock is 5 against a balance of 200.
- Formulas are broken or wrong.
#VALUE!,#ERROR!,#DIV/0!and#REF!all appear on live sheets. The MV9650 costing omits one operation from its total, so cost is understated by about 17%. - Stock cannot be trusted. Stock is clamped at 0, carry-forward goes negative, and in-house production is never booked into stock (for example, M1751 has 28,722 pcs outward against 6 pcs inward).
- Vendors are chased by hand. Some POs are 368 days old and still open, and emails go out only for over-receipt.
- Breakdowns are logged after the fact, in one case 10 days after repair. Downtime never reaches planning: 19 breakdowns cost 446 h of wall-clock downtime and ₹79,684 between May and Sep 2026.
- Nothing connects orders → castings → machines → schedule → dispatch. This is the gap Ops Tracker fills.
Top 10 recommendations (ranked by value ÷ effort)
| Rank | Automation | Why it ranks here |
|---|---|---|
| 1 | A1 · Order release → production bucket → auto-schedule | The core of Ops Tracker; replaces the "Tick for mfg" checkbox and the hand-typed "projected date" |
| 2 | A3 · Auto order status + dispatch-ready list | Fixes contradictory "IN STOCK" flags; dispatch decisions rest on these flags |
| 3 | G1 · Real-time breakdown → machine DOWN → reschedule | 446 h of downtime per 4.5 months that planning cannot see today |
| 4 | F1 · Costing engine from one routing master | Found a live formula bug that understates cost by about 17% (margin looks like 32% but is really about 18%) |
| 5 | B1 · Vendor PO follow-up + escalation | POs up to 368 days overdue with no reminder sent |
| 6 | C1 + C2 · Derived stock ledger + production booking | Every "net stock" figure downstream depends on this |
| 7 | B5 · Casting requirement planning (MRP-lite) | Castings gate production; today they are ordered from free-text notes |
| 8 | D1 + D2 · Job-work reconciliation + auto challan + ITC-04 data | GST compliance risk plus material sitting at job workers untracked |
| 9 | G3 · Preventive maintenance plan from breakdown history | APC battery failed 4 times, CNC001(jyoti) failed 5 times |
| 10 | F3 · Margin monitor per order line | Pricing decisions are made without true cost |
2. What we reviewed
| # | File | What it is | Key observations |
|---|---|---|---|
| 1 | erp/image.png |
Inventory transaction log (IN/OUT style) | Job-work challans out/in to the shot-blasting vendor for M1116 Trunnion Assembly; rejects to foundries; recorded weight vs avg RM weight; total weight 0 on inward rows; date typos (13/1/21 among Nov-2024 rows, 23/1/2/24) |
| 2 | erp/image (1).png |
ORDERS tab (customer POs) | PO, item, qty, req date, Tick for mfg, marks, HSN, GST, balance, SP, multiple dispatch invoice refs, hand-typed stock/projected status, order value, net stock, COP price key, currency, FX rate, lock date |
| 3 | erp/image (1) (1).png |
INV/PUR tab (sale/purchase ledger, ~8,000 rows since 2018) | "Incoming RM by [clerk]" / "Outgoing invoice by [clerk]"; INWARD EXCEEDS ORDER; ingredients ARRAYFORMULA; manual "type ok once approved by Purchase/EA"; every visible row = PRICE NOT FOUND; #VALUE!/#ERROR! in headers |
| 4 | erp/image (2).png |
Purchase order tracker (castings/RM) | Delay up to 368 days; ORDER PENDING / QTY EXCEEDS PO; email sent only on over-receipt; rate in ₹/kg; "Heat code is must" |
| 5 | erp/image (3).png |
Generated Delivery Challan (Reject → J.k castings) | Doc no. T/26-27/01R, vehicle no., time of removal, ₹/kg valuation, ₹36,301.44 taxable. Party GSTIN and Address left blank |
| 6 | erp/image (4).png |
Item query sheet (item 360 view) | Cast/finished wt, stock carry-forward, net vs notional stock, pending customer order vs pending procurement, inward/outward/reject/scrap over 30/60/90/365/730 days, last-10 ledger, job-work section, price history; many #DIV/0! and #VALUE! |
| 7 | erp/image (6).png |
VSR — vendor supply report (J.k castings) | Header shows On-time 0.0% while the metric panel shows 57.1%; avg fulfilment 31.8 days, max 80; over-receipts of +5% to +9.5%; one "FULFILLED" row with blank qty ordered |
| 8 | erp/image (7).png |
Price history + weight list | TMR556WB price ₹875 (2021) → ₹1,166 (2026) across customer POs; item cast wt vs net wt list |
| 9 | erp/image (8).png |
Party MASTER + lookup lists | Vendor/Buyer master (Vendor/vendor/BUYER inconsistent casing, many GSTINs blank); status list (Inward, Outward, Stock carry forward, Org/Counter sample in/out, Reject, Job challan out/in, Scrap, Quarantined); raw-material list (SG 500/7, CI 25GR, EN8, 20MnCr5, …) |
| 10 | product-master/image.png |
Item-code rules + marks list | Bush = X.X.XB (ID.Length.OD); accessory = XXXXY; in-house job work = JWXXX; ~35 customer/OEM marks (AM=AUTOMANN, MNS, VOLVO FM460, SCANIA G500 …) |
| 11 | product-master/image (1).png |
New-product entry form | Fields: product code/OE no., MPN ("check last MPN for AM & MNS" by hand), HS code, GST, weights, material, finish, Contains (Child*Qty), original nos.; side calc of price-revision impact (2.81%) |
| 12 | product-master/image (2).png |
Product master table | MPN series per mark (BFA… = AM, BFM… = MNS); HS codes of mixed length (7325, 8716, 8484 vs 8-digit); material spelled SG 500/7 / SGI 500/7 / SG500/7 / SG; GST 5% on one auto part; Sr. No. and gross wt mostly empty |
| 13 | product-master/image (3).png |
BOM explode sheet | Parent → Child raw (MFL46542BB*1) → parsed child, qty per parent, child stock; "Buildable Qty" column empty |
| 14 | product-master/image (4).png |
Item stock summary | Pending qty / carry-forward / inward / outward / rejected / scrapped / stock. Stock floors at 0 (M1464: 285+2294−2655−53 = −129, shown as 0); carry-forward −21 on 31.16.105 |
| 15 | Breakdown Report.xlsx |
Google-Form log of machine breakdowns (19 rows, May–Sep 2026) | Downtime typed as text ("1 Day 23 Hours 11 Minutes"); logged up to 10 days after repair; remarks contain PM advice nobody acts on |
| 16 | Machinery_Equipment Master.xlsx |
Google-Form machine register (36 assets) | Operations copy-pasted ("Drilling, Turning, Milling" on drills and angle grinders, "Broaching" on an air cooler); cost = 1 placeholder; production year later than installation year; warranty/spec/spares mostly blank |
| 17 | Cost MV9650.xlsx |
Per-item costing (MV9650 Load Spring Latch) | RM 0.212 kg × ₹105/kg + 4 operations (machine, jig, gauge, control spec, pcs per hours, skill rate) + paint + overhead. H10 = SUM(H3:H7) skips op 4 (H8, ₹11.43/pc) |
| 18 | MV9650 Production Plan.xlsx |
Copy of the same costing sheet | Same layout and same item, but different formulas (H3 = G2*J2 points at an empty cell; paint/overhead without ×2) and all #REF! (IMPORTRANGE broken) |
3. How the client works today (inferred)
Customer PO (AMNJ / AMON / AM-AB export, MNS-1..7 Mumbai, SHR, GRAB …)
│ typed into ORDERS tab ──► "Tick for mfg" checkbox (manual release)
▼
Casting / RM purchase (PO/BA/26xx/nnn to foundries: J.k castings, Kent Malleables, KR INDS …)
│ tracked in PO tracker; delay = today − PO date; reminders by hand
▼
Inward (INV/PUR, "Incoming RM" clerk) ──► rejects back to foundry on Delivery Challan (₹/kg)
▼
Machining in-house (Lathe ×8, Drill ×7, CNC turning ×2, VMC ×2, HMC ×2, 5-axis ×1, VMM ×2, VTL ×1, grinders)
│ + Job work out (shot blasting, Rurka Sales Corp) ──► Job challan out / inward
│ + Paint section (M-seal → Regmark → dip black glossy → oven)
│ ✗ production completion is NOT booked into stock
▼
Packing ──► Outward invoice (T/26-27/nn, "Outgoing invoice" clerk) ──► balance on ORDERS line reduced
▼
Reports by hand: Item query, VSR per vendor, COP / COP HISTORY, STATUS
Side systems: Machine master form, Breakdown form, costing sheets (IMPORTRANGE to rate master)
4. Data-quality findings (why automation is needed)
| # | Issue | Where | Example | Consequence |
|---|---|---|---|---|
| Q1 | Hand-typed status contradicts the numbers | ORDERS | MW16952 / MW16953: balance 200, net stock 5 / 6, status "IN STOCK" | Wrong dispatch promises |
| Q2 | Price lookup key broken | INV/PUR | COP PRICE KEY = PO\|Mark\|Item but PO is blank → \|AMNJ\|TMR8392R → PRICE NOT FOUND on all visible rows |
Sale value never computed, no revenue view per item |
| Q3 | Costing SUM range wrong | Cost MV9650 | SUM(H3:H7) excludes op 4 (₹11.43). Total ₹54.37 should be ₹65.80 |
MV9650 sells at ₹80. Apparent margin 32%, true margin ≈ 17.75% |
| Q4 | Divergent copies of one costing | Cost vs Production Plan | Different formulas for RM, paint and overhead in two files for the same item | No single source of truth; figures depend on which file is opened |
| Q5 | Wrong skill rate | Cost MV9650 | Paint section costed at "Drill" rate | Op-level cost wrong |
| Q6 | Rate list polluted | Costing Sheet2 (labour list) |
Item codes 31.36.010 SR, FG-76 mixed into the skill/machine rate list |
Dropdowns offer junk values |
| Q7 | Stock floored at 0 / negative carry-forward | Stock summary | M1464 true −129 shown 0; 31.16.105 carry-forward −21 | Hides missing inward entries |
| Q8 | Production never booked to stock | Stock summary, Item query | M1751 outward 28,722 vs inward 6; "Production to packing last 60 days = 0" | Net stock is meaningless for machined items |
| Q9 | GST / HSN inconsistent | ORDERS, Product master | HSN 87088000 at 28% on one line and 18% on others; 4-digit HSN 7325; 5% on a radiator fan (87089100) |
Invoice and tax errors |
| Q10 | Impossible dates | ORDERS, IN/OUT | Req date 4/5/24 earlier than PO date 3/4/25; 23/1/2/24; 13/1/21 among 2024 rows |
Broken ageing and delay maths |
| Q11 | Over-receipt with no tolerance rule | PO tracker, VSR | MK17000 1,100 → 1,144; 580.264.1 250 → 271 (+8.4%); MW16953 200 → 219 (+9.5%) | Paying for or stocking unplanned quantity |
| Q12 | KPI formula disagrees with itself | VSR | Header "On-time 0.0%" vs panel "57.1%" | Vendor review numbers can't be trusted |
| Q13 | Master data incomplete / inconsistent | Party master, Machine master | Kind = Vendor/vendor/BUYER; GSTIN blank; challan party GSTIN/address blank; machine cost = 1; operations copy-pasted |
Documents print incomplete; scheduler can't use the machine data |
| Q14 | Duration typed as text | Breakdown log | "2 Days 4 Hours 30 Minutes" | No MTTR/MTBF without re-keying |
| Q15 | Late reporting | Breakdown log | DM006 logged 10.1 days after repair; VMC001 4.1 days; VMM002 3.2 days | Planning never knows a machine is down |
| Q16 | Material naming drift | Product master | SG 500/7, SGI 500/7, SG500/7, SG |
Purchase/MRP grouping fails |
| Q17 | Live formula errors | Orders, INV/PUR, Item query, Production Plan | #VALUE!, #ERROR!, #DIV/0!, #REF! |
Silent wrong numbers |
5. Automation catalogue
Effort: S ≈ under 1 week · M ≈ 1–3 weeks · L ≈ 3+ weeks (one developer, after the Ops Tracker backend core exists). Impact: H / M / L. Phase: see §6.
5.0 Summary table
| ID | Automation | Module | Impact | Effort | Phase |
|---|---|---|---|---|---|
| A1 | Order release → production bucket → auto-schedule | Sales → PPC | H | M | 1 |
| A2 | Auto-allocate dispatches to open PO lines (fix PRICE NOT FOUND) |
Sales | H | M | 1 |
| A3 | Auto order status + dispatch-ready list | Sales | H | S | 1 |
| A4 | Capable-to-promise delivery date on order entry | Sales → PPC | H | M | 2 |
| A5 | Order validation (HSN→GST, dates, duplicates) | Sales | M | S | 0 |
| A6 | FX rate fetch + lock for export orders | Sales | M | S | 2 |
| A7 | Customer notifications (order ack, dispatch, delay) | Sales | M | S | 2 |
| A8 | Short-close / balance clean-up workflow | Sales | L | S | 2 |
| A9 | PO intake from WhatsApp / email / portal | Sales | H | M | 1 |
| B1 | Vendor PO follow-up + escalation ladder | Purchase | H | S | 0 |
| B2 | Over-receipt tolerance + auto vendor email | Purchase | M | S | 0 |
| B3 | Promised-date capture; delay vs promise, not vs PO date | Purchase | M | S | 1 |
| B4 | Vendor scorecards for all vendors, monthly, auto-emailed | Purchase | H | M | 1 |
| B5 | Casting / RM requirement planning (MRP-lite) → draft POs | Purchase → PPC | H | L | 2 |
| B6 | Casting ₹/kg trend watch → cost re-run | Purchase → Costing | M | S | 2 |
| B7 | Purchase approval workflow | Purchase | M | S | 1 |
| B8 | Material-ready date gates job release in scheduler | Purchase → PPC | H | M | 2 |
| C1 | Single transaction ledger with derived stock (negatives flagged) | Stores | H | M | 1 |
| C2 | Shop-floor production booking → FG stock | Stores ↔ PPC | H | M | 1 |
| C3 | Item 360 page (replaces Item query sheet) | Stores | M | M | 1 |
| C4 | BOM explosion, buildable qty, kit shortage, auto-consume children | Stores | H | M | 2 |
| C5 | Weight-variance alerts (recorded vs standard) | Stores / QC | M | S | 2 |
| C6 | Min-stock / reorder alerts for fast movers | Stores | M | S | 2 |
| C7 | Sample & quarantine tracking with ageing | Stores / QC | L | S | 3 |
| C8 | Barcode/QR labels + scan-based inward/outward | Stores | M | M | 3 |
| D1 | Job-work reconciliation per job worker with ageing | Job work | H | M | 1 |
| D2 | Auto delivery/job challan PDF + ITC-04 data pack | Compliance | H | M | 1 |
| D3 | Reject-to-vendor → auto debit note | Purchase / Accounts | M | S | 2 |
| D4 | E-way bill / e-invoice JSON generation (where applicable) | Compliance | M | M | 3 |
| E1 | Item-code + MPN auto-generator and validator | Engineering | M | S | 0 |
| E2 | Duplicate / cross-reference detection (OE no., original nos.) | Engineering | M | S | 2 |
| E3 | HSN → GST auto-fill and check | Engineering | M | S | 0 |
| E4 | Controlled vocabularies (material, finish, marks, kind) | Engineering | M | S | 0 |
| E5 | "Contains" text → structured BOM | Engineering | M | S | 1 |
| E6 | New product → auto-create costing + routing drafts | Engineering → Costing/PPC | M | M | 2 |
| E7 | Product spec sheet / export catalogue PDF | Engineering / Sales | L | S | 3 |
| F1 | Costing engine from one routing + rate master | Costing | H | M | 1 |
| F2 | True machine-hour rate (labour + depreciation + power + maintenance) | Costing | H | M | 2 |
| F3 | Margin monitor per order line | Costing / Sales | H | S | 1 |
| F4 | Price-revision engine (RM change → proposed SP, impact %) | Costing / Sales | M | M | 2 |
| F5 | RFQ quote generator | Costing / Sales | M | M | 3 |
| G1 | Real-time breakdown ticket → machine DOWN → reschedule | Maintenance ↔ PPC | H | M | 1 |
| G2 | MTTR / MTBF / downtime-cost dashboard | Maintenance | M | S | 1 |
| G3 | Preventive-maintenance plan + reminders → scheduler windows | Maintenance ↔ PPC | H | M | 2 |
| G4 | Maintenance spares register + reorder | Maintenance | M | S | 2 |
| G5 | Warranty / AMC expiry alerts | Maintenance | L | S | 2 |
| G6 | OEE per machine | Maintenance / PPC | M | M | 3 |
| H1 | Machine capability matrix (structured operations, eligibility) | PPC master | H | S | 1 |
| H2 | Asset register validation + depreciation | Masters | L | S | 2 |
| I1 | Import costing-sheet routings into PPC routings | PPC | H | M | 1 |
| I2 | Digital job card / traveller with QR | PPC / Shop floor | M | M | 2 |
| I3 | In-process QC checklist from gauge/spec + heat-code traceability | QC | M | M | 2 |
| I4 | Daily shift plan push to supervisors | PPC | M | S | 2 |
| J1 | Daily MIS digest (email / WhatsApp) | Reporting | H | S | 1 |
| J2 | Formula-error & data-health watchdog | Reporting | M | S | 0 |
| J3 | Role-based access + audit trail | Platform | M | M | 1 |
| K1 | One-time migration + cleanup of Sheets data | Enabler | H | M | 1 |
| K2 | Transitional Sheets ↔ app sync | Enabler | M | M | 1 |
5.A Sales orders & dispatch
A1 · Order release → production bucket → auto-schedule
- Today: a "Tick for mfg" checkbox on the ORDERS tab is the only release signal. "Stock/Projected Date" is free text ("IN STOCK", "CASTING ORDERED", "DIE MOVE TO ATAM VALVE").
- Automate: ticking (or approving) an order line creates a
DemandLine→Jobs (lots) →JobOps from the item's routing in Ops Tracker. The scheduler runs and writes back a computed completion date per line. - Value: answers the client's three dashboard questions (what runs where and when, when do I get item N, when does client C close) directly from real orders.
- Links to:
Project/DemandLine/Jobmodel and scheduling engine inaudit-and-backend-plan.md§5–6.
A2 · Auto-allocate dispatches to open PO lines
- Today: outward rows in INV/PUR build the key
PO|Mark|Item, but the PO column is blank, so every visible row showsPRICE NOT FOUND. One order line carries up to four invoice refs typed by hand. - Automate: when an outward invoice line is saved, allocate the quantity FIFO to the oldest open order line for the same mark + item (with manual override). Price is taken from that line, and balance and dispatch refs update automatically.
- Value: correct sale value and order balance with no lookup keys to maintain.
A3 · Auto order status + dispatch-ready list
- Today: status is typed and goes stale. MW16952 and MW16953 say "IN STOCK" with net stock 5 and 6 against a balance of 200.
- Automate: derive status from data:
Ready to dispatch(free stock ≥ balance),Part-ready (n pcs),In production (ETA from schedule),Awaiting casting (PO ref, ETA),Overdue. Publish a daily dispatch-ready list grouped by customer. - Value: removes the most error-prone manual column; dispatch planning becomes a filter.
A4 · Capable-to-promise date on order entry
- Automate: when a new PO line is entered, insert it as a hypothetical demand, re-run the scheduler, and return the promise date and the delay it causes to existing orders.
- Value: sales commits dates that production can meet. Uses the CTP technique already planned in §6 of the backend plan.
A5 · Order validation
- Automate: HSN → GST rate check (Q9), req date ≥ PO date (Q10), duplicate PO+item detection, quantity > 0, item must exist in product master.
- Value: stops errors at entry. It can be built as a Google Sheets script immediately (Phase 0).
A6 · FX rate fetch + lock for export orders
- Today: columns
Currency,FX Rate(88.2163),Lock Dateand status "LOCKED FROM LEGACY USD VALUE" are maintained by hand for AMNJ (USA), AMON and AM-AB (Canada). - Automate: fetch the daily reference rate (e.g. RBI/FBIL or the CBIC customs notified rate, whichever the client uses) and lock it on PO date or invoice date per policy. Show a realised-vs-booked FX gain/loss report.
A7 · Customer notifications
- Automate: order acknowledgement with promised date; dispatch notice with invoice no., qty and vehicle; proactive delay alert when the scheduler's ETA passes the req date.
- Channel: email first; WhatsApp Business API optional.
A8 · Short-close / balance clean-up
- Today: remarks such as "short close this order" and balances of 1–20 pcs left open for months.
- Automate: suggest short-close when balance ≤ x% or older than n days. Close on approval and log the reason.
A9 · PO intake from WhatsApp / email / portal
- Today: the channel customers use is not visible in the files; every PO line is re-typed into the ORDERS tab by hand, with typos in dates and HSN/GST.
- Automate: the customer keeps sending the PO the way they do now. A WhatsApp Business API number, a shared orders mailbox and an optional customer portal feed one intake. The system identifies the customer from the sender, reads PDF / Excel / photo / plain text, matches item codes and OE numbers to the product master, and pre-fills a draft order line with a confidence per field. Anything unknown or missing triggers an automatic reply asking for exactly that.
- Human step: sales confirms or corrects the draft beside the original message; nothing is re-typed from scratch.
- Value: removes the largest manual data-entry step and the typos Q9 and Q10; first reply to the customer is immediate.
- Needs: a registered WhatsApp Business number and approval; a dedicated orders mailbox; clean product master (E1–E4).
5.B Purchase & vendors
B1 · Vendor PO follow-up + escalation ladder
- Today: delay counters reach 368, 333 and 285 days (AGRIBEST, SS Engg, Fine Auto) with no email sent. Emails go out only on over-receipt.
- Automate: scheduled reminders: T−3 days before the promised date, on the due date, then weekly. After n reminders, escalate to the purchase head. Each reminder lists only that vendor's open lines. Lines older than n days without activity are proposed for closure.
- Value: fastest visible win. It can run on their current sheet (Phase 0).
B2 · Over-receipt tolerance + auto email
- Today:
QTY EXCEEDS POrows (−1, −2, −3, −44) are emailed by hand. VSR shows +5% to +9.5% over-receipts accepted. - Automate: a per-vendor or per-material tolerance (e.g. ±5%). Over-tolerance receipts are blocked at GRN or sent for approval, and the vendor is emailed automatically.
B3 · Promised-date capture
- Today: "Delay" = today − PO date, so a PO placed yesterday for delivery in 60 days already counts as delayed.
- Automate: capture the vendor-promised date per line. Delay and on-time % are measured against the promise, and slippage is tracked when a promise is revised.
B4 · Vendor scorecards — all vendors, monthly, auto-emailed
- Today: VSR is built per vendor by hand. Its header reads 0.0% on-time while its own panel reads 57.1%, and one "FULFILLED" row has a blank ordered qty.
- Automate: for every vendor, every month: OTIF %, average/max fulfilment days, over/under-receipt %, incoming rejection % (the client already tracks 0.99–1.66% overall), ₹/kg rate trend and open-PO ageing. Send as a PDF to the vendor and internally, and rank vendors per material.
B5 · Casting / RM requirement planning (MRP-lite)
- Today: notes such as "CASTING ORDERED", "Casting Order to Vikas metal", "casting need by 25/6/26" and "Check Ingredients".
- Automate: net requirement = open order balance − free FG stock − WIP − open casting POs, exploded through the BOM. The output is draft POs grouped by vendor and material (SG 500/7, CI 25GR, mild steel …) with need-by dates from the production schedule.
- Value: castings are the long-lead item; this is where delivery dates are won or lost.
B6 · Casting ₹/kg trend watch
- Today: J.k castings moved from ₹72 to ₹88/kg within 2026; KR INDS, Kent Malleables and Bedi Exports each have their own rates.
- Automate: alert when a new PO rate deviates more than x% from the last rate or the cheapest vendor for the same material. On change, re-run costing (F1) for affected items.
B7 · Purchase approval workflow
- Today: "Pls enter the text ok once approved by Purchase/EA" in a sheet column.
- Automate: approval request with value limits, one-click approve/reject (email, WhatsApp or app) and an audit trail.
B8 · Material-ready date gates job release in the scheduler
- Automate: each job's earliest start = casting receipt date (actual, or ETA from B3), so the scheduler never plans machining before material arrives.
- Links to:
releaseAtonJobin the PPC engine.
5.C Stores & inventory
C1 · Single transaction ledger with derived stock
- Today: stock is a formula that floors at 0 (M1464 is really −129, shown 0); carry-forward −21; "Stock carry forward" rows are entered by hand.
- Automate: one append-only ledger (inward, outward, job out/in, reject, scrap, sample, quarantine, adjustment). Stock is always derived per item, per state and per location. Negative stock raises an alert instead of disappearing, and adjustments need a reason and an approver.
C2 · Shop-floor production booking → FG stock
- Today: M1751 shows 28,722 pcs outward against 6 pcs inward, and "Production to packing last 60 days = 0". Machined output is never booked.
- Automate: the operator or supervisor records good/reject quantity per job-op (tablet or QR scan on the job card). The final op books FG automatically and consumes the casting, so stock, WIP and schedule actuals all come from one entry.
- Links to:
ExecutionEventin the PPC plan, which replaces the fake in-progress fraction.
C3 · Item 360 page
- Today: the Item query sheet (one item at a time,
#DIV/0!and#VALUE!errors). - Automate: one page per item showing stock by state; open customer orders; open POs; WIP and scheduled completion; inward/outward/reject/scrap for any window; last-n ledger; job-work pending; customer price history (e.g. TMR556WB ₹875 → ₹1,166); vendor rate history; and the BOM tree.
C4 · BOM explosion, buildable qty, kit shortage, auto-consume
- Today: the BOM sheet parses
Child*Qtywith a formula, and its "Buildable Qty" column is empty. ORDERS shows "Check Ingredients" for assemblies. - Automate: buildable qty = min(child stock ÷ qty per parent); show the shortage list per order; dispatching an assembly consumes its children (bolt, washers, nut, bush) automatically.
C5 · Weight-variance alerts
- Today: "Recorded weight" vs "Avg RM wt" vs "As per wt in product list" (e.g. 29.775 vs 28.96 kg; cast 29.42 vs finished 24.62).
- Automate: flag castings outside ±x% of standard weight at inward (supports foundry claims, since castings are bought by the kg). Track machining yield (finished ÷ cast) per item.
C6 · Min-stock / reorder alerts
- Automate: for fast movers (e.g. M1751 at 28,722 pcs outward) and consumables, keep min/max from consumption history and send alerts or draft POs.
C7 · Sample & quarantine tracking
- Today: statuses exist for Org sample in/out, Counter sample in/out and Quarantined, but nothing reports on them.
- Automate: ageing of open samples and quarantined lots, with reminders to close them.
C8 · Barcode / QR labels + scan-based transactions
- Today: the product master has
Box No.andUPC Codecolumns, mostly empty. - Automate: print box and bin labels; scan to record inward, outward, job challan and production. This removes most typing and the date typos (Q10).
5.D Job work & GST compliance
D1 · Job-work reconciliation per job worker
- Today: M1116 Trunnion Assembly goes out to the shot-blasting vendor in lots of 60–125 and comes back in different lot sizes (260, 302 …). 38.42.150 goes to Rurka Sales Corp. "Net pending with JW" is computed by hand in the item query.
- Automate: a live pending-with-job-worker balance per item and vendor, showing ageing per challan, expected return date and loss/weight variance.
D2 · Auto delivery / job challan PDF + ITC-04 data pack
- Today: challans are laid out by hand in a sheet. On the sample (T/26-27/01R) the party GSTIN and address are blank even though a party master exists.
- Automate: generate the challan from the transaction with auto-numbering by series (R = reject, etc.), party details from the master, ₹/kg or ₹/pc valuation, vehicle number and time of removal. Compile ITC-04 data (job-work goods sent and received) per return period, and alert before the GST deadline for goods to return from job work (1 year for inputs).
- Value: compliance plus clean paperwork.
D3 · Reject-to-vendor → auto debit note
- Today: reject challans to foundries are valued (₹36,301.44 on the sample) but there is no visible link to accounts.
- Automate: a reject challan creates a debit-note draft against the vendor, links it to the original PO/GRN and feeds the vendor rejection % (B4).
D4 · E-way bill / e-invoice JSON
- Automate: produce portal-ready JSON for e-way bills (job-work movements and consignments above the threshold) and e-invoices (if the client's turnover requires it), so staff upload instead of re-keying.
5.E Product master & engineering
E1 · Item-code + MPN auto-generator and validator
- Today: coding rules exist only as notes (
X.X.XB= ID.Length.OD for bushes,XXXXYfor accessories,JWXXXfor in-house job work). The form says "check last MPN for AM & MNS", so staff look up the last number by hand. - Automate: pick the type and enter dimensions or the parent code, and the code is generated and validated. The next MPN in each mark's series (BFA… for AM, BFM… for MNS) is issued automatically and never reused.
E2 · Duplicate / cross-reference detection
- Today: the same part appears under several numbers (e.g.
21899326↔VO460.326; OE no. vs MPN vs original nos.). - Automate: fuzzy and exact match on OE nos., original nos. and MPN at entry, with a cross-reference table so any number finds the part.
E3 · HSN → GST auto-fill and check
- Today: 4-digit HSN (
7325,8716,8484) next to 8-digit ones; GST 5% on 87089100; 28% vs 18% on the same HSN in ORDERS. - Automate: an HSN master with rate and effective date. Entering the HSN fills the GST rate, and a mismatch blocks or warns.
E4 · Controlled vocabularies
- Automate: dropdowns plus a one-time cleanup for material (
SG 500/7/SGI 500/7/SG500/7/SG→ one value), finish, marks, party kind (Vendor/vendor/BUYER) and application.
E5 · "Contains" text → structured BOM
- Today:
Containsis free text (MK17000*1, MTB186*1) parsed by formula. - Automate: a BOM editor with item pickers. Existing text is parsed once during migration and validated against the master.
E6 · New product → auto-create costing + routing drafts
- Automate: saving a new item creates a costing draft (F1) and a routing draft (I1) from a template or a similar existing item. Track "items without routing/cost" as a to-do list.
E7 · Product spec sheet / export catalogue PDF
- Automate: a one-click PDF with code, OE/original nos., application, weights, material, finish, HS code, UPC and box no., for export customers (Automann US/Canada) and RFQs.
5.F Costing & pricing
F1 · Costing engine from one routing + rate master
- Today: a copied spreadsheet per item.
- In
Cost MV9650.xlsx,H10 = SUM(H3:H7)misses op 4 (drill + tapping, ₹11.43/pc). Total shows ₹54.37; correct ≈ ₹65.80. MV9650 Production Plan.xlsxholds the same sheet with different formulas and is all#REF!.- The paint op is costed at the Drill rate.
- Automate: cost/pc = RM wt × RM ₹/kg (by casting type) + Σ over routing ops (hours ÷ pcs × rate for that machine/skill) + paint (₹/kg × finished wt) + overhead. It is computed from one routing and one rate table and versioned with an effective date, so every item is recalculated when a rate changes.
- Value: removes a live costing bug and copy drift; the routing is shared with the scheduler (I1).
F2 · True machine-hour rate
- Today: rates come from a skill/machine list (e.g. ₹155.87/h "Drill"). The client's own notes cite machine rates from ₹250 to ₹2,000/h.
- Automate: rate per machine = operator wage + depreciation (machinery master cost and life) + power + maintenance cost (from the breakdown log; e.g. VMM002 spent ₹28,199 in 3 events) + floor overhead.
- Value: gives correct costing and the profit objective the scheduler optimises.
F3 · Margin monitor per order line
- Example: MV9650 sells at ₹80/pc (PO 6131196). At the sheet's cost the margin looks like 32%; at the corrected cost it is about 17.75%.
- Automate: SP vs current cost on every order line. Lines below the margin threshold are flagged at order entry and in a monthly "loss-makers" list.
F4 · Price-revision engine
- Today: the product form has a side calculation of revision impact (qty × old rate vs new rate → 2.81%).
- Automate: when RM ₹/kg or a machine rate changes, propose a new SP per customer and item, show the ₹ and % impact on the open order book, and generate a price-revision letter.
F5 · RFQ quote generator
- Automate: for a new enquiry, pick a similar item or enter weight, material and routing to get cost, add the target margin, and produce a quote PDF (INR or USD/CAD with FX from A6).
5.G Maintenance
G1 · Real-time breakdown ticket → machine DOWN → reschedule
- Today: a Google Form filled after repair (DM006 was logged 10.1 days later). Downtime is free text, and planning never learns that a machine is down.
- Evidence: May–Sep 2026: 19 breakdowns, 446 h wall-clock downtime, ₹79,684 repair cost. HMC001 lost 98 h, CNC001(jyoti) 90 h over 5 events, VMM002 76 h, VMC001(DMG) 74 h.
- Automate: a QR sticker on each machine opens a mobile form with the machine pre-filled, and the operator raises the ticket at breakdown time. The machine is marked DOWN in Ops Tracker, affected jobs are re-planned to other eligible machines, and the supervisor and maintenance staff are notified. Closing the ticket computes the duration automatically.
- Links to:
MaintenanceWindow/ machine status in the PPC model.
G2 · MTTR / MTBF / downtime-cost dashboard
- Automate: per machine and per failure category: count, MTTR, MTBF, cost, and a repeat-failure flag.
- From their data: MTTR ranges from 2.1 h (CNC02 Ace) to 37 h (VMC001 DMG); HMC001 MTTR is 32.7 h.
G3 · Preventive-maintenance plan → scheduler windows
- Evidence in remarks: "check the chain every two months", "clean the water filter from time to time", "machine was not warmed up", "ATC brake worn out, will have to be replaced". APC battery failures: 4 (CNC001 twice, 4.5 months apart; CNC02; VMM002).
- Automate: a PM calendar per machine (battery replacement interval, chain tension, coolant filter, grease cartridge, warm-up checklist). Tasks are auto-generated with reminders, and planned PM is injected into the scheduler as a maintenance window so it never collides with committed jobs.
G4 · Maintenance spares register + reorder
- Evidence: "Relay is out of stock"; belt GT3 1600 8MGT replaced with GT4 1600 8MGT (spec change to record); the machine master's "Spares to be maintained" column is mostly blank.
- Automate: critical spares per machine with min stock, consumption logged against tickets, reorder alerts and part-spec history.
G5 · Warranty / AMC expiry alerts
- Automate: from the machine master warranty period (e.g. AD02RD500 12 months from 2026-01-01; HMC002 12 months from 2026-09-01), alert 30 days before expiry and log warranty claims against breakdown tickets.
G6 · OEE per machine
- Automate: once C2 (production counts) and G1 (downtime) exist, compute OEE (availability × performance × quality) per machine, shift and item.
5.H Masters feeding the scheduler
H1 · Machine capability matrix
- Today:
Operationsin the machine master is unusable ("Drilling, Turning, Milling" on drills and angle grinders; "Broaching" on an air cooler). - Automate: a structured operation picklist per machine type, machine eligibility per routing op, and per-machine cycle-time overrides. The form validates input (Direct Process vs Supporting Equipment; supporting equipment is never schedulable).
- Links to:
RoutingOpRate(machine-dependent processing times), which the scheduler needs.
H2 · Asset register validation + depreciation
- Automate: validate that production year ≤ installation date, that cost is real (not the
1placeholder) and that commissioning date is present. Compute depreciation for F2.
5.I Production execution (Ops Tracker core)
I1 · Import costing-sheet routings into PPC routings
- Key insight: the client's "MV9650 Production Plan" file is the costing sheet. Their routing already lives there: machine type, jig/fixture, gauge/spec, control spec (e.g. "10.50 drill, 113 ±0.5", "M12-1.75 thread"), and output per time (130 pcs / 11 h ≈ 5.1 min/pc).
- Automate: a bulk importer that turns every costing sheet into
Routing→RoutingOp(seq, machine type, setup, cycle min/pc, fixture, inspection spec). Costing (F1) and scheduling then read the same data.
I2 · Digital job card / traveller with QR
- Automate: an auto-printed card per job showing routing ops, fixture, gauge, control spec, qty and due date, with a QR code used for C2 production booking and I3 QC entry.
I3 · In-process QC checklist + heat-code traceability
- Evidence: gauge and spec columns in the costing sheets; "Heat code is must" on casting POs.
- Automate: a QC checklist per op generated from the routing spec, with pass/fail and readings captured. The casting heat number is recorded at GRN and carried through the job, FG lot and invoice, so a customer complaint traces back to the foundry heat.
I4 · Daily shift plan push
- Automate: each morning, every supervisor gets their machines' job list (from the latest plan) on WhatsApp or email, with changes since yesterday highlighted.
5.J Reporting, control & platform
J1 · Daily MIS digest
- Automate: one daily message to management covering overdue customer lines, dispatch-ready value, POs past promise, machines down, rejections/scrap yesterday, negative-stock items and low-margin orders.
J2 · Formula-error & data-health watchdog
- Automate: a nightly scan for
#VALUE!,#DIV/0!,#REF!and#ERROR!, impossible dates, blank mandatory fields and HSN/GST mismatches, posted as a fix-list. Phase 0 runs it on their current sheets; later it covers the app's data.
J3 · Role-based access + audit trail
- Today: tabs are locked per user, data is entered by named clerks, and approvals are typed text.
- Automate: roles (sales, purchase, stores, production, maintenance, accounts, management) with field-level permissions and a full change log.
5.K Enablers
K1 · One-time migration + cleanup
- Automate: scripts that import ~8,000 ledger rows (since 2018), the product master, party master, BOMs, open orders, open POs and the machine master. The import fixes Q1–Q17 (normalise vocabularies, split
Contains, repair dates, flag negatives) and produces a data-health report for the client to sign off.
K2 · Transitional Sheets ↔ app sync
- Automate: during cut-over, staff keep entering in familiar sheets while a sync job pushes to the app (and pulls computed fields such as status and ETA back). This lowers adoption risk.
6. Product features beyond automation
Things people open and use (views, registers, portals, tools), as opposed to background automations. Each one answers a gap visible in the client's files. Items marked (inferred) come from hints in the costing sheets and need client confirmation before pricing.
6.A Visibility: dashboards and views
- Owner dashboard — open order value by customer, overdue lines, dispatch-ready value, machines down. Today: management asks by phone and reads sheets; status is typed text.
- Order book with ageing — by customer, due week and balance, with a promise-date calendar. Today: small balances stay open for months.
- Machine timeline and load heatmap — what runs where and when, and utilisation per machine. This is the client's own "which machine is producing what and when" question.
- Item 360 page — stock by state, open orders and POs, WIP, price history, BOM tree. Replaces the Item query sheet, which is full of
#DIV/0!. - Order-to-cash trace — click an order to see its castings, jobs, dispatches and invoices. Today nothing links PO, casting, machine and invoice.
6.B Planning tools
- What-if simulator — add a rush order, drop a machine or move a casting date, and compare the new plan with the current one.
- Capacity view — hours needed against hours available per machine type per week, bottleneck highlighted; useful when quoting.
- Machine preference table — one item on different machines: time, cost and margin side by side. The client sketched exactly this in their handwritten notes.
- Shift and holiday calendar with shift handover notes.
- Operator skills matrix (inferred) — costing sheets already price labour by skill (drill, tapping, CNC programmer, VMC operator).
6.C Costing and pricing workbench
- Cost builder per item — routing steps, machine and skill rates, paint and overhead, shown as a breakdown chart; one source instead of copied sheets.
- Rate master editor with effective dates and change history (today's rate list has item codes mixed in).
- Margin explorer by customer, item or order, with a loss-makers view.
- Price history charts per item (TMR556WB went from ₹875 to ₹1,166 across POs).
- Quote builder producing a PDF quote, with a currency option for export customers.
6.D Customer and vendor portals
- Customer portal — order status, dispatch notices, invoice downloads and PO upload (the front end for A9).
- Vendor portal — open POs, promised-date entry, challan and heat-certificate upload, and the vendor's own scorecard.
6.E Product master and documents
- Catalogue search across OE number, MPN, original numbers and customer mark.
- Attachments on items, POs and vendors: drawings, PO PDFs, test certificates, challans.
- Drawing revision history (inferred) — which revision was used for which lot.
- Where-used and where-from search — from any finished lot to its casting and heat number, or from a complaint to its source.
- Tooling register for jigs, fixtures and gauges (inferred) — costing sheets name a jig and a gauge per operation, but nothing tracks them or their calibration dates.
- Sample register — original and counter samples in and out, with ageing.
6.F Quality
- Non-conformance register and corrective-action tracking for rejects, scrap and customer complaints.
- Rejection Pareto charts by foundry, defect and item (about 1% incoming rejection today).
- Inspection record viewer against each operation's gauge and spec.
6.G Maintenance and assets
- Machine page — specs, warranty, spares, full breakdown history and cost.
- Downtime Pareto and repeat-failure view (HMC001 lost 98 h; APC battery failed 4 times).
- Spares inventory and AMC / warranty calendar — minimum stock levels per machine; warranty and AMC expiry dates.
6.H Compliance and finance views
- Job-work register — pending with each job worker, age, and a one-year return tracker.
- GST views — HSN-to-rate checks, ITC-04 pack, e-way bill list.
- Reports library — vendor scorecard, customer statement, stock valuation, ageing, profit by order.
- FX view for export orders: booked against realised rate.
6.I Everyday usability
- Roles and an approvals inbox — POs, low-margin orders, short-closes, stock adjustments.
- Notification centre and @mention comments — on orders and POs.
- Excel-style grid editing — bulk edit and an import wizard, since staff are used to sheets.
- Search and shortcuts — saved filters, one-click Excel/PDF export.
- Print layouts — challan, job card, box and bin labels, invoice.
- Shop-floor tablet mode — large buttons, one screen per machine.
- Data-health page — lists errors and blanks for someone to fix.
Suggested pitch order
- Owner dashboard with order book and machine timeline (answers the client's own three questions).
- Item 360 plus catalogue search (fixes daily pain, easy to demo).
- Costing workbench with margin explorer (backed by the SUM-bug finding).
- Customer and vendor portals (visible and differentiating).
- Quality register and tooling/gauge register (neither exists today).
7. Suggested roadmap
| Phase | Scope | Why this order |
|---|---|---|
| 0 — Quick wins on current Google Sheets (1–2 weeks) | B1 vendor reminders · B2 over-receipt emails · A5 order validation · E1 code/MPN generator · E3 HSN→GST check · E4 dropdown cleanup · J2 error watchdog · fix the MV9650 SUM bug now | Builds trust immediately; no migration needed; Apps Script on the existing workbook |
| 1 — Ops Tracker core + data foundation | K1/K2 migration · H1 capability matrix · I1 routing import · A1 order → schedule · A2/A3 allocation & status · A9 PO intake · C1/C2 ledger + production booking · C3 item 360 · D1/D2 job work + challan · F1/F3 costing + margin · G1/G2 breakdown → reschedule · B3/B4/B7 · J1/J3 | Gives the scheduler real inputs (orders, routings, machines, downtime) and real outputs (status, ETA) |
| 2 — Planning depth | B5 MRP-lite · B6 rate watch · B8 material gating · A4 CTP · A6/A7/A8 · C4/C5/C6 · D3 · E2/E5/E6 · F2/F4 · G3/G4/G5 · I2/I3/I4 | Needs Phase 1 data to be clean and flowing |
| 3 — Polish & scale | C7/C8 scanning · D4 e-way/e-invoice · E7 catalogue · F5 quotes · G6 OEE | High convenience, lower urgency |
8. Mapping to the Ops Tracker domain model
| Client artefact | Ops Tracker entity |
|---|---|
| ORDERS line (PO, item, qty, req date, SP) | Project (customer) → DemandLine |
| "Tick for mfg" | DemandLine release → Job creation (A1) |
| Costing sheet op rows (machine, jig, gauge, pcs/hours) | Routing → RoutingOp (+ RoutingOpRate) (I1) |
| Machinery master (Direct Process rows) | MachineType → Machine (H1) |
| Labour/machine rate list | Machine.hourlyRate (F2) |
| Breakdown report | MaintenanceWindow + machine status (G1) |
| PM remarks | planned MaintenanceWindow (G3) |
| Casting PO receipt / ETA | Job.releaseAt (B8) |
| Production quantities (missing today) | ExecutionEvent (C2) |
| Party master | Client / Vendor |
| Product master + BOM | Item + BomLine |
The scheduler planned in audit-and-backend-plan.md assumes six abstract machine types (M1–M6). The real shop has Lathe ×8, Drill ×7, CNC Turning ×2, VMC ×2, HMC ×2, 5-Axis ×1, VMM ×2, VTL ×1, plus grinders, a paint section and tapping. Seed data and the capability matrix should use these.
9. Open questions for the client
- What does COP stand for in
COP PRICE KEY/COP HISTORY(customer order price, cost of production …)? Which one should drive sale value? - Can we get access to the central rate sheet referenced by
IMPORTRANGE(labour/machine rates, casting ₹/kg, paint, overhead)? - Which costing is authoritative for MV9650: the "Cost" file or the "Production Plan" file? Should the paint and overhead ×2 factor apply?
- Over-receipt tolerance policy per material/vendor (B2)?
- Turnover band, for the e-invoice and ITC-04 frequency (D2/D4)? Which FX rate source and lock rule do they use for export POs (A6)?
- Who books production completion today, if anyone (C2)? Is a tablet or QR at the machine acceptable?
- Preferred alert channel: email, WhatsApp, or both?
- Can staff keep using sheets during transition (K2), or is a hard cut-over preferred?