A plant that records production at the end of a shift is describing the past. The client's supervisors filled paper sheets that were typed into the ERP the following morning, so a machine running out of tolerance was discovered a day after it started. ELIVTECH extended the existing CodeIgniter platform with capture at the line itself, turning production data into something planners could act on while the shift was still running.
The client operates several plants producing components in batches for industrial customers. Its ERP had been built on CodeIgniter over many years and handled orders, purchasing and inventory competently, but had no presence on the shop floor. Production was recorded on paper against a work order and entered the next day, quality checks were signed on the same sheets, and batch traceability meant retrieving physical records from storage. Machine downtime was noted informally, so nobody could say reliably where capacity was being lost. ELIVTECH added work-order routing, machine-level production logging, in-line quality checkpoints and batch genealogy to the existing system, delivered as staged extensions rather than a replacement, and moved the platform to AWS with a tested release pipeline.
At a glance
The challenge
An ERP that understood orders and inventory, and knew nothing about the floor producing them.
Production recorded on paper, entered next day
Supervisors filled sheets during a shift and an administrator typed them into the ERP the following morning. Every figure planners worked from was at least a day old, transcription introduced errors nobody could later detect, and a problem developing on a line ran unchallenged until the paperwork caught up.
Work orders without routing
A work order named a product and a quantity but not the sequence of operations, the machines eligible to perform them or the expected time at each. Sequencing lived with experienced supervisors, so scheduling depended on who was on shift and the same order could take materially different paths through the plant.
Batch traceability held in physical records
Linking a finished batch to the raw material lots that produced it meant retrieving paper from storage and reconstructing the chain by hand. For a customer query or a containment exercise, the time to answer was measured in days, which is the wrong timescale for a quality event.
Quality checks signed but not analysable
In-process inspections were recorded as signatures on the production sheet. The checks were performed diligently and the results were unusable, because nothing was captured in a form that would let anyone see whether a dimension was drifting toward a tolerance limit over successive batches.
Downtime noted informally
Stoppages for tooling changes, breakdowns and material waits were mentioned in shift handovers and recorded inconsistently. Without categorised downtime nobody could say where capacity was actually being lost, so investment decisions about machines were made on impressions rather than evidence.
A codebase nobody wanted to change
Years of additions had left business logic duplicated across controllers with no automated tests. Any modification carried a genuine risk of disrupting order processing, so changes were avoided and the platform fell further behind how the business had grown.
Our solution
Capture at the line, routing as data, and traceability that resolves in a query rather than in an archive.
Plant Assessment and Routing Model
Four weeks on the floor across plants establishing how work actually moves, then modelling operations, machine capability and expected cycle times as data rather than as supervisor knowledge. The legacy codebase was assessed in parallel to identify what could be extended safely and what needed rebuilding, producing a sequence that never interrupted order processing.
Work-Order Routing and Machine-Level Logging
Work orders carry an explicit routing of operations with eligible machines and expected times. Production is logged at the line against a specific operation and machine, with output, scrap and downtime reason recorded as it happens. Terminals are simple, tolerant of gloved use, and queue entries locally when plant network coverage drops, replaying against idempotent endpoints so a shift recorded in a shielded corner of the building is never lost or double counted.
Batch Genealogy and In-Line Quality Capture
Material consumption is recorded against the batch being produced, building a genealogy that links finished output back to raw material lots through every operation. Quality checkpoints capture measured values rather than a signature, so a dimension can be tracked across batches and a drift toward tolerance becomes visible before it becomes a rejection. The genealogy resolves in both directions, forward from a raw material lot to everything it produced and backward from a finished batch to its inputs.
Planning Visibility and Modernised Delivery
Planners see output, scrap and categorised downtime per machine and shift as it accumulates rather than the following day. The platform moved to AWS with infrastructure defined in code, characterisation tests written around existing order logic before it was touched, and a release pipeline that lets changes ship without waiting for a plant shutdown.
Technology stack
Results
Measured once every plant was capturing production at the line.
Before and after: platform engineering measures
- Production written on paper and entered the following morning
- Planners working from figures at least a day old
- Work orders carrying no operation routing or machine eligibility
- Sequencing decisions held in supervisor knowledge
- Batch traceability reconstructed from physical records
- Quality checks captured as signatures, not measurements
- Downtime recorded informally in shift handovers
- Output, scrap and downtime captured at the line as they happen
- Planners seeing the current shift rather than yesterday's
- Explicit routing with eligible machines and expected cycle times
- Sequencing held as data and consistent across shifts
- Batch genealogy resolving from finished output to raw material lots
- Quality checkpoints capturing measured values for trend analysis
- Downtime categorised and attributable to a machine and shift
Project timeline
Plant Assessment and Routing Model
Observation across plants, operation and machine capability modelling, cycle time capture, legacy codebase assessment for extension versus rebuild, and a delivery sequence that kept order processing running.
Foundation and Routing
Routing schema and machine capability model in MySQL, characterisation tests around existing order and inventory logic, database migration tooling, AWS infrastructure in Terraform, and the release pipeline with test gates.
Shop-Floor Capture
Terminal interfaces for gloved single-handed use, operation start and completion logging, output and scrap capture, categorised downtime recording, and local queueing with replay where plant network coverage is weak.
Traceability, Quality and Reporting
Material consumption against produced batches, batch genealogy across operations, quality checkpoints capturing measured values, trend analysis against tolerance limits, and planner reporting on yield, scrap and downtime.
Plant-by-Plant Rollout
Terminal deployment and machine labelling per plant, parallel running with paper sheets during transition, supervisor and operator training, monitoring on capture gaps and queue replay, then progressive withdrawal of the paper process.
Key takeaways
What shaped the engineering decisions
- Extend the ERP, do not replace it: A new manufacturing system alongside the existing platform was rejected because it would have split order and production data across two sources. Adding shop-floor modules to the system that already held orders kept one record of the business.
- Make routing data, not knowledge: Sequencing held by experienced supervisors produced different outcomes on different shifts and left with the person. Modelling operations, eligible machines and expected times made scheduling consistent and reviewable.
- Capture measurements, not signatures: A signed check confirms an inspection happened and tells you nothing afterwards. Recording the measured value made trend analysis possible, which is what turns quality data into an early warning rather than a record of failures.
- Build genealogy as a graph, not a report: Linking consumption to produced batches at the moment of use means traceability is a query in both directions, forward from a raw material lot and backward from a finished batch, without reconstructing anything.
- Design terminals for the floor: Capture that is awkward at the machine gets deferred to the end of the shift, which recreates the original problem. Large targets, gloved operation, minimal steps and local queueing were requirements rather than refinements.
- Pin the legacy behaviour before changing it: Characterisation tests were written around existing order and inventory logic before any modification, so untested behaviour that the business depended on was captured first and each change had something to verify against.
Want results like these?
Let's discuss how ELIVTECH can drive measurable outcomes for your business.
Start your project