7 products in production/LDN --:--:--

Distribution / Operations

Distribution / Operations case study — how Meritt Dev built and runs Chemicals distributor: one operations platform instead of Excel order books Chemicals distributor: one operations platform instead of Excel order books

The European arm of a specialty chemicals group trades monomers and feedstocks in ISO tanks across terminals in several countries. Its planners ran the business from manual Excel order books and a shared shipping inbox, and replacing them had been an unmet goal for roughly eight years.

Case 08 / 14
meritt.dev
Chemicals distributor: one operations platform instead of Excel order books — screenshot

Overview

We built the platform that replaced them: inventory, order book, pricing rules, scenario planning and a daily reconciliation of the ERP against what is physically in the tanks. Delivered by Meritt's founders as the engineering leads on the project, working with our US partner studio.

  1. [01]

    The challenge

    Stock reports arrived every day by email from six terminal operators, each in its own spreadsheet or PDF layout, and one logistics portal had no API at all. The ERP held sales orders but not physical stock, so reconciling the two was a manual job that nobody could keep up with.

    Planners needed one screen that showed stock, open orders and promised deliveries together, with the numbers traceable back to the source file that produced them.

  2. [02]

    What we built

    A nightly ingestion pipeline parses all six terminal formats, including PDFs, with OCR for scanned reports in English, Dutch and Spanish that runs on the client's own infrastructure so nothing leaves their estate. A browser bot reads the portal that has no API. Market prices arrive from the pricing provider's API.

    On top of that data: a command centre, inventory and order book screens, pricing and rules, a scenario planner, and a reconciliation view that puts the ERP next to physical stock line by line. An AI assistant answers planners' questions by calling fixed, read-only data tools, so it can never run a free-form query against the database.

    Built on Next.js and NestJS with Python ingestion and Postgres, deployed with Terraform on Azure Container Apps.

  3. [03]

    Where it is now

    Discovery on 1 June, scope agreed on 2 July, a clickable prototype through July, and the production platform live on 3 August: about five weeks from agreed scope to a running system on the client's own data feeds.

    Every parser is checked against its source: a 148,124 kg terminal total matched the operator's file to the kilogram, and all 31 API endpoints matched the previous system exactly after the rewrite. The planners are now working through the go-live checklist on live daily loads.

Next case — Healthcare / OperationsAnesthesia staffing group: OR analytics and payroll without the spreadsheets →