Large cement manufacturing company · Building materials

A plant's stock, without phoning the plant.

Plant inventory

Receipts, production and stock at a plant on one record, built from emailed purchase orders, vendor invoices and logged production.

Built on Phlo for a large cement manufacturing company.

Industry
Building materials
Capability
Plant inventory
Scale
The client operates 50+ plants

The system

One purchase order's history on a page. The order arrived by email. The first truck was rejected at the plant, the replacement load was accepted, and the order is part received. Rebuilt for this page with invented sample data.

The building materials division of a large cement manufacturing company makes waterproofing, tile grouting and tile cleaning products. It operates more than fifty plants. Raw and packaging material arrives at each plant, and finished goods leave it.

The operation, and what head office needs to see

Purchase orders and the daily dispatch report live in the ERP. Vendors send the invoice and the e-way bill by email, and a printed invoice travels with the truck.

None of this tells head office what a plant holds on a given day. There is no current view of raw material received, of output, or of stock available. Finding out means phoning the plant.

What the operation needs is narrow and specific: for each plant, what has been ordered, what is on the road, what has been received, what has been made, and what is left.

What we built

Jetbro built a plant inventory system on Phlo. It records what was ordered, what a vendor dispatched, what the plant received or turned away, what was produced and what was shipped. Stock at each plant is derived from those records.

It sits beside the ERP and does not connect to it. Purchase orders and vendor invoices reach the system by email, as PDFs in an agreed layout, and the daily dispatch figures are uploaded as a spreadsheet of product code and quantity, taken from the dispatch report downloaded from the ERP.

How an order moves through it

  1. The purchase order email. An email with the purchase order PDF is forwarded to the system. The raw email is stored first. The PDF is then read for the order number, date, vendor and lines. The vendor is matched by GST number, then by name, and the order is created with the status Detected.
  2. The vendor’s invoice email. The invoice PDF is read for the invoice number, the order it refers to, the e-way bill number, the vehicle number and the lines. It is linked to the order and recorded as a dispatch in transit.
  3. The truck arrives. The receiver at the plant types the invoice number or the e-way bill number. The dispatch loads with its lines. The receiver accepts it, or rejects it with a reason. Acceptance raises the order’s received quantity and the plant’s stock in the same step.
  4. Production is logged. The user picks the plant, the date, the finished product and the quantity. Before submitting, the screen previews what the bill of materials says will be consumed. One entry adds the finished stock and deducts every component.
  5. Finished goods leave. Head office uploads the day’s dispatch sheet for the plant: product code and quantity. The rows are checked and previewed, then finished stock is deducted.

A purchase order or a dispatch can also be entered by hand when no email arrives.

What the first build described

A first build writes the operation down: the things it tracks, what can happen to them, and the cases that do not follow the plan. This one is small in its vocabulary, which is the point. Stock at a plant reduces to a handful of things and a short list of events.

  • The things tracked. The plant. The item, which is a raw material, a packaging material or a finished product. The vendor. The bill of materials, a versioned recipe for each finished product. The purchase order. The vendor dispatch, which carries the invoice, the e-way bill number and the vehicle number. The receipt note. The production entry. The day’s dispatch sheet. The demand plan.
  • An email arrives. The message is stored as received before anything is read from it, so what the system was sent can always be set beside what it understood.
  • A purchase order is detected. The order exists in the system from the moment its PDF is read, with its lines and its vendor.
  • A vendor dispatch is detected. Material is now in transit against a known order.
  • A receipt note is created. It records the decision, accepted or rejected, and who made it.
  • Production is logged. One event, carrying the recipe and its version.
  • A dispatch sheet is uploaded. Finished goods have left the plant.
  • Exception: an order that arrives in parts. A purchase order moves from Detected to Partial received to Completed over as many receipts as it takes.
  • Exception: a truck turned away. A rejected receipt is still a receipt note. The dispatch is marked rejected, stock is untouched, and the replacement load is a new dispatch against the same order.
  • Exception: production ahead of receipts. Logging output that takes a component below zero is recorded and flagged, not blocked. Negative stock is a warning with its own report, because production can get ahead of formal receipts.
  • Exception: a recipe change. Each production entry stores the version of the bill of materials it used, so a new recipe affects only what is made after it.
  • Exception: no email. The order or the dispatch is entered by hand and joins the same record.

The rules the system holds

Stock is derived from the record. It rises when a receipt is accepted, changes when production is logged and falls when a dispatch sheet is uploaded.

Acceptance is a person’s decision. The receiver chooses to accept or reject, and a rejection needs a reason.

A bill of materials is versioned, and logging finished-goods output consumes every component through the version current at the time.

One demand plan is active for a plant in a month.

The demand planner

A plan is one plant, one month, and a target quantity for each finished product. The system measures production against the target and explodes what remains through the bills of materials into a requirement for every raw and packaging material.

Beside each requirement it shows stock on hand and the inbound pipeline: material in transit and material ordered but not yet shipped. Inbound is shown and not subtracted, so procurement judges delivery timing for itself. The plan recomputes when a receipt, a production entry, an order or a recipe changes.

What the record makes possible

The head office views are built from the same events that are recorded at the plant. A dashboard shows stock by item, the inbound pipeline, production, dispatches and warnings, for all plants or for one. Twelve reports cover stock coverage, order ageing, vendor performance, consumption against the bill of materials and a ledger of every movement.

Each purchase order opens into its own history: the dispatches against it and the receipt notes that accepted or rejected them. The event log shows every recorded step with its time and who or what recorded it.

What the foundation carries forward

Plants, items, vendors and recipes are master data, and the events are the same wherever material is received, converted and shipped.

Every Phlo system is built on the same framework, so further work on this foundation would add to the record and not replace it. A new process would read the receipts, production entries and dispatches already stored, without a migration.

The record

Every step is recorded as an event.

One purchase order, from the email that announced it to the finished goods that left the plant. The rejection on Friday is a goods receipt note in its own right, with a reason and a time. It added nothing to stock, and it stays on the order beside the load that was accepted on Monday.

The event types are the system's own. The times, figures and names are invented for this page.

How a system of events works

One chain of events, as stored

  1. Thu 11:02Webhook receivedEmail with a purchase order PDF attached, stored as received
  2. Thu 11:02PO creation detectedPO 45/R07/000412 · polymer emulsion for Plant 3 · status Detected4,800 kg
  3. Fri 09:40Webhook receivedThe vendor's invoice email
  4. Fri 09:40Vendor dispatch detectedInvoice BW/26-27/0318 · e-way bill and vehicle number read · In transit2,400 kg
  5. Fri 16:15GRN createdGRN-2026-0087 · drums leaking on arrival, seals broken · stock untouchedRejected
  6. Mon 08:30Webhook receivedInvoice email for the replacement load
  7. Mon 08:30Vendor dispatch detectedInvoice BW/26-27/0324 · In transit2,400 kg
  8. Mon 14:50GRN createdGRN-2026-0091 · order part received, 2,400 of 4,800 kg · plant stock up 2,400 kgAccepted
  9. Tue 17:20Production loggedWaterproof coating 1 L · BOM v3 · 900 kg of emulsion consumed, with every other component1,500 units
  10. Wed 10:05Dispatch uploadedHead office uploads the day's dispatch sheet · finished stock down 900900 units

Keep reading

The capability, and the idea underneath it.

All case studies

Get started

Every process in your operation, on one system.

Tell us how your operation runs today, and we will come back with what it takes to build it: the processes, the scope, and the timeline. Every system is scoped and built with you, so the first conversation is about your operation, not a demo.

coffee@jetbro.inWhatsApp +91 90999 62227